2017-03-03 3 views
1

Iは、2つの主要なクラス(コード及び被写体)とオントロジと一つのオブジェクトプロパティ(サブジェクトコードを取得)を有する:門徒で視覚化推論エクスポート推論公理異なる理由

  • コード(クラス)が含まをすべての利用可能なコード(インスタンス)
  • コードの(クラス)サブクラスは、これらのコード(インスタンス)を分類します。手動で指定
  • 件名(クラス)は、すべての利用可能な対象(インスタンス)
  • 各被験者(インスタンス)
  • サブジェクトの(クラス)のサブクラスは、対象のセットを定義(特性を得る)は、いくつかのコード(インスタンス)をア​​サートした(インスタンスを含みます)関連するコード(例)とコードコードカテゴリ忠誠に従って
  • のReasonerは、特定グループの対象のインスタンス(被験体のサブクラス)

私は門徒内推論を開始し、推測されたインスタンスのアサーションを推測しようとしています深淵にアサートされるインスタンスが依然として制約を満たしているサブクラス(サブタイプFigureを参照)。しかし、推論された公理を別々のオントロジーにエクスポートすると、すべてのサブジェクト・クラスに、そのインスタンスとその子孫のすべてのインスタンスが含まれます(JAVA OWL APIを使用して明らかに同じ動作が観察されます)。

私の質問は:なぜ結果が異なるのですか?私は両方のケースの論理を理解していますが、なぜそれらが異なるのか分かりません。推論をProtegeに表示されるようにエクスポートする方法はありますか?また、直接的な方法がない場合は、Hermit(または他の推理者)をOWL APIから強制的に強制して、まったく同じ「黄色い保護者」の結果を表示できますか?これまでのところ、推論をそのままエクスポートし、SPARQLを介して相違点を求めるための回避策は1つしか見つかりませんでした。

私はProtege 5.0.0、Reasoner Hermit 1.3.8、およびOWL API 5.0.5を使用しています(Factor ++、Pellet、および異なるOWL APIとProtegeバージョン:4.x)

私は非常にすべてのコメントを喜んで、簡単な説明も私に多くの助けになるでしょう。

答えて

0

エクスポートされた公理は、使用される推論公理生成器のセットに依存します - Protegeは、選択した公理とは異なるセットを使用している可能性があります。

ジェネレータのセットはパネルで設定できます。その初期化は次のようになります。私は、デフォルトで選択されたものを推測するつもりだ

addCheckBox(new InferredSubClassAxiomGenerator(), true, false); 
    addCheckBox(new InferredEquivalentClassAxiomGenerator(), true, false); 
    addCheckBox(new InferredSubObjectPropertyAxiomGenerator(), true, false); 
    addCheckBox(new InferredSubDataPropertyAxiomGenerator(), true, false); 
    addCheckBox(new InferredEquivalentObjectPropertyAxiomGenerator(), true, false); 
    addCheckBox(new InferredEquivalentDataPropertiesAxiomGenerator(), true, false); 
    addCheckBox(new InferredObjectPropertyCharacteristicAxiomGenerator(), false, false); 
    addCheckBox(new InferredDataPropertyCharacteristicAxiomGenerator(), false, false); 
    addCheckBox(new InferredInverseObjectPropertiesAxiomGenerator(), false, false); 
    addCheckBox(new InferredClassAssertionAxiomGenerator(), false, false); 
    addCheckBox(new InferredPropertyAssertionGenerator(), false, true); 
    addCheckBox(new InferredDisjointClassesAxiomGenerator(), false, true); 

真の付いたものです。

+0

@Ignazioのお返事ありがとうございました。しかし、実際には、私の問題は解決しません。私は(ProtegeとOWL APIの)多くの構成を試しましたが、Protegeが「ライブ」推論を視覚化したのと同じ状態には至っていません。さらに、公理のためのジェネレータのセットをセットアップすることができるので、Protege(強調表示、黄色)に推論が表示されるように設定することもできます。 Protegeにインスタンスを表示して生成させても、それらは(推論されたインスタンスの場合)まだ異なります。 – vpapez

+0

私が見つけたもの以外にも、プロテジェに推論があるかもしれません。推測されていないビューにも当てはまります。しかし、私はそのようなエクストラを指摘するのに十分なほど親しみにくいです。 – Ignazio

+0

私は他の[解説]で解決策を見つけました(http://stackoverflow.com/questions/28072721/getting-all-individuals-of-a-specific-class-using-owlapi-and-jfact-reasoner/28083605# 28083605)です。 Protegeの強調された推論はおそらく 'reasoner.getInstances(c、true);'(サブクラスのインスタンスはスキップされます)の出力です。しかし、推論されたオントロジーがInferredOntologyGenerator(IOG)オブジェクトによって生成されるとき、このようなオプションは存在せず、従ってインスタンスはスキップされない。あなたが 'reasoner.getInstances(c、false);'として動作するようにIOGを設定する方法を知っていますか? – vpapez