我想在“类上”做出这个属性断言,这样推理器可以推断出它的所有成员都拥有的属性,因此不需要为每个成员明确断言。(获得类似于基于类的面向对象的属性继承)
如果你想说某个类 C 的每个成员都有单独的 v 作为属性 p 的值,你可以这样写:
C subClassOf (p值v)
现在,关于您的附加评论:
我只在这里找到了同样的问题,但唯一的答案提出了一个不合适的解决方案:使该类成为属性限制类的子类。这导致推理器推断该类等同于 Nothing 类(因为没有具有此类属性的命名个体),因此由于将个体分配给它而产生了不一致。
我刚刚建议的内容与该答案中描述的内容相同。说“C subClassOf (p value v)”并没有什么矛盾,即使没有声明的 C 类型的命名个体。如果您在使用这种类型的解决方案时遇到一些特殊问题,您可能需要详细说明(并且可能会问一个额外的问题);公理C subClassOf (p value v)包含 SWRL 规则C(?c) → p(?c,v)。(SWRL 规则不太通用,因为它只适用于命名的个人,而公理适用于所有个人。)
例子
图 1:C 是 (p value v)的子类。

图 2:启用推理器后,类型 C 的单个 c 被推断为具有 v 作为属性 p 的值。

本体(TTL 和 RDF/XML)
@prefix : <http://stackoverflow.com/q/29075078/1281433#> .
@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#> .
:c a owl:NamedIndividual , :C .
:C a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:hasValue :v ;
owl:onProperty :p
] .
:p a owl:ObjectProperty .
: a owl:Ontology .
:v a owl:Thing , owl:NamedIndividual .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns="http://stackoverflow.com/q/29075078/1281433#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://stackoverflow.com/q/29075078/1281433#"/>
<owl:Class rdf:about="http://stackoverflow.com/q/29075078/1281433#C">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="http://stackoverflow.com/q/29075078/1281433#p"/>
</owl:onProperty>
<owl:hasValue>
<owl:Thing rdf:about="http://stackoverflow.com/q/29075078/1281433#v">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#NamedIndividual"/>
</owl:Thing>
</owl:hasValue>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:NamedIndividual rdf:about="http://stackoverflow.com/q/29075078/1281433#c">
<rdf:type rdf:resource="http://stackoverflow.com/q/29075078/1281433#C"/>
</owl:NamedIndividual>
</rdf:RDF>