I would like to get the smallest, but still self-consistent and working example of using SPARQL from RDFLib. I have RDFLib version 4.0.1.
I would like to have code that executes the following
- Import RDFLib.
- Creates a simple graph (2 to 4 relationships)
- Writes this graph to a rdf file.
- Reads a graph from a file.
- Use SPARQL to extract something from the chart.
ADDED
I tried it myself (at first without writing or reading from the file), and I could not do it. This is what I have:
import rdflib g = rdflib.ConjunctiveGraph() has_border_with = rdflib.URIRef('www.example.org/has_border_with') located_in = rdflib.URIRef('www.example.org/located_in') germany = rdflib.URIRef('www.example.org/country1') france = rdflib.URIRef('www.example.org/country2') china = rdflib.URIRef('www.example.org/country3') mongolia = rdflib.URIRef('www.example.org/country4') europa = rdflib.URIRef('www.example.org/part1') asia = rdflib.URIRef('www.example.org/part2') g.add((germany,has_border_with,france)) g.add((china,has_border_with,mongolia)) g.add((germany,located_in,europa)) g.add((france,located_in,europa)) g.add((china,located_in,asia)) g.add((mongolia,located_in,asia)) x = g.query("""select ?country where { ?country www.example.org/located_in www.example.org/part1 }""") print x
As a result, I get:
Traceback (most recent call last): File "hello_world.py", line 23, in <module> x = g.query("""select ?country where { ?country www.example.org/located_in www.example.org/part1 }""") File "/usr/local/lib/python2.7/dist-packages/rdflib-4.0.1-py2.7.egg/rdflib/graph.py", line 1045, in query query_object, initBindings, initNs, **kwargs)) File "/usr/local/lib/python2.7/dist-packages/rdflib-4.0.1-py2.7.egg/rdflib/plugins/sparql/processor.py", line 72, in query parsetree = parseQuery(strOrQuery) File "/usr/local/lib/python2.7/dist-packages/rdflib-4.0.1-py2.7.egg/rdflib/plugins/sparql/parser.py", line 1034, in parseQuery return Query.parseString(q, parseAll=True) File "/usr/lib/python2.7/dist-packages/pyparsing.py", line 1032, in parseString raise exc pyparsing.ParseException: Expected "}" (at char 24), (line:1, col:25)