私は、ユーザーが.rdf-Filesをアップロードし、その上でSPARQL-Queriesを実行できるアプリケーションを作成しています。現在、クエリの結果をフォーマットする方法に固執しています。例:ASK-Queryはブール値を出力し、SELECT-QueryはResultSetを返します。CONSTRUCTそしてDESCRIBE、新しいRDFグラフを返します。
指定されたクエリの結果をフォームで取得してビューに渡すにはどうすればよいですか?そこで、HTMLテーブルを印刷したいと思います。
私の問題をよりよく理解するために、この最小限のコード例を作成しました。
import java.io.InputStream;
import com.hp.hpl.jena.*;
public class playground {
    public static void main(String[] args) {
      InputStream in = FileManager.get().open("vc-db-1.rdf");
      Model model = ModelFactory.createDefaultModel();
      model.read(in, null);
      String queryStringSelect = "SELECT ?subject ?predicate ?object WHERE { ?subject ?predicate ?object }";
      String queryStringAsk = "ASK WHERE { ?subject ?predicate ?object }";
      String queryStringDescribe = "DESCRIBE * WHERE { ?subject ?predicate ?object }";
      String queryStringConstruct = "CONSTRUCT { ?subject ?predicate ?object } WHERE { ?subject ?predicate ?object }";
      QueryExecution qe = QueryExecutionFactory.create(queryStringDescribe,
        model);
      Query q = QueryFactory.create(queryStringDescribe);
      int queryType = q.getQueryType();
      switch (queryType) {
      case Query.QueryTypeAsk:
          boolean b = qe.execAsk(); // Result that has to be formatted
          ResultSetFormatter.outputAsTSV(System.out, b);
          break;
      case Query.QueryTypeConstruct:
          model = qe.execConstruct(); // Result that has to be formatted
          model.write(System.out);
          break;
      case Query.QueryTypeDescribe:
          model = qe.execDescribe(); // Result that has to be formatted
          model.write(System.out);
          break;
      case Query.QueryTypeSelect:
          ResultSet results = qe.execSelect(); // Result that has to be
                 // formatted
          ResultSetFormatter.outputAsTSV(System.out, results);
          break;
      }
      model.close();
      qe.close();
    }
}
言及の.rdfファイルはここからダウンロードできます:http://jena.apache.org/tutorials/sparql_data/vc-db-1.rdf