问题
I am using RDFLib to query on the Semantic Dicom Ontology. I am querying for owl:Class in the graph constructed from the above ontology. RDFLib returns results which contain blank nodes and I wish to exclude such queries. My query -
from rdflib import Graph
g = Graph()
g.parse('dicom.owl')
q = """SELECT ?c WHERE {?c rdf:type owl:Class}"""
qres = g.query(q)
dicom.owl is the Semantic Dicom Ontology downloaded in my machine.
Some of the results that I receive -
How can I modify my query to exclude all the blank nodes?
回答1:
from rdflib import Graph
g = Graph()
g.parse('dicom.owl')
q = """SELECT ?c WHERE { ?c rdf:type owl:Class .
FILTER (!isBlank(?c)) }"""
qres = g.query(q)
Take a look at this family of SPARQL functions:
- isIRI,
- isBlank,
- isLiteral, isNumeric.
来源:https://stackoverflow.com/questions/44111025/excluding-blank-nodes-from-sparql-query-results