あなたはおそらく、OWL ではなく RDF(S) で作業していますが、OWL ベースのツールを使用する能力があり、この質問を見つけて OWL ベースのツールを使用できる人のために、ここに OWL-ベースの答え。
クラスのすべてのインスタンス (そのサブクラスのインスタンスを含む) に共通のプロパティ値を持たせたい場合は、個別の値の制限を使用できます。マンチェスター構文では、 all のインスタンスは公理によってプロパティSomeClass
の値を持つと言えます。sharedIndividual
hasValue
SomeClass SubClassOf hasValue value sharedIndividual
次に、 のすべてのインスタンスはSomeClass
typeを持ちます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