1

dbpedia.org への URI リンクを含む xml を解析する必要があります。Jena ライブラリを使用して、特定のオントロジーに基づいて、これらの URI から rdf トリプルを抽出する必要があります。指定されたオントロジーに基づいて、Java でプログラムによってプレフィックスを解決するにはどうすればよいですか。

与えられたオントロジーは、トリプルは dbpedia.org を照会することによって抽出できることを示しています。このようなすべてのトリプルについて、対応する dbpedia リソースを使用してクエリの作成を開始できます。しかし、問題は、リソースのみを使用してクエリを作成する方法です。クエリするプロパティがあります。しかし、私はそれらのプロパティの PREFIX を持っていません

4

2 に答える 2

1

これは質問に直接答えないかもしれませんが、私は URI を大量に持っていて、プレフィックスが付いているものもあればプレフィックスが付いていないものもありました。私が遭遇した最も有用なものをGoogleで検索したのは、この質問(最初)とJavaDocだったので、同じことを検索している可能性のある他の人を助けるために、この質問に私の経験を追加すると思いました.

Jena の PrefixMap インターフェイス (Model が実装する) にはexpandPrefixおよびqnameForメソッドがあります。expandPrefixメソッドは私を助けたものです(逆を行います。qnameForつまり、PrefixMap のプレフィックスを文字列に適用し、そのようなマッピングが見つからない場合は null を返します)。

したがって、どのリソースについても、完全に展開された URI を確保するために、次のことができます。

myRes.getModel().expandPrefix(myRes.getURI());

これが誰かに役立つことを願っています。

于 2012-07-19T10:52:04.480 に答える
0

あなたの質問はあまり明確ではありません。この回答で問題が解決されない場合は、質問を編集して問題の内容をより明確にしてください。ただし、あなたが尋ねたことに基づいて、RDF ファイルを XML またはその他のエンコーディングで Jena モデルに読み込むと、使用される接頭辞はインターフェースのメソッドを介して利用できますcom.hp.hpl.jena.shared.PrefixMapping( javadocを参照)。Modelオブジェクトはそのインターフェイスを実装します。prefix を自動的に展開する"foo"には、 メソッドを使用しますgetNsPrefixURI()

編集

OK、修正された質問を考えると、単純なプロパティ名を SPARQL クエリで使用できるプロパティ URI に変換するためにできることがいくつかあります。

  • prefix.ccサービスを使用して、プレフィックスとプレフィックス名の可能な拡張を調べます (たとえば、指定dbpedia:elevationされている場合は、prefix.cc (つまり: http://prefix.cc/dbpedia:elevation )でそれを調べることができます)。可能な拡張の 1 つはhttp://dbpedia.org/ontology/elevationです。

  • リソースURIでSPARQL記述クエリを発行して、RDF記述で返されるプロパティを確認し、それらを与えられたプレフィックスなしのプロパティ名と照合します

  • データ プロバイダーに完全なプロパティ名を提供するか、そうでなければプレフィックス展開を提供するように依頼して、最初にどのプロパティを意味するかをリバース エンジニアリングする必要がないようにしてください。

個人的には、可能であれば 3 番目のオプションをお勧めします。

于 2011-04-18T11:56:12.960 に答える