Как я могу добавить новый набор данных в Apache Fuseki с помощью командной строки? - PullRequest
0 голосов
/ 06 мая 2018

Я следую инструкциям для этого образа Docker , в котором описано, как настроить новое контейнерное хранилище RDF с использованием Apache Fuseki. Я думаю, что я могу автоматизировать все шаги в этих инструкциях для моего набора данных с помощью Dockerfile, но есть один шаг, в разделе «Распознавание набора данных в Fuseki», когда вы входите в интерфейс GUI и добавляете туда новый набор данных. Поскольку в конечном итоге я хотел бы автоматизировать этот процесс, я хотел бы найти способ командной строки для добавления нового набора данных. Это не должно быть чем-то необычным, просто добавьте новый набор данных с заданным именем, например, «db». Есть способ сделать это? (А также, я думаю, способ выполнить эту команду в контейнере Docker?)

1 Ответ

0 голосов
/ 07 мая 2018

Вот что вам нужно сделать:

(1) Начните свой контейнер с docker run -p 3030:3030 -it stain/jena-fuseki.

(2) Найдите идентификатор вашего контейнера $$$ с помощью docker ps.

(3) Скопируйте файл config.ttl в ваш док-контейнер с помощью docker container cp config.ttl $$$:config.ttl. Пример config.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 :        <#> .

<#service1> rdf:type fuseki:Service ;
    fuseki:name                       "ds" ;       # http://host:port/ds
    fuseki:serviceQuery               "sparql" ;   # SPARQL query service
    fuseki:serviceQuery               "query" ;    # SPARQL query service (alt name)
    fuseki:serviceUpdate              "update" ;   # SPARQL update service
    fuseki:serviceUpload              "upload" ;   # Non-SPARQL upload service
    fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph store protocol (read and write)
    # A separate read-only graph store endpoint:
    fuseki:serviceReadGraphStore      "get" ;      # SPARQL Graph store protocol (read only)
    fuseki:dataset                   <#dataset> ;
    .

<#dataset> rdf:type      tdb:DatasetTDB ;
    tdb:location "DB" ;
    # Query timeout on this dataset (1s, 1000 milliseconds)
    ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "1000" ] ;
    # Make the default graph be the union of all named graphs.
    ## tdb:unionDefaultGraph true ;
     .

(4) Зафиксируйте изменения в вашем контейнере с помощью docker container commit $$$ stackoverflow/jena-fuseki:latest.

(5) Перезапустите свой контейнер с: docker run -p 3030:3030 -it stackoverflow/jena-fuseki ./fuseki-server --config=/config.ttl.

(6) Если вы сейчас перейдете к http://localhost:3030, вы должны увидеть свой набор данных.

...