0

Jenaフレームワークを使用したオントロジーから、オントロジーで定義されたものとまったく同じセマンティクスを取得するモデルをロードする方法を考えています。 オントロジーモデル、クラスなどで作業する可能性を提供するJeanオントロジーAPIについて知りました。

次に、次の例を示します。

<owl:Class rdf:ID="DigitalCamera">
  <rdf:type owl:ObjectProperty />
</owl:Class>

することが可能です:

Resource r = myModel.getResource( myNS + "DigitalCamera" );
OntClass cls = (OntClass) r.as( OntClass.class );

ただし、次のようにOntClassまたはResourceを通過せずに、DigitalCameraクラス/インスタンスを直接取得するために検索しています。

DigitalCamera camera = new DigitalCamera();

次に、そのカメラの特定のプロパティを検索するときに、そのカメラに直接アクセスして、DSLのようなデータのセマンティクスに焦点を合わせ続けることができます。イエナは、どんなオントロジーを表すこの種の専用の(生成された?)フレームワークを提案しますか?

ありがとう

4

1 に答える 1

0

あなたが求めていることを行うには概念的な問題があります。それは、RDFの強みはデータモデルが順応性があることです。これは、「誰でも何でも言うことができる」と表現されることもあります。つまり、アプリケーションの状態は、いつでもグラフに表示される内容によって完全に定義されます。リソースrが現在持っていると仮定するとrdf:type foaf:Person、そのグラフを変更することrは完全に可能であり、合法ですrdf:type skos:Concept。または、確かに、両方になります。したがって、ある種のORMを使用して、リソースを不変のJavaクラスとして表すか、不完全PersonまたはConcept古くなるリスクがあります。これが(部分的に)イエナがそうしない理由です。イエナの状態は完全にRDFグラフの内容に基づいています。

とはいえ、このリスクを受け入れる意思がある場合、またはアプリケーションでリソースURIからJavaオブジェクトクラスへのマッピングが大幅に変更される可能性がほとんどないかまったくないことがわかっている場合は、役立つJena拡張機能がいくつかあります。一例としてJenaBeanを検討することをお勧めします。

于 2011-02-14T10:48:32.647 に答える