私は、unionOfとintersectionOfのために、グラフにいくつかの匿名/空白ノードも含まれているApache JenaのAPIを使用しています。そのような例の1つは、匿名ノード/リソースであるJenaの匿名/空白ノードのトラバーサル
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.summyUrl.com/something#Entity1"/>
<rdf:Description rdf:about="http://www.summyUrl.com/something#Entity2"/>
</owl:unionOf>
</owl:Class>
です。私は上の例外のため(たとえば、URIを使用してSPARQLクエリを行うことができるでもないよ「-1b8b -50a5734d:15d839467d9」
:私はそのURIを取得しようとすると、それはのようなものですそのようなURIを解析する)、それを処理する適切なJenaメソッドを見つけることができません。
私は、そのようなノードを爆発させ、そのノードのすべてのネストされたリソースを取得する方法を探しています。
以下の場合例えば、それは
<http:/.../Entity1>
、<http:/.../Entity2>
と<http:/.../Entity3>
<owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdf:Description rdf:about="http://www.summyUrl.com/something#Entity1"/> <owl:unionOf rdf:parseType="Collection"> <rdf:Description rdf:about="http://www.summyUrl.com/something#Entity2"/> <rdf:Description rdf:about="http://www.summyUrl.com/something#Entity3"/> </owl:unionOf> </owl:unionOf> </owl:Class>
それを処理するためのイエナのいずれかの作り付けの方法がありますを返す必要がありますか?
もしそうでない場合は、効率的に行うにはどうすればよいですか?
イエナモデル-APIを使用
あなたは常にRDF/XMLつのデータのタートルのシリアライズではないはずです。次に、SPARQLプロパティパスを使用できることがわかります。実際には任意のネストされたクラスでは機能しませんが、OWLのようにOWLの推論者が行く方法です – AKSW
最初に全体のクエリを見るのは良いでしょうが、原則として共通パターンは '?subclass rdfs:subClassOf OWLのクラスの和集合で定義されたスーパークラスを探している場合は、/(owl:unionOf/rdf:rest */rdf:first)+? – AKSW