AllegroGraph

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 02:33, 22 июня 2020.
AllegroGraph
Allegro1.jpg
Логотип разработчика
Разработчики: Franz Inc
Постоянный выпуск: 7.0.0 / 28 апреля 2020 г.
Написана на: Common Lisp, Java, Python
Операционная система: Microsoft Windows (32 и 64-разрядные), MacOS X (intel, 32-бит, 64-бит), Linux (32 бит и 64 бит)
Лицензия: Проприетарное программное обеспечение.
Веб-сайт franz.com/agraph/allegrograph/

AllegroGraph – современная, высокопроизводительная, устойчивая графическая база данных с закрытым исходным кодом. AllegroGraph совмещает эффективное использование оперативной памяти с использованием дисковых хранилищ, что позволяет ему масштабировать миллиарды четверок (quads), сохраняя при этом высокую производительность. Поддерживает языки запросов к данным SPARQL, RDFS + + и Prolog и автоматически использует те из них, которые совместимы с приложениями пользователя. AllegroGraph разрабатывает фирма Franz Inc, которая широко известна благодаря таким продуктам, как TopBraidComposer (редактор онтологий), RacerPro (OWL DL онтология) и др. [Источник 1]

В настоящее время используется в проектах с открытым исходным кодом, в коммерческих проектах и проектах Министерства обороны США. Используется в качестве компонента хранения данных в проекте TwitLogic, привнесшем концепцию Семантической паутины в систему обработки данных социальной сети Twitter [Источник 2].

Описание

Разработчиком Allegrograph является Franz Inc. AllegroGraph был разработан в соответствии со стандартами консорциума Всемирной паутины для Resource Description Framework, поэтому он считается базой данных RDF , своего рода RDF-хранилищем. Первая версия AllegroGraph была выпущена в конце 2004 года.

AllegroGraph поддерживает языки Clojure и LISP, Java, Python, Ruby, Perl, C#. Продукт доступен для 32 и 64 – разрядных операционных систем, таких как Windows, Linux и Mac OS X.

FranzInc также разрабатывает проект AGWebView, который представляет собой Web-интерфейс для AllegroGraph.

Системные требования

Сервер для загрузки необходимых файлов продукта AllegroGraph запускается автоматически на ОС Linux 86-64 разрядных версий. Для того, чтобы запустить продукт на других ОС рекомендуется установить программу Linux Virtual Machine или EC2.

Требования для виртуальной машины (требуется 64-разрядное оборудование):

  • Для ОС Linux (х86-64), с glibc 2.11 и выше - Apple для Mac OSX 10.9 и новее;
  • Для Amazon EC2 (Linux x86-64) - 32 или 64-разрядная версия Microsoft Windows.

Виртуальная машина позволит запустить версию AllegroGraph Linux в операционной системе Windows или Mac. Производительность будет медленнее, чем при запуске в исходном формате, поэтому рекомендуется сначала установить AllegroGraph на Linux, для оценки эффективности. Возможен запуск подсистемы Windows для Linux (WSL) в Windows 10.

Особенности

AllegroGraph спроектирован для работы с максимальной скоростью загрузки и запроса. Загрузка четверок (quads), через высоко-оптимизированные синтаксические RDF/XML- и N-Quads-анализаторы, является лучшей в своем классе, особенно в области работы с большими файлами. В 2004 году AllegroGraph (версия 1.0) стала первой базой данных, способной загружать и индексировать 1 миллиард триплетов, используя архитектуру x86 на 64-битном оборудовании. И в дальнейшем, эта специализированная графическая база данных NoSQL (а не просто усовершенствованная РСУБД) продолжила наполнять рынок инновациями - так, в 2008 году на конференции SemTech 10 млрд. четверок (quads) были загружены на облачный веб-сервис Amazon EC2. Присущие Allegrograph возможности автоматического управления доступом ко всем аппаратным средствам с целью максимизации загрузки, а также широкие возможности индексации и запросов существенно подняли планку производительности для баз данных RDF.

Все особенности:[Источник 3]

  • Полное соответствие требованиям ACID и поддержка операций фиксации, отката, и контрольных точек(Commit, Rollback, and Checkpointing.);
  • Полная и быстрая восстанавливаемость;
  • Полная одновременность чтения, почти полная одновременность записи;
  • Создание резервных копий онлайн, задание точки восстановления системы (Point-in-Time Recovery), репликация, теплый резерв (Warm Standby);
  • Динамическая и автоматическая индексация - все зафиксированные тройки всегда индексируются;
  • Расширенное индексирование текста - индексирование текста на предикат;
  • Объединение в одно целое платформы SOLR и СУБД MongoDB;
  • Поддерживает языки Java Sesame, Java Jena, Python, C#, Clojure, Perl, Ruby, Scala и Lisp;
  • Симметричная мультипроцессорность (SMP) - автоматическое управление ресурсами (Automatic Resource Management) для всех процессоров и дисков и оптимизированное использование памяти;
  • Сжатие индексов на основе столбцов - снижение подкачки, повышение производительности;
  • Тройной уровень безопасности с фильтрами безопасности;
  • Облачный AllegroGraph - Amazon EC2;
  • RDF - сервер AllegroGraph может быть создан с помощью языка JavaScript;
  • Интерфейс на основе JavaScript (JIG) для общего обхода графов;
  • Поддержка алгоритма Soundex (сравнение двух строк по их звучанию) позволяет свободно выполнять индексирование текста на основе фонетического произношения;
  • Показатели, задающиеся пользователем, полностью контролируемые системным администратором;
  • Клиент-серверная архитектура GRUFF с графическим построителем запросов;
  • Подключаемый интерфейс для текстовых индексаторов;
  • Специализированные (dedicated) и открытые сеансы - в специализированных (dedicated) сеансах пользователи могут работать со своими собственными наборами правил для одной и той же базы данных.

Ключевые возможности в AllegroGraph

  1. Семантическое моделирование данных объекта-события. Модель данных сущности-события, используемая AllegroGraph 7, помещает в центр основные «сущности», такие как клиенты, пациенты, студенты или люди, представляющие интерес, а затем собирает несколько уровней знаний, связанных с сущностью, как «события». События представляют действия, которые происходят во временном контексте. Используя этот новый подход к модели данных, организации получают целостное представление о клиентах, пациентах, студентах или важных объектах, а также способность обнаруживать глубокие связи, открывать новые шаблоны и получать объяснимые результаты.
  2. Сложные запросы FedShard. С помощью запатентованной функции объединения в памяти результаты каждого компьютера объединяются, так что процесс запроса выглядит так, как будто осуществляется доступ только к одной базе данных, хотя на самом деле осуществляется доступ к множеству различных баз данных, хранилищ данных и баз знаний. и возвращать результаты. Эта уникальная возможность объединения данных ускоряет результаты для сложных запросов по сильно распределенным наборам данных и базам знаний.
  3. Крупномасштабная смешанная обработка данных. Система обработки больших данных AllegroGraph 7 способна масштабировать огромные объемы данных о предметной области, эффективно связывая знания о предметной области с секционированными данными посредством разделяемых графиков на кластерах машин. AllegroGraph 7 эффективно объединяет многораздельные данные со знанием предметной области благодаря инновационному процессу, который сохраняет как можно большую часть данных в ОЗУ для ускорения доступа к данным и полного использования процессоров серверов запросов.
  4. Основанный на браузере Gruff. Мощные возможности запросов и визуализации Gruff теперь доступны через веб-браузер и напрямую интегрированы в AllegroGraph 7. Gruff - это ведущий в отрасли инструмент визуализации графов знаний, который динамически отображает визуальные графики и связанные ссылки.Gruff предоставляет пользователям важную возможность исследовать временные связи и видеть, как отношения создаются с течением времени. Пользователи могут создавать визуальные графики, которые отображают отношения в графовых базах данных, отображать таблицы свойств, управлять запросами, подключаться к конечным точкам SPARQL и создавать запросы SPARQL или Prolog в виде визуальных диаграмм. Gruff можно загрузить отдельно или включить в дистрибутив AllegroGraph v7.
  5. Высокопроизводительная аналитика больших данных. AllegroGraph 7 обеспечивает высокопроизводительную аналитику, преодолевая проблемы обработки данных, связанные с доступом к диску и памяти, использует эффективность ядра процессора и обновляет базы данных знаний предметной области в многораздельных системах данных.

Тройной уровень безопасности

По мере того как хранилища RDF становятся все более укоренившимися в корпоративных приложениях, требуется повышенная безопасность и детальный контроль доступа к данным. Чтобы поддержать это, AllegroGraph является лидером в области безопасности данных с помощью тройных атрибутов и фильтров безопасности.

Существует много потенциальных применений атрибутов троек, включая контроль доступа. Атрибуты могут указывать, какие пользователи могут получить доступ к каким тройкам. Пользователям также могут быть заданы атрибуты, которые можно сравнить с тройными атрибутами. Предположим, например, что есть атрибут с именем security-level со значениями high , medium и low . Затем пользователь со средой атрибута уровня безопасности может быть лишен возможности просматривать тройки с высоким атрибутом уровня безопасности .

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

С помощью фильтров безопасности системный администратор может предоставить пользователю доступ ко всему хранилищу или ограничить доступ к ограниченному и отфильтрованному представлению хранилища.

Архитектура

Рисунок 1 - Архитектура AllegroGraph
Рисунок 2 - основные блоки AllegroGraph

AllegroGraph основана на архитектуре(см. рисунок 1) REST. Поддерживаются адаптеры для различных языков, таких как Sesame Java, Sesame Jena, Python с использованием Sesame и Lisp (фрейморки). Есть адаптеры свободного доступа для проектов на языках C#, Ruby, Clojure, Scala и Perl. На рисунке 2 показаны основные блоки системы. AllegroGraph можно запускать на нескольких серверах в разных местах.

Для очень больших наборов данных, которые нецелесообразно хранить в одном репозитории или даже на одном сервере, AllegroGraph имеет функцию FedShard ™, где общие данные разбиваются на фрагменты на основе некоторого классификационного критерия, например, все данные, относящиеся к конкретному пациенту в больница или конкретный клиент в банке. Кроме того, данные базы знаний (например, медицинские знания для больниц) хранятся в одной или нескольких отдельных базах данных. Затем запросы выполняются в федерациях шардов и хранилищах базы знаний. Эта уникальная возможность объединения данных ускоряет результаты для очень сложных запросов в сильно распределенных наборах данных и базах знаний. На рисунке 3 показано, как это работает:

Рисунок 3 - FedShard AllegroGraph

Семантическая сеть

Рисунок 4 - Пример логической схемы хранения данных в AllegroGraph

AllegroGraph представляет собой базу данных. Для хранения самой разной информации, существует несколько способов, регламентированных W3C для Resource Description Framework (RDF). Один из них основывается на использовании триплетов. Триплет - основной ресурс данной базы данных, построенный в форме логического утверждения. Каждый триплет имеет структуру: «субъект — предикат — объект». При наличии множества разных триплетов с различными контекстами существует возможность добавить дополнительный слот для каждого утверждения-триплета, который будет называться по имени графа (см. рисунок 4 и рисунок 5).

В семантических сетях веб-страницы содержат достаточное количество данных для того, чтобы машина смогла управлять ими так же легко, как это сейчас делают люди. Таким образом, AllegroGraph представляет собой высокопроизводительную базу данных для хранения информации и её запрашивания.

Рисунок 5 - Триплеты, соответствующие утверждениям на картинке выше

Блок-схема данных AllegroGraph

Рисунок 6 - Логическая структура AllegroGraph

Основная часть хранилища AllegroGraph состоит из утверждений-триплетов. Исторически сложилось, что каждое утверждение имеет 5 полей:

  • oSubject ("Субъект") (s);
  • oPredicate ("Предикат" или "Свойство") (р);
  • oObject (Объект) (о);
  • oGraph (Граф) (g);
  • oID (id Триплета) (i).

Все s, p, o и g являются строками произвольного размера. Хранить все повторяющиеся строки неэффективно, поэтому для каждой строки существует собственный уникальный номер (так называемый Unique Part Identifier или UPI). Строковой реестр управляет этими строками, а индивидуальные UPI предотвращают дублирование. Для ускорения запросов, AllegroGraph создает индексы, которые содержат утверждения, а также дополнительную информацию. AllegroGraph может также выполнять полнотекстовый поиск (поиск документов, содержащих произвольные сочетания указанных слов) с помощью предиката FREETEXT в утверждениях, используя значения полнотекстовых индексов (FULLTEXT Indexes).

Также, AllegroGraph обеспечивает возможность восстановления удаленных триплетов. На рисунке 6 показана логическая структура AllegroGraph.

AllegroGraph и Сеть

Специализированные типы данных

AllegroGraph поддерживает несколько специализированных типов данных для эффективного хранения и поиска геопространственной и временной информации.

Геопространственные данные

AllegroGraph использует новый механизм (алгоритм) для эффективного хранения и поиска геопространственных данных. Поддерживаются как прямолинейные декартовые системы координат, так и сферические. Координаты в двух измерениях кодируются в одной UPI. После того, как данные были закодированы таким образом, AllegroGraph может быстро выполнять следующие виды запросов:

  • bounding-box: возвращает указатель, который перебирает все триплеты в заданной прямоугольной области;
  • center/radius: возвращает указатель, который перебирает все триплеты в заданной круговой области.

Приложения AllegroGraph также способны быстро определять геопространственные данные, используя метод многоугольников:

  • определяя, лежит ли точка внутри или вне заданного многоугольника;
  • определяя, перекрываются ли два многоугольника;
  • осуществляя поиск всех триплетов, которые лежат внутри заданного многоугольника.

Временные данные

AllegroGraph осуществляет эффективное хранение и поиск следующих временных данных:

  • данные дата/время (datetimes), согласно стандарту ISO8601 в следующем формате: "2008-02-01T00:00:00-08:00";
  • моменты времени: ex:point1, ex:h-hour, ex:when-the-meeting-began, и т.п;
  • интервалы времени: ex:delay-interval (say, from point ex:point1 to ex:h-hour).

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

  • моментами времени и datetimes
  • интервалами времени и datetimes
  • двумя моментами времени
  • двумя интервалами времени
  • моментами времени и интервалами

Программирование с AllegroGraph

AllegroGraph работает с несколькими языками программирования и средами.

  • Java

Клиентский интерфейс Java реализует большинство Sesame и\ Jena интерфейсов для доступа к хранилищам удаленных RDF.

  • Python

API для Python предлагает удобный и эффективный доступ к серверу AllegroGraph на основе приложения Python. Этот API предоставляет методы для создания, запросов и сохранения данных RDF, для управления сохраненными триплетами.

  • HTTP

Веб-разработчики и программисты могут работать с AllegroGraph 4.12.1, используя протокол RESTful HTTP (GET, PUT, POST) для добавления и удаления триплетов, а также для запроса отдельных триплетов.

  • Так же поддерживается язык Lisp.

Конкуренты

Как и у всех компаний в мире и любого программного обеспечения, у Franz Inc с его AllegroGraph сущестувуют свои конкуренты. Ими являются RDF хранилища BigOWLIM, PelletDb, СУБД Neo4J и InfiniteGraph.

Источники

  1. AllegroGraph // Обзор постреляционных СУБД / URL: http://docplayer.ru/29084601-Obzor-postrelyacionnyh-subd-allegrograph.html (дата обращения: 21.06.2020)
  2. AllegroGraph // Wikipedia [2001-2018] / URL: https://en.wikipedia.org/wiki/AllegroGraph (дата обращения: 21.06.2020)
  3. AllegoGraph features // Franz Inc. / URL: https://franz.com/agraph/allegrograph/ (дата обращения: 21.06.2020)

Ссылки