如何在不使用 SPARQL 的情况下使用 rdflib 模式匹配三元组
how to pattern match triples using rdflib without using SPARQL
我想对现有 RDF 图的三元组进行模式匹配。 RDFLib 模块的 triples() 函数看起来可以完成这项工作,但我无法让它工作。
有人可以举个例子吗?
考虑下图。
@prefix ex: <http://example.com/family/> .
ex:Bob a ex:Person.
ex:Bob ex:Occupation ex:Doctor.
ex:Bob ex:Country ex:USA.
ex:Bob ex:Age ex:32.
我想对主题为 ex:Bob 的所有三元组进行模式匹配。
我有一种预感,我一开始就使用了错误的函数。有人可以解释吗?谢谢
import rdflib
g = rdflib.Graph()
g.parse("bob.ttl", format="turtle")
bob = rdflib.URIRef("http://example.com/family/Bob")
for triple in g.triples( (bob, None, None) ):
print(triple)
family = rdflib.Namespace('http://example.com/family/')
bob = family.Bob
for triple in g.triples( (bob, None, None) ):
print(triple)
请注意,三元组模式以及三元组本身是 RDFLib 中的 Python 元组;因此多了一对括号。
我想对现有 RDF 图的三元组进行模式匹配。 RDFLib 模块的 triples() 函数看起来可以完成这项工作,但我无法让它工作。
有人可以举个例子吗?
考虑下图。
@prefix ex: <http://example.com/family/> .
ex:Bob a ex:Person.
ex:Bob ex:Occupation ex:Doctor.
ex:Bob ex:Country ex:USA.
ex:Bob ex:Age ex:32.
我想对主题为 ex:Bob 的所有三元组进行模式匹配。
我有一种预感,我一开始就使用了错误的函数。有人可以解释吗?谢谢
import rdflib
g = rdflib.Graph()
g.parse("bob.ttl", format="turtle")
bob = rdflib.URIRef("http://example.com/family/Bob")
for triple in g.triples( (bob, None, None) ):
print(triple)
family = rdflib.Namespace('http://example.com/family/')
bob = family.Bob
for triple in g.triples( (bob, None, None) ):
print(triple)
请注意,三元组模式以及三元组本身是 RDFLib 中的 Python 元组;因此多了一对括号。