0

私はいくつかの公理を含むフクロウファイルを持っています:

<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>

上記の 2 つの公理では、protege は読み取り可能な文字列を次のように表示します。

Gender value "M"
Address min 1 xsd:string

問題は、protege が OWL ファイルからこれらの読み取り可能な文字列をどのように生成するかです。

また、これらの文字列から新しい公理を作成したい場合、どうすればよいですか? (公理を読み取り可能な文字列に変換してから、読み取り可能な文字列を公理に戻す)

4

1 に答える 1

3

あなたが示す読み取り可能な形式は、Manchester 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 に答える