3

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

1 に答える 1

0

これの最小限の実例を提供するために、問題のデータ ファイルに対応する 2 つのデータ ファイルを次に示します。

data1.n3:

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix : <http://www.example.com/Concept/> .

:0001 skos:broader :0002 .
:0002 skos:broader :0003 .
:0003 skos:broader :0001 .

data2.n3:

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix : <http://www.example.com/Concept/> .

:0001 skos:broader :0002 .
:0002 skos:broader :0003 .
:0003 skos:narrower :0001 .

Jena のコマンド ライン ARQ ツールを使用すると、Jena/ARQ の新しいバージョンで問題が解決されたようです。

$ arq --version
Jena:       VERSION: 2.10.0
Jena:       BUILD_DATE: 2013-02-20T12:04:26+0000
ARQ:        VERSION: 2.10.0
ARQ:        BUILD_DATE: 2013-02-20T12:04:26+0000

$ arq --query query.sparql --data data1.n3
---------
| sbj   |
=========
| :0002 |
| :0001 |
| :0003 |
---------

$ arq --query query.sparql --data data2.n3
-------
| sbj |
=======
-------
于 2013-06-21T16:56:15.867 に答える