あなたはおそらく、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
