xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:ns = "http://example.org/ns#" > <foaf:Person> <foaf:name>Alice</foaf:name> <foaf:homepage rdf:resource="http://work.example.org"/> </foaf:Person> <foaf:Person> <foaf:name>Bob</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> </foaf:Person> </rdf:RDF> """ select = ["?name", "?mbox", "?hpage"] pattern = GraphPattern([("?x", ns_foaf["name"],"?name")]) #optional = None optional = [ GraphPattern([("?x",ns_foaf["mbox"],"?mbox")]), GraphPattern([("?x",ns_foaf["homepage"],"?hpage")]) ] tripleStore = None expected = ''' ?name: Alice ?mbox: None ?hpage: http://work.example.org ?name: Bob ?mbox: mailto:[email protected] ?hpage: None '''
xmlns:dc0="http://purl.org/dc/elements/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:ns = "http://example.org/ns#" xmlns:book = "http://example.org/book" > <rdf:Description rdf:ID="book2"> <dc0:title>SPARQL Query Language Tutorial</dc0:title> <dc0:creator>Alice</dc0:creator> </rdf:Description> <rdf:Description rdf:ID="book1"> <dc:title>SPARQL Protocol Tutorial</dc:title> <dc:creator>Bob</dc:creator> </rdf:Description> </rdf:RDF> """ select = ["?x", "?y"] patt1 = GraphPattern([("?book", ns_dc0["title"], "?x")]) patt2 = GraphPattern([("?book", ns_dc["title"], "?y")]) pattern = [patt1, patt2] optional = [] tripleStore = None expected = ''' ?x: SPARQL Query Language Tutorial ?y: None ?x: None ?y: SPARQL Protocol Tutorial '''
> <rdf:Description rdf:ID="book1"> <dc:title>SPARQL Tutorial</dc:title> <ns:price rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">42</ns:price> </rdf:Description> <rdf:Description rdf:ID="book2"> <dc:title>The Semantic Web</dc:title> <ns:price rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">23</ns:price> </rdf:Description> <rdf:Description rdf:ID="book3"> <dc:title>The Semantic Web Old</dc:title> <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2000-03-12</dc:date> </rdf:Description> <rdf:Description rdf:ID="book4"> <dc:title>The Semantic Web New</dc:title> <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2005-03-02</dc:date> </rdf:Description> </rdf:RDF> """ select = ["?title", "?price"] pattern = GraphPattern([("?x", ns_dc["title"], "?title"), ("?x", ns_ns["price"], "?price")]) pattern.addConstraint(lt("?price", 30)) optional = [] tripleStore = None expected = ''' ?title: The Semantic Web ?price: 23 '''
xmlns:dc ="http://purl.org/dc/elements/1.1/" xmlns:foaf ="http://xmlns.com/foaf/0.1/" xmlns:ns ="http://example.org/ns#" xmlns:dt ="http://example.org/datatype#" > <rdf:Description> <ns:p rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">42</ns:p> <ns:p rdf:datatype="http://example.org/datatype#specialDatatype">abc</ns:p> <ns:p>2005-02-27</ns:p> <ns:p xml:lang="en">cat</ns:p> </rdf:Description> </rdf:RDF> """ from testSPARQL import ns_rdf from testSPARQL import ns_rdfs from testSPARQL import ns_dc from testSPARQL import ns_foaf from testSPARQL import ns_ns from rdflib import Literal import datetime from rdfextras.sparql.graph import GraphPattern select = ["?v"] pattern = GraphPattern([("?v", "?p", Literal("cat", lang="en"))]) optional = [] tripleStore = None expected = ''' ?v : (some Bnode id) '''
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:ns = "http://example.org/ns#" xmlns:book = "http://example.org/book" > <rdf:Description rdf:ID="book1"> <dc:title>SPARQL Tutorial</dc:title> <ns:price rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">42</ns:price> </rdf:Description> <rdf:Description rdf:ID="book2"> <dc:title>The Semantic Web</dc:title> <ns:price rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">23</ns:price> </rdf:Description> </rdf:RDF> """ select = ["?title", "?price"] pattern = GraphPattern([("?x", ns_dc["title"], "?title")]) optional = GraphPattern([("?x", ns_ns["price"], "?price")]) optional.addConstraint(lt("?price", 30)) tripleStore = None expected = """ ?title: SPARQL Tutorial ?price: None ?title: The Semantic Web ?price: 23 """
</rdf:Description> <rdf:Description> <foaf:name>Bob</foaf:name> <foaf:mbox>[email protected]</foaf:mbox> </rdf:Description> </rdf:RDF> """ from testSPARQL import ns_rdf from testSPARQL import ns_rdfs from testSPARQL import ns_dc from testSPARQL import ns_foaf from testSPARQL import ns_ns from testSPARQL import ns_book from rdflib import Literal from rdfextras.sparql.graph import GraphPattern from rdfextras.sparql.operators import isURI select = ["?name", "?mbox"] pattern = GraphPattern([("?x", ns_foaf["name"], "?name"), ("?x", ns_foaf["mbox"], "?mbox")]) pattern.addConstraint(isURI("?mbox")) optional = [] tripleStore = None expected = ''' ?name: Alice ?mbox: mailto:[email protected] '''
</rdf:RDF> """ from testSPARQL import ns_rdf from testSPARQL import ns_rdfs from testSPARQL import ns_dc from testSPARQL import ns_foaf from testSPARQL import ns_ns from testSPARQL import ns_book from rdflib import Literal from rdfextras.sparql.graph import GraphPattern from rdfextras.sparql.operators import isURI select = ["?name", "?mbox"] pattern = GraphPattern([("?x", ns_foaf["name"],"?name"),("?x",ns_foaf["mbox"],"?mbox")]) pattern.addConstraint(isURI("?mbox")) optional = [] tripleStore = None expected = ''' ?name: Alice ?mbox: mailto:[email protected] '''
from rdfextras.sparql.graph import GraphPattern # Careful to keep the <?xml declaration at the very beginning, otherwise the parser will fail... rdfData ="""<?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/" > <rdf:Description> <foaf:name>Johny Lee Outlaw</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> </rdf:Description> </rdf:RDF> """ select = ["?mbox","?junk"] pattern = GraphPattern([("?x",ns_foaf["name"],"Johny Lee Outlaw"),("?x",ns_foaf["mbox"],"?mbox")]) optional = None tripleStore = None expected = ''' ?mbox: mailto:[email protected] ?junk: None '''
xmlns:book = "http://example.org/book" > <rdf:Description rdf:ID="book1"> <dc:title>SPARQL Tutorial</dc:title> <ns:price rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">42</ns:price> </rdf:Description> <rdf:Description rdf:ID="book2"> <dc:title>The Semantic Web</dc:title> <ns:price rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">23</ns:price> </rdf:Description> <rdf:Description rdf:ID="book3"> <dc:title>The Semantic Web Old</dc:title> <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2000-03-12</dc:date> </rdf:Description> <rdf:Description rdf:ID="book4"> <dc:title>The Semantic Web New</dc:title> <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2005-03-02</dc:date> </rdf:Description> </rdf:RDF> """ select = ["?title", "?price"] pattern = GraphPattern([("?x", ns_dc["title"], "?title"), ("?x", ns_ns["price"], "?price")]) pattern.addConstraint(lt("?price", 30)) optional = [] tripleStore = None expected = """ ?title: The Semantic Web ?price: 23 """
</rdf:Description> <rdf:Description> <foaf:name>Bob</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> </rdf:Description> </rdf:RDF> """ from testSPARQL import ns_rdf from testSPARQL import ns_rdfs from testSPARQL import ns_dc from testSPARQL import ns_foaf from testSPARQL import ns_ns from testSPARQL import ns_book from rdflib import Literal from rdfextras.sparql.graph import GraphPattern select = ["?x", "?name"] pattern = GraphPattern([("?x", ns_foaf["name"], "?name")]) optional = [] tripleStore = None expected = ''' ?x: (some bnode) ?name: Alice ?x: (some bnode) ?name: Bob '''
<rdf:RDF xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:ns = "http://example.org/ns#" > <rdf:Description> <foaf:name>Johny Lee Outlaw</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> </rdf:Description> <rdf:Description> <foaf:name>Peter Goodguy</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> </rdf:Description> </rdf:RDF> """ select = ["?name", "?mbox"] pattern = GraphPattern([("?x", ns_foaf["name"], "?name"), ("?x", ns_foaf["mbox"], "?mbox")]) optional = [] tripleStore = None expected = ''' ?name: Johny Lee Outlaw ?mbox: mailto:[email protected] ?name: Peter Goodguy ?mbox: mailto:[email protected] '''
xmlns:foaf ="http://xmlns.com/foaf/0.1/" xmlns:ns ="http://example.org/ns#" xmlns:dt ="http://example.org/datatype#" > <rdf:Description> <ns:p rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">42</ns:p> <ns:p rdf:datatype="http://example.org/datatype#specialDatatype">abc</ns:p> <ns:p>2005-02-27</ns:p> <ns:p xml:lang="en">cat</ns:p> </rdf:Description> </rdf:RDF> """ from testSPARQL import ns_rdf from testSPARQL import ns_rdfs from testSPARQL import ns_dc from testSPARQL import ns_foaf from testSPARQL import ns_ns from rdflib import Literal import datetime from rdfextras.sparql.graph import GraphPattern select = ["?v"] pattern = GraphPattern([("?v", "?p", 42)]) optional = [] tripleStore = None expected = ''' ?v : (some bnode id) '''
<ns:p rdf:datatype="http://example.org/datatype#specialDatatype">abc</ns:p> <ns:p>2005-02-27</ns:p> <ns:p xml:lang="en">cat</ns:p> </rdf:Description> </rdf:RDF> """ from testSPARQL import ns_rdf from testSPARQL import ns_rdfs from testSPARQL import ns_dc from testSPARQL import ns_foaf from testSPARQL import ns_ns from rdflib import Literal import datetime from rdfextras.sparql.graph import GraphPattern select = ["?v"] #pattern = GraphPattern([("?v","?p",Literal("abc",datatype="http://example.org/datatype#specialDatatype"))]) pattern = GraphPattern([("?v","?p","abc")]) optional = [] tripleStore = None expected = ''' EMPTY '''
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:ns = "http://example.org/ns#" xmlns:book = "http://example.org/book" > <rdf:Description rdf:ID="book1"> <dc:title>SPARQL Tutorial</dc:title> <ns:price rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">42</ns:price> </rdf:Description> <rdf:Description rdf:ID="book2"> <dc:title>The Semantic Web</dc:title> <ns:price rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">23</ns:price> </rdf:Description> </rdf:RDF> """ select = ["?title", "?price"] pattern = GraphPattern([("?x", ns_dc["title"], "?title")]) optional = GraphPattern([("?x", ns_ns["price"], "?price")]) optional.addConstraint(lt("?price", 30)) tripleStore = None expected = ''' ?title: SPARQL Tutorial ?price: None ?title: The Semantic Web ?price: 23 '''
rdfData = """<?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdfs ="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc ="http://purl.org/dc/elements/1.1/" xmlns:foaf ="http://xmlns.com/foaf/0.1/" xmlns:ns ="http://example.org/ns#" xmlns:dt ="http://example.org/datatype#" > <rdf:Description> <ns:p rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">42</ns:p> <ns:p rdf:datatype="http://example.org/datatype#specialDatatype">abc</ns:p> <ns:p>2005-02-27</ns:p> <ns:p xml:lang="en">cat</ns:p> </rdf:Description> </rdf:RDF> """ from rdflib import Literal import datetime from rdfextras.sparql.graph import GraphPattern select = ["?v"] pattern = GraphPattern([("?v", "?p", "cat")]) optional = [] tripleStore = None expected = ''' EMPTY '''