GraphDB

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:54, 26 июня 2020.
GraphDB
fraimed
Разработчики: Ontotext
Выпущена: 2000
Постоянный выпуск: 9.3.1 / 18 июня 2020
Состояние разработки: Активное
Написана на: Java
Операционная система: Microsoft Windows, Linux, Mac OS X
Локализация: Английская
Лицензия: Proprietary
Веб-сайт Официальная страница

GraphDB - это семейство высокоэффективных, надежных и масштабируемых баз данных RDF. Он упрощает загрузку и использование связанных облачных наборов данных, а также ваших собственных ресурсов. Для удобства использования и совместимости с отраслевыми стандартами GraphDB реализует интерфейсы фреймворка RDF4J, спецификацию протокола W3C SPARQL и поддерживает все форматы сериализации RDF. Эта база данных является предпочтительным выбором как небольших независимых разработчиков, так и крупных корпоративных организаций из-за ее поддержки ее коммерческими и некоммерческими предприятиями и программистами, а также благодаря превосходным корпоративным функциям, таким как поддержка кластеров и интеграция с внешними высокопроизводительными поисковыми приложениями - Lucene, Apache Solr и Elasticsearch.

Разработчик GraphDB - компания Ontotext предлагает три версии GraphDB: Free, Standard и Enterprise:

  • GraphDB Free-commercial, file-based, sameAs & query optimizations, масштабируется до десятков миллиардов операторов RDF на одном сервере с ограничением в два параллельных запроса.
  • GraphDB Standard Edition (SE) - коммерческая, файловая оптимизация sameAs & query, масштабируемая до десятков миллиардов операторов RDF на одном сервере и неограниченное количество параллельных запросов.
  • GraphDB Enterprise Edition (EE) - кластер высокой доступности с реализацией рабочей и главной баз данных для обеспечения устойчивости и высокопроизводительного параллельного ответа на запросы.[Источник 1]


Базовые понятия GraphDB

RDF

Фреймворк описания ресурсов или RDF (Resource Description Framework) - это графическая модель данных, которая

  • формально описывает семантику, или значение информации
  • представляет метаданные, т. е. данные о данных

Модель данных RDF состоит из триплетов

  • каждый из которых представляет вершину в графе RDF
  • где структура каждого триплета — набор (субъект, предикат, объект)

Пример использования RDF

На рисунке 1 показано возможное использование триплета для построения графа. Здесь субъект триплета представим в виде вершины, предикат — обозначение направленного ребра, а объект — вершина другой триплета. [Источник 2]

Рисунок 1 – Образец представления данных в RDF


RDFS

Схема RDF (RDFS)

  • Добавляет такие понятия, как ресурс, литерал, класс и тип данных
  • Представляет метаданные, то есть данные о данных. Добавляет отношения, такие как подкласс (subClassOf), подмножество (subPropertyOf), домен и диапазон

RDFS позволяет определять

  • Классы и свойства
  • Иерархии классов и свойств

Также RDFS включает правила для вывода новых утверждений.[Источник 3]

На рисунке 2 представлено возможное применение RDFS для получения новых триплетов.

Рисунок 2 – Применение RDFS для получения новых триплетов


SPARQL

SPARQL - это SQL-подобный язык запросов для графических данных RDF со следующими типами запросов:

  • SELECT возвращает табличные результаты
  • CONSTRUCT создает новый граф RDF на основе результатов запроса
  • ASK возвращает "да’, если запрос имеет решение, в противном случае" нет’
  • DESCRIBE возвращает графические данные RDF о ресурсе; полезно, когда клиент запроса не знает структуру данных RDF в источнике данных
  • INSERT вставляет триплет в график
  • DELETE удалить удаляет триплет из графика.


Использование SPARQL для создания триплета

Чтобы создать график RDF, необходимо:

  • Определите префиксы для URIs с помощью ключевого слова PREFIX
  • Используйте INSERT DATA для обозначения того, что вы хотите вставить выражение. Напишите триплет в виде субъект-предикат-объект.
  • Выполните этот запрос.

Пример запроса и его выполнения представлен на рисунках 3-4.

Рисунок 3 – Применение SPARQL для создания триплетов
Рисунок 4 – Результат применения SPARQL для создания триплетов

Использование SPARQL для выбора триплета

Чтобы получить доступ к только что созданному графу RDF, выполните следующие действия:

  • Определите префиксы для URIs с помощью ключевого слова PREFIX
  • Используйте SELECT, чтобы указать, какую информацию вы хотите выбрать, и WHERE, чтобы обозначить свои условия, ограничения и фильтры.
  • Выполните этот запрос.

Пример запроса и его результат представлен на рисунке 5. [Источник 4]

Рисунок 5 – Применение SPARQL для выбора триплетов

Ontology

Ontology - это формальная спецификация, обеспечивающая совместное и многократное представление сведений. Примеры формальных спецификаций включают в себя:

Спецификация ontology включает в себя описания

  • понятий и свойств предметной области
  • отношений между понятиями
  • ограничений на то, как можно использовать отношения
  • отдельные объекты как члены концепций

На рисунке 6 представлена одна из возможных онтологий.

Рисунок 6 – Пример онтологий

Преимущества онтологий

Онтологии обеспечивают:

  • общее понимание информации
  • явные представления о предметной области

Эти положения ценны, потому что онтологии:

  • поддерживают интеграцию данных для аналитики
  • применяют знаний предметной области к данным
  • поддерживают взаимодействия приложений
  • включают модели для управления приложениями
  • сокращают время и затрат на разработку приложений
  • повышают качество данных, т. е. метаданные и происхождение[Источник 5]

Архитектура

GraphDB упакован как Storage And Inference Layer (SAIL) для RDF4J и широко использует функции и инфраструктуру RDF4J, особенно модель RDF, парсеры RDF и механизмы запросов. Вывод выполняется Reasoner (TRREE Engine), где явные и выводимые операторы хранятся в высоко оптимизированных структурах данных, которые хранятся в памяти для оценки запроса и дальнейшего вывода. Предполагаемое закрытие обновляется с помощью логического вывода в конце каждой транзакции, которая изменяет хранилище.

GraphDB реализует интерфейс API Sail, так что он может быть интегрирован с остальной частью инфраструктуры RDF4J, например, механизмами запросов и веб-интерфейсом пользователя. Пользовательское приложение может быть разработано для использования GraphDB напрямую через API-интерфейс RDF4J SAIL или через функциональные интерфейсы более высокого уровня. Когда репозиторий GraphDB открывается с использованием HTTP-сервера RDF4J, пользователи могут управлять репозиторием через встроенный Workbench, RDF4J Workbench или другие инструменты, интегрированные с RDF4J.[Источник 6]

На рисунке 7 представлена архитектура высокого уровня GraphDB.

Рисунок 7 – Архитектура высокого уровня GraphDB

Компоненты

Engine

Оптимизатор запросов (Query optimizer)

Оптимизатор запросов пытается определить наиболее эффективный способ выполнения данного запроса, рассматривая возможные планы запросов. После отправки и анализа запросов они передаются оптимизатору запросов, где происходит оптимизация. GraphDB позволяет использовать подсказки для управления оптимизатором запросов.

Reasoner (TRREE Engine)

GraphDB реализуется в верхней части TRREE engine. TRREE расшифровывается как "механизм тройной аргументации и определения правил" (Triple Reasoning and Rule Entailment Engine).TRREE выполняет рассуждение, основанное на прямой цепочке правил привязки по тройным шаблонам RDF с переменными.

Storage

GraphDB хранит все свои данные в файлах в настроенном каталоге хранения, обычно называемом хранилищем. Он состоит из двух основных индексов операторов, POS и PSO, контекстного индекса CPSO и литерального индекса, причем последние два являются необязательными.

Пул сущностей (Entity Pool)

Пул сущностей является ключевым компонентом уровня хранения GraphDB. Он преобразует сущности (URI, пустые узлы, литералы и встроенные триплеты RDF*) во внутренние идентификаторы (32 - или 40-разрядные целые числа). Он поддерживает транзакционное поведение, что улучшает использование пространства и поведение кластера.

Кэш Страниц (Page Cache)

Стратегия кэша GraphDB использует концепцию одного глобального кэша, разделяемого между всеми внутренними структурами всех репозиториев, так что вам больше не нужно настраивать кэш-память, кортеж-индексную память и предикатную память, а также вычислять объем выделенной работнику памяти. Если один из репозиториев используется больше в данный момент, он, естественно, получает больше слотов в кэше.[Источник 7]


Соединители (Connectors)

Соединители обеспечивают чрезвычайно быстрый поиск по ключевым словам и фасетный (агрегированный) поиск, который обычно реализуется внешним компонентом или службой, но имеет дополнительное преимущество-автоматическое обновление данных репозитория GraphDB.[Источник 7]

Workbench

Workbench - это веб-инструмент администрирования GraphDB.[Источник 7]

Требования и установка

Минимальные требования

Минимальные требования позволяют загружать наборы данных только до 50 миллионов триплетов RDF.

  • 2 гигабайта памяти
  • 2 гигабайта дискового пространства
  • Java SE Development Kit 8, 11 или 12 (не требуется для бесплатной установки GraphDB на рабочий стол)

Наилучшим подходом для правильного определения размера аппаратных ресурсов является оценка количества явных операторов. Статистически средний набор данных имеет 3: 1 инструкции для уникальных ресурсов RDF. Общее количество операторов определяет ожидаемый размер образа репозитория, а количество уникальных ресурсов влияет на объем памяти, необходимый для инициализации репозитория.[Источник 8]

Установка GraphDB

Самый простой способ установить и запустить GraphDB - это использовать собственные установки, предоставляемые для бесплатной версии GraphDB. Этот тип установки является наилучшим вариантом для вашего ноутбука / настольного компьютера и не требует использования консоли, поскольку он работает в графическом интерфейсе пользователя (GUI). Для этого дистрибутива вам не нужно загружать Java, так как он поставляется с предварительно сконфигурированным.

Зайдите в GraphDB Free и запросите копию GraphDB. Вы получите письмо со ссылкой для скачивания, в которой можно выбрать соответствующую ОС.

Установка на Windows

  1. Загрузите файлGraphDB .exe.
  2. Дважды щелкните файл приложения и следуйте инструкциям установщика на экране.
  3. Найдите приложение GraphDB в меню «Пуск» Windows и запустите базу данных. Сервер GraphDB и Workbench откроются по адресу http: // localhost: 7200 /.

Установка на Mac

  1. Загрузите файл GraphDB .dmg.
  2. Дважды щелкните по нему и получите виртуальный диск на рабочем столе. Скопируйте программу с виртуального диска в папку «Программы» на жестком диске, и все готово.
  3. Запустите базу данных, щелкнув значок приложения. Сервер GraphDB и Workbench открыты по адресу http: // localhost: 7200 /.

Установка на Linux

  1. Загрузите файл GraphDB .rpm или .deb.
  2. Установите пакет с помощью sudo rpm -i или sudo dpkg -i и имени загруженного пакета. Кроме того, вы можете дважды щелкнуть имя пакета.
  3. Запустите базу данных, щелкнув значок приложения. Сервер GraphDB и Workbench открыты по адресу http: // localhost: 7200 /.[Источник 9]

Более подробно установку на Windows можно посмотреть на видео ниже.

Конфигурация GraphDB

Пути и сетевые настройки

Конфигурация всех путей к каталогам GraphDB и сетевых настроек читается из файла conf / graphdb.properties. Он контролирует, где хранить данные базы данных, файлы журналов и внутренние данные. Чтобы назначить новое значение, измените файл или переопределите настройку, добавив -D <свойство> = <новое-значение> в качестве параметра в сценарий запуска. Например, чтобы изменить номер порта базы данных:

graphdb -Dgraphdb.connector.port=<your-port>

Свойства конфигурации также можно задать в переменной среды GDB_JAVA_OPTS, используя тот же синтаксис -D <свойство> = <новое-значение>. [Источник 10]

Домашняя директория GraphDB

Home GraphDB определяет корневой каталог, в котором GraphDB хранит все свои данные. Home может быть установлен через системное или конфигурационное свойство файла graphdb.home.

Значение по умолчанию для домашнего каталога GraphDB зависит от того, как вы запустите GraphDB:

  • Запуск в качестве автономного сервера: по умолчанию то же самое, что и каталог распространения.
  • Все остальные типы установок: OS-зависимый каталог
  • В Mac: ~/Library/Application Support/GraphDB.
  • В Windows: \Users\<username>\AppData\Roaming\GraphDB.
  • В Linux and other Unixes: ~/.graphdb. [Источник 10]

Пример использования GraphDB

В следующем видео подробно рассмотрены базовые возможности программы GraphDB. Для создания нового репозитория необходимо перейти в Setup->Repositories и ввести соответсвующее название и настройки. Чтобы начать работу с выбранным репозиторием его необходимо закрепить. Далее показывается как можно работать с уже готовыми базами данных. Для распознания GraphDB форматы документа должны соответствовать предлагаемым форматам. В качестве примера рассмотрена работа с электронной базой данный | dbpedia, в которой представлены данные из википедии. Загружаем интересующие нас страницы в формате .n3.

Далее рассматриваются базовые возможности по исследованию графов(раздел Explore), такие как просмотр иерархии классов (Class hierarchy), отношения между классами (Class relationships) и главный инструмент по визуализации - Visual graph, который позволяет по названию объекта найти соответсвующие связанные с ним субъекты. [Источник 11]

Также рассмотрен программный способ управления данными. Для этого необходимо зайти в раздел SPARQL и в поле ввести запрос с помощью комманд, описанных в разделе SPARQL.

Для более подробного ознакомления рекомендуется посетить соответсвующую страницу официального сайта.

Дополнительные материалы

Источники

  1. About GraphDB // GraphDB. [2015 — ]. Дата обновления: 19.06.2020. URL: http://graphdb.ontotext.com/documentation/free/about-graphdb.html (дата обращения: 19.06.2020).
  2. Resource Description Framework (RDF): Concepts and Abstract Syntax // World Wide Web Consortium (W3C). [2004 — ]. Дата обновления: 25.02.2014. URL: https://www.w3.org/TR/rdf-concepts/ (дата обращения: 18.06.2020).
  3. What is RDFS? // GraphDB. [2015 — ]. Дата обновления: 19.06.2020. URL:http://graphdb.ontotext.com/documentation/free/devhub/rdfs.html?highlight=rdfs#what-s-in-this-document (дата обращения: 19.06.2020).
  4. SPARQL // Introduction to the Semantic Web. [2015 — ]. Дата обновления: 19.06.2020. URL: http://graphdb.ontotext.com/documentation/free/introduction-to-semantic-web.html#introduction-to-semantic-web-sparql (дата обращения: 19.06.2020).
  5. What are Ontologies // Ontotext. URL: https://www.ontotext.com/knowledgehub/fundamentals/what-are-ontologies/ (дата обращения: 19.06.2020).
  6. Architecture // GraphDB. [2015 — ]. Дата обновления: 19.06.2020. URL: http://graphdb.ontotext.com/documentation/free/architecture-components.html#architecture (дата обращения: 25.06.2020).
  7. 7,0 7,1 7,2 Сomponents// GraphDB. [2015 — ]. Дата обновления: 19.06.2020. URL: http://graphdb.ontotext.com/documentation/free/architecture-components.html#components (дата обращения: 25.06.2020).
  8. Minimum requirements // GraphDB. [2015 — ]. Дата обновления: 19.06.2020. URL: http://graphdb.ontotext.com/documentation/free/requirements.html (дата обращения: 19.06.2020).
  9. Quick Start Guide // GraphDB. [2015 — ]. Дата обновления: 19.06.2020. URL: http://graphdb.ontotext.com/documentation/free/quick-start-guide.html (дата обращения: 19.06.2020).
  10. 10,0 10,1 Paths and network settings // GraphDB. [2015 — ]. Дата обновления: 19.06.2020. URL: http://graphdb.ontotext.com/documentation/free/quick-start-guide.html#paths-and-network-settings (дата обращения: 19.06.2020).
  11. Explore Your Data and Class Relationships // GraphDB. [2015 — ]. Дата обновления: 19.06.2020. URL: http://graphdb.ontotext.com/documentation/free/quick-start-guide.html#explore-your-data-and-class-relationships (дата обращения: 19.06.2020).