Конфигурирование логического вывода Jena Fuseki + и TDB?

Я новичок в Дженне TDB и Fuseki. Я хотел бы загрузить в Fuseki данные, полученные в Lehigh University Benchmark (LUBM), сгенерированные их генератором данных (версия 1.7). Это около 400 файлов.owl. Использовал следующий файл конфигурации, который поставляется вместе с Fuseki для вывода:

<#service1>  rdf:type fuseki:Service ;
    fuseki:name              "inf" ;             # http://host/inf
    fuseki:serviceQuery      "sparql" ;          # SPARQL query service
    #fuseki:serviceUpdate     "update" ;
    fuseki:serviceReadWriteGraphStore      "data" ;
    # A separate read-only graph store endpoint:
    fuseki:serviceReadGraphStore       "get" ;
    fuseki:dataset           <#dataset> ;
    .

<#dataset> rdf:type       ja:RDFDataset ;
    ja:defaultGraph       <#model_inf> ;
    .

<#model_inf> a ja:InfModel ;
     ja:baseModel <#tdbGraph> ;
     ja:reasoner [
         ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
     ] .

<#tdbDataset> rdf:type tdb:DatasetTDB ;
    tdb:location "myDB" ;
    tdb:unionDefaultGraph true ;
    .

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

Фусеки запускается без проблем. Однако, когда я выполняю следующую команду:

./s-put http://localhost:3030/inf/data default ~/Owl/univ-bench.owl

Я получаю сообщение об ошибке:405 HTTP method PUT is not supported by this URL http://localhost:3030/inf/data?default

У меня есть пара вопросов:

1. Обновление в файле конфигурации явно не отключено, так почему я получаю это сообщение. 2. Для того, чтобы загрузить все 400 .owl файл в виде одного графика, очевидно, я должен отключить обновление и включить tdb:unionDefaultGraph true(Это упоминается в файле конфигурации, поставляемом вместе с Fuseki), если это так, как, черт возьми, я полагаю, чтобы загрузить данные в Fuseki. Пожалуйста, дайте мне знать, что мне здесь не хватает и как я могу сделать это правильно.

Заранее спасибо за помощь.

Изменить: я узнал, что вам нужно будет добавить следующее:

fuseki:serviceReadWriteGraphStore      "data" ;
# A separate read-only graph store endpoint:
fuseki:serviceReadGraphStore       "get" ;

для того, чтобы иметь возможность использовать s-put для загрузки данных, однако каждый раз, когда я добавляю новый файл, он перезаписывает данные из предыдущего файла, и поэтому вывод не работает. Что я тут не так сделал? Как правильно загрузить данные, чтобы все файлы загружались в один и тот же график и работа с выводами?

Редактировать Итак, углубившись в эту проблему, я обнаружил, что есть два способа загрузки данных.

  1. Вы можете добавить следующее, где вы определяете модель в файле конфигурации:

    ja:content [ja:externalContent <file://// Path_to_owl_file >] ;

    Так что для меня я добавил это под <#model_inf> a ja:InfModel ; Однако, если у вас есть 400 файлов, это будет очень утомительно.

  2. Вы можете отдельно загрузить данные, используя tdbloader2 и укажите файл конфигурации в каталог, который tdbload создает в качестве базы данных. Который также описан здесь

    $ tdbloader2 --loc tdb PATH_TO_DIR_or_OWL_Files

В настоящее время проблема заключается в том, что когда я выполняю простой запрос, например, следующий запрос, я получаю ошибку "Недостаточно памяти".

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>   
PREFIX ub: <http://cs.uga.edu#>  
SELECT *  
WHERE 
{
    ?X rdf:type ub:GraduateStudent . 
    ?X ub:takesCourse <http://www.Department0.University0.edu/GraduateCourse0>
}

Я увеличил объем памяти для Fuseki-Server (внутри серверного скрипта) до 5 ГБ и по-прежнему получаю сообщение об ошибке нехватки памяти для этого простого запроса. Есть идеи, почему это может происходить?

1 ответ

s-put делает PUT - который определяется как "заменить содержимое".

Используйте s-post для добавления в график.

LUBM достаточно прост по своей структуре, так что (1) он не очень реалистичен и (2) вывод может быть применен к каждому университету отдельно и к данным, загруженным таким образом, во время запроса все было расширено.

Другие вопросы по тегам