0

我有包含一些公理的 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 文件中生成这些可读字符串?

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

4

1 回答 1

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()。

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

于 2016-07-05T13:23:16.387 回答