27

オントロジーを使用する Eclipse ベースのアプリケーションを実装しようとしています。(私のトピックはセマンティックアノテーションです)。オントロジーをユーザーに (ツリーとして) 表示し、オントロジー クラスとスキーマの間のリンクを確立する必要があります。

私は基本的なプログラミング スキルしか持っていないので、アプリケーションをどのように設計するかについては、ちょっと圧倒されています... 1. 質問: どの API を使用しますか? OWL API と Jena API を見つけました。投稿の 1 つ ( OWL ファイルを簡単に変更および更新できるライブラリはありますか? ) で、Michael は次のよう述べています。これをどう見ますか?2. さらに、Protégé API も存在します。一見したところ、既に GUI ユーティリティなどを提供しているため、私には適しているように見えます。/P4API概要. そこには「作業中」と書かれていますが、ページが最後に変更されたのは 2009 年です。Protégé API を使用した経験のある方はいらっしゃいますか?

よろしくお願いします!

4

1 に答える 1

39

この質問はおそらく StackOverflow の話題から外れていますが、それでも一般的に重要な質問であるため、Jena API と OWL API の違いについての一般的な考えを以下に示します。どちらの場合でも、何をしようとしているのかをよりよく理解できるかもしれません。他の人もこれを更新できるように、コミュニティ wiki としてマークしています。

OWLとRDFの関係

RDF は、グラフベースの表現形式です。RDF グラフは有向グラフであり、そのノードはリソース (匿名または IRI によって識別される) とリテラルであり、エッジは IRI によって識別される有向リンクです。これは驚くほど単純ですが、識別子は IRI であり、多くの場合、後付けできるため、驚くほど便利です。RDF についてはこれ以上言うことはありません。これは非常に柔軟で、ほぼ何でも表すことができます。

OWL は、セマンティック Web で使用するように設計されているため、RDF データと一緒に使用するように設計されていますが、実際には論理言語であり、たまたま RDF に関連しているだけです。OWLオントロジーは、一連のOWL公理から構成され、一部は特定の識別子が個体を参照すると宣言し、一部は個体(およびリテラルなどの非個体データ)間の関係を主張し、一部はクラスの構造を表現します。等々。OWL の有用性は、RDF と同様に IRI を識別子として使用するという事実から生じますが、論理構造は RDF とは完全に別個に存在する可能性があります。実際、OWLオントロジーはシリアライズできますが、RDF を使用しており、実際、これはおそらく最も一般的に使用されているシリアル化です。OWL は、OWL/XML、OWL 関数構文、マンチェスター OWL 構文、および誰かが発明したその他のシリアル化形式でもシリアル化できます。これらの形式は、OWL レベルの構造に焦点を当てる傾向があり、オントロジーが一連の公理であることはより明確です。

Jena API は RDF 中心です

Jena API は、RDF にしっかりと根ざしています。基本的な概念は、 RDF グラフを構築するための便利な API を提供するモデル(より複雑な OWL 関連の作業を行うために使用されるOntModelよりも原始的) です。モデルを使用して、リソースの作成、プロパティの追加などを行います。Jena には、RDF グラフの操作に非常に便利なルールベースの推論機能も含まれています。

現在、OWL は RDF を使用してシリアライズできるため、RDF グラフ上にラッパー層を作成して、「A と B の共通部分であるクラスを作成してください」と言って、そのクラスを識別するリソースを取得し、新しいクラスが A と B の積集合である (と同等である) ことを表明するために、OWL シリアライゼーションで必要な RDF トリプルをクラスに透過的に追加します。これが Jena OntModel API の機能です。これは一般的な方法で行います。つまり、Jena は、RDF でシリアル化できる他のオントロジー言語も処理できます。Jena OntModels は、執筆時点では OWL1 のみをサポートしています。OWL2 で導入された新しい構造はまだサポートされていません。

Jena の OWL レベルの構造が RDF シリアライゼーションの単なるラッパーであるという事実は、ルールベースの推論が達成できることが限られていることを意味します。特に、OWL の Jena ルールベースの推論は論理的に不完全です (つまり、OWL 仕様が推論すべきであると述べているすべてを推論することはできません)。とはいえ、彼らはまだ日々の仕事をかなりうまくやっています。Jena は Reasoner インターフェースを提供します。これにより、Pellet などの他の (おそらくルールベースではない) Reasoner を使用できます

OWL API は OWL 中心です

OWL-API は OWL 中心であり、RDF について心配する必要はほとんどありません (IRI によって物事を識別し、必要に応じてリテラルを作成することを除けば)。OWL API を使用すると、オントロジーを公理をたまたまエンコードするトリプルのセットとしてではなく、公理のセットとして実際に扱うことができます。すでに OWL 仕様に精通しており、ObjectPropertyAssertions などについて話すことに慣れている場合は、OWL API がもう少し自然であることに気付くかもしれません。

Protégé-OWL API は、OWL および RDF(S) 中心でもあります

The Protégé-OWL API Programmer's Guideから:

Protege-OWL API は、Web オントロジー言語 (OWL) および RDF(S) 用のオープンソース Java ライブラリです。この API は、OWL ファイルのロードと保存、OWL データ モデルのクエリと操作、記述ロジック エンジンに基づく推論の実行を行うためのクラスとメソッドを提供します。さらに、API は、グラフィカル ユーザー インターフェイスの実装用に最適化されています。

Protégé-OWL APIのメイン ページには、それが提供するクラスの優れた図もあります。これらの最も完全なものは、RDF(S) エンティティOWL エンティティ の両方にクラスがあることを示しています。

Protégé-OWL (API ではなくツール) は、Protégé-OWL API の上に構築されたグラフィカルなオントロジー エディターです。そのためのプラグインを開発できます。これは、あなたの場合に最適な代替手段となる可能性があります。

于 2013-07-10T11:11:38.310 に答える