我使用以下查询
PREFIX dct: <http://purl.org/dc/terms/>
SELECT ?subject WHERE {
?concept rdfs:label 'Exoskeleton'@en ;
^dct:subject ?subject .
}
ORDER BY ?subject
这并没有给我任何结果。但是,rdfs:label
存在。 (见http://dbpedia.org/page/Exoskeleton。)
在使用其他标签查询时,它可以正常工作:
PREFIX dct: <http://purl.org/dc/terms/>
SELECT ?subject WHERE {
?concept rdfs:label 'Machine learning'@en ;
^dct:subject ?subject .
}
ORDER BY ?subject
以上查询有效并给我结果。 (见http://dbpedia.org/page/Machine_learning。)
我该如何更改,以便第一个查询也有效?
答案 0 :(得分:2)
dct:subject
谓词用于页面及其所属的类别。因此,您的第二个查询会为您提供Category:Machine learning中的结果。但由于没有Category:Exoskeleton,因此您的第一个查询不会给您带来任何结果。这也意味着您喜欢的两个页面与您的查询无关。
我不知道如何更改第一个查询以使其有效,因为我不明白“工作”需要什么。
答案 1 :(得分:1)
魔鬼在细节中:
PREFIX dct: <http://purl.org/dc/terms/>
SELECT ?concept WHERE {
?concept rdfs:label 'Machine learning'@en.
}
ORDER BY ?concept
返回两个结果:
虽然Exoskeleton没有相应的概念:
因此,您的反向属性路径会在http://dbpedia.org/resource/Category:Machine_learning概念下查找资源,但不会在http://dbpedia.org/resource/Machine_learning或http://dbpedia.org/resource/Exoskeleton页面下查找资源。
如果删除逆修改器,
PREFIX dct: <http://purl.org/dc/terms/>
SELECT ?subject WHERE {
?concept rdfs:label 'Exoskeleton'@en ;
dct:subject ?subject .
}
ORDER BY ?subject
Will return给定标签下的概念的类别(subject
)。