2

新しいオントロジーを作成しようとしていますが、いくつかのアクションの後でそれを保存します。うまく作成されていて、クラスなどの処理に問題はありませんが、ローカルファイルに保存しようとするとエラーが発生します。私のコードは次のとおりです。

//create a new ontology
SOURCE = "http://www.w3.org/2002/07/owl#";
NS = SOURCE + "#";
ontology = ModelFactory.createOntologyModel();
ontology.read( SOURCE, "RDF/XML" );
///////some actions
//save the ontology
try {
        File file= new File("Log.owl");
        ontology.write(new FileOutputStream(file));

    } 
    catch (IOException e) {
        e.printStackTrace();
    }

そして、エラーは次のとおりです。

Exception in thread "main" com.hp.hpl.jena.shared.BadURIException: Only well-formed absolute URIrefs can be included in RDF/XML output: <d> Code: 57/REQUIRED_COMPONENT_MISSING in SCHEME: A component that is required by the scheme is missing.
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.checkURI(BaseXMLWriter.java:829)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.xmlnsDecl(BaseXMLWriter.java:348)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFHeader(Basic.java:56)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeBody(Basic.java:39)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.writeXMLBody(BaseXMLWriter.java:500)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:472)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:458)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.write(ModelCom.java:271)
at com.hp.hpl.jena.ontology.impl.OntModelImpl.write(OntModelImpl.java:2552)

「http://www.w3.org/2002/07/owl#」のフォーマットがTURTLEであることは知っていますが、オントロジーをRDF / XMLにしたいので、代わりに何を書くべきかわかりません。そのリンク。私は別のリンクを試しましたが、毎回別のエラーが発生しました。SOURCEは実際のリンクである必要がありますか?

返信をお待ちしております。

4

3 に答える 3

2

最後に、私はなんとか解決策を見つけることができました!そして、思ったより簡単でした!私の問題は、クラスの作成にありました。私のコードは:

ontology.createClass(word);

私は書かなければなりませんでした:

ontology.createClass(NS+word);

朝飯前!

于 2012-09-22T10:47:11.047 に答える
1

Turtleとして読み取ってみてください-出力はRDF/XMLになります(ただし、より適切なRDF / XML-ABBREVを使用する必要があります。内部的には、読み取りのような具体的な構文ではなく、トリプルとして保持されます。

于 2012-09-13T12:44:21.617 に答える
0

"TURTLE"ではなく、フォーマットを使用してオントロジーを読み取る必要があります"RDF/XML"。書き込み時に別の形式を選択できます。メソッドのさまざまなバージョンについては、JenaModeljavadocwrite()を参照してください。lang出力形式( )を指定できるものを選択"RDF/XML-ABBREV"し、AndySが言うように使用します。

例外は、"d"完全な絶対URIのみが許可されている場所(など)で単純な文字列(明らかに)を使用したためです"http://example.com/mydata#d"。おそらくへの呼び出しでcreateResource()

于 2012-09-13T13:27:38.583 に答える