【问题标题】:SPARQL RDF prefixingSPARQL RDF 前缀
【发布时间】:2018-04-29 02:09:57
【问题描述】:

我想知道为什么我会在我自己的本体中使用 SPARQL 查询的所有内容都获得一个巨大的前缀?

我对这一切都很陌生,所以我可能做错了什么,但是运行这个查询

base <http://kasperrt/interests.ttl#>
prefix interests: <http://kasperrt.no/interests.ttl>

SELECT DISTINCT ?class ?s ?a
WHERE {
  ?s a ?class .
}
LIMIT 25
OFFSET 0

为什么所有的东西都带有这样的前缀 http://www.semanticweb.org/kasperrt/ontologies/2017/10/untitled-ontology-7?

为什么这个查询不返回任何内容?

base <http://kasperrt/interests.ttl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix interests: <http://kasperrt.no/interests.ttl>

SELECT DISTINCT ?interest1 ?interest2 ?name1 ?name2
WHERE {
    ?interest1
        rdfs:label ?name1;
        interests:Location ?location1.

    ?interest2
        rdfs:label ?name2;
        interests:Location ?location2.


  filter(?location1 != ?location2)

}

【问题讨论】:

  • 嗯,因为你用这个命名空间创建了本体?如果您的本体包含具有此命名空间的类,您期望得到什么作为查询的结果?我猜你知道属性中的类、属性和个体等实体是由 URI 标识的。
  • 第一个查询中的?a 是什么?您只能选择变量,三元组中的ardf:type 的快捷方式,因此不是变量。
  • 第二个查询没有返回任何内容,因为它与数据不匹配……我们不知道。前缀声明肯定是错误的。你说命名空间是http://www.semanticweb.org/kasperrt/ontologies/2017/10/untitled-ontology-7,那你为什么在这里使用另一个命名空间呢?如果您的本体使用您在第一个查询中已经识别的其他前缀,则名称空间不是文件名。
  • 我不知道你是如何创建本体的,但我猜想你的第二个查询中的前缀声明应该是prefix interests: &lt;http://www.semanticweb.org/kasperrt/ontologies/2017/10/untit‌​led-ontology-7#&gt;
  • @Kasper,我想您的本体是使用 Protégé 创建的。您可以在Ontology Header view(在Active Ontology 选项卡上)或从Refactor > Change Ontology IRI 更改本体IRI。 Protégé 会问你,你是否也想重命名本体实体。

标签: sparql rdf rdfs turtle-rdf


【解决方案1】:

问题正如 AKSW 所说,前缀声明定义错误,因此未在查询中返回任何结果。

查询中未指定本体 IRI。记得在正确使用 Protégé 时重构 with (正如 Stanislav Kralin 所说)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 2013-08-14
    • 2011-11-01
    相关资源
    最近更新 更多