【问题标题】:How to create RDF model from DBPedia data using SPARQL如何使用 SPARQL 从 DBPedia 数据创建 RDF 模型
【发布时间】:2016-11-06 18:00:56
【问题描述】:

我是语义网的新人。我想使用 SPARQL 查询从 DBPedia 获取 Microsoft 的所有对象/值,并将结果保存为 RDF 格式。我在http://dbpedia.org/sparql 上进行了查询,该查询运行良好并返回有关Microsoft 的所有对/值。代码如下:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

 select * where 
 {{ <http://dbpedia.org/resource/Microsoft>  ?property ?value }
  UNION
 {?property ?value <http://dbpedia.org/resource/Microsoft>}}

我想要的是为结果创建 RDF 格式。我阅读了https://www.w3.org/TR/rdf-sparql-query/#construct 上的教程,并理解它可以通过使用 CONSTRUCT 查询来完成。我将 SELECT 更改为 CONSTRUCT,但这不起作用。如果可能的话,你能告诉我我的错误是什么,我如何将 CONSTRUCT 应用于我的查询以从查询中获取 RDF 模型?提前致谢!

【问题讨论】:

  • 没有看到 CONSTRUCT 查询,我们怎么能说出问题所在?
  • @AKSW 这是我的查询:CONSTRUCT { ?property ?value } where {{ dbpedia.org/resource/Microsoft> ?property ?value } UNION {?property ?value dbpedia.org/resource/Microsoft>}}跨度>
  • 看来您并没有真正了解 SPARQL 和 RDF。在第一部分中,您定义了将包含在结果中的三元组,因此在您的情况下,显然缺少主题 (&lt;dbpedia.org/resource/Microsoft&gt;)。这给我带来了第二个问题,您必须使用属性 URI,否则它们是相对的。 IE。在示例中缺少协议,即它应该是&lt;http://dbpedia.org/resource/Microsoft&gt;。此外,语法错误,因为您有两个不能存在的分号。
  • 最后但同样重要的是,在 UNION 的第二部分中,您混淆了主语和谓语。
  • 总而言之,看起来您复制并粘贴了一些其他查询的部分内容,但不了解它的作用。我真的建议一些有助于理解的 SPARQL 教程,

标签: sparql rdf semantic-web dbpedia


【解决方案1】:

为了更清楚地区分您检索到的实际三元组,我建议按以下方式更改变量:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

 select * where 
 {{ <http://dbpedia.org/resource/Microsoft>  ?property ?value }
  UNION
 {?subject ?property <http://dbpedia.org/resource/Microsoft>}}

关于结果格式,只需从 SPARQL 界面的结果菜单中选择“Turtle”或“RDF/XML”,而不是“HTML”。

【讨论】:

    猜你喜欢
    • 2018-11-20
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多