Ich bin neu in Onotlogy und Java. Ich lerne es jetzt und habe ein gewisses theoretisches Wissen. Ich benutze "Apache-jena-3.1.0" in Eclipse und Protege-Editor 5.0.0 Beta 23.Kann Protege Ontologie in Jena nicht lesen
Zunächst einmal habe ich eine einfache Ontologie in Jena erstellt. Etwas wie das:
public static void main(String[] args) {
OntModel m = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
...
OntClass gen1 = m.createClass(st + "Generation_1");
OntClass gen2 = m.createClass(st + "Generation_2");
...
ObjectProperty hasParent = m.createObjectProperty(st + "hasParent");
...
m.write(System.out);
try {
m.write(new FileWriter("C:/java/family1_RDF.owl"), "RDF/XML");
m.write(new FileWriter ("C:/java/family2_N3.owl"), "N3");
} catch (IOException e) {
e.printStackTrace();
}
Es funktioniert gut. Ich kann gespeicherte Ontologie in meiner Anwendung lesen und im Protege-Editor öffnen.
Dann habe ich in Protege einfache Ontologie erstellt. Gespeichert in RDF/XML-Syntax. Ich versuchte, es in meiner Anwendung durch den Code zu öffnen:
OntModel base = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF);
try {
base.read(new FileReader ("C:/java/asutp_class.owl"), "OWL/XML");
} catch (IOException e) {
e.printStackTrace();
}
base.write(System.out);
Es funktionierte nicht. Eclipse hat mir eine Menge Fehler geschickt:
Ausnahme im Thread "main" org.apache.jena.riot.RiotException: [line: 271, col: 120] {E210} Kodierungsfehler mit nicht-ASCII-Zeichen. bei org.apache.jena.riot.system.ErrorHandlerFactory $ ErrorHandlerStd.error (ErrorHandlerFactory.java:128) bei org.apache.jena.riot.lang.LangRDFXML $ ErrorHandlerBridge.error (LangRDFXML.java:246) bei org.apache.jena.rdfxml.xmlinput.impl.ARPSaxErrorHandler.error (ARPSaxErrorHandler.java:37) bei org.apache.jena.rdfxml.xmlinput.impl.XMLHandler.warning (XMLHandler.java:196) bei org. apache.jena.rdfxml.xmlinput.impl.XMLHandler.warning (XMLHandler.java:173) bei org.apache.jena.rdfxml.xmlinput.impl.XMLHandler.warning (XMLHandler.java:168) bei org.apache. jena.rdfxml.xmlinput.impl.ParserSupport.warning (ParserSupport.java:207) bei org.apache.jena.rdfxml.xmlinput.impl.ParserSupport.checkEncoding (ParserSupport.java:192) um org.apache.jena.rdfxml.xmlinput.impl.URIReference.resolve (URIReference.java:167) bei org.apache.jena.rdfxml.xmlinput.states.WantDescription.startElement (WantDescription.java:63) bei org. apache.jena.rdfxml.xmlinput.impl.XMLHandler.startElement (XMLHandler.java:111) bei org.apache.xerces.parsers.AbstractSAXParser.startElement (Unbekannte Quelle) bei org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement (Unknown Source) bei org.apache.xerces.impl.XMLNamespaceBinder.startElement (Unknown Source) bei org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement (Unknown Source) bei org.apache.xerces.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDispatcher.dispatch (Unbekannte Quelle) bei org.apache.xerces.impl.XMLDocumentFragmentS cannerImpl.scanDocument (Unbekannte Quelle) bei org.apache.xerces.parsers.DTDConfiguration.parse (Unbekannte Quelle) bei org.apache.xerces.parsers.DTDConfiguration.parse (Unbekannte Quelle) bei org.apache.xerces.parsers .XMLParser.parse (Unbekannte Quelle) bei org.apache.xerces.parsers.AbstractSAXParser.parse (Unbekannte Quelle) bei org.apache.jena.rdfxml.xmlinput.impl.RDFXMLParser.parse (RDFXMLParser.java:150) at org.apache.jena.rdfxml.xmlinput.impl.RDFXMLParser.parse (RDFXMLParser.java:134) bei org.apache.jena.rdfxml.xmlinput.ARP.load (ARP.java:99) bei org.apache .jena.riot.lang.LangRDFXML.parse (LangRDFXML.java:140) bei org.apache.jena.riot.RDFParserRegistry $ ReaderRIOTLang.read (RDFParserRegistry.java:187) bei org.apache.jena.riot.RDFDataMgr.process (RDFDataMgr.java:873) bei org.apache.jena.riot.RDFDataMgr.read (RDFDataMgr.java:288) bei org.apache.jena.riot. RDFDataMgr.read (RDFDataMgr.java:273) bei org.apache.jena.riot.adapters.RDFReaderRIOT.read (RDFReaderRIOT.java: 62) bei org.apache.jena.rfd.model.impl.ModelCom.read (ModelCom.java:245) bei org.apache.jena.ontology.impl.OntModelImpl.read (OntModelImpl.java:2117) bei asutp_lassification.main (asutp_lassification.java:14)
Was das Problem ist? Wie kann ich die Protege-Ontologie in meiner Jena-Anwendung öffnen?
Vielen Dank!
Ich habe verschiedene "OntModelSpec" ausprobiert –
Ich bezweifle, dass Jena Dinge im OWL/XML-Format lesen kann. Sie müssen die Ontologie von Protege in einem RDF-Serialisierungsformat wie Turtle oder RDF/XML speichern. Die Spur * sieht jedoch so aus, als würde sie versuchen, das XML zu lesen. Die Nachricht sagt "Kodierungsfehler mit nicht-ASCII-Zeichen." Hast du nicht-ASCII-Zeichen drin? –
Wie ich schrieb - ich habe versucht, in einem RDF/XML-Format zu speichern - das gleiche Problem. Nach diesen Charakteren gesucht, aber nicht gefunden. Habe es hier geteilt: https://drive.google.com/open?id=0B8XNVi6pdRrgLWhHT3p2aEdEaDQ –