0

グラフがあり、このグラフには次のようなリストがあります。

:Michelangelo       :representativeFor :Italy;
                rdfs:label "Michelangelo di Ludovico Buonarroti Simoni";
                :birthInfo [:date "1475-03-10"^^xsd:date; :place  :Florence];
                :sculptorOf [a rdf:List; rdf:first :Pieta; rdf:rest [a rdf:List; rdf:first :David; rdf:rest [a rdf:List; rdf:first :TheLastJudgement; rdf:rest rdf:nil]]];
:sculptorOf rdfs:domain :Sculptor; rdfs:range :Sculpture.

このクエリを入力すると

select * 
where {:David a ?z}

私はリソースと彫刻を手に入れることを期待しています。なぜ動作しないのかわかりません。どうすればよいですか?

4

1 に答える 1

3

あなたのタイトルはrdfにリストを挿入する方法ですが、クエリの値がデータのリストのどこにあるかをクエリしようとしているようです。

私があなたを正しく理解しているなら、あなたは以下に基づいて David の型を見つけたいと思っています:

:Michelangelo :sculptorOf [a rdf:List;
                           rdf:first :Pieta; 
                           rdf:rest [a rdf:List;
                                     rdf:first :David;
                                     rdf:rest [a rdf:List;
                                               rdf:first :TheLastJudgement;
                                               rdf:rest rdf:nil]]];

ドメインと範囲の公理:

:sculptorOf rdfs:domain :Sculptor; rdfs:range :Sculpture.

これは、RDF と OWL がどのように機能するかではありません。ミケランジェロはリストを彫刻したのではなく、さまざまなものを彫刻しました。RDF では、これを次のように表します。

:Michelangelo :sculptorOf  :Pieta, :David, :TheLastJudgement .

これは、3 つのトリプルの省略形です。

:Michelangelo :sculptorOf  :Pieta .
:Michelangelo :sculptorOf  :David .
:Michelangelo :sculptorOf  :TheLastJudgement .

ここで、OWL 推論が有効になっている場合、 DavidはsculptorOfアサーションのオブジェクトであるため、 DavidはSculpture型を持っている必要があると推論できます。RDF(S) 推論が利用できる場合、 Davidrdfs:Resourceであると推論することもできます。

于 2016-05-23T22:24:29.393 に答える