Почему в веб-интерфейсе fuseki не отображается мой набор данных?

Я настроил assembler.ttl и запустил с ним сервер фьюзки. файл конфигурации такой:

@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#> .
@prefix :        <#> .

<#entities> rdf:type fuseki:Service ;
    fuseki:name                       "entities" ;
    fuseki:serviceQuery               "sparql" ;
    fuseki:serviceQuery               "query" ;
    fuseki:serviceUpdate              "update" ;
    fuseki:serviceUpload              "upload" ;   # Non-SPARQL upload service
    fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph store protocol (read and write)
    fuseki:serviceReadGraphStore      "get" ;      # SPARQL Graph store protocol (read only)
    fuseki:dataset                   <#dataset> ;
.

<#dataset> rdf:type      tdb:DatasetTDB ;
    tdb:location "/opt/someDir/entities" ;
    ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "1000" ] ;

И когда я использую веб-интерфейс для отображения наборов данных, он не содержит наборов данных. И создать новый набор данных, кажется, не проблема. Добавленный набор данных находится в $FUSEKI_BASE/run/datasets. Есть ли что-нибудь, что я могу сделать, чтобы веб-интерфейс fuseki распознал мой набор данных и позволил мне выполнить загрузку или что-то в этом роде?


person Gao    schedule 11.06.2018    source источник


Ответы (1)


Проблема в том, что ваш граф по умолчанию пуст. Таким образом, очевидно, что в веб-интерфейсе есть пустая БД.

Этот config.ttl должен предоставить вам график по умолчанию, структурированный как ваши файлы TDB.

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

:service_tdb_all  a                   fuseki:Service ;
        rdfs:label                    "MyDataset" ;
        fuseki:dataset                :dataset ;
        fuseki:name                   "MyDataset" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadWriteGraphStore
                "data" ;
        fuseki:serviceUpdate          "update" ;
        fuseki:serviceUpload          "upload" .

:dataset a ja:RDFDataset ;
    ja:defaultGraph <#tdbGraph>;
.

<#tdbGraph> rdf:type tdb:GraphTDB ;
    tdb:dataset :tdb_dataset_readwrite 
.

:tdb_dataset_readwrite  a             tdb:DatasetTDB ;
    tdb:location  "$FUSEKI_BASE/run/datasets"
.

Возможно, вам придется отредактировать tdb:location и :service_tdb_all в соответствии с вашими пожеланиями.

person Gilles-Antoine Nys    schedule 11.06.2018
comment
Это дает мне это исключение: org.apache.jena.sparql.ARQException: найдено два совпадения: var ?root -> base/#dataset, base/#tdb_dataset_readwrite - person Gao; 11.06.2018
comment
Вы проверили, что ваш путь не соответствует двум наборам данных? - person Gilles-Antoine Nys; 11.06.2018
comment
Если проблема в том, что он пуст, был ‹#dataset› tdb:unionDefaultGraph true ; предназначен (запрос объединения всех графов)? - person AndyS; 11.06.2018