1

フクロウのオントロジーが相互に (循環的に) 依存することは安全ですか? 私がこれを尋ねるのは、クロスドメインのデータと推論に私が見ている可能性があるからです。主流の実行可能プログラミング言語に適用される可能性のある技術的な制限の一部は、必ずしもここに適用する必要はないように思えます。

たとえば、「スタッフ」と「クリーチャー」という 2 つのオントロジーがあります。「Stuff」では、継承者が空間内の位置を持っていることを示すために、PhysicalObject クラスを定義します。「Creature」では、社会の一員を表す Person クラスを定義します。

<!-- In 'Stuff' -->
<owl:Class rdf:ID="Stuff#PhysicalObject"/>

<!-- In 'Creature' -->
<owl:Class rdf:ID="Creature#Person"/>

個々の Person インスタンスは空間内の位置を占有するため、それを subClassOf PhysicalObject として宣言するのが適切と思われます。これは、'Creature' オントロジーに 'Stuff' をインポートするだけで解決できます。ただし、「スタッフ」には、その範囲内の人物を参照するプロパティも必要です: isHeldBy。

<!-- In 'Creature' -->
<owl:Ontology rdf:about="">
  <owl:imports rdf:resource="Stuff" />
</owl:Ontology>
<owl:Class rdf:ID="Creature#Person"
  <rdfs:subClassOf rdf:resource="Stuff#PhysicalObject" />
</owl:Class>

<!-- In 'Stuff' -->
<owl:Ontology rdf:about="">
  <owl:imports rdf:resource="Creature" />
</owl:Ontology>
<owl:ObjectProperty rdf:ID="isHeldBy"> 
  <rdfs:domain rdf:resource="Stuff#PhysicalObject"/>
  <rdfs:range rdf:resource="Creature#Person"/> 
</owl:ObjectProperty>

これは安全なことですか?期待するのは合理的なことですか?これは現在の実装でサポートされていますか? いずれかのインポートが利用できない場合、オントロジーの公理の適切な低下が利用可能であると期待する必要がありますか?

これには階層的な解決策があることは承知していますが、それでもこれは議論に値する点だと思います。

4

1 に答える 1

2

OWL 2仕様のセクション3.4インポートは、インポートのセマンティクスを説明しており、循環インポートを禁止していません。むしろ、セマンティクスは imports 関係のクロージャーの観点から定義されています。

審美的には、 StuffCreatureの共通要素を上位のオントロジーにリファクタリングし、 StuffCreatureの両方にそれをインポートさせることが望ましいかもしれませんが、それは技術的な要件ではありません。そうしないと、2 つのオントロジーがあっても、1 つしか持っていないかのようになります。なぜなら、それらのいずれかをインポートするものは、他のものもインポートする必要があり、その逆も成り立つからです。

于 2013-09-03T21:06:57.503 に答える