2

Spring MVC を介して Java モデルの RDF 表現を提供するにはどうすればよいですか?

Spring のコンテンツ ネゴシエーション メカニズムを使用して動作する JSON および XML 表現があり、RDF についても同じことをしたいと考えています。

4

3 に答える 3

1

私はSpring MVCについて何も知らないことに言及して、これを序文にします。しかし、RDF としてシリアライズしたい Java オブジェクトがある場合は、Empireのようなライブラリー(私が作成者です) が役立つかもしれません。オブジェクトに注釈を付けて、何を RDF に変換するかを指定し、RdfGeneratorクラスを使用してオブジェクトを表す RDF グラフを返すことができます。その後、Sesame フレームワークのRIO RDF ライターのようなものを使用して、RDF シリアル化が要求されたものとしてグラフをシリアル化できます。

これは Spring MVC 固有のものではないことはわかっていますが、OutputStream と要求されたコンテンツ タイプを取得できれば、Empire と Sesame の RIO で動作させることができるはずです。

于 2013-06-26T12:22:11.713 に答える
0

さらに、charsetパラメーターを追加する必要があります。StringHttpMessageConverterは、変更しない限り、デフォルトの文字エンコーディングとして ISO-8859-1 を使用します。出力形式が ISO-8859-1 とは異なる固定エンコーディング (UTF-8 など) の場合は、 で宣言する必要がありますproduces。この動作は仕様と一致しています。たとえば、モデルに非 ASCII 文字が含まれていて、それが でエンコードされているturtle場合、仕様では、メディア タイプtext/turtlecharsetには値が のパラメータが含まれている必要があると規定されていますUTF-8。それ以外の場合はオプションです。

  @RequestMapping(value = "your/service/location", method = RequestMethod.GET, 
        produces = { "text/turtle;charset=UTF-8"})
  public @ResponseBody String getModelAsTurtle() throws IOException {
    try (final ByteArrayOutputStream os = new ByteArrayOutputStream()) {
        RDFDataMgr.write(os, model, RDFFormat.TURTLE_PRETTY);
        return os.toString();
    }
  }
于 2014-10-05T14:11:29.987 に答える