def test_sparql_query(self): results = sparqlquery(u'http://dbpedia.org/sparql', u'''SELECT DISTINCT ?uri ?designer WHERE { ?uri rdf:type <http://dbpedia.org/ontology/ProgrammingLanguage> ; rdfs:label ?label ; dbpedia-owl:designer ?designer . FILTER(regex(?label, "^Python")) }''') self.assertEqual(results, [['http://dbpedia.org/resource/Python_(programming_language)', 'http://dbpedia.org/resource/Guido_van_Rossum'], ['http://dbpedia.org/resource/Python_for_S60', 'http://dbpedia.org/resource/Guido_van_Rossum']])
def test_sparql_no_autocast(self): alignset = sparqlquery('http://dbpedia.inria.fr/sparql', 'prefix db-owl: <http://dbpedia.org/ontology/>' 'prefix db-prop: <http://fr.dbpedia.org/property/>' 'select ?ville, ?name, ?long, ?lat where {' ' ?ville db-owl:country <http://fr.dbpedia.org/resource/France> .' ' ?ville rdf:type db-owl:PopulatedPlace .' ' ?ville db-owl:populationTotal ?population .' ' ?ville foaf:name ?name .' ' ?ville db-prop:longitude ?long .' ' ?ville db-prop:latitude ?lat .' ' FILTER (?population > 1000)' '} LIMIT 100', indexes=[0, 1, (2, 3)], autocast_data=False) self.assertEqual(len(alignset), 100) self.assertFalse(isinstance(alignset[0][2][0], float))
def __call__(self, named_entities): filtered_named_entities = [] seen_uris = {} for uri, p, t in named_entities: if uri in seen_uris: if seen_uris[uri]: filtered_named_entities.append((uri, p, t)) else: results = sparqlquery(self.endpoint, self.query % {'uri': uri}) types = set([r[0] for r in results]) if not len(types.intersection(self.accepted_types)): seen_uris[uri] = False else: seen_uris[uri] = True filtered_named_entities.append((uri, p, t)) return filtered_named_entities
def query_word(self, word): """ Query a word for a Named Entities Recognition process """ return [r[0] for r in sparqlquery(self.endpoint, self.query % {'word': word})]