2017-07-21 14 views
1

で働いていないようだ私は、次の文GraphDBのリポジトリにロードされた:Punning推論がgraphdb

@prefix foo: <http://fopo.com#> . 
@prefix bar: <http://dd.com#> . 

foo:Car a owl:Class . 

foo:Animal a owl:Class ; 
owl:disjointWith foo:Car . 

foo:isEndangered a owl:ObjectProperty ; 
rdf:domain foo:Animal ; 
rdf:range bar:SomeSpecies . 

foo:Ape a owl:Class ; 
foo:isEndangered bar:SomeSpecies . 

私は間違っていないよ場合は、OWL2は導入以来punning(すなわち、クラスの同じIRIを使用してメタモデル化のための個人について)、以下のステートメントを推論する必要があります。

foo:Ape a foo:Animal . 

しかし、それは起こりません。私は運がなければ別のリポジトリ設定も試みました。

このような推論を得る方法はありますか、何か間違っていますか?

+1

あなたはinferrenceについて正しいですが、あなたは「それは起こらない」とはどういう意味ですか?理論的に何かが敷地内にあるという事実は、何かが "起こらなければならない"ことを意味するものではありません。あなたは何をしたのか、何を期待しているのかをもっと説明できますか? –

+0

@AntoineZimmermann私は、KBの推論公理(graphdbは組み込みの推論器を持っています)を見ることを期待しましたが、そこにはありませんでした。 – floatingpurr

+3

'rdfs:domain'ではなく' rdfs:domain'です。 –

答えて

3

あなたはこの文を置き換える必要があります。これで

foo:isEndangered rdf:domain foo:Animal . 

を:

foo:isEndangered rdfs:domain foo:Animal . 

交換した後、foo:Ape a foo:Animalは一切関係ありません。

はSPARQLモードでは、そうでない場合は、アイコンをクリックし、>>アイコンで二>が点在していないことを確認してください。

私はRDFSとOWL-Maxのルールセットの下で動作しますが、他のものはチェックしていません。推論を付与しない@Ignazioが述べているよう


、OWL 2 DLのパンニングも、punningの目的は、むしろ反対です。 OWL 2 DL punningは、エンティティが矛盾している(すなわち、推論でいっぱい)または無効であると考えることなく、エンティティをクラスおよび個体に同時にすることを可能にする。

RDFSは クラス、プロパティ、および個人の互いに素なカテゴリにユニバースを分割しない:

OWLのパンニングも総RDF(S)freedomのほんの一部です。宇宙内のものは、クラスとして、またはプロパティとして、または状態として を個人として持ちながら、クラスとしてまたはプロパティとして、またはその両方として使用される にすることができます。したがって、 RDFSがなど他のクラスを含むクラス、 プロパティのクラス、クラスのプロパティ、

を許可実は、あなたが必要とする推論がrdfs2 RDFS伴意パターンによって付与されます。


以下のニーモニックテーブルを参考にしてください。これは、どの接頭辞のRDFSボキャブラリに記載されている用語を示しています。

+--------------------+----------------+ 
|  rdfs:  |  rdf:  | 
+--------------------+----------------+ 
|    Classes    | 
+--------------------+----------------+ 
| rdfs:Resource  | rdf:Property | 
| rdfs:Class   | rdf:langString | 
| rdfs:Literal  | rdf:HTML  | 
| rdfs:Datatype  | rdf:XMLLiteral | 
+--------------------+----------------+ 
|    Properties   | 
+--------------------+----------------+ 
| rdfs:range   | rdf:type  | 
| rdfs:domain  |    | 
| rdfs:subClassOf |    | 
| rdfs:subPropertyOf |    | 
| rdfs:label   |    | 
| rdfs:comment  |    | 
+--------------------+----------------+ 
|    Other Vocabulary  | 
+--------------------+----------------+ 
| rdfs:Container  | rdf:Bag  | 
| rdfs:member  | rdf:Seq  | 
| rdfs:seeAlso  | rdf:Alt  | 
| rdfs:isdDefinedBy | rdf:List  | 
|     | rdf:first  | 
|     | rdf:rest  | 
|     | rdf:nil  | 
|     | rdf:_1   | 
|     | rdf:Statement | 
|     | rdf:subject | 
|     | rdf:predicate | 
|     | rdf:object  | 
|     | rdf:value  | 
+--------------------+----------------+ 

P.S.あなたが必要とする文が推測されていない場合でも、これはnot a bug次のとおりです。たとえば

、RDF語彙はauthor プロパティは、クラス Personのインスタンスであるリソースを示すために使用されていることを主張することができますが、それがありませんアプリケーションが範囲情報を処理するかどうか、またはその範囲情報を処理する方法を指定する必要はありません。異なるアプリケーションは、異なる方法でこの情報を で使用します。たとえば、データチェックツール は、これを使用して一部のデータセットのエラーを発見するのに役立ちます。 インタラクティブエディタが適切な値を示唆し、推論の アプリケーションがインスタンス データの追加情報を推測することがあります。

:-)

+0

すばらしい答えスタニスラフ! :)言い換えれば、OWL2で罰金を使うと、リソースは厳密にTBoxでTBoxに分割されます。どんなIRIの二重の使用にもかかわらず。 OWL推論はいつものように機能します。 – floatingpurr