SPARQL选择RDF:ID

SPARQL选择RDF:ID,rdf,sparql,Rdf,Sparql,我正在尝试使用sparql(inside Protege)选择对象的rdf:ID,但我似乎无法获得rdf:ID。有人看到过这个问题吗。我使用的SPARQL查询是: 选择*其中(?元素rdf:id?id) 以下内容也不起作用: 选择*where(?元素rdfs:label?id) 接受了一个建议,但这仍然是不可行的: 选择*where(?元素rdfs:about?id) 但这确实: 选择*where(?元素rdfs:comment?id) 我得到的只是“没有火柴”。所以我可以选择评论,但不能选择标

我正在尝试使用sparql(inside Protege)选择对象的rdf:ID,但我似乎无法获得rdf:ID。有人看到过这个问题吗。我使用的SPARQL查询是:

选择*其中(?元素rdf:id?id)

以下内容也不起作用:

选择*where(?元素rdfs:label?id)

接受了一个建议,但这仍然是不可行的:

选择*where(?元素rdfs:about?id)

但这确实:

选择*where(?元素rdfs:comment?id)

我得到的只是“没有火柴”。所以我可以选择评论,但不能选择标签…想法

更新::在进一步研究后,选择以下选项:

选择主题?属性?对象,其中(?主题?属性?对象)


没有提供任何RDFS属性。我错过了什么重要的东西吗?(我可以用rdfs:comment来搜索,但也没有显示出来…

我想您的rdf:ID(rdf文档中的本地引用)将使用xml:base解析,并转换为rdf:about

首先,rdf:ID在数据模型中不存在-rdf图三元组。“
rdf:ID
”是在一种语法RDF/XML中使用的语法术语,但不以三元组形式出现。类似地,
RDF:about
是一种语法术语

至于为什么protege的sparql在这里不起作用——我还没有使用protege——我想您试图找到的三元组是由推理机推断出来的,因此不一定在基本rdf图中


您想做什么还不完全清楚。您想要[某个三元组]的URI对象?如何识别该三元组?

如果您要查找所有RDF主题的URI,您可以运行:

选择主语,其中{主语?谓语?宾语}

请注意,您需要大括号,而不是圆括号。还请注意,在RDF中大小写很重要,因此要非常小心URI(以及前缀/本地名称)的拼写和大小写


达乔布关于蕴涵的观点(推断的三元组),
rdfs:label
是一个OWL注释属性,除非您包含自己的规则和/或OWL构造,否则推理程序将忽略它。换句话说,如果您刚开始使用RDF,如果推理程序使用
rdfs:label
作为谓词推断三元组,我会感到惊讶。

下面的查询获取了
RDF:ID
适用于
pref:class

select * where {
?id rdf:type pref:class
}

您的查询将返回匹配的任何个体的完整URI,每个个体绑定到一个名为“id”的变量。这与rdf:id不同(有关详细信息,请参阅)。