ROWLEX OntologyExtractor 行为正确(OwlGrinder 读取本体并生成程序集。OntologyExtractor 读取程序集并吐出本体)。根据OWL 规范,如果没有与 OWL 属性关联的基数限制,则假定其基数“零或更多”。如果您希望属性不是“数组属性”,那么您需要应用基数限制。一种简写方式是使 OWL 属性成为功能属性,其中基数为 0 或 1。
因此,您需要做的就是移除 [CardinalityResiction(1,100)] 装饰,然后您就拥有了想要的东西。
[编辑:回复评论]我复制了你的案例,删除了 CardinalityRestriction,并且 OntologyExtractor 产生了以下本体:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdfschema="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.test.com/MyOntology" />
<owl:Class rdf:about="http://www.test.com/MyOntology#Item" />
<owl:DatatypeProperty rdf:about="http://www.test.com/MyOntology#Name">
<rdfschema:domain rdf:resource="http://www.test.com/MyOntology#Item" />
<rdfschema:range rdf:resource="http://www.w3.org/2001/XMLSchema#string" />
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty" />
</owl:DatatypeProperty>
<owl:ObjectProperty rdf:about="http://www.test.com/MyOntology#MyArray">
<rdfschema:domain>
<owl:Class rdf:about="http://www.test.com/MyOntology#Container" />
</rdfschema:domain>
<rdfschema:range rdf:resource="http://www.test.com/MyOntology#Item" />
</owl:ObjectProperty>
</rdf:RDF>
此本体允许您创建 RDF 文件,其中您的容器对象具有通过 MyArray OWL 属性链接的零个或多个项目。