【问题标题】:SPARQL property paths in Oracle Jena Adapter and Jena ARQOracle Jena Adapter 和 Jena ARQ 中的 SPARQL 属性路径
【发布时间】:2013-06-27 18:26:03
【问题描述】:

我正在使用 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 适配器 11.2.0.3 谢谢,

2013-06-10 16:54:42 消息:java.sql.SQLException:ORA-29532:Java 调用被未捕获的 Java 异常终止:oracle.spatial.rdf.server.ParseException:在第 1 行遇到“

期待以下之一:

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

ORA-06512:在“MDSYS.RDF_MATCH_IMPL_T”第 203 行 ORA-06512:在“MDSYS.RDF_MATCH_IMPL_T”第 67 行 ORA-06512:在第 4 行

【问题讨论】:

  • 我没有使用过 Jena Oracle 适配器,但我想知道这是否是适配器支持的版本以及您使用的 ARQ 版本的问题。您使用的是哪个版本的 Jena Oracle 适配器?您使用哪个版本的 Jena/ARQ 进行内存测试?另外,你应该得到你得到的解析错误吗?这可能有助于诊断不同解析器所期望的语言版本。
  • 我已经编辑了@JoshuaTaylor 的问题。再次感谢。
  • 我认为我们还没有看到一些东西。解析错误是由其他原因引起的,或者您向我们展示的查询不完整。解析错误显示Encountered "&lt;" at line 1, column 2.,但您向我们展示的查询中没有&lt;
  • 我知道这很奇怪。但是当我以?union rdf:rest/rdf:first ?member.(不带*)运行查询时,它可以完美运行。而且,当使用内存中的耶拿模型使用相同的代码运行查询时,它会再次运行而不会出现错误。
  • 在 MDSYS.RDF_MATCH_IMPL_T 上进行一些谷歌搜索并看到一些类似 this one 的帖子后,看起来适配器翻译了一些东西,所以我希望一些翻译后的查询具有导致解析器的文本错误。 (这对于解决方案没有太大帮助,但它可能是一个开始。)

标签: oracle sparql jena


【解决方案1】:

正如 Joshua 所说,您的问题缺少一些重要信息,例如给出的解析器错误。

Oracle Jena 适配器应该支持属性路径,引用他们的documentation

Jena 适配器通过以下方式支持所有 Jena 属性路径类型 与 Jena ARQ 查询引擎集成

因此,正如 Joshua 所说,这可能是版本不匹配的情况,您使用的是旧版本的 Oracle Jena 适配器,但使用的是新版本的 Jena。

关于 list:member 的主题,这是一个 ARQ 属性函数,它是一个非标准 SPARQL 扩展。文档根本没有提到这一点,所以我认为它不受支持。

【讨论】:

    【解决方案2】:

    我使用了 jena 适配器,并且可以确认 jena 适配器对所使用的 jena 版本很敏感。我没有遇到过这个特殊问题,但是在使用较新版本的 jena 和较旧版本的 jena 适配器时,我遇到了类似的问题。

    当我们尝试使用 Jena 2.9.2 执行 CONSTRUCT 查询时,与 jena 2.6.4 和 ARQ 2.8.8 兼容的 jena 适配器(我现在不记得版本号)引发了运行时异常。我们不得不降级以使其正常工作。

    使用正确版本的 jena/jena 适配器,我们体验到带有 * 的属性路径可以工作,但运行速度非常慢(对我们来说有点太慢了 ;))。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多