私はonotlogyとJavaを初めて使いました。私は今それを学び、理論的知識を持っています。 Eclipseで "apache-jena-3.1.0"を使用し、Protegeエディタ5.0.0ベータ23を使用します。JenaのProtegeオントロジーを読むことができません
まず、Jenaで簡単なオントロジーを作成しました。次のようなものがあります。
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();
}
これはうまくいきます。私は自分のアプリケーションで保存したオントロジーを読み込み、Protegeエディタで開くことができます。
次に、私はProtegeで単純なオントロジを作成しました。 RDF/XML構文で保存しました。 私はコードで自分のアプリケーションで開くしようとした:それは動作しませんでした
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);
。 Eclipseは私に多くの間違いを送りました:
スレッド "main"の例外org.apache.jena.riot.RiotException:[行:271、col:120] {E210}非ASCII文字のエンコーディングエラーです。 at org.apache.jena.riot.system.ErrorHandlerFactory $ ErrorHandlerStd.error(ErrorHandlerFactory.java:128) at org.apache.jena.riot.lang.LangRDFXML $ ErrorHandlerBridge.error(LangRDFXML.java:246) at org.apache.jena.rdfxml.xmlinput.impl.ARPSaxErrorHandler.error(ARPSaxErrorHandler.java:37) (org.apache.jena.rdfxml.xmlinput.impl.XMLHandler.warning(XMLHandler.java:196) at org) apache.jena.rdfxml.xmlinput.impl.XMLHandler.warning(XMLHandler.java:173) at org.apache.jena.rdfxml.xmlinput.impl.XMLHandler.warning(XMLHandler.java:168) at org.apache。 jena.rdfxml.xmlinput.impl.ParserSupport.warning(ParserSupport.java:207) at org.apache.jena.rdfxml.xmlinput.impl.ParserSupport.checkEncoding(ParserSupport.java:192) at org.apache.jena.rdfxml.xmlinput.impl.URIReference.resolve(URIReference.java:167) at org.apache.jena.rdfxml.xmlinput.states.WantDescription.startElement(WantDescription.java:63) at org。 apache.jena.rdfxml.xmlinput.impl.XMLHandler.startElement(XMLHandler.java:111) at org.apache.xerces.parsers.AbstractSAXParser.startElement(不明なソース) at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement (不明なソース)org.apache.xerces.impl.XMLNamespaceBinder.startElementで (不明なソース)org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElementで (不明なソース) org.apache.xerces.impl.XMLDocumentFragmentScannerImpl $でFragmentContentDispatcher.dispatch(不明なソース) at org.apache.xerces.impl.XMLDocumentFragmentS cannerImpl.scanDocument(不明なソース) at org.apache.xerces.parsers.DTDConfiguration.parse(不明なソース) at org.apache.xerces.parsers.DTDConfiguration.parse(不明なソース) at org.apache.xerces.parsers .XMLParser.parse(不明なソース) at org.apache.xerces.parsers.AbstractSAXParser.parse(不明なソース) at org.apache.jena.rdfxml.xmlinput.impl.RDFXMLParser.parse(RDFXMLParser.java:150) org.apache.jena.rdfxml.xmlinput.impl.RDFXMLParser.parse(RDFXMLParser.java:134) at org.apache.jena.rdfxml.xmlinput.ARP.load(ARP.java:99) at org.apache (RDFParserRegistry.java:187) at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:873) at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:288) at org.apache.jena.riot。 RDFDataMgr.read(RDFDataMgr.java:273) at org.apache.jena.riot.adapters.RDFReaderRIOT.read(RDFReaderRIOT。java:62) at org.apache.jena.rdf.model.impl.ModelCom.read(ModelCom.java:245) at org.apache.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:2117) asutp_lassification.main(asutp_lassification.java:14)
問題は何ですか?私のJenaアプリケーションでProtegeのオントロジーを開くにはどうすればよいですか?
ありがとうございます!
私は別の "OntModelSpec"を試しました –
私はJenaがOWL/XML形式で物を読むことができるのではないかと疑います。 Protegeのオントロジーは、TurtleやRDF/XMLのようなRDF直列化フォーマットで保存する必要があります。つまり、XMLを読み込もうとしているように見えます。メッセージに「ASCII以外の文字によるエンコーディングエラー」と表示されます。そこにASCII以外の文字がありますか? –
私が書いたように、私はRDF/XML形式で保存しようとしました - 同じ問題です。その文字を探したが見つからなかった。ここで共有しました:https://drive.google.com/open?id=0B8XNVi6pdRrgLWhHT3p2aEdEaQQ –