protege如何以可读格式显示OWL公理

时间:2016-07-05 09:51:55

标签: owl ontology protege owl-api manchester-syntax

我的猫头鹰文件包含一些公理:

<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文件中生成这些可读字符串?

另外,如果我想从这些字符串创建新的公理怎么做? (将公理转换为可读字符串,然后将可读字符串转换为公理)

1 个答案:

答案 0 :(得分:3)

您显示的可读格式是曼彻斯特OWL语法。

要以此格式输出本体,您可以使用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();

解析曼彻斯特语法格式的完整本体,就像任何其他本体一样:带有输入文件的ontologyManager.loadOntologyFromOntologyDocument()。

解析单个公理是可能的,但更难,因为格式依赖于为整个本体设置一次的前缀;所以需要很多设置代码。我不建议将其作为入门项目。