1

私はオントロジーを持っています。これを Jena と一緒に読み込んで、Web サイトから RDFa トリプルをスクレイピングするのに役立てました。私は現在、これらのトリプルを Jena モデルに保存していませんが、それは非常に簡単で、次のリストに載っています。

しかし、私が苦労している領域は、私が持っているオントロジーの正しい RDF を Jena に出力させることです。オントロジーは Owl と RDFS の定義を使用していますが、いくつかのサンプル トリプルをモデルに渡すと、正しく表示されません。あたかもオントロジーについて何も知らないかのように。ただし、出力は依然として有効な RDF ですが、期待した形式で出力されていません。

オントロジーに基づいて、私が収集したトリプルについて、Jena が適切に記述された RDF (有効なだけでなく) を生成できるはずであるという考えは正しいですか?

ご意見をお寄せいただきありがとうございます。

更新 1

例:

これは私たちが現在持っているものです:

<rdf:Description rdf:about='http://theinternet.com/%3fq=Club/325'>
        <j.0:hasName>Manchester United</j.0:hasName>
       <j.0:hasPlayer>
             <rdf:Description rdf:about='http://theinternet.com/%3fq=player/291/'>
             </rdf:Description>
       </j.0:hasPlayer>
       <j.0:hasEmblem>http://theinternet.com/images/manutd.jpg</j.0:hasEmblem>
       <j.0:hasWebsite>http://www.manutd.com/</j.0:hasWebsite>
</rdf:Description>

</rdf:RDF>

これは私たちが理想的に望むものです:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
      xmlns:owl="http://www.w3.org/2002/07/owl#"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
      xmlns:ontology="http://theinternet.com/ontology.rdf#">

<rdf:Description rdf:about='http://theinternet.com/%3fq=Club/325'>
<rdf:type rdf:resource='ontology:Club' />
       <ontology:hasName>Manchester United</ontology:hasName>
       <ontology:hasPlayer>
             <rdf:Description rdf:about='http://theinternet.com/%3fq=player/291/'>
                 <rdf:type rdf:resource='ontology:Player' />
             </rdf:Description>
       </ontology:hasPlayer>
       <ontology:hasEmblem>http://theinternet.com/images/manutd.jpg</ontology:hasEmblem>
       <ontology:hasWebsite>http://www.manutd.com/</ontology:hasWebsite>
</rdf:Description>

</rdf:RDF>

私には、リソースタイプなど、オントロジーに関係するものがJenaに欠けているように見えます.Jenaを間違って使用していると感じています。

4

2 に答える 2

5

よく書かれたrdf (xml だと思います) が必要な場合は、ライターを使用してくださいRDF/XML-ABBREV。通常はデフォルトで問題ありませんが、チューニングの手順については、こちらを参照してください

問題出力の例がなければ、何が問題なのかを知ることは困難です。次のようなものを見ています<j.0:SomeClass>か?それはプレフィックスの問題です。それらが元の RDFa ドキュメントで定義されている場合は、どういうわけか失われていますが、簡単に修正できるはずです。それ以外の場合は、 PrefixMapping (Model拡張)のメソッドを使用してモデルに手動で設定できます。

更新された回答

例をありがとう。ここでの主な問題は接頭辞です。

model.setNsPrefix("ontology", "http://theinternet.com/ontology.rdf#");
model.setNsPrefix("dc",   DC_11.NS);
model.setNsPrefix("owl",  OWL.NS);
model.setNsPrefix("rdfs", RDFS.NS);
model.setNsPrefix("xsd",  XSD.NS);

( DC_11.NS et aljena ボキャブラリ パッケージで定義されています)

rdf:resource(like rdf:about) は完全な URI を取ることに注意してください。

<rdf:type rdf:resource='ontology:Club' />

動作しません。このshowDoctypeDeclaration オプションを使用すると、XML エンティティを使用して短縮されます。

ところで、どの RDFa パーサーを使用しましたか? プレフィックス定義は通過する必要があります。

于 2010-05-18T23:08:18.613 に答える
1

必要な rdfs:domain または rdfs:range ステートメントを含むオントロジーをロードしていないため、 rdf:type プロパティがありません。また、これらの推論を行うために推論を使用していないと思います。

domain または range ステートメントを残りのデータと一緒にロードできます。または jena には、owl:imports ステートメントを検出したときにオントロジーを自動的にロードする機能があります。物事をシンプルに保つために前者をお勧めします。

ここに記載されている jena RdfsInferencer http://jena.sourceforge.net/inference/は、必要な推論を行います。

ところで、セサミは大規模なものではジェナよりもはるかに使いやすく、堅牢であることがわかりましたが、いくつかのトリプルをスクレイピングする場合はどちらでも問題ありません。

bbtw、Turtle (N3 のサブセット) は、RDF/XML よりも読み取りと編集がはるかに簡単です。学ぶ価値は十分にあります。私は過去 3 年間常に rdf を使用してきましたが、現在は生データを処理する前にすべての RDF/XML を Turtle に変換しています (ただし、すべてを有用な順序で書き込み、後方参照コメントなどを自動的に挿入する優れたツールがあります)。 )

幸運を

于 2010-05-27T14:15:23.120 に答える