私は以下を使用して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