5

次の分類法 (非巡回 & 有向グラフ) を想像してください。

<my:Eukaryota> <rdfs:subClassOf> <my:Organism>.
<my:Mammal> <rdfs:subClassOf> <my:Eukaryota>.
<my:Primate> <rdfs:subClassOf> <my:Mammal>.
<my:HomoSapiens> <rdfs:subClassOf> <my:Primate>.
<my:Bacteria> <rdfs:subClassOf> <my:Organism>.
<my:Escherichia> <rdfs:subClassOf> <my:Bacteria>.

1) Jena OWL APIを使用して、すべての親ノードを再帰的に取得せずに、特定のリソース (ホモサピエンスなど) が「哺乳動物」のサブクラスであるかどうかを確認できますか?

2) SPARQLと同じ質問。

ありがとう

4

4 に答える 4

4

すでに Jena を使用している場合は、Pellet のSPARQL-DL クエリ エンジンを使用できます。これにより、オントロジーを意識した方法で個人をクエリできます。

InfModelまたは、インターフェイスの代わりにJena を使用Modelし、推論 (およびオントロジー) を接続して、RobV が言及するクエリを実行することもできます。必要に応じて、これにペレットの推論を使用できます。OntModel推論を行うだけの場合は、を使用する必要はありません。

于 2009-09-22T16:33:53.037 に答える
3

1) Jena はあまり使用していませんが、そのOntToolsクラスには、最下位共通祖先の関数が含まれているようです。ホモサピエンスと哺乳類の最小共通祖先が哺乳類である場合、ホモサピエンスは哺乳類です。内部的には、再帰的な subClassOf 検索を使用します。

2) 一般的なケースでは、いいえ、SPARQL は任意の深さのツリー トラバーサルをサポートしていません。しかし、subClassOf ツリーの最大の深さがわかっている場合は、次のようなクエリを作成できます。

ASK {
  OPTIONAL {
    :HomoSapiens rdfs:subClassOf :Mammal
  }
  OPTIONAL {
    :HomoSapiens rdfs:subClassOf ?c .
    ?c rdfs:subClassOf :Mammal
  }
  OPTIONAL {
    :HomoSapiens rdfs:subClassOf ?c1 .
    ?c1 rdfs:subClassOf ?c2 .
    ?c2 rdfs:subClassOf :Mammal
  }

  # ... add
}
于 2009-09-22T08:40:56.870 に答える
2

laaltoは正しいです。ほとんどすべてのセマンティックWebライブラリは、再帰的なsubClassOf検索を介してそれを実行します。これを回避する唯一の方法は、元のグラフが解析されるときにグラフにトリプルを追加する推論/推論エンジンを使用することです。

したがって、たとえば、次のものが自動的に追加されます。

<my:Eukaryota> <rdf:type> <my:Organism>.
<my:Mammal> <rdf:type> <my:Organism>.
<my:Mammal> <rdf:type> <my:Eukaryota>.
<my:Primate> <rdfs:type> <my:Organism>.
<my:Primate> <rdfs:type> <my:Eukaryota>.
<my:Primate> <rdfs:type> <my:Mammal>.
# etc...

イエナでこれをどのように行うかはわかりません。イエナを知っている他の誰かがそれに答える必要があります。

SPARQL laaltoについても完全に正しいですが、トリプルストアとクエリする関連するSPARQLエンドポイントに推論機能がある場合は、次のような単純なクエリを実行できる場合があります。

PREFIX my: <http://yournamespace.com>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
ASK { my:HomoSapiens rdf:type my:Mammal }
于 2009-09-22T09:48:57.660 に答える
1

SPARQL 1.1 には、任意の深度グラフ トラバーサルがあります。これに使用できるもの。BioStarで関連する質問を参照してください

ASK { :ホモサピエンス rdfs:subClassOf+ :哺乳類 }

于 2012-11-22T12:25:27.517 に答える