Python Sparql Querying Local File

I have the following Python code. It basically returns some RDF elements from an online resource using SPARQL.

I want to query and return something from one of my local files. I tried to change it, but could not return anything.

What should I change for the request inside my local, not http://dbpedia.org/resource ?

from SPARQLWrapper import SPARQLWrapper, JSON # wrap the dbpedia SPARQL end-point endpoint = SPARQLWrapper("http://dbpedia.org/sparql") # set the query string endpoint.setQuery(""" PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dbpr: <http://dbpedia.org/resource/> SELECT ?label WHERE { dbpr:Asturias rdfs:label ?label } """) # select the retur format (eg XML, JSON etc...) endpoint.setReturnFormat(JSON) # execute the query and convert into Python objects # Note: The JSON returned by the SPARQL endpoint is converted to nested Python dictionaries, so additional parsing is not required. results = endpoint.query().convert() # interpret the results: for res in results["results"]["bindings"] : print res['label']['value'] 

Thanks!

+4
source share
2 answers

SPARQLWrapper is for use only with remote or local SPARQL endpoints. You have two options:

(a) Put the local RDF file in the local three-local store and point your code to localhost. (b) Or use rdflib and use the InMemory repository:

 import rdflib.graph as g graph = g.Graph() graph.parse('filename.rdf', format='rdf') print graph.serialize(format='pretty-xml') 
+4
source

You can request rdflib.graph.Graph () with:

 filename = "path/to/fileneme" #replace with something interesting uri = "uri_of_interest" #replace with something interesting import rdflib import rdfextras rdfextras.registerplugins() # so we can Graph.query() g=rdflib.Graph() g.parse(filename) results = g.query(""" SELECT ?p ?o WHERE { <%s> ?p ?o. } ORDER BY (?p) """ % uri) #get every predicate and object about the uri 
+4
source

Source: https://habr.com/ru/post/1403521/


All Articles