【问题标题】:How to query dbpedia resource ontology 'wikiPageExternalLink'如何查询 dbpedia 资源本体 'wikiPageExternalLink'
【发布时间】:2012-05-21 21:56:45
【问题描述】:

在 python 中使用 sparql\sparqlwrapper,我如何能够查询某个 dbpedia 资源的值?例如,我将如何获得 http://dbpedia.org/page/Asturias 的 dbpedia-owl:wikiPageExternalLink 值? 这是一个简单的示例,说明我将如何查询阿斯图里亚斯的 rdfs:label。但我不知道如何修改查询/查询参数以获取属性/本体的值,而不是 rdfs 模式中包含的值。这是示例:

from SPARQLWrapper import SPARQLWrapper, JSON, XML, N3, RDF
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery("""
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    SELECT ?label
    WHERE { <http://dbpedia.org/resource/Asturias> rdfs:label ?label }
""")
print '\n\n*** JSON Example'
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
for result in results["results"]["bindings"]:
    print result["label"]["value"]

希望收到反馈。提前致谢!

【问题讨论】:

    标签: python sparql dbpedia


    【解决方案1】:

    不知道你在哪里卡住了——这真的很容易:

    SELECT ?label
    WHERE { <http://dbpedia.org/resource/Asturias>
                dbpedia-owl:wikiPageExternalLink ?label }
    

    如果你想在查询中使用它们,通常你需要声明像rdfs:dbpedia-owl: 这样的命名空间前缀,但在DBpedia 端点上,即使没有它也可以工作。如果你愿意,无论如何你都可以声明它们:

    PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
    SELECT ?label
    WHERE { <http://dbpedia.org/resource/Asturias>
                dbpedia-owl:wikiPageExternalLink ?label }
    

    您可以通过转到http://dbpedia.org/sparql 并单击右上角附近的“命名空间前缀”来找到与前缀相对应的完整 URI。

    如果您想重命名变量(例如,从 ?label?link),请这样做:

    PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
    SELECT ?link
    WHERE { <http://dbpedia.org/resource/Asturias>
                dbpedia-owl:wikiPageExternalLink ?link }
    

    您还必须在从 JSON 结果中获取值的 Python 代码中将 "label" 更改为 "link"

    【讨论】:

    • 感谢您的反馈。但是在 sparql 的“默认数据集名称(图形 IRI)”下,我应该放什么?再次感谢!
    猜你喜欢
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多