2

私はJenaが初めてで、次の問題に悩まされています。基本的に、ネストされた要素を持つ RDF を作成する必要があります。次に例を示します。

<rdf:description about="http://www.acme.com">
    <dc:country>
      <dc:capital>London</dc:capital>
      <dc:language>English</dc:language>  
    <dc:country>
</rdf:description>

たぶんこれは些細なことですが、私はそれを行うことができませんでした。いくつかのチュートリアルを読みましたが、この種の要素の例はありませんでした。そのような出力を生成できるJavaでの実用的な例を誰かが提供してくれますか?

よろしくお願いします!

4

1 に答える 1

3

出力をどのように生成しているかはわかりませんが、最も可能性の高い説明は、デフォルトの出力形式を使用しているということですRDF/XML。代わりに、

yourModel.write( outStream, "RDF/XML-ABBREV" );

例ごとにネストされた要素を含む可能性が最も高い、よりコンパクトな構造が得られます。

ただし、「しかし」があります。

「入れ子になった要素を持つRDFを作成する必要がある」理由については言いません。Jena によって生成されるすべての出力は、RDF トリプル レベルで意味的に同等です。準拠している RDF プロセッサは、RDF/XML としてシリアル化されたモデル、省略されているかどうか、Turtle、n トリプルなどを解析することによって同じモデルを生成します。したがって、出力を別の RDF プロセスに渡す場合、出力にネストされた構造があるかどうか。

ただし、出力を XML ツールチェーンにフィードしたい場合、これはより困難になる可能性があります。RDF XML エンコーディングは非常に複雑です。さらに、Jena XML ライターは、特定の順序で要素をシリアライズすることを保証しません。Model書いている内容によっては、XML 構造がかなり異なって見える場合があります。これにより、たとえば、XSLT スタイルシートの作成が難しくなる可能性があります。

RDF XML を XML ツールチェーンにパイプすることを計画している場合は、XML ツールが信頼できる形式で信頼性の高い出力を生成するカスタム ライターを作成するか、SPARQL を使用してモデルにクエリを実行し、SPARQL の XML エンコーディングを使用することをお勧めします。 XML パイプラインへの入力としての結果セット。SPARQL のXML エンコーディングは、完全な RDF/XML よりも規則的であり、後続の XML 処理のより優れた基盤です。

于 2011-03-26T11:03:38.610 に答える