1

所以我知道为了对本地 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 是什么。我明白了。但是我怎么告诉它呢?

4

0 回答 0