例如,我需要描述1到4岁之间的狗。如何限制属性的值范围?属性数量有minCardinality和maxCardinality。但不适合我的例子。
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
作为一个具体的例子,如何将上面的xsd翻译成owl?
答案 0 :(得分:1)
您可以直接将合格的基数限制定义为本地类限制。例如,要定义变形虫的年龄范围为1到4,请使用以下命令:
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="http://example.org/things#age"/>
<owl:maxQualifiedCardinality rdf:datatype="xs:nonNegativeInteger">4</owl:maxQualifiedCardinality>
<owl:onDataRange rdf:resource="http://example.org/things#Amoeba"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="http://example.org/things#age"/>
<owl:minQualifiedCardinality rdf:datatype="xs:nonNegativeInteger">1</owl:minQualifiedCardinality>
<owl:onDataRange rdf:resource="http://example.org/things#Amoeba"/>
</owl:Restriction>
</rdfs:subClassOf>
这有点难以阅读。等效的Turtle序列化更容易阅读和管理(请注意三元组的直接表示.JSON-LD是RDF的另一个易于消费的文本序列化):
rdfs:subClassOf [
rdf:type owl:Restriction ;
owl:maxQualifiedCardinality "4"^^xs:nonNegativeInteger ;
owl:onDataRange ex:Amoeba ;
owl:onProperty ex:age ;
] ;
rdfs:subClassOf [
rdf:type owl:Restriction ;
owl:minQualifiedCardinality "1"^^xs:nonNegativeInteger ;
owl:onDataRange ex:Amoeba ;
owl:onProperty ex:age ;
] ;