5

の次のインスタンスを考えてみましょうSomeClass:

 instances:some_thing1
                a semapi:SomeClass ;
                semapi:hasChainTo (
                      [ ... ] [ ... ] [ ... ]
                ) .

すべてのインスタンス ( some_thing2some_thing3など) が、空のノードの同じリストをhasChainTo指すようにする必要があります (そのコピーが 1 つしかないため)。チェーンが非常に深くなり、この構文は各チェーン ( 、など)を書き出すのに非常に流動的であるため、空白ノード構文のリストを維持する必要があります。SomeClass2SomeClass3

基本クラスとそこから subClassOf を単純に作成すると、hasChainToプロパティは継承されますが、それが指しているオブジェクトは継承されません。これは直感的には理にかなっていますが、他の動作が必要です。

これはどのように達成できますか?

4

2 に答える 2

2

あなたはおそらく、OWL ではなく RDF(S) で作業していますが、OWL ベースのツールを使用する能力があり、この質問を見つけて OWL ベースのツールを使用できる人のために、ここに OWL-ベースの答え。

クラスのすべてのインスタンス (そのサブクラスのインスタンスを含む) に共通のプロパティ値を持たせたい場合は、個別の値の制限を使用できます。マンチェスター構文では、 all のインスタンスは公理によってプロパティSomeClassの値を持つと言えます。sharedIndividualhasValue

SomeClass SubClassOf hasValue value sharedIndividual

次に、 のすべてのインスタンスはSomeClasstypeを持ちますhasValue value sharedIndividual。これは、インスタンスがプロパティsharedIndividualの値として持つことを意味しhasValueます。

SomeClassこれは、1 つのクラスと 2 つのサブクラスSomeSubClassおよびを持つオントロジーの N3 シリアル化ですAnotherSubClass。3 つのクラスのそれぞれに、宣言された個体があります。型hasValue value sharedIndividualは のスーパークラスですSomeClass

@prefix :        <http://www.example.com/valueClassExample#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

<http://www.example.com/valueClassExample>
      a       owl:Ontology .

:hasValue
      a       owl:ObjectProperty .

:sharedValue
      a       owl:Thing , owl:NamedIndividual .

:SomeClass
      a       owl:Class ;
      rdfs:subClassOf
              [ a       owl:Restriction ;
                owl:hasValue :sharedValue ;
                owl:onProperty :hasValue
              ] .

:SomeSubClass
      a       owl:Class ;
      rdfs:subClassOf :SomeClass .

:AnotherSubClass
      a       owl:Class ;
      rdfs:subClassOf :SomeClass .

:SomeClassInstance
      a       :SomeClass , owl:NamedIndividual .

:SomeSubClassInstance
      a       owl:NamedIndividual , :SomeSubClass .

:AnotherSubClassInstance
      a       owl:NamedIndividual , :AnotherSubClass .

このオントロジーを Protégé にロードし、推論のために Pellet を添付すると、どの個体がプロパティsharedValueの値として持っているかを尋ねると、すべての個体が表示されます。hasValue

<code>hasValue 値 sharedProperty</code> DL クエリの結果

于 2013-06-27T11:41:25.060 に答える