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;所以需要很多设置代码。我不建议将其作为入门项目。