8

Wine オントロジーを使用して、SPARQL クエリを作成して、下の表のようなすべてのワインそのプロパティを取得できるようにしたいと考えています

vin                  | rdf:type     | vin:hasMaker      |  vin:hasSugar   | ...
==========================================================================  ...
GaryFarrellMerlot    |  vin:Merlot  | vin:Elyse         |  vin:Dry        | ...
--------------------------------------------------------------------------
ElyseZinfandel       |  vin:Elyse   | vin:GaryFarrell   |  vin:Dry        | ...
...

誰かが私にヒントを与えることができますか?

--編集

前述の形式でクエリ結果を取得することはできませんが、次の方法で取得できます。

vin                |   property     |  value
=================================================
GaryFarrellMerlot  |   rdf:type     |  vin:Merlot
-------------------------------------------------
GaryFarrellMerlot  |   rdf:hasMaker |  vin:Elyse
-------------------------------------------------
...

この選択で(ありがとうcygri):

SELECT DISTINCT ?wine ?property ?value
WHERE { 
       ?o1 a ?class .
       ?wine a ?o1 .
       ?wine ?property ?value .
}

これは、ワインの種類の代わりにワインを取ります (Merlot -> GaryFarrellMerlot)。唯一の問題は、ワインだけでなく、ワイナリー、地域、フレーバーなども必要であり、ワインとそのプロパティのみが必要なことです。また、そのような属性vin:Merlot rdfs:subClassOf vin:Wineはありません。ヒントはありますか?

4

1 に答える 1

11

できません。クエリ結果に必要な列を事前に知っておく必要があります。

もちろん、ワインのすべてのプロパティを一覧表示することはそれほど難しくありません。

SELECT DISTINCT ?property
WHERE { 
    ?wine a vin:Wine .
    ?wine ?property ?value .
}

次に、結果のリストから最終的なSPARQLクエリを作成するコードを作成する必要があります。

于 2012-04-20T19:46:19.670 に答える