2

基本的に、Any23 distiller を使用して、RDFa が埋め込まれたファイル (xhtml+xml 出力オプションを使用して DBpedia Spotlight によって作成された実際のファイル) から RDF ステートメントを抽出します。Any23 RDFa distiller を使用すると、RDF ステートメントを抽出できます (Java-RDFa も使用してみましたが、プレフィックスしか抽出できませんでした!)。しかし、ステートメントを Jena モデルに渡して結果をコンソールに出力しようとしても、何も起こりません!

これは私が使用しているコードです:

File myFile = new File("T1");
Any23 runner= new Any23();

DocumentSource source = new FileDocumentSource(myFile); 
ByteArrayOutputStream outA = new ByteArrayOutputStream();
InputStream decodedInput=new ByteArrayInputStream(outA.toByteArray()); //convert the output stream to input so i can pass it to jena model
TripleHandler writer = new NTriplesWriter(outA);

try {
    runner.extract(source, writer);
} finally {
    writer.close();
}

String ttl = outA.toString("UTF-8");
System.out.println(ttl);
System.out.println();
System.out.println();

Model model = ModelFactory.createDefaultModel();
model.read(decodedInput, null, "N-TRIPLE");

model.write(System.out, "TURTLE"); // prints nothing!  

誰が私が間違ったことを教えてもらえますか? おそらく複数のこと!
RDF ステートメントのサブジェクトを any23 から (Jena をバイパスして) 直接抽出できる簡単な方法はありますか? 私はプログラミングの経験がまったくないので、助けていただければ幸いです。

4

1 に答える 1

3

あなたが呼んでいます

InputStream decodedInput=new ByteArrayInputStream(outA.toByteArray()) ;

any23 を呼び出してトリプルを挿入する前に。呼び出しの時点で、それは空です。

これを try-catch ブロックの後に移動します。

于 2013-02-28T19:40:45.523 に答える