【问题标题】:Fuseki on OpenShift: Can UPDATE but not SELECTOpenShift 上的 Fuseki:可以更新但不能选择
【发布时间】:2015-01-03 03:51:29
【问题描述】:

我在 OpenShift 上安装了 Jena Fuseki 服务器。

--config services.ttl配置文件如下图。

我观察到的情况如下:

如果我从控制面板执行 SPARQL 更新,我会收到 Update Succeeded 并且服务器上的一些 TDB 文件确实发生了更改(在 ./app-root/data/DB/ 中)。

但是,当我在控制面板中再次执行诸如SELECT ?s ?p ?o WHERE { ?s ?p ?o. } 之类的 SPARQL 查询时,我得到的语句为零。这个 GET 请求也是如此:

http://<obfuscated>.rhcloud.com/ds/query?query=SELECT+%3Fs+%3Fp+%3Fo+WHERE+{+%3Fs+%3Fp+%3Fo.+}&output=text&stylesheet=

OpenShift 上的日志文件包含以下条目:

INFO  [24] GET http://<obfuscated>.rhcloud.com/ds/query?query=SELECT+%3Fs+%3Fp+%3Fo+WHERE+{+%3Fs+%3Fp+%3Fo.+}+&output=text&stylesheet=
INFO  [24] Query = SELECT ?s ?p ?o WHERE { ?s ?p ?o. } 
INFO  [24] exec/select
INFO  [24] 200 OK (2 ms) 

因此看起来好像 RDF 语句可以写入 TDB 但不能检索。如果我在本地安装的 Fuseki 上尝试相同的操作,则问题不会出现。

我还能做些什么来诊断和解决 OpenShift 上的 Fuseki 问题?

更新显然,如果我将语句插入到命名的 GRAPH(不是默认图表)中,问题不会出现。

@prefix : <#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .

[] rdf:type fuseki:Server ;
  fuseki:services (
  <#service>
 ) .

[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
tdb:GraphTDB rdfs:subClassOf ja:Model .

<#service> a fuseki:Service ;
  fuseki:name "ds" ;
  fuseki:serviceQuery "sparql" ;
  fuseki:serviceQuery "query" ;
  fuseki:serviceUpdate "update" ;
  fuseki:serviceUpload "upload" ;
  fuseki:serviceReadWriteGraphStore "data" ;
  fuseki:dataset <#dataset> ;
.

<#dataset> a tdb:DatasetTDB ;
  tdb:location "../data/DB" ;
  tdb:unionDefaultGraph true ;
.

【问题讨论】:

    标签: openshift jena fuseki


    【解决方案1】:

    tdb:unionDefaultGraph true 原来是罪魁祸首。来自documentation

    汇编器可以指定查询的默认图是联合 的命名图。这是通过添加 tdb:unionDefaultGraph 来完成的。

    由于这没有提到默认图作为联合的一部分,我猜在这种配置下,除了命名图的联合之外没有默认图,因此没有命名图的更新将被忽略。

    使用替代配置tdb:unionDefaultGraph false,上述问题消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 2018-01-28
      • 1970-01-01
      • 2012-03-23
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多