2016-10-16 7 views
1

Protegeで私のオントロジーモデルを実装しました。私はあるサブクラスを持っているクラスSensorを持っています。サブクラスRefrigeratorRefrigerator-144が有効化されている場合は、有効化時間を保存します。私はこのためにデータプロパティhasTimeを持っています。なぜなら、私はNULLにしたいという起動時間を知らないからです。しかし、この後にReasonerを動かすことができないので、Protegeは受け入れられないようです。ProtegeのNULLリテラル

:Refrigerator-144 a owl:NamedIndividual , :Refrigerator ; 
:hasTime ""^^xsd:dateTime . 
+0

「推論を実行できません」という意味は何ですか?あなたは推理家をどのように動かそうとしますか?そして、どの推論家? – AKSW

+0

私がFaCT ++とHermiTを使用したのは、推論をクリックするとNULLリテラルが実行されても実行されません。私はProtege 5をMacに持っています – Ali

答えて

2

OWLにはNULL値がありません。プロパティの欠損値は、そのプロパティのアサーションがその個人に存在しないことを意味します。 ""の値を持つタイプxsd:dateTimeのリテラルを作成すると、解析できないアサーションが発生し、Protegeは入力を中止する必要があります。

無効なアサーションを作成してはならないため、推論は影響を受けません。

しかし、それを表示するトリプルがオントロジーに追加された場合、それを無効なオントロジーとして拒否するのは正当な理由になります。空の文字列は、xsd:dateTimeの値スペースに属しません。

+0

OWL APIが使用されているという理由で、Protegeがリテラルを拒否しないのはなぜかと思います。 OWL APIは各OWLLiteral w.r.tを解析しますか?データ型の字句空間に? – AKSW

+0

いいえ、データ型固有の表現を使用してメモリを節約するために、整数、倍精度などのリテラル形式を解析するだけです。無効なリテラルを作成することができます(その能力なしでは、合理的な適合性テストのいくつかは実行可能ではありませんが、機能よりも問題を探しているソリューションのように感じます) – Ignazio

+0

はい、私の観点から見ると、エラーです。ご存じのように、研究の目標の1つはデータの品質を向上させることです。したがって、OWL APIのような低レベルのAPIには、できるだけ多くのエラーを避けることが期待されます。これらの合理的な適合性テストのためにいくつかの別個の実装を使用するほうが良いのではないでしょうか? – AKSW

関連する問題