2015-01-02 3 views
0

OpenShift에 Jena Fuseki 서버를 설치했습니다.OpenShift에서 Fuseki : 업데이트 할 수 있지만 SELECT가 없습니다

--config services.ttl 구성 파일은 다음과 같습니다.

은 내가 관찰하는 것은 다음

내가 제어판에서 SPARQL 업데이트를 수행 할 경우 내가 Update Succeeded 얻고 일부 TDB 파일 (./app-root/data/DB/에서) 서버에서 변경합니까.

그러나 제어판에서 SELECT ?s ?p ?o WHERE { ?s ?p ?o. }과 같은 SPARQL 쿼리를 다시 수행하면 제로 문이 다시 나타납니다. 이 같은이 GET 요청에 대한 사실이다 : OpenShift에

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

로그 파일에는 다음 항목이 포함되어 RDF 문은 TDB에 쓸 수는 있지만 검색 할 수는 없습니다 것처럼

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) 

그래서이 나타납니다. 후세키 (Fuseki) 지역에서 동일한 시도를 시도해도 문제는 드러나지 않습니다.

OpenShift에서 Fuseki로이 문제를 진단하고 해결하려면 어떻게해야합니까?

업데이트 이름이 GRAPH (기본 그래프가 아님)에 INSERT 문을 넣으면 문제가 분명하게 나타나지 않습니다.

@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 ; 
. 

답변

0

tdb:unionDefaultGraph true이 원인으로 밝혀졌다. documentation에서 :

어셈블러 쿼리의 기본 그래프는 노조 명명 된 그래프의 것을 지정할 수 있습니다. 이는 tdb : unionDefaultGraph를 추가하여 수행됩니다.

기본 그래프가 공용체의 일부로 언급되지 않았으므로이 구성에서는 명명 된 그래프의 통합 이외의 기본 그래프가 없으므로 그래프의 이름을 지정하지 않는 업데이트는 무시됩니다.

설명 된 문제는 대체 구성 tdb:unionDefaultGraph false으로 사라집니다.

관련 문제