在远程远程端点RDFLib / Redland上进行SPARQL查询
||
我正在尝试查询远程端点并获取owl:sameAs映射,我已经尝试了RDFLib和Redland,但都没有为我工作,可能我没有正确处理名称空间。
这是我在RDFLib中的尝试:
import rdflib
rdflib.plugin.register(\'sparql\', rdflib.query.Processor, \'rdfextras.sparql.processor\', \'Processor\')
rdflib.plugin.register(\'sparql\', rdflib.query.Result, \'rdfextras.sparql.query\', \'SPARQLQueryResult\')
g = rdflib.Graph()
query = \"\"\"
SELECT *
FROM <http://api.talis.com/stores/bbc-backstage/services/sparql>
WHERE {
?s a http://purl.org/ontology/mo/MusicArtist;
http://www.w3.org/2002/07/owl#sameAs ?o .
}Limit 50
\"\"\"
for row in g.query(query):
print row
这是雷德兰德:
import RDF
model = RDF.Model()
query = \"\"\"
SELECT *
FROM <http://api.talis.com/stores/bbc-backstage/services/sparql>
WHERE {
?s a http://purl.org/ontology/mo/MusicArtist;
http://www.w3.org/2002/07/owl#sameAs ?o .
}Limit 50
\"\"\"
for statement in RDF.Query(query ,query_language=\"sparql\").execute(model):
print statement
您能给我一个提示吗?
我还有另一个困难:是否可以获取对象的数据集名称?例如:如果存在:
?s = http://www.bbc.co.uk/music/artists/eb5c8564-927d-414d-b152-c7b48a2c9d8b#artist
predicate = http://www.w3.org/2002/07/owl#sameAs
?0 = http://dbpedia.org/resource/The_Boy_Least_Likely_To
在此示例中,我能否获得\“ Dbpedia \”的名称?还是我具有sameAs链接的任何其他数据集? (或者也许我可以在对象字符串中查找感兴趣的数据集名称),非常感谢
没有找到相关结果
已邀请:
4 个回复
谷靛
中。正确的查询是:
...在这里查看结果。
并未像您认为的那样在rdflib或redland中实现。它不会获取远程SPARQL端点,而是在本地存储中获取远程图或具有该名称的图。在您的情况下,您想使用
来了解Jena在这里的工作原理。不幸的是,rdflib和redland都没有为SPARQL实现
子句,但是有解决方法。 一种可能的解决方案是将SPARQLWrapper用于python。这很简单,在这里您可以使用该库编写代码:
如您所见,远程SPARQL端点成为查询之外的参数。
慷祈霖黑
,但尚未在查询中执行它。
青董据零
缕嚏冻