10月12日にSWフレームワークであるJenaのバージョン2.3が公開され、SPARQL実装であるARQも1.0にバージョンアップした。それに伴い、筆者の開発環境でも新しいJARファイルに入れ替えてみたのだが、どうやらAPIがいくつか変更されたらしく、既存のコードが動かなくなってしまうトラブルに見舞われた。そこで今回は、使用頻度が高いと思われるSPARQL XML Result Formatでのクエリ結果の出力方法について、若干のメモを書き残しておきたい。
Query query = QueryFactory.create(qStr); // クエリ文字列をセット QueryExecution qexec = QueryExecutionFactory.create(query, model); // modelはあらかじめ作っておく ResultSet results = qexec.execSelect(); OutputFormatter oFo = new XMLOutput(); ByteArrayOutputStream out = new ByteArrayOutputStream(); // 出力先 oFo.format(out, results);
上記のコードのうち強調した箇所が最近の更新で変更された部分になる。以前はResultSetFormatterを使用していたが、その代わりにXMLOutputをつかうことになる。なお、公開されているJavadocは最新のコードに追従できていないため、そのほかの出力方法は自力で探す必要がある。com.hp.hpl.jena.query.resultset周辺を探すとよいだろう。
ちなみに、ARQ1.0の出力するSPARQL XML Result Formatは最新の草案に従っているため、以前のように自前のXSLで変換する必要はなくなった。
http://yudai.arielworks.com/memo/2005/10/19/235050.trackback
末尾に「0 + 5」の計算結果を繋げて下さい。例えば計算結果が「17」の場合、「235050.trackback17」です。これは機械的なトラックバックスパムを防止するための措置です。