【发布时间】: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 "<" at line 1, column 2.,但您向我们展示的查询中没有<。 -
我知道这很奇怪。但是当我以
?union rdf:rest/rdf:first ?member.(不带*)运行查询时,它可以完美运行。而且,当使用内存中的耶拿模型使用相同的代码运行查询时,它会再次运行而不会出现错误。 -
在 MDSYS.RDF_MATCH_IMPL_T 上进行一些谷歌搜索并看到一些类似 this one 的帖子后,看起来适配器翻译了一些东西,所以我希望一些翻译后的查询具有导致解析器的文本错误。 (这对于解决方案没有太大帮助,但它可能是一个开始。)