我正在尝试学习SPARQL,为此,我需要对本地ttl文件执行查询。我已经对此进行了研究,每个响应都说要使用rdflib
,然后针对该查询运行查询。
这是我正在使用的示例ttl文件
# filename: ex002.ttl
@prefix ab: <http://learningsparql.com/ns/addressbook#> .
ab:richard ab:homeTel "(229) 276-5135" .
ab:richard ab:email "richard49@hotmail.com" .
ab:cindy ab:homeTel "(245) 646-5488" .
ab:cindy ab:email "cindym@gmail.com" .
ab:craig ab:homeTel "(194) 966-1505" .
ab:craig ab:email "craigellis@yahoo.com" .
ab:craig ab:email "c.ellis@usairwaysgroup.com" .
现在应该正常工作的python代码如下
filename = "C:/DataStuff/SemanticOntology/LearningSPARQLExamples/ex002.ttl"
import rdflib
g = rdflib.Graph()
result = g.parse(filename, format='ttl')
print(result)
query = """
SELECT * WHERE {
?s ?p ?o .
}
"""
g.query(query)
for stmt in g:
print(stmt)
不幸的是,每当到达g.query(query)
时,我就会得到ModuleNotFoundError: No module named 'rdfextras'
好的-没问题。因此,我去conda-forge安装它,并说该软件包无法从当前渠道获得。
好的,很奇怪。因此,我进行了一些研究并发现了https://github.com/RDFLib/rdfextras
表示已停用,rdflib
>=4
不再需要。因此,我检查了rdflib
的版本,它是4.2.2
。显然,出了点问题,因为它不需要rdfextras
。
有两个问题-
rdflib >=4
版本是为什么?谢谢。
答案 0 :(得分:1)
我很抱歉-我刚到家并重新运行了查询,现在它似乎正在运行。我不知道从现在到大约2小时前有什么变化