2016-11-15 6 views
0

私はProtege 5.1で実際の問題を初めて解決するオントロジーを作成しています。オントロジー - どのように言うと、クラスのインスタンスは、 "何か"持っている必要がありますか?

私は、クラスのインスタンスに特定のタイプのプロパティを「必須」にする基本的な必要性に悩まされています。私はReasonerに不必要な不動産のような問題を強調したいと思います。

です。 「物理的製品」には「重量」が必要です。オントロジーでこの要件をどのように表現できますか?重量を持たない物理的商品にはフラグが立てられますか?

答えて

1

短い答えは、です。あなたはOWLでそれを行うことはできません。

OWLのオントロジーは、世界についての真実を表します。他にはありません。。オントロジーはスクリーンをフラッシュさせるものではなく、あなたが人であることを確認するために警察官に何を与えるべきかについての規制を課しておらず、存在することが具体的な価値を持たないため、オントロジーシステムを破壊しません。オントロジーは知識であり、規則ではない。私が実際に持っているリンゴがその重量の明白な価値を提供していないので、身体的な製品が体重を持たなければならないという事実として知っていれば、精神的な推論者が驚くべき理由はありません。

ただし、物理的な製品に重さがないことを証明できる証明書があれば、それを触れることができる物理的な製品であるかのように抽象的な概念を販売しようとしている人などです。矛盾があること。つまり、お互いに矛盾している真理があります。推論者は不一致を検出し、不一致の理由を説明することができます。しかし、彼らは、不一致の理由として体重の不足にフラグを立てることができないだろう。

具体的な問題があり、具体的な解決策が必要なので、これはおそらく満足できないでしょう。これに対処する1つの方法は、単に要件を実装することです。推論器を使用しても、重量の値を見つけることができない場合は、その重量を提供できないインスタンスにフラグを立てます。より精巧な解決策は、Pelletを使用して整合性制約を宣言することです。ペレットは、あなたが興味のある種​​類の完全性制約(例えば、必要な値)を宣言できるOWLの拡張を使用しています。必要なものを指定できる他の非標準の拡張機能やツールがあるかもしれませんが、これはすべてOWLとRDF(S)の範囲外です。

2

達成したいことは、通常SPARQLを使用して行われます。

"重要度"(NOT EXISTS {...}を使用)を持たないすべての "物理的な製品"を返すSPARQLクエリを記述することができます。次に、返された要素に「フラグを立てる」ことができます。 「フラグ」の意味は明確ではないことに注意してください。

これを行うには、SPINなどのSPARQLルールを使用するのがよい方法です。この非標準拡張では、SPARQLクエリをデータの制約として使用できます。それはTopbraid Composerでうまく統合されています...もし私が正しいなら、無料版でさえ。

0

既存の制限(あるもの)を使用する必要があります。記述ロジックでは、 = 3PhysicalProducts.requireWeight(3PhysicalProducts.requireWeight)

The sign 3 is the some restriction; 
U is logical OR; 
~ is the negation; 
と記述することができます。
関連する問題