Apache Marmotta

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 15:28, 24 декабря 2016.
Apache Marmotta
Apache Marmotta.jpg
Создатели: Apache Software Foundation
Выпущена: 2013-10-03
Last release: 3.3.0 / 2014.12.05
Состояние разработки: активное
Написана на: Java
Операционная система: кроссплатформенная
Локализация: английский
Лицензия: Apache License 2.0
Веб-сайт marmotta.apache.org

Apache Marmotta - открытая платформа связанных данных, которая включает в себя несколько компонентов. В основной конфигурации - это сервер связанных данных.[1][2] Marmotta является одним из ранее реализованных проектов, осуществляющих рекомендацию новой платформы связанных данных[3][4][5], разработанной W3C.

Она отделилась от Linked Media Framework благодаря Salzburg Research,[6][7][8] и продолжает выпускаться, начиная с версии 3.0.0.

После апреля 2013, она числится в списках Semantic Web tools.[9]

В декабре 2013, она была номинирована как "один из наиболее активных проектов Apache Software Foundation".[10][11]

Компоненты

Проект делится на несколько частей: сама платформа, которая включает в себя:

  • Полноценные связанные данные для чтения и записи
  • SPARQL
  • Платформу связанных данных
  • Аргументацию
  • Основную систему безопасности.

В дополнение к платформе, в проект входят библиотеки, которые можно использовать раздельно:

  • KiWi - Triplestore реляционная база данных.
  • LDPath - язык путей для навигации через ресурсы связанных данных.
  • LDClient - клиент связанных данных, который позволяет проводить поиск удаленных ресурсов через разные протоколы, с помощью адаптеров, использующих другие источники данных (таких как YouTube и Facebook).[12]
  • LDCache - система кэширования, которая автоматически извлекает ресурсы, используя LDClient.

История

Linked Media Framework (pre-Apache)

Marmotta считается продолжением работы Linked Media Framework. LMF является простым в установке серверным приложением, которое связывает некоторые технологии, такие как Apache или Stanbol Apache Solr, для того чтобы предоставить дополнительные услуги. После выхода версии 2.6, для код сервера данных и некоторые связанные библиотеки были отложены, чтобы инкубировать Marmotta в Apache Software Foundation. LMF-прежнему сохраняет свой функционал, но теперь и связывает Marmotta.

Apache Marmotta

  • 16 ноября 2012 она предложена Apache Software Foundation под названием Apache Linda, позже название сменили на Apache Marmotta, чтобы избежать путаницы с языком Linda.
  • 3 декабря 2012 Marmotta входит в инкубацию.[13]
  • 26 апреля 2013 выпущена Marmotta 3.0.0.
  • 3 октябра 2013 выпущена Marmotta 3.1.0.
  • В декабре 2013, она награждена, как проект высокого уровня.[14][15][16]
  • В апреле 2014, проект выпустил свой первый релиз под крылом Apache Software Foundation: 3.2.0.[17]
  • В декабре 2014, проект выпустил версию 3.3.0.[18]

Архитектура платформы

Архитектура платформы

Платформа Marmotta состоит из набора модулей. Каждый модуль состоит из нескольких слоев:

  • Слой пользовательского интерфейса всегда применяется в HTML5 и Javascript и получает доступ к серверу через запросы REST ; так как Marmotta - серверное приложение, пользовательский интерфейс в основном состоит из интерфейсов администрирования и разработки и не предназначен для конечных пользователей.
  • Слой веб-служб предоставляет REST веб-службам доступ к функциям сервера; REST веб-службы обычно получают и создают JSON и/или разные RDF форматы; Apache Marmotta использует RESTEasy и JAX-RS для осуществления работы веб-служб.
  • Слой служб предоставляет CDI службы внутри среды Java, которые могут быть вызваны прямо из Java;
  • Слой модели предоставляет функцию доступа к данным; обычно она предоставляется библеотеками Java (kiwi, ldcache, ldclient, commons from Marmotta, Sesame Repository, и.т.д.)
  • Слой стойкости находится вне платформы Apache Marmotta; Marmotta может использовать множество систем баз данных для стойкости, включая PostgreSQL, MySQL и H2

Модули Apache Marmotta связываются на различных уровнях различными средствами: на уровне стойкости система использует транзакции KiWi для отправки оповещений об обновлениях хранилища; на уровне служб служба инъекции CDI и оповещения о событиях используются для отправки сообщений.

Модуль ядра

Модуль ядра предоставляет все необходимые функции необходимые платформе: инъекция зависимостей, изменяемые движки, административный интерфейс, управление ошибками, и.т.д. Это единственный модуль требуемый для минимальной версии платформы, а остальные модули обычно зависят от модуля ядра. Он предоставляет несколько веб-служб для разных функций платформы от операций управления(логирование, задачи и статистика) до некоторых функциональных веб-служб (чтение/запись связанных данных, префексы, контексты и т.д.).

Модуль SPARQL

Модуль SPARQL предоставляет поддержку SPARQL 1.1. Более точно, их 11 рекомендации, составленных SAPARQL 1.1, Marmotta покрывает 9 из них( Entailment Regimes и Federated Query пока не поддерживаются).

Он предоставляет унифицированный интерфейс как для запросов и обновления на Squebi, так и для отображения данных на Sgvizler.

Модуль LDP

Начиная с версии 3.2.0 Marmotta предостовляет экспериментальную поддержку для текущей спецификации Linked Data Platform 1.0.

Модуль LDCache

Marmotta включает в себя модуль управляющий LDCache, позволяя вам добавлять различные настройки кэширования для зарегестрированных LDClient поставщиков данных.

Модуль LDPath

LDPath запросы осуществляются через простой REST протокол, использующий JSON для описания результатов. Программы могут оцениваться либо через GET, либо через POST запрос различными методами, где контекст uri всегда должен быть параметром запроса.

Результирующая схема очень проста:

  • Каждый путь программы генерирует свойство с тем же именем.
  • Значение свойства - массив с результатом оценки пути. Каждый результат всегда состоит из значения с строчным представлением и типом (uri/bnode/literal); опционально литералы могут быть напраны с lang и/или datatype.

Модуль безопасности

Этот модуль предоставляет механизмы безопасности для Apache Marmotta, которая применяет собственную аутентификацию и авторизацию.

Пользователи и роли

В Marmotta существуют два пользователя по умолчанию: anonymous и admin. Первый на самом деле не настоящий пользователь, но пользовательские запросы всегда anonymous. Второй - пользователь с административными правами в системе.

В то же время пользователи группируются в роли для упрощения управления доступом. По умолчанию в систему входят три группы(manager, editor и user), но их можно настроить по усмотрению.

Как пример, по умолчанию admin входит в группы manager, editor и user.

Профили

Существуют три предопределенных профиля simple, standard, и restricted:

  • simple - разрешает доступ чтения везде, а доступ записи только через localhost или локальный интерфейс.
  • standard - разрешает доступ чтения везде, а доступ записи только авторизованным пользователям с ролью “manager”.
  • restricted - разрешает доступ только авторизованным пользователям.

Модуль контроля версий

Marmotta предоставляет службу контроля версий, которая следит за обновлениями конфигурации. Контроль версий основан на транзакциях, т.e. каждый раз, когда транзакция успешно завершена, заголовок новой версии создается службами контроля версий. В данный момент Marmotta поддерживает список версий(timemap), так же как и осмотр снапшотов(mementos) (т.e. возврат во времени). Для предоставления доступа к timemaps и snapshots, модуль контроля версий Marmotta использует протокол Memento(RFC 7089).

Memento делает выбор между ресурсами (URI-R), timegate'ами (URI-G) и mement'ами (URI-Mx).

Протокол Memento

Ресурсы - обычные ресурсы. Во время запроса таких ресурсов, HTTP ответ включает в себя ссылки на timemap (список всех версий ресурса) и timegate (где вы можете запросить ресурс с помощью заголовка Accept-Datetime).

  • TimeGate поддерживает согласование содержимого во временном измерении. Когда происходит согласование, HTTP клиент использует заголовок Accept-Datetime для отправки ссылки перенаправления для запрошенной версии. Версии ресурсов в Memento имеют закладываемый URI, чтобы можно было ссылаться прямо на Memento.
  • Memento предоставляет некоторые ссылки в заголовке HTTP ответа. Они включают в себя ссылки на первые версии (rel=first memento), последнюю версию (rel=last memento), текущую memento (rel=memento), предыдущую версию (rel=prev memento) и следующую версию (rel=next memento). Все ссылки на Mementos также включают информацию о времени.
  • TimeMap предоставляет список ссылок на все memento определенного ресурса. На данный момент TimeMap может доставить 2 разных формата (application/link-format and text/html) в зависимости от заголовка HTTP принятого запроса.

Установка

Ссылки

Ссылки

  • Marmotta [Электронный ресурс]: Официальный сайт / Дата обращения: 20.12.2016. — Режим доступа: https://marmotta.apache.org
  • Marmotta Incubation Proposal [Электронный ресурс]: Marmotta Incubation Proposal / Дата обращения: 28.11.2016. — Режим доступа: http://wiki.apache.org/incubator/MarmottaProposal
  • Apache Marmotta presentation[Электронный ресурс]: Презентация Apache Marmotta / Дата обращения: 28.11.2016. — Режим доступа: http://www.slideshare.net/Wikier/apache-marmotta