所以我知道为了对本地 ttl 文件运行 SPARQL 语句,我使用 rdflib。为了针对 dbpedia 运行 SPARQL 语句,我运行了 Sparqlwrapper。但我该怎么做呢?即假设我有一个本地 ttl 文件,并且我想利用一些可用的在线资源。
所以......假设我有以下本地ttl
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<http://www.learningsparql.com/ns/demo#i93234>
foaf:nick "Dick" ;
foaf:givenname "Richard" ;
foaf:mbox "richard49@hotmail.com" ;
foaf:surname "Mutt" ;
foaf:workplaceHomepage <http://www.philamuseum.org/> ;
foaf:aimChatID "bridesbachelor" .
然后我创建以下 python 程序来执行 SPARQL 查询并打印出更易于阅读的属性版本
filename = "C:/DataStuff/SemanticOntology/LearningSPARQLExamples/ex050.ttl" interesting
import rdflib
g = rdflib.Graph()
result = g.parse(filename, format='ttl')
print(result)
query = """
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?propertyLabel ?value
WHERE
{
?s ?property ?value .
?property rdfs:label ?propertyLabel .
}
"""
results=g.query(query)
print('Results!')
for row in results:
print(row)
它不会返回任何内容,因为它没有访问 dbpedia,因此不知道 rdfs:label 是什么。我明白了。但是我怎么告诉它呢?