Skip to content

Guidelines to setup a Apache Jena Fuseki RDF database (server-side)

License

Notifications You must be signed in to change notification settings

CompPrehension/fuseki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Советы по установке RDF-СУБД Apache Jena Fuseki (в качестве сервера)

Введение и терминология

Apache Jena Fuseki, или просто Fuseki, - это "SPARQL server", т.е. СУБД, хранящая на сервере датсеты, состоящие из (именованных) графов RDF. Граф RDF -- это множество триплетов (атомарных утверждений) вида: <Subject, Property, Object>.

Для клиентов сервер RDF выглядит как SPARQL endpoint, для взаимодействия с которым требуются специальные программные библиотеки (например, Jena RDF Connection, RDFLib и многие другие).

Fuseki выдаёт несколько точек доступа SPARQL для каждого датасета (это можно настроить), которые дают различные права на запись в соответствующее хранилище.

Для доступа к данным по HTTP применяюся SPARQL-запросы. Язык SPARQL напоминает SQL по форме записи, но сильно отличается от него. К примеру, для поиска RDF-узлов и связей между ними в запросах можно применять переменные, которые записываются со знаком ? имеют вид ?var, ?s, ?object и т.п.

Изначально, SPARQL предназначался только для выборки данных. Для этого применяются:

  • SELECT - мощная команда, позволяет делать всевозможные выборки и фильтрации; возвращает "таблицу", аналогично SELECT-запросу в SQL. Можно получить все переменные (*) или явно указать возвращаемые переменные.
  • CONSTRUCT - также выборка, но возвращает результат в виде допустимого (под-)графа RDF.
  • ASK - позволяет проверить, найдётся ли хоть одно совпадение при выполнения аналогичного SELECT-запроса.

Для выполнения изменяющих команд существует отдельный под-стандарт под названием SPARQL Update. Среди них:

  • INSERT DATA - вставка явно заданных триплетов
  • DELETE DATA - удаление явно заданных триплетов
  • DELETE/INSERT - удаление и вставка одновременно
  • DELETE WHERE - удаление триплетов, найденных здесь же по критериям SELECT-запроса, указанным в секции WHERE.
  • CLEAR - очистка целого именованного графа от триплетов.

Важно!

Чтобы иметь возможность выполнять изменяющие запросы, нужно обращаться к точке доступа SPARQL, которая это поддерживает.

Установка и настройка Fuseki

  1. Поддерживаются, как минимум, Windows и Linux. Требуется, как минимум, установленная JRE/JDK.
    Заходим на https://jena.apache.org/download/ и скачиваем архив apache-jena-fuseki-*VER*.zip. На момент написания последней версией (от 05.12.2021) была версия 4.3.0:
    apache-jena-fuseki-4.3.0.zip скачать

  2. Выбирам папку на диске, куда распаковать архив, а также папку, где будут храниться файлы баз данных. Например, распаковали архив в ~/dev/db/apache-jena-fuseki-4.2.0/, а данные будем хранить в ~/dev/db/tdb.

  3. Проверяем работоспособность сервера Fuseki. Заходим в папку с распакованными файлами и запускаем: $ fuseki-server --help
    Мы должны увидеть список флагов и пример типового вида запроса к серверу (что-то вроде fuseki-server --tdb2 [--loc=DIR] [[--update] /NAME]).

  4. Создаём конфигурацию хралилищ - файл config.ttl. Создаём подпапку configuration папке для данных. Полное имя файла с конфигурацией может выглядеть так:
    ~/dev/db/tdb/configuration/config.ttl.
    Файл конфигурации с настройками для двух хранилищ: control_flow и expression есть в этом репозитории:
    config.ttl (основано на документации) Обратите внимание, что в конфигурации указывается лишь то, какие хранилища будут доступны на работающем сервере, и под какими URL-ами будут доступны точки доступа к каждому хранилищу. Фактические точки доступа можно просмотреть в Web-UI запущенного сервера.

  5. Запускаем fuseki-server.
    С использованием команд ниже сервер запустится и создаст базы данных в текущей папке (cd консоли):

    • на порту 6515
    • с уменьшенным объёмом отладочной печати в консоль (-q)
    • c современным TDB2 хранилищем по умолчанию
    • со включенной возможностью делать запросы SPARQL Update:

    Вариант 1, с использованием временной переменной окружения (Вариант для Linux).

    export FUSEKI_BASE=~/dev/db/tdb
    cd $FUSEKI_BASE/databases
    ~/dev/db/apache-jena-fuseki-4.2.0/fuseki-server --port=6515 -q --tdb2 --update

    Вариант 2 - запуск под Windows (внимание: создаcт БД прямо в apache-jena-fuseki-4.2.0/).

    cd c:\Work\fuseki-dir\apache-jena-fuseki-4.2.0
    
    set FUSEKI_BASE=c:\Work\fuseki-dir\tdb
    fuseki-server --port=6515 -q --tdb2  --update

    После этого сервер работает в текущей консоли, пока не буде нажато сочетание Ctrl+С, или консоль будет закрыта.

  6. Проверяем, что всё работает. Заходим на http://localhost:6515/ - должны увидеть веб-интерфейс локального сервера Fuseki, где есть возможность:

    • просмотреть доступные хранилища и точки доступа к ним,
    • просмотреть данные и отредактировать их,
    • выполнить и отладить SPARQL-запросы в редакторе с автопроверкой синтаксиса (внимание! перед запуском запросов SPARQL Update выберите нужный endpoint из списка вверху).

    Пример запущенного сервера Fuseki (если он ещё действует): vds84.server-1.biz:6515.

About

Guidelines to setup a Apache Jena Fuseki RDF database (server-side)

Topics

Resources

License

Stars

Watchers

Forks