2016-07-05 5 views
0

I Eule Datei enthält einige Axiome haben:Wie Protege zeigt OWL Axiome in lesbarem Format

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

Für über zwei Axiome Protege lesbaren String zeigt wie:

Gender value "M" 
Address min 1 xsd:string 

Die Frage ist, wie Protege diese erzeugt lesbare Strings aus der OWL-Datei?

Auch wenn ich neue Axiom aus diesen Zeichenfolgen erstellen möchte, wie das geht? (Konvertieren von Axiom in lesbare Zeichenfolge und anschließend Konvertieren von lesbarer Zeichenfolge in Axiom zurück)

Antwort

3

Das lesbare Format, das Sie anzeigen, ist die Manchester OWL-Syntax.

Zur Ausgabe einer Ontologie in diesem Format können Sie Eule api Code verwenden:

OWLOntology ontology = ...// load or create the ontology 
OutputStream out = ... // any output stream will do 
ontology.getOWLOntologyManager().saveOntology(ontology, new ManchesterSyntaxDocumentFormat(), out); 
out.close(); 

eine vollständige Ontologie in Manchester Syntax Format parsen geschieht wie jede andere Ontologie: ontologyManager.loadOntologyFromOntologyDocument() mit einem Eingang Datei.

Das Parsen einzelner Axiome ist möglich, aber viel schwieriger, da das Format auf Präfixe basiert, die einmal für eine ganze Ontologie gesetzt wurden; Daher ist viel Setup-Code erforderlich. Ich würde das nicht als Startprojekt empfehlen.

+1

Der obige Code funktioniert gut für die gesamte Ontologie. Aber gibt es eine Möglichkeit, mit jedem Axiom getrennt umzugehen? Wie konvertiert man die lesbare Zeichenfolge in Axiom, damit ich sie in OWL-Datei aktualisieren kann? – SuhasD

+2

'ManchesterOWLSyntaxObjectRenderer' und' ManchesterOWLSyntaxEditorParser' sind die in diesem Fall zu verwendenden Klassen. – AKSW

+0

Wahr. Der Parser wird sich jedoch nicht mit einzelnen Axiomen beschäftigen, ohne viel Setup, wie ich bereits erwähnt habe. Es ist nicht für unerfahrene Benutzer gedacht, um ihre Anwendungen einfach zu benutzen und zu benutzen. – Ignazio

Verwandte Themen