4

私はProtegeを通じてOWLを見たり遊んだりしてきましたが、「ワークフロー」とその考え方を正しく理解しているかどうか知りたいです(データベースをゼロから構築するため:

  1. Protege または同等のものを使用して、データの OWL オントロジーを生成します
  2. このスキーマを RDF にエクスポートします
  3. トリプルストアの一部の要素として定義されたクラスをターゲット データとともに使用する
  4. トリプルストアを RDF にエクスポートする
  5. openRDF/sesame または Jena を使用して、定義されたデータとオントロジーを読み込みます
  6. RDF トリプルストアを OWL オントロジーに対して検証して、すべてが正常であることを確認します
  7. SPARQL を使用して RDF トリプルストアからデータを取得する
  8. OWL推論を使用して何かを行います(ここではあまり明確ではありません)

他の人が何をしていて、この種の問題にどのように取り組んでいるのかを知りたいです。

さらに、具体的な質問があります。

オントロジーのみのサブクラスとスーパークラスの関係を決定するためにフクロウ推論が使用されているようです。しかし、データに関しては、SPARQL でサブクラスとスーパークラスの関係を照会する方法を教えてください。たとえば、トリプル ストアが (pizzaID1 is-a marghareta ) を定義し、SPARQL でベジタリアン ピザをクエリする場合、どうすれば PizzaID1 が返されることを確認できますか。

その答えは、すべての関係が明示的に示されている「完全なグラフ」を生成することに関係していると思います。sparql は、トリプルストアをクエリするときに自動推論を行いますか?それとも、そのような完全なグラフを生成する必要がありますか?

4

1 に答える 1

5

考えられるワークフローは多数ありますが、それほど複雑である必要はありません。

  1. いくつかのエディタで OWL オントロジーを生成しました
  2. オントロジーをRDFとしてエクスポート
  3. オントロジーをトリプルストアにインポートする
  4. データをトリプルストアにインポートする
  5. SPARQL を使用してデータをクエリする

サブ/スーパークラスの推論は、推論器が使用されるものです。組み込みの推論器でストアを使用すると、その情報が SPARQL によって使用されるため、次のようにします。

SELECT ?pizza
WHERE {
  ?pizza a :VegitarianPizza .
}

クラス VegitarianPizza のメンバーであるすべてのピザ、またはそのサブクラスのいずれかが返されます。

クラス VegitarianPizza は、あなたのオントロジーで、肉の材料を含まないピザとして定義されていると思いますか? 各ピザを手動でクラスに割り当てるのではなく? それ以外の場合は、OWL はまったく必要なく、RDFS を使用するだけで済みます。RDFS の方がはるかに簡単です。

于 2011-02-26T17:16:22.770 に答える