我正在使用RDF寻找自指循环,具体使用方法如下:
当我在这些RDF三元组上运行时:
SELECT ?sbj
# query pattern
WHERE {
?sbj skos:broader+ ?sbj .
}
当我在这些RDF三元组上运行时:
http://www.example.com/Concept/0001 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0002
http://www.example.com/Concept/0002 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0003
http://www.example.com/Concept/0003 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0001
我了解:
http://www.example.com/Concept/0003
http://www.example.com/Concept/0001
http://www.example.com/Concept/0002
http://www.example.com/Concept/0002
http://www.example.com/Concept/0003
http://www.example.com/Concept/0001
http://www.example.com/Concept/0001
http://www.example.com/Concept/0002
http://www.example.com/Concept/0003
如果我在这些RDF三元组上运行相同的查询:
http://www.example.com/Concept/0001 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0002
http://www.example.com/Concept/0002 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0003
http://www.example.com/Concept/0003 http://www.w3.org/2004/02/skos/core#narrower http://www.example.com/Concept/0001
我理解为:
http://www.example.com/Concept/0003
http://www.example.com/Concept/0002
http://www.example.com/Concept/0003
我原本期望它返回空值。
看起来skos:broader+似乎允许除了skos:broader之外的其他属性,更像是ANY*,skos:broader,ANY*之类的东西...这是正确的行为吗?
那么我使用的是:
Jena: VERSION: 2.6.4
Jena: BUILD_DATE: 2010-12-12T16:56:15+0000
ARQ: VERSION: 2.8.7
ARQ: BUILD_DATE: 2010-12-12T14:07:48+0000