【发布时间】: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是什么?您只能选择变量,三元组中的a是rdf:type的快捷方式,因此不是变量。 -
第二个查询没有返回任何内容,因为它与数据不匹配……我们不知道。前缀声明肯定是错误的。你说命名空间是
http://www.semanticweb.org/kasperrt/ontologies/2017/10/untitled-ontology-7,那你为什么在这里使用另一个命名空间呢?如果您的本体使用您在第一个查询中已经识别的其他前缀,则名称空间不是文件名。 -
我不知道你是如何创建本体的,但我猜想你的第二个查询中的前缀声明应该是
prefix interests: <http://www.semanticweb.org/kasperrt/ontologies/2017/10/untitled-ontology-7#> -
@Kasper,我想您的本体是使用 Protégé 创建的。您可以在Ontology Header view(在Active Ontology 选项卡上)或从Refactor > Change Ontology IRI 更改本体IRI。 Protégé 会问你,你是否也想重命名本体实体。
标签: sparql rdf rdfs turtle-rdf