protege 如何以可读格式显示 OWL 公理
How protege shows OWL axioms in readable format
我有 owl 包含一些公理的文件 :
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="namespace#Gender"/>
<owl:hasValue>M</owl:hasValue>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="namespace#Address"/>
<owl:minQualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minQualifiedCardinality>
<owl:onDataRange rdf:resource="&xsd;string"/>
</owl:Restriction>
</rdfs:subClassOf>
对于以上两个公理,protege 将可读字符串显示为:
Gender value "M"
Address min 1 xsd:string
问题是 protege 如何从 OWL 文件生成这些可读字符串?
此外,如果我想从这些字符串创建新的公理,该怎么做? (将公理转换为可读字符串,然后将可读字符串转换回公理)
您显示的可读格式是曼彻斯特 OWL 语法。
为了以这种格式输出一个ontology,你可以使用owl api代码:
OWLOntology ontology = ...// load or create the ontology
OutputStream out = ... // any output stream will do
ontology.getOWLOntologyManager().saveOntology(ontology, new ManchesterSyntaxDocumentFormat(), out);
out.close();
解析曼彻斯特语法格式的完整 ontology 与任何其他 ontology: ontologyManager.loadOntologyFromOntologyDocument() 输入文件一样。
解析单个公理是可能的,但要困难得多,因为该格式依赖于为一个整体设置一次的前缀ontology;所以需要很多设置代码。我不建议将其作为入门项目。
我有 owl 包含一些公理的文件 :
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="namespace#Gender"/>
<owl:hasValue>M</owl:hasValue>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="namespace#Address"/>
<owl:minQualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minQualifiedCardinality>
<owl:onDataRange rdf:resource="&xsd;string"/>
</owl:Restriction>
</rdfs:subClassOf>
对于以上两个公理,protege 将可读字符串显示为:
Gender value "M"
Address min 1 xsd:string
问题是 protege 如何从 OWL 文件生成这些可读字符串?
此外,如果我想从这些字符串创建新的公理,该怎么做? (将公理转换为可读字符串,然后将可读字符串转换回公理)
您显示的可读格式是曼彻斯特 OWL 语法。
为了以这种格式输出一个ontology,你可以使用owl api代码:
OWLOntology ontology = ...// load or create the ontology
OutputStream out = ... // any output stream will do
ontology.getOWLOntologyManager().saveOntology(ontology, new ManchesterSyntaxDocumentFormat(), out);
out.close();
解析曼彻斯特语法格式的完整 ontology 与任何其他 ontology: ontologyManager.loadOntologyFromOntologyDocument() 输入文件一样。
解析单个公理是可能的,但要困难得多,因为该格式依赖于为一个整体设置一次的前缀ontology;所以需要很多设置代码。我不建议将其作为入门项目。