オントロジーで動作するEclipseベースのアプリケーションを実装しようとしています。 (私のトピックはセマンティックアノテーションです)。オントロジーを(ツリーとして)ユーザーに表示し、オントロジークラスといくつかのスキーマの間のリンクを確立する必要があります。
私は基本的なプログラミングスキルしか持っていないので、アプリケーションをどのように設計するかについて、今はちょっと圧倒されています... 1.質問:どのAPIを使用しますか? OWLAPIとJenaAPIを見つけました。投稿の1つで( OWLファイルを簡単に変更および更新できるライブラリはありますか? )Michaelは「イエナ上のOWLAPI。イエナはOWLをサポートしていますが、設計されていませんforOWL、これは使用するのが少し面倒になります。 "これをどのように見ますか? 2.さらに、ProtégéAPIも存在します。一見すると、すでにいくつかのGUIユーティリティなどが提供されているので、私にはより適しているようです。しかし、少し混乱しています。より多くの情報を見つけようとすると、これが見つかりました http://protegewiki.stanford .edu/wiki/P4APIOverview 。そこには「作業中」と書かれていますが、ページは2009年に最後に変更されました。これをどのように理解するのですか?誰かがProtégéAPIを使用していて、彼/彼女の経験を共有できますか?
よろしくお願いします!
この質問はStackOverflowのトピックから外れている可能性がありますが、それでも一般的に重要な質問です。そのため、JenaAPIとOWLAPIの違いについての一般的な考えをいくつか示します。これらの質問では、どちらかを優先する必要はありません。他の、どちらの場合でもあなたが何に入っているかについてあなたにもっと良い考えを与えるかもしれません。他の人もこれを更新できるように、コミュニティwikiにマークを付けています。
RDFはグラフベースの表現形式です。 RDFグラフは、ノードがリソース(匿名、またはIRIによって識別可能)とリテラルであり、エッジがIRIによって識別される有向リンクである有向グラフです。これは驚くほど簡単ですが、識別子はIRIであり、しばしば区別できるため、驚くほど便利です。 RDFについて言うことは、これですべてなので、実際にはそれほど多くはありません。それは非常に柔軟性があり、ほとんど何でも表現できます。
OWLは、セマンティックWebで使用するように設計されているため、RDFデータで使用するように設計されていますが、実際には、偶然にのみRDFに関連する論理言語です。 OWLオントロジーは、OWL公理のセットで構成され、特定の識別子が個人を参照することを宣言するものもあれば、個人間の関係(およびリテラルなどの非個人データ)を主張するものもあり、クラスの構造を表すものもあります。等々。 OWLの有用性は、RDFと同様に、識別子としてIRIを使用するという事実から生じますが、論理構造はRDFとは完全に別個に存在する可能性があります。実際、OWLオントロジーはRDFを使用してserializedにすることができ、実際、これはおそらく最も一般的に使用されるシリアル化ですが、OWLはOWL/XML、OWL機能構文でシリアル化することもできます。マンチェスターOWL構文、および誰かが発明したその他のシリアル化フォーマット。これらのフォーマットはOWLレベルの構成に焦点を合わせる傾向があり、オントロジーが一連の公理であることは明らかです。
Jena APIは、RDFに非常にしっかりと根付いています。基本的な概念は Model (より複雑なOWL関連の作業を行うために使用される OntModel よりも原始的です)であり、RDFグラフ。モデルを使用して、リソースの作成、プロパティの追加などを行います。 Jenaには、RDFグラフの操作に非常に便利なルールベースの推論機能も含まれています。
これで、OWLはRDFを使用してシリアル化できるため、RDFグラフ上にラッパー層を作成して、「AとBの共通部分であるクラスを作成してください」と言ってリソースを取り戻すことができます。そのクラスを識別し、OWLシリアル化で必要なRDFトリプルをクラスに透過的に追加して、新しいクラスがAとBの共通部分(と同等)であることを表明します。これがJena OntModelAPIの機能です。これは一般的な方法で実行されます。つまり、イエナはRDFでシリアル化できる他のオントロジー言語も処理できます。 Jena OntModelsは、執筆時点では、OWL1のみをサポートしています。 OWL2で導入された新しい構成はまだサポートされていません。
イエナのOWLレベルの構成がRDFシリアル化の単なるラッパーであるという事実は、ルールベースの推論が達成できるものに制限があることを意味します。特に、OWLのイエナルールベースの推論は論理的に不完全です(つまり、OWL仕様が推測する必要があると言っているすべてを推測することはできません)。しかし、彼らはまだ日々の仕事にはかなりうまくいっています。イエナはReasonerインターフェースを提供します。これにより、 Pellet などの他の(おそらくルールベースではない)推論を使用できます。
OWL-APIはOWL中心であり、RDFについてまったく心配する必要はありません(IRIによって物事を識別し、必要に応じてリテラルを作成することを除けば)。 OWL APIを使用すると、実際には、オントロジーを、公理をエンコードするtriplesのセットとしてではなく、axiomsのセットとして扱います。すでにOWLの仕様に精通していて、ObjectPropertyAssertionsのようなことについて話すことに慣れている場合は、OWLAPIがもう少し自然であることがわかるかもしれません。
Protege-OWL APIは、Webオントロジー言語(OWL)およびRDF(S)用のオープンソースJavaライブラリーです。 APIは、OWLファイルをロードおよび保存し、OWLデータ・モデルを照会および操作し、記述論理エンジンに基づいて推論を実行するためのクラスおよびメソッドを提供します。さらに、APIはグラフィカルユーザーインターフェイスの実装用に最適化されています。
Protégé-OWLAPI のメインページには、それが提供するクラスのいくつかの素晴らしい図もあります。これらの 完全なもの は、両方のRDF(S)および OWLエンティティのクラスがあることを示しています。
Protégé-OWL (APIではなくツール)は、Protégé-OWLAPIの上に構築されたグラフィカルなオントロジーエディターです。あなたはそれのための 開発 プラグインをすることができます、それはあなたの場合の最良の選択肢かもしれません。