Статьи

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

Графическая база данных и ее экосистема технологий могут дать элегантные, эффективные решения проблем в представлении и обосновании знаний . Чтобы почувствовать вкус этого аргумента, мы должны сначала понять, что такое граф. График — это структура данных. Существует множество типов структур данных графа, но для целей этого поста мы сосредоточимся на типе, который стал известен как граф свойств . Граф свойств обозначает вершины (узлы, точки) и ребра (дуги, линии). Края в графе свойств направлены и помечены / напечатаны (например, «Марко знает Петра»). Как вершины, так и ребра (обычно известные как элементы) могут иметь любое количество пар ключ / значение, связанных с ними. Эти пары ключ / значение называются свойствами. Из этой фундаментальной структуры можно ответить на ряд вопросов и решить проблемы.

Моделирование объектов

Свойство-граф-1
Структура данных графа свойств практически идентична по форме графам объектов объектно-ориентированного программирования. Возьмите коллекцию объектов, удалите их методы, и у вас останется граф свойств. Поля объекта являются либо примитивными, и в каких случаях они служат свойствами, либо они сложны, а в каких случаях служат ссылками на другие объекты. Например, в Java:

1
2
3
4
5
class Person {
  String name;
  Integer age;
  Collection<Person> knows;
}

Свойства name и age — это свойства вершин конкретного экземпляра лица, а свойство know относится к знаком с метками для других людей. Эмиль Эйфрем из Neo Technology придерживается мнения, что графы свойств «удобны для доски», так как они соответствуют семантике современных объектно-ориентированных языков и методам построения диаграмм, используемым разработчиками. Свидетельством этой идеи является проект jo4neo Тейлора Коуэна . В jo4neo элегантно используются аннотации Java, чтобы обеспечить поддержку графов объектов Java базой данных графов Neo4j . Помимо технологических преимуществ, человеческий разум склонен мыслить с точки зрения объектов и их отношений. Таким образом, графики также можно считать «дружественными для человеческого мозга».

Учитывая граф объекта, можно ответить на вопросы о домене. В DSL обхода графа, известном как Gremlin , мы можем задавать вопросы о графе объектов:

01
02
03
04
05
06
07
08
09
10
11
// Who does Marko know?
marko.outE('knows').inV
  
// What are the names of the people that Marko knows?
marko.outE('knows').inV.name
  
// What are the names and ages of the people that Marko knows?
marko.outE('knows').inV.emit{[it.name, it.age]}
  
// Who does Marko know that are 30+ years old?
marko.outE('knows').inV{it.age > 30}

Концептуальное моделирование

Таксономия-1
Из примеров, составляющих модель, могут существовать абстрактные понятия. Например, хотя могут быть экземпляры книг, также могут быть категории, к которым относятся эти книги — например, научная фантастика, техника, романтика и т. Д. График представляет собой гибкую структуру, которая позволяет выразить, что что-то связано с чем-то иначе каким-то образом. Эти вещи могут быть реальными или эфирными. Таким образом, онтологические концепции могут быть представлены вместе с их примерами и соответствующим образом запрашиваться для ответа на вопросы.

1
2
3
4
5
6
7
8
// What are the parent categories of history?
x = []; history.inE('subCategory').outV.aggregate(x).loop(3){!it.equals(literature)}; x
  
// How many descendant categories does fiction have?
c = 0; fiction.outE('subCategory').inV.foreach{c++}.loop(3){true}; c
  
// Is romance at the same depth as history?
c = 0; romance.inE('subCategory').outV.loop(2){c++; !it.equals(literature)}.outE('subCategory').inV.loop(2){c--; !it.equals(history)}; c == 0

Автоматизированное рассуждение

рассуждение-1
От явных объектов, их отношений и их абстрактных категорий могут быть осуществлены процессы рассуждения. Напряжение, которое существует при моделировании графа, состоит в том, что нужно сделать явным (структура) и что вывести через обход (процесс). Компромисс между, как и большей частью вычислений, пространством и временем. Если существует какое-то преимущество от человека до его соавторов, то это единственная надежда получить от этого человека его или ее соавторов. Если, с другой стороны, соавторы должны быть выведены через общие записи, то для определения соавторов вычисляется шаг с несколькими скачками. Рассуждение — это процесс явного неявного выражения. Несколько простых примеров рассуждений представлены ниже с использованием Gremlin.

1
2
3
4
5
6
// Two people who wrote the same book/article/etc. are coauthors
g.V{x = it}.outE('wrote').inV.inE('wrote').outV.except([x])[0].foreach{g.addEdge(null, x, it, 'hasCoauthor')}
  
// People who write literature are authors
author = g.addVertex(); author.type='role'; author.name='author'
g.V.foreach{it.outE('wrote').inV[0].foreach{g.addEdge(null, it, author, 'hasRole')} >> -1}

В приведенных выше примерах вычисляется полный анализ графа для определения всех соавторов и ролей авторов. Однако ничто не мешает оценке алгоритмов локального вывода.

1
2
// Marko's coauthors are those people who wrote the same books/articles/etc. as him
marko.outE('wrote').inV.inE('wrote').outV.except([marko])[0].foreach{g.addEdge(null, x, it, 'hasCoauthor')}

Вывод

Графики полезны для моделирования объектов, их отношений друг с другом и концептуальных структур, в которых они лежат. Из этой явной информации можно оценить алгоритмы запроса и вывода графа, чтобы ответить на вопросы на графе и увеличить плотность явных знаний, содержащихся в графе (т. Е. Увеличить количество вершин и ребер). Этот конкретный шаблон использования графов в значительной степени использовался в мире RDF (представление знаний) и RDFS / OWL (обоснование). Мир RDF / RDFS / OWL ограничен в основном логикой описания (см. Здесь аргумент об обратном). Логика описания — это всего лишь одна часть более широкой области представления и обоснования знаний. Есть множество логик, которыми можно воспользоваться. В появляющемся пространстве графовых баз данных существуют необходимые строительные блоки для поддержки использования других логик. Более того, эти логики в некоторых случаях могут использоваться одновременно в одной и той же графической структуре. К этому моменту приведенный ниже список литературы содержит коллекцию книг, в которых изложены различные логики и идеи, касающиеся разнородных рассуждений. Графовые базы данных обеспечивают зеленое поле, с помощью которого эти идеи могут быть реализованы.

Дальнейшее чтение