Jump to content

Вадалог

Вадалог
Парадигма Логика , Декларативная
Семья Ученый-компьютерщик
Разработано Оксфордский университет , Венский технический университет , Банк Италии

Vadalog — это система для выполнения сложных задач логического рассуждения над графами знаний . Его язык основан на расширении основанного на правилах языка Datalog , Warded Datalog. ± . [1]

Vadalog был разработан исследователями Оксфордского университета и Венского технического университета, а также сотрудниками Банка Италии .

Системы управления графами знаний (KGMS)

[ редактировать ]
Эталонная архитектура КГМС

Система управления графами знаний (KGMS) должна управлять графами знаний , которые включают в себя большие объемы данных в форме фактов и отношений. В целом его можно рассматривать как объединение трех компонентов: [2]

  1. KBMS, то есть система управления базой знаний ,
  2. Большие данные, которые необходимы для обработки больших объемов данных, особенно если учесть, что графы знаний рассматриваются как решение для интеграции нескольких источников данных, как корпоративных, так и общедоступных знаний, которые могут быть интегрированы в большие графы знаний.
  3. (Data) Analytics — это необходимость предоставить доступ к существующим пакетам программного обеспечения для машинного обучения, анализа текста, анализа и визуализации данных и объединить их на одной платформе.

С более технической точки зрения можно выделить некоторые дополнительные требования для определения надлежащего КГМС:

Другие требования могут включать более типичные функции и сервисы СУБД , например, предложенные Коддом. [8]

Система Вадалог

[ редактировать ]

Vadalog предлагает платформу, которая соответствует всем перечисленным выше требованиям KGMS. Он способен выполнять задачи рассуждения на основе правил поверх графиков знаний, а также поддерживает рабочий процесс обработки данных, такой как визуализация данных и машинное обучение. [2]

Задача рассуждения и рекурсия

[ редактировать ]
График циклических зависимостей

Правило — это выражение вида n :− a 1 , ..., an где :

  • a 1 , ..., an атомы тела ,
  • n — атом головы .

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

Самая распространенная форма знаний, принятая за последние десятилетия, была в форме правил, будь то системы, основанные на правилах , системы, основанные на онтологиях , или другие формы, и их обычно можно отразить в графах знаний. [7] Природа графов знаний также делает наличие рекурсии в этих правилах особенно важным аспектом. Рекурсия означает, что одни и те же правила могут вызываться несколько раз, прежде чем будет получен окончательный ответ на задачу рассуждения, и она особенно эффективна, поскольку позволяет делать выводы на основе ранее полученных результатов. Это означает, что система должна обеспечить стратегию, гарантирующую прекращение действия. С технической точки зрения программа является рекурсивной, если граф зависимостей , построенный с применением правил, является циклическим. Самая простая форма рекурсии — это та, при которой заголовок правила также появляется в теле ( саморекурсивные правила ).

Язык запросов

[ редактировать ]

Язык Vadalog позволяет отвечать на логические запросы, которые также включают рекурсию. Он основан на Warded Datalog. ± , который принадлежит журналу данных ± семейство языков, расширяющее Datalog за счет кванторов существования в заголовках правил. [9] и в то же время ограничивает его синтаксис, чтобы добиться разрешимости и управляемости . [10] [11] Экзистенциальные правила также известны как зависимости, генерирующие кортежи ( tgds ). [12]

Экзистенциальное правило имеет следующую форму:

или, альтернативно, в синтаксисе Datalog это можно записать следующим образом:

п  (  Икс  ,  Z  )   :-   р  (  Икс  ). 

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

Защищенный журнал данных ±

[ редактировать ]

В случае набора правил , состоящий из следующего:

р  (  Икс  ,  Y  )   :-   п  (  Икс  ).  п  (  Z  )   :-   р  (  Икс  ,  Z  ). 

переменная Z во втором правиле считается опасной, поскольку первое правило будет генерировать ноль во втором члене атома r , и это будет введено во второе правило для получения атома p, что приведет к распространению нулей при попытке найти ответ на программу. Если разрешено произвольное распространение, рассуждения неразрешимы, и программа будет бесконечной. [7] Защищенный журнал данных ± решает эту проблему, требуя, чтобы для каждого правила, определенного в наборе , все переменные в телах правил должны сосуществовать хотя бы в одном атоме в голове, называемом подопечным. Концепция защиты ограничивает возможности использования опасной переменной внутри программы. Несмотря на то, что это предел с точки зрения выразительной мощности, с учетом этого требования и благодаря своей архитектуре и алгоритмам завершения , Warded Datalog ± способен найти ответы на программу за конечное число шагов. Он также демонстрирует хороший компромисс между вычислительной сложностью и выразительной силой, фиксируя сложность данных PTIME , позволяя при этом онтологические рассуждения и возможность запуска программ с рекурсией. [13]

Расширение Вадалог

[ редактировать ]

Vadalog полностью копирует Warded Datalog ± и расширяет его включением в язык:

  • монотонные агрегации ( операторы min, max, sum, prod, count ), [14]
  • многослойное отрицание ,
  • поддержка различных типов данных ( строки, целые числа, двойные значения, дата, логические значения, наборы, списки, отмеченные нули),
  • богатый механизм аннотаций, позволяющий определить, как взаимодействовать с источниками данных и внешними библиотеками.

Кроме того, система имеет высокотехнологичную архитектуру, обеспечивающую эффективные вычисления. Это делается следующими двумя способами.

  1. Принятие архитектуры обработки в памяти и подхода на основе потока извлечения , который ограничивает потребление памяти или делает его предсказуемым.
  2. Использование агрессивной стратегии контроля завершения , которая обнаруживает закономерности и избыточность при построении графа преследования (используемого для генерации ответов) как можно раньше и прекращает вычисления, когда они происходят. [7] Это связано с концепцией изоморфизма фактов, которая уменьшает количество шагов, необходимых для получения ответа: если факт h изоморфен h' , система будет исследовать только граф преследования факта h . [15]

Таким образом, система Vadalog способна выполнять задачи онтологического рассуждения, поскольку она принадлежит к семейству Datalog . Рассуждения с помощью логического ядра Vadalog захватывают OWL 2 QL и SPARQL. [16] (за счет использования кванторов существования) и графовой аналитики (за счет поддержки рекурсии и агрегации). Декларативная природа языка делает код простым для чтения и управляемым. [12]

Пример задачи онтологического рассуждения

[ редактировать ]

Рассмотрим следующий набор правил Vadalog:

предок  (  Y  ,  X  )   :-   человек  (  X  ).  предок  (  Y  ,  Z  )   :-   предок  (  Y  ,  X  ),   родитель  (  X  ,  Z  ). 

Первое правило гласит, что для каждого человека существует предок . Второе правило гласит, что если является родителем , затем является предком слишком. Обратите внимание на экзистенциальную квантификацию в первой позиции предиката предка в первом правиле, которая генерирует нулевое значение ν i в процедуре поиска. Такое значение null затем передается в начало второго правила. Рассмотрим базу данных D = {person(Alice), person(Bob), parent(Alice,Bob)} с экстенсиональными фактами и запросом нахождения всех вытекающих из этого фактов-предков в качестве задачи рассуждения.

Выполняя процедуру преследования, факт ancestor1,Alice) генерируется путем запуска первого правила на person(Alice). Затем, ancestor1,Bob) создается путем активации второго правила на ancestor1,Alice) и parent(Alice,Bob). Наконец, первое правило может сработать person(Bob), но результирующий факт ancestor2,Bob) изоморфен ancestor1,Bob), таким образом, этот факт не генерируется и соответствующая часть графа преследования не исследуется.

В заключение ответом на запрос является совокупность фактов. {ancestor1,Alice), ancestor1,Bob)}.

Дополнительные возможности

[ редактировать ]

Интеграция Vadalog с инструментами обработки данных достигается посредством примитивов и функций привязки данных . [7]

  1. Примитивы привязки данных : привязки позволяют подключаться к внешним источникам данных или системам, таким как база данных, платформа или библиотека, и сообщать системе, как с ними обращаться. Сюда входят соединения с системами реляционных баз данных, такими как PostgreSQL или MySQL , и графовыми базами данных, такими как Neo4j . Также можно интегрировать библиотеки машинного обучения ( Weka , scikit-learn , Tensorflow ) и инструмент извлечения веб-данных OXPath, который позволяет извлекать данные непосредственно из Интернета. Это возможно благодаря так называемым аннотациям: это особые факты , которые дополняют наборы экзистенциальных правил конкретным поведением. @input аннотация сообщает системе, что факты для атома программы импортируются из внешнего источника данных, например, из реляционной базы данных. @output аннотация указывает, что факты для атома программы будут экспортированы во внешнюю цель, например, в стандартный вывод или в реляционную базу данных. Другие аннотации, такие как @bind, @mapping, @qbind позволяют настраивать источники данных для @input аннотация или цели для @output аннотация.
  2. Функции : также могут поддерживаться пользовательские выражения, в которых используются арифметические операторы, манипуляции со строками или сравнение. Библиотеки, написанные на Python, также доступны, и их можно интегрировать со специальной аннотацией. @library.

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

Варианты использования

[ редактировать ]

Систему Vadalog можно использовать для решения многих реальных задач из различных областей исследований и промышленности. [3] Среди последних в этом разделе представлены два важных и доступных случая, относящихся к финансовой сфере. [17] [18] [19]

Контроль компании

[ редактировать ]

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

  • компания X напрямую контролирует компанию Y, если X напрямую владеет более чем 50% общего капитала Y ,
  • компания X косвенно контролирует компанию Y, если X контролирует набор компаний-посредников, которые совместно (т. е. суммируя свои акции) владеют более чем 50% Y. компании

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

контроль  (  X  ,  X  )   :-   компания  (  X  ).  контроль  (  X  ,  Y  )   :-   контроль  (  X  ,  Y  ),   собственный  (  Y  ,  Z  ,  W  ),   V   =   сумма  (  W  ,  <  Y  >  ),   V   >   0,5  . 

Первое правило гласит, что каждая компания контролирует себя. Второе правило определяет контроль над Z путем суммирования акций Z, принадлежащих компаниям Y , над всеми компаниями Y, контролируемыми X. X

[ редактировать ]

Этот сценарий заключается в определении того, существует ли связь между двумя объектами в графе собственности компании. Определение наличия таких связей актуально, например, при банковском надзоре и оценке кредитоспособности, поскольку компания не может выступать в качестве гаранта по кредитам, предоставленным другой компании, если они связаны такими отношениями. Формально две компании X и Y находятся в тесной связи, если:

  • x (соответственно Y ) владеет прямо или косвенно 20% или более акций Y (соответственно X ), или
  • общая третья сторона Z прямо или косвенно владеет 20% или более акций как X, и Y. так

Эти правила можно записать в программе Vadalog, которая будет получать все близкие ребра связей, как показано ниже:

mcl  (  X  ,  Y  ,  S  )   :-   собственный  (  X  ,  Y  ,  S  ).  mcl  (  X  ,  Z  ,  S1   *   S2  )   :-   mc1  (  X  ,  Y  ,  S1  ),   свой  (  Y  ,  Z  ,  S2  ).  cl1  (  X  ,  Y  )   :-   mcl  (  X  ,  Y  ,  S  ),   TS   =   сумма  (  S  ),   TS   >   0,2  .  cl2  (  X  ,  Y  )   :-   cl1  (  Z  ,  X  ),   cl1  (  Z  ,  Y  ),   X   !  =   Ю.  closelink  (  X  ,  Y  )   : -   cl1  (  X  ,  Y  ).  closelink  (  X  ,  Y  )   : -   cl2  (  X  ,  Y  ). 

Первое правило гласит, что две компании X и Y , связанные преимуществом владения, являются возможными тесными связями. Второе правило гласит, что если X и Y — возможные тесные связи с долей S1 и существует граница владения от Y к компании Z с долей S2 , то также X и Z — возможные тесные связи с долей S1 * S2. . Третье правило гласит, что если сумма всех частичных акций S компании Y, принадлежащих прямо или косвенно X , превышает или равна 20% собственного капитала Y , то они являются тесными связями согласно первому определению. Четвертое правило моделирует второе определение тесных связей, т.е. случай третьей стороны.

См. также

[ редактировать ]
  1. ^ Белломарини, Луиджи; Саллинджер, Эмануэль; Готтлоб, Георг (01 мая 2018 г.). «Система Vadalog: обоснование графов знаний на основе журналов данных» . Труды Фонда VLDB . 11 (9): 975–987. дои : 10.14778/3213880.3213888 . ISSN   2150-8097 . S2CID   49300741 .
  2. ^ Перейти обратно: а б с Белломарини, Луиджи; Готтлоб, Георг; Пиерис, Андреас; Саллинджер, Эмануэль (2018). «Быстрая логика для больших данных и графиков знаний» (PDF) . В Тхоа, Мин; Беллатрече, Ладжел; Биффл, Стефан; ван Леувен, Ян; Видерманн, Иржи (ред.). СОФСЭМ 2018: Теория и практика информатики . Конспекты лекций по информатике. Том. 10706. Чам: Springer International Publishing. стр. 3–16. дои : 10.1007/978-3-319-73117-9_1 . ISBN  978-3-319-73117-9 . S2CID   3193327 .
  3. ^ Перейти обратно: а б Белломарини, Луиджи; Фахури, Даниэле; Готтлоб, Георг; Саллинджер, Эмануэль (2019). «Графы знаний и корпоративный искусственный интеллект: перспективы передовой технологии» . 35-я Международная конференция по инженерии данных (ICDE) , IEEE, 2019 г. Макао, Макао: IEEE. стр. 26–37. дои : 10.1109/ICDE.2019.00011 . ISBN  978-1-5386-7474-1 . S2CID   174818761 .
  4. ^ Данцин, Евгений; Эйтер, Томас; Готтлоб, Георг; Воронков, Андрей (01 сентября 2001 г.). «Сложность и выразительная сила логического программирования» . Обзоры вычислительной техники ACM . 33 (3): 374–425. дои : 10.1145/502807.502810 . ISSN   0360-0300 .
  5. ^ Константину, Николаос; Келер, Мартин; Абель, Эдвард; Цивили, Кристина; Ноймайр, Бернд; Саллинджер, Эмануэль; Фернандес, Альваро А.А.; Готтлоб, Георг; Кин, Джон А.; Либкин, Леонид; Патон, Норман В. (9 мая 2017 г.). «Архитектура VADA для экономичной обработки данных» . Материалы Международной конференции ACM по управлению данными 2017 г. (PDF) . СИГМОД '17. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1599–1602. дои : 10.1145/3035918.3058730 . hdl : 20.500.11820/36295a10-0b57-48a8-82ac-19d856815a89 . ISBN  978-1-4503-4197-4 . S2CID   11521729 .
  6. ^ Кали, Андреа; Готтлоб, Георг; Пиерис, Андреас (1 декабря 2012 г.). «На пути к более выразительным языкам онтологии: проблема ответа на запрос» . Искусственный интеллект . 193 : 87–128. дои : 10.1016/j.artint.2012.08.002 . ISSN   0004-3702 .
  7. ^ Перейти обратно: а б с д и Белломарини, Луиджи; Файзрахманов Руслан Р.; Готтлоб, Георг; Кравченко Андрей; Лауренца, Элеонора; Ненов, Явор; Райсфельдер, Стефан; Саллинджер, Эмануэль; Шерхонов, Евгений; Ву, Ляньлун (23 июля 2018 г.). «Наука о данных с Vadalog: соединение машинного обучения и рассуждений». arXiv : 1807.08712 [ cs.DB ].
  8. ^ Коннолли, Томас М.; Бегг, Кэролайн Э. (2014). Системы баз данных - практический подход к реализации дизайна и управлению (6-е изд.) (6-е изд.). Пирсон. ISBN  978-1292061184 .
  9. ^ Кали, Андреа; Готтлоб, Георг; Лукасевич, Томас (1 июля 2012 г.). «Общая структура на основе журнала данных для удобного ответа на запросы по онтологиям» . Журнал веб-семантики . Специальный выпуск, посвященный борьбе с беспорядком в сети данных. 14 : 57–83. дои : 10.1016/j.websem.2012.03.001 . ISSN   1570-8268 .
  10. ^ Абитбул, Серж; Халл, Ричард; Виану, Виктор (1995). Основы баз данных: логический уровень (1-е изд.). Addison-Wesley Longman Publishing Co., Inc. США: ISBN  978-0-201-53771-0 .
  11. ^ Кали, Андреа; Готтлоб, Георг; Лукасевич, Томас; Марнетт, Бруно; Пиерис, Андреас (2010). «Журнал данных +/-: семейство языков логического представления знаний и языков запросов для новых приложений» . 2010 25-й ежегодный симпозиум IEEE по логике в информатике . стр. 228–242. дои : 10.1109/LICS.2010.27 . ISBN  978-1-4244-7588-9 . S2CID   16829529 .
  12. ^ Перейти обратно: а б Белломарини, Луиджи; Файзрахманов Руслан Р.; Готтлоб, Георг; и др. (апрель 2022 г.). «Наука о данных с Vadalog: графики знаний с машинным обучением и рассуждениями на практике» . Компьютерные системы будущего поколения . 129 : 407–422. дои : 10.1016/j.future.2021.10.021 . ISSN   0167-739X . S2CID   243885469 .
  13. ^ Белломарини, Луиджи; Бенедетто, Давиде; Готтлоб, Георг; Саллинджер, Эмануэль (01 марта 2022 г.). «Vadalog: Современная архитектура для автоматизированных рассуждений с большими графами знаний» . Информационные системы . 105 : 101528. doi : 10.1016/j.is.2020.101528 . ISSN   0306-4379 . S2CID   218964910 .
  14. ^ Шкапский, Александр; Ян, Мохан; Заньоло, Карло (2015). «Оптимизация рекурсивных запросов с монотонными агрегатами в DeALS» . 31-я Международная конференция IEEE по инженерии данных , 2015 г. стр. 867–878. дои : 10.1109/ICDE.2015.7113340 . ISBN  978-1-4799-7964-6 . S2CID   5345997 .
  15. ^ Белломарини, Луиджи; Лауренца, Элеонора; Саллинджер, Эмануэль; Шерхонов, Евгений (2020). «Рассуждения в условиях неопределенности в графах знаний» . В Гутьеррес-Басульто, Виктор; Клигр, Томаш; Сойлу, Ахмет; Гизе, Мартин; Роман, Дмитрий (ред.). Правила и рассуждения . Конспекты лекций по информатике. Том. 12173. Чам: Springer International Publishing. стр. 131–139. дои : 10.1007/978-3-030-57977-7_9 . ISBN  978-3-030-57977-7 . S2CID   221193385 .
  16. ^ Готтлоб, Г.; Пиерис, Андреас (2015). «За пределами SPARQL в соответствии с режимом ограничения QL OWL 2: правила спасения». ИДЖКАИ . S2CID   6980701 .
  17. ^ Ацени, Паоло; Белломарини, Луиджи; Иецци, Микела; Саллинджер, Эмануэль; Влад, Адриано. «Графики знаний ткацкого предприятия: пример графиков собственности компаний» (PDF) . ЭДБТ : 555--566.
  18. ^ Ацени, Паоло; Белломарини, Луиджи; Иецци, Микела; Саллинджер, Эмануэль; Влад, Адриано (2020). «Расширение графов знаний на основе логики: пример графов компаний» (PDF) . Kr4L@ Ecai : 22--27.
  19. ^ Бальдацци, Теодоро; Бенедетто, Давиде; Брандетти, Маттео; Влад, Адриано; Белломарини, Луиджи; Саллинджер, Эмануэль (2022). «Рассуждения на основе журналов данных с использованием эвристики на основе графов знаний» (PDF) . Международный семинар Datalog 2.0 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c8cc91cd6baca73c92c9662ea37e3048__1716422220
URL1:https://arc.ask3.ru/arc/aa/c8/48/c8cc91cd6baca73c92c9662ea37e3048.html
Заголовок, (Title) документа по адресу, URL1:
Vadalog - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)