1

Oracle Jena アダプターを使用しています。私の問題は、SPARQL クエリのプロパティ パスに関するものです。問い合わせてみたところ

SELECT * WHERE {
  ?t rdf:type owl:ObjectProperty.
  ?t rdfs:domain ?o.
  ?o owl:unionOf ?union.
  ?union rdf:rest*/rdf:first ?member.
}

ModelOracleSem からパーサーエラーが発生します。しかし、Jena メモリ内モデルを使用して試してみると、次のように完全に機能します。

hybridGraph = OracleGraphWrapperForOntModel.getInstance(graph1);
model = ModelFactory.createModelForGraph(hybridGraph);
ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, model);

ARQのリスト機能も試してみまし?union list:member ?memberた。ModelOracleSem からの結果は返されません。しかし、Jena のメモリ内モデルから試してみると、再び完全に機能します。

誰でもこの問題を解決するのを手伝ってもらえますか?

編集: 以下の正確なエラーメッセージを確認できます。バージョン情報: Jena 2.6.4、ARQ 2.8.8、Jena Adapter 11.2.0.3 ありがとうございます。

2013-06-10 16:54:42 メッセージ: java.sql.SQLException: ORA-29532: キャッチされていない Java 例外によって Java 呼び出しが終了しました: oracle.spatial.rdf.server.ParseException: 行 1、列 2 で「<」が発生しました.

次のいずれかを期待していました:

 <URI> ... 
 <QNAME> ... 
 <VAR> ...

ORA-06512: "MDSYS.RDF_MATCH_IMPL_T"、203 行目 ORA-06512: "MDSYS.RDF_MATCH_IMPL_T"、67 行目 ORA-06512: 4 行目

4

2 に答える 2

0

Joshua が述べているように、あなたの質問にはいくつかの重要な情報が欠けています。たとえば、指定されたパーサー エラーです。

Oracle Jena アダプターは、ドキュメントを引用するために、プロパティ パスをサポートする必要があります。

Jena アダプターは、Jena ARQ クエリ エンジンとの統合により、すべての Jena プロパティ パス タイプをサポートします。

したがって、ジョシュアが示唆するように、これはバージョンの不一致の場合である可能性があります.Oracle Jena Adapterの古いバージョンを使用していますが、Jenaの新しいバージョンを使用しています.

その主題list:memberは、非標準の SPARQL 拡張である ARQ プロパティ関数です。ドキュメントにはこれについてまったく言及されていないため、サポートされていないと思います。

于 2013-06-10T19:28:06.237 に答える
0

私は jena アダプターを使用しましたが、使用されている jena のバージョンに jena アダプターが敏感であることを確認できます。この特定の問題に遭遇したことはありませんが、古いバージョンの jena アダプターで新しいバージョンの jena を使用すると、同様の問題が発生しました。

jena 2.6.4 および ARQ 2.8.8 と互換性のある jena アダプター (現在のバージョン番号は覚えていません) は、Jena 2.9.2 を使用して CONSTRUCT クエリを実行しようとすると、ランタイム例外をスローしました。適切に機能させるために、ダウングレードする必要がありました。

jena/jena アダプタの正しいバージョンでは、* を含むプロパティ パスが機能することを経験しましたが、動作が非常に遅くなります (私たちには少し遅すぎます ;))。

于 2013-06-27T10:26:03.973 に答える