Вадалог
Парадигма | Логика , Декларативная |
---|---|
Семья | Ученый-компьютерщик |
Разработано | Оксфордский университет , Венский технический университет , Банк Италии |
Vadalog — это система для выполнения сложных логических задач на основе графов знаний . Его язык основан на расширении основанного на правилах языка Datalog , Warded Datalog. ± . [1]
Vadalog был разработан исследователями Оксфордского университета и Венского технического университета, а также сотрудниками Банка Италии .
Системы управления графами знаний (KGMS)
[ редактировать ]Система управления графами знаний (KGMS) должна управлять графами знаний , которые включают в себя большие объемы данных в форме фактов и отношений. В целом его можно рассматривать как объединение трех компонентов: [2]
- KBMS, то есть система управления базой знаний ,
- Большие данные, которые необходимы для обработки больших объемов данных, особенно если учесть, что графы знаний рассматриваются как решение для интеграции нескольких источников данных, как корпоративных, так и общедоступных знаний, которые могут быть интегрированы в большие графы знаний.
- (Data) Analytics — это необходимость предоставить доступ к существующим пакетам программного обеспечения для машинного обучения, анализа текста, анализа и визуализации данных и объединить их на одной платформе.
С более технической точки зрения можно выделить некоторые дополнительные требования для определения надлежащего КГМС:
- определение языка и формализма с высокой выразительной силой , [3] [4]
- экономичная обработка данных на всех этапах: от очистки данных до извлечения веб-данных и доступа к большим данным из множества различных источников, [5]
- эффективные логические , вероятностные и онтологические рассуждения, [6] [2]
- низкая сложность, как с точки зрения пространственной сложности (для обработки больших данных), так и с точки зрения синтаксиса,
- интерфейсы ( API ) для доступа ко многим разнородным источникам данных, таким как корпоративные СУБД , хранилища NoSQL или RDF , Интернет, пакеты машинного обучения и аналитики. [7]
Другие требования могут включать более типичные функции и сервисы СУБД , например, предложенные Коддом. [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 это можно записать следующим образом:
p(X,Z) :- r(X).
Переменные в Vadalog подобны переменным в логике первого порядка , и переменная является локальной по отношению к правилу, в котором она встречается. Это означает, что появление одного и того же имени переменной в разных правилах относится к разным переменным.
Защищенный журнал данных ±
[ редактировать ]В случае набора правил , состоящий из следующего:
r(X,Y) :- p(X).
p(Z) :- r(X,Z).
переменная Z во втором правиле считается опасной, поскольку первое правило будет генерировать ноль во втором члене атома r , и это будет введено во второе правило для получения атома p, что приведет к распространению нулей при попытке найти ответ на программу. Если разрешено произвольное распространение, рассуждения неразрешимы, и программа будет бесконечной. [7] Защищенный журнал данных ± решает эту проблему, требуя, чтобы для каждого правила, определенного в наборе , все переменные в телах правил должны сосуществовать хотя бы в одном атоме в голове, называемом подопечным. Концепция защиты ограничивает возможности использования опасной переменной внутри программы. Несмотря на то, что это предел с точки зрения выразительной мощности, с учетом этого требования и благодаря своей архитектуре и алгоритмам завершения , Warded Datalog ± способен найти ответы на программу за конечное число шагов. Он также демонстрирует хороший компромисс между вычислительной сложностью и выразительной силой, фиксируя сложность данных PTIME , позволяя при этом онтологические рассуждения и возможность запуска программ с рекурсией. [13]
Расширение Вадалог
[ редактировать ]Vadalog полностью копирует Warded Datalog ± и расширяет его включением в язык:
- монотонные агрегации ( операторы min, max, sum, prod, count ), [14]
- многослойное отрицание ,
- поддержка различных типов данных ( строки, целые числа, двойные значения, дата, логические значения, наборы, списки, отмеченные нули),
- богатый механизм аннотаций, позволяющий определить, как взаимодействовать с источниками данных и внешними библиотеками.
Кроме того, система имеет высокотехнологичную архитектуру, обеспечивающую эффективные вычисления. Это делается следующими двумя способами.
- Принятие архитектуры обработки в памяти и подхода на основе потока извлечения , который ограничивает потребление памяти или делает его предсказуемым.
- Использование агрессивной стратегии контроля завершения , которая обнаруживает закономерности и избыточность при построении графа преследования (используемого для генерации ответов) как можно раньше и прекращает вычисления, когда они происходят. [7] Это связано с концепцией изоморфизма фактов, которая уменьшает количество шагов, необходимых для получения ответа: если факт h изоморфен h' , система будет исследовать только граф преследования факта h . [15]
Таким образом, система Vadalog способна выполнять задачи онтологического рассуждения, поскольку она принадлежит к семейству Datalog . Рассуждения с помощью логического ядра Vadalog захватывают OWL 2 QL и SPARQL. [16] (за счет использования кванторов существования) и графовой аналитики (за счет поддержки рекурсии и агрегации). Декларативная природа языка делает код простым для чтения и управляемым. [12]
Пример задачи онтологического рассуждения
[ редактировать ]Рассмотрим следующий набор правил Vadalog:
ancestor(Y,X) :- person(X).
ancestor(Y,Z) :- ancestor(Y,X), parent(X,Z).
Первое правило гласит, что для каждого человека существует предок . Второе правило гласит, что если является родителем , затем является предком слишком. Обратите внимание на экзистенциальную квантификацию в первой позиции предиката предка в первом правиле, которая генерирует нулевое значение ν i в процедуре поиска. Такое значение null затем передается в начало второго правила. Рассмотрим базу данных D = {person(Alice), person(Bob), parent(Alice,Bob)}
с экстенсиональными фактами и запросом нахождения всех вытекающих из этого фактов-предков в качестве задачи рассуждения.
Выполняя процедуру преследования, факт ancestor(ν1,Alice)
генерируется путем запуска первого правила на person(Alice)
. Затем, ancestor(ν1,Bob)
создается путем активации второго правила на ancestor(ν1,Alice)
и parent(Alice,Bob)
. Наконец, первое правило может сработать person(Bob)
, но результирующий факт ancestor(ν2,Bob)
изоморфен ancestor(ν1,Bob)
, таким образом, этот факт не генерируется и соответствующая часть графа преследования не исследуется.
В заключение ответом на запрос является совокупность фактов. {ancestor(ν1,Alice), ancestor(ν1,Bob)}
.
Дополнительные возможности
[ редактировать ]Интеграция Vadalog с инструментами обработки данных достигается посредством примитивов и функций привязки данных . [7]
- Примитивы привязки данных : привязки позволяют подключаться к внешним источникам данных или системам, таким как база данных, платформа или библиотека, и сообщать системе, как с ними обращаться. Сюда входят соединения с системами реляционных баз данных, такими как PostgreSQL или MySQL , и графовыми базами данных, такими как Neo4j . Также можно интегрировать библиотеки машинного обучения ( Weka , scikit-learn , Tensorflow ) и инструмент извлечения веб-данных OXPath, который позволяет извлекать данные непосредственно из Интернета. Это возможно благодаря так называемым аннотациям: это особые факты , которые дополняют наборы экзистенциальных правил конкретным поведением.
@input
аннотация сообщает системе, что факты для атома программы импортируются из внешнего источника данных, например, из реляционной базы данных.@output
аннотация указывает, что факты для атома программы будут экспортированы во внешнюю цель, например, в стандартный вывод или в реляционную базу данных. Другие аннотации, такие как@bind
,@mapping
,@qbind
позволяют настраивать источники данных для@input
аннотация или цели для@output
аннотация. - Функции : также могут поддерживаться пользовательские выражения, в которых используются арифметические операторы, манипуляции со строками или сравнение. Библиотеки, написанные на Python, также доступны, и их можно интегрировать со специальной аннотацией.
@library
.
Система также обеспечивает интеграцию с платформой JupyterLab , где можно писать и запускать программы Vadalog, а выходные данные можно считывать, используя функциональные возможности платформы. Это также дает возможность оценить корректность программы, запустить ее и проанализировать процесс получения выходных фактов с помощью таких инструментов, как подсветка синтаксиса , анализ кода (проверка корректности кода или наличия ошибок) и пояснения результатов ( как получен результат): весь этот функционал заложен в блокнот и помогает в написании и анализе кода Vadalog.
Варианты использования
[ редактировать ]Систему Vadalog можно использовать для решения многих реальных задач из различных областей исследований и промышленности. [3] Среди последних в этом разделе представлены два важных и доступных случая, относящихся к финансовой сфере. [17] [18] [19]
Контроль компании
[ редактировать ]Граф владения компанией показывает объекты как узлы, а акции как ребра. Когда предприятие имеет определенное количество акций другого предприятия (обычно идентифицируемое как абсолютное большинство), оно может оказывать право принятия решений в отношении этого предприятия, и это формирует контроль над компанией и, в более общем плане, структуру группы. Поиск всех отношений контроля требует исследования различных сценариев и очень сложных групповых структур, а именно прямого и косвенного контроля. Этот запрос можно перевести в следующие правила:
- компания X напрямую контролирует компанию Y, если X напрямую владеет более чем 50% общего капитала Y ,
- компания X косвенно контролирует компанию Y, если X контролирует набор компаний-посредников, которые совместно (т. е. суммируя свои акции) владеют более чем 50% Y. компании
Эти правила можно записать в программе Vadalog, которая будет получать все управляющие фронты, как показано ниже:
control(X,X) :- company(X).
control(X,Y) :- control(X,Y), own(Y,Z,W), V = sum(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) :- own(X,Y,S).
mcl(X,Z,S1 * S2) :- mc1(X,Y,S1), own(Y,Z,S2).
cl1(X,Y) :- mcl(X,Y,S), TS = sum(S), TS > 0.2.
cl2(X,Y) :- cl1(Z,X), cl1(Z,Y), X != Y.
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 , то они являются тесными связями согласно первому определению. Четвертое правило моделирует второе определение тесных связей, т.е. случай третьей стороны.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Белломарини, Луиджи; Саллинджер, Эмануэль; Готтлоб, Георг (01 мая 2018 г.). «Система Vadalog: обоснование графов знаний на основе журналов данных» . Труды Фонда VLDB . 11 (9): 975–987. дои : 10.14778/3213880.3213888 . ISSN 2150-8097 . S2CID 49300741 .
- ^ Jump up to: а б с Белломарини, Луиджи; Готтлоб, Георг; Пиерис, Андреас; Саллинджер, Эмануэль (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 .
- ^ Jump up to: а б Белломарини, Луиджи; Фахури, Даниэле; Готтлоб, Георг; Саллинджер, Эмануэль (2019). «Графы знаний и корпоративный искусственный интеллект: перспективы передовой технологии» . 35-я Международная конференция по инженерии данных (ICDE) , IEEE, 2019 г. Макао, Макао: IEEE. стр. 26–37. дои : 10.1109/ICDE.2019.00011 . ISBN 978-1-5386-7474-1 . S2CID 174818761 .
- ^ Данцин, Евгений; Эйтер, Томас; Готтлоб, Георг; Воронков, Андрей (01 сентября 2001 г.). «Сложность и выразительная сила логического программирования» . Обзоры вычислительной техники ACM . 33 (3): 374–425. дои : 10.1145/502807.502810 . ISSN 0360-0300 .
- ^ Константину, Николаос; Келер, Мартин; Абель, Эдвард; Цивили, Кристина; Ноймайр, Бернд; Саллинджер, Эмануэль; Фернандес, Альваро А.А.; Готтлоб, Георг; Кин, Джон А.; Либкин, Леонид; Патон, Норман В. (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 .
- ^ Кали, Андреа; Готтлоб, Георг; Пиерис, Андреас (1 декабря 2012 г.). «На пути к более выразительным языкам онтологии: проблема ответа на запрос» . Искусственный интеллект . 193 : 87–128. дои : 10.1016/j.artint.2012.08.002 . ISSN 0004-3702 .
- ^ Jump up to: а б с д и Белломарини, Луиджи; Файзрахманов Руслан Р.; Готтлоб, Джордж; Кравченко, Андрей; Лоуренс, Элеонора; Ненов, Явор; Райсфельдер, Стивен; Саллинджер, Эмануэль; Шерхонов, Евгений; Ву, Ляньлун (23 июля 2018 г.). «Наука о данных с Vadalog: соединение машинного обучения и рассуждений» arXiv : 1807.08712 [ cs.DB ].
- ^ Коннолли, Томас М.; Бегг, Кэролайн Э. (2014). Системы баз данных - практический подход к реализации дизайна и управлению (6-е изд.) (6-е изд.). Пирсон. ISBN 978-1292061184 .
- ^ Кали, Андреа; Готтлоб, Георг; Лукасевич, Томас (1 июля 2012 г.). «Общая структура на основе журнала данных для удобного ответа на запросы по онтологиям» . Журнал веб-семантики . Специальный выпуск, посвященный борьбе с беспорядком в сети данных. 14 : 57–83. дои : 10.1016/j.websem.2012.03.001 . ISSN 1570-8268 .
- ^ Абитбул, Серж; Халл, Ричард; Виану, Виктор (1995). Основы баз данных: логический уровень (1-е изд.). Addison-Wesley Longman Publishing Co., Inc. США: ISBN 978-0-201-53771-0 .
- ^ Кали, Андреа; Готтлоб, Георг; Лукасевич, Томас; Марнетт, Бруно; Пиерис, Андреас (2010). «Журнал данных +/-: семейство языков логического представления знаний и языков запросов для новых приложений» . 2010 25-й ежегодный симпозиум IEEE по логике в информатике . стр. 228–242. дои : 10.1109/LICS.2010.27 . ISBN 978-1-4244-7588-9 . S2CID 16829529 .
- ^ Jump up to: а б Белломарини, Луиджи; Файзрахманов Руслан Р.; Готтлоб, Георг; и др. (апрель 2022 г.). «Наука о данных с Vadalog: графики знаний с машинным обучением и рассуждениями на практике» . Компьютерные системы будущего поколения . 129 : 407–422. дои : 10.1016/j.future.2021.10.021 . ISSN 0167-739X . S2CID 243885469 .
- ^ Белломарини, Луиджи; Бенедетто, Давиде; Готтлоб, Георг; Саллинджер, Эмануэль (01 марта 2022 г.). «Vadalog: Современная архитектура для автоматизированных рассуждений с большими графами знаний» . Информационные системы . 105 : 101528. doi : 10.1016/j.is.2020.101528 . ISSN 0306-4379 . S2CID 218964910 .
- ^ Шкапский, Александр; Ян, Мохан; Заньоло, Карло (2015). «Оптимизация рекурсивных запросов с монотонными агрегатами в DeALS» . 2015 31-я Международная конференция IEEE по инженерии данных . стр. 867–878. дои : 10.1109/ICDE.2015.7113340 . ISBN 978-1-4799-7964-6 . S2CID 5345997 .
- ^ Белломарини, Луиджи; Лауренца, Элеонора; Саллинджер, Эмануэль; Шерхонов, Евгений (2020). «Рассуждения в условиях неопределенности в графах знаний» . В Гутьеррес-Басульто, Виктор; Клигр, Томаш; Сойлу, Ахмет; Гизе, Мартин; Роман, Дмитрий (ред.). Правила и рассуждения . Конспекты лекций по информатике. Том. 12173. Чам: Springer International Publishing. стр. 131–139. дои : 10.1007/978-3-030-57977-7_9 . ISBN 978-3-030-57977-7 . S2CID 221193385 .
- ^ Готтлоб, Г.; Пиерис, Андреас (2015). «За пределами SPARQL в соответствии с режимом ограничения QL OWL 2: правила спасения». ИДЖКАИ . S2CID 6980701 .
- ^ Ацени, Паоло; Белломарини, Луиджи; Иецци, Микела; Саллинджер, Эмануэль; Влад, Адриано. «Графики знаний ткацкого предприятия: пример графиков собственности компаний» (PDF) . ЭДБТ : 555--566.
- ^ Ацени, Паоло; Белломарини, Луиджи; Иецци, Микела; Саллинджер, Эмануэль; Влад, Адриано (2020). «Расширение графов знаний на основе логики: пример графов компаний» (PDF) . Kr4L@ Ecai : 22--27.
- ^ Бальдацци, Теодоро; Бенедетто, Давиде; Брандетти, Маттео; Влад, Адриано; Белломарини, Луиджи; Саллинджер, Эмануэль (2022). «Рассуждения на основе журналов данных с использованием эвристики на основе графов знаний» (PDF) . Международный семинар Datalog 2.0 .