?

Log in

No account? Create an account

serge_gorshkov


Сергей Горшков - о бизнесе в сфере ИТ

о семантической интеграции, программировании, управлении...


Previous Entry Share Next Entry
Семейное положение: «все сложно!»
serge_gorshkov
Слова, предназначенные для одного человека, ничего не дадут другому
В. Пелевин, "Т"


Авторы концептуальных моделей часто считают, что выражают единственно верную, правильную, корректную точку зрения на моделируемую систему. Даже если модельер понимает, что что-либо упрощает, или видит не так, как другие – у него нет инструмента для того, чтобы выразить это понимание в модели. Ни методы концептуального моделирования, ни инструментарий семантических технологий, которыми мы пользуемся для представления таких моделей в электронной форме, не дают возможности выразить субъективизм точек зрения. Мы решили исправить этот недостаток сразу на двух уровнях, предложив как методику выделения и формализации субъективных точек зрения, так и средства выражения субъективизма в онтологиях.

Успешно достигнув своей цели, мы получим невиданную доселе информационную систему, способную «переводить с русского на русский» – автоматически конвертировать знания из контекста одного субъекта в контекст другого, работать в условиях полифонии мнений и интересов, не навязывая никому чужой точки зрения. Эта задача кажется нам крайне актуальной.

Начнем рассказ с описания модели, на которой будем приводить все примеры. Нет ничего более подверженного субъективизму и множественным интерпретациям, чем личные отношения между людьми. Познакомьтесь с одним семейством: Мария Троицкая давно живет вместе со своим любимым человеком, Алексеем Воронцовым, и даже имеет от него дочь Ольгу. Вот только Алексей предпринимает героические усилия, чтобы не регистрировать свой брак в ЗАГСе… Что ж, бывает. В этом месте нашего рассказа, готов поспорить, у разных читателей уже возникли весьма разные оценки описанной ситуации :)



Разные мнения возникают и у самих наших героев, и у тех, кто смотрит на них со стороны.

2.png

Для подруги Марии может быть истинным утверждение о том, что «Маша замужем», а для сотрудника любого государственного учреждения, куда Мария обратится по какому-нибудь поводу, она будет одинокой матерью. Научившись отображать такие факты в модели, мы получим возможность видеть одни и те же объекты и явления с разных сторон, свободно переключаться между разными контекстами и точками зрения, видеть между ними различия и совпадения. Забегая чуть вперед, покажем два графа отношений Марии Троицкой с двух разных точек зрения, которые выводит наш программный продукт АрхиГраф.СУЗ. В бытовом контексте отношения Марии выглядят так:

3.png

В законодательном контексте граф будет другим:

4.png

Как же реализовать представление разных точек зрения в модели? Сначала поговорим о том, откуда вообще берется субъективизм и разные точки зрения на одни и те же объекты и системы. Нам кажется существенным следующее разделение:


  1. Существуют контексты, общепринятые в какой-либо области деятельности, или актуальные для большой группы людей. Примером такого контекста может быть законодательство: описывая отношения между людьми, оно применяет определенный набор понятий (терминов, концептов), отличный от того, который мы используем в повседневной жизни. Такие контексты представляют собой целые системы взглядов на фрагменты мира.

  2. Частная точка зрения может быть актуальной для какого-либо конкретного субъекта, либо для группы единомышленников. Например, Мария Троицкая может считать, что она замужем, и даже говорить об этом подругам – однако для Алексея Воронцова это не будет истиной, и любой юрист с ним согласится.


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

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

Рассмотрим последовательно реализацию в моделях обоих типов субъективных взглядов на мир. В начале нашего рассказа мы описали в качестве примера семью, и для читателя очевидно, как выделить в бытовом контексте объект «семья», из кого она состоит. Однако – возможно, вы будете удивлены – в Семейном кодексе РФ отсутствует понятие «семья». Законодательство трактует и использует только бинарные отношения между людьми: муж-жена, ребенок-родитель, но не берется за описание комплексного отношения «семья». Вместе с тем, в отдельных нормативных актах оно все-таки применяется: например, в постановлении, определяющем порядок получения субсидий на жилье молодыми семьями, говорится о том, что молодая семья – это семья, состоящая из как минимум 1 молодого родителя и как минимум 1 ребенка, где возраст каждого из родителей не превышает 30 лет. То есть, в нашем примере Мария Троицкая и Ольга Воронцова образуют «молодую семью». В то же время, с бытовой точки зрения семью образуют Мария Троицкая, Ольга Воронцова и Алексей Воронцов (в отношении Алексея здесь есть нюанс, который мы раскроем далее).

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


  1. Разные контексты выявляют в одних и тех же системах различные типы объектов и типы связей, и используют для их описания разные термины (понятия, концепты).

  2. Частным случаем такого разделения является ситуация, когда один и тот же объект (экстенсионал) называется различными терминами в разных контекстах (используются разные интенсионалы). Например, квартира Марии Троицкой с бытовой точки зрения называется квартирой, а с законодательной – объектом жилой недвижимости.

  3. В разных контекстах может по-разному интерпретироваться конструкция одного и того же объекта, то есть объект может разделяться на составляющие. Например, с точки зрения государственной статистики, в объект типа «домохозяйство» входят только люди, ведущие совместное хозяйство (не обязательно составляющие семью); с бытовой же точки зрения, неотъемлемой частью домохозяйства является и общая жилплощадь – то есть квартира, она же объект жилой недвижимости.


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

  • Понятия (концепты), выражающие типы объектов и связей, которые в нем существуют;

  • Актуальные для него правила получения логических выводов.

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

  • Определяется набор самих контекстов, которые являются объектами специального класса онтологии, то есть содержатся внутри самой модели.

  • Для некоторых классов, свойств-связей и свойств-литералов можно задать принадлежность к контексту.

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

Проиллюстрируем сказанное на примере. Выберем два контекста – «Бытовой» и «Законодательный». Одна часть классов и свойств нашей демонстрационной модели («Персона», «Проживает вместе с») не будет относиться ни к одному контексту – эти определения будем считать универсальными. Другая часть классов и свойств будет принадлежать к определенному контексту: например, класс «Семья» и свойство «Входит в семью» относятся к бытовому контексту, а класс «Молодая семья» и «Входит в молодую семью» – к законодательному. При этом целостность единой модели не разрушается, поскольку «Семья» и «Молодая семья» могут принадлежать к одному надклассу – например, «Социальная группа».
Зададим также правила, по которым будут делаться логические выводы. В нашем примере мы использовали следующие правила:

Правило Контекст
1. Если А состоит в законном браке с Б,
то А является супругом Б.
Законодательный => Общий
2. Еслиявляется родителем Б, или Б является родителем А, или А является супругом Б) и А проживает вместе с Б,
то А является членом семьи Б, и Б является членом семьи А
Общий => Бытовой
3. Для любой группы объектов, связанных между собой свойством «является членом семьи»,
Создается объект типа «Семья», и каждый объект группы входит в состав данной семьи*
Бытовой
4. Если А является родителем Б, и Б имеет возраст менее 18 лет,
то А является законным представителем Б
Общий => Законодательный
5. Если А является родителем Б, и А имеет возраст менее 30 лет, и, возможно, А состоит в браке с В, и В имеет возраст менее 30 лет,
то создается объект типа «Молодая семья», и А, Б и В (при наличии) входят в состав данной молодой семьи.
Общий => Законодательный

* то, как мы формализовали такое правило в онтологии, само по себе интересно, поскольку мощности обычных правил логического вывода для этого недостаточно; об этом мы расскажем в другой статье

Перенеся в онтологию информацию, показанную на первом рисунке этой статьи, и запустив выполнение правил логического вывода, получим модель, дополненную информацией, соответствующей разным контекстам. После этого мы можем просмотреть ее в интерфейсе нашего программного продукта АрхиГраф.СУЗ. Для переключения между контекстами мы добавили в прототип новой версии СУЗ переключатель контекстов и точек зрения:

5.png

Перейдем на страницу информации о Марии Троицкой, и посмотрим на ее связи в бытовом контексте:

6.png

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

7.png

Контексты учитываются и в поисковом интерфейсе АрхиГраф.СУЗ. Например, если мы начнем набирать запрос, связанный с персоной, в бытовом контексте, то увидим один набор подсказок, соответствующий терминологическому аппарату этого контекста, а в законодательном контексте – другой:

8.png

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

9.png

В законодательном контексте тот же объект, имеющий тот же уникальный идентификатор и название, классифицируется по-другому (и заодно имеет другой набор связей):

10.png

Чтобы продемонстрировать, как в разных контекстах меняется конструкция объекта, обратимся к «Домохозяйству Воронцовых». В бытовом контексте в состав домохозяйства входят квартира и три человека, проживающих в ней:

11.png

В законодательном контексте (точнее – с точки зрения органов государственной статистики) домохозяйством будет являться совокупность людей, ведущих общее хозяйство. Обратим внимание на то, что при этом мы описываем конструкцию одного и того же объекта, обладающего уникальным идентификатором!

Но довольно о контекстах. Обратимся к точкам зрения конкретных людей. Как мы помним, разные субъекты имеют разные мнения относительно одних и тех же фактов: Мария Троицкая считает, что является супругой Алексея Воронцова, однако тот не разделяет этого мнения. Для отражения такого когнитивного диссонанса :) в онтологической модели необходимо приписывать точке зрения конкретные факты, а не только типы объектов, связей и правила. Каким образом мы технологически решили эту задачу – пока умолчим; скажем только, что без использования внешних хранилищ метаданных и без нарушения стандартов семантических технологий мы храним в одной модели наборы фактов, истинных как для определенных субъектов, так и в общепринятых контекстах рассмотрения этой модели.

Оба подхода отлично сочетаются между собой, то есть и общепринятые контексты, и частные точки зрения могут быть представлены в одной онтологии. Это имеет и практический смысл: размышляя о своем семейном статусе, Мария как профессиональный юрист может прийти к одному выводу, а как женщина – к другому. Удивительно, но в онтологии можно отразить и это.

Для иллюстрации сказанного, установим переключатель «Точка зрения» в положение «Мария Троицкая» (мы пометили ее в этой онтологии как единственного субъекта, имеющего собственную точку зрения), и посмотрим на свойства Марии:

13.png

Поскольку Мария верит в свой брак с Алексеем, при просмотре в таком режиме мы увидим, что она состоит с ним в браке! Более того – в ее персональном мире будут сделаны и все логические выводы, основанные на этом факте. Например – вывод о том, что она, Алексей и Ольга образуют семью. В других же точках зрения такой вывод сделан не будет, и семья Марии будет состоять только из нее, и ее дочери Ольги.

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

Статья написана в соавторстве с maxstroy

  • 1
Для подруги Марии может быть истинным утверждение о том, что «Маша замужем», а для сотрудника любого государственного учреждения, куда Мария обратится по какому-нибудь поводу, она будет одинокой матерью.

Это дырявая классификация у госучреждения. В Европе давно есть категория "сожительство".

Например, Мария Троицкая может считать, что она замужем, и даже говорить об этом подругам

Это не "разные точки зрения". Это выдача неправильной информации. И возникший на её основе конфликт.

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

Сомнительно.

Если А является родителем Б, и Б имеет возраст менее 18 лет,
то А является законным представителем Б


Нет, конечно. Биологические и юридические связи ортогональны.

Если А является родителем Б, и А имеет возраст менее 30 лет, и, возможно, А состоит в браке с В, и В имеет возраст менее 30 лет,

Нечёткая логика - это то, где можно утонуть. Просто на росте сложности связей.

Интерфейс, конечно, ужасен. Надо работать с графами.

> Это дырявая классификация у госучреждения.

Кстати, то, что в Европе есть законодательное понятие "сожительство", а в России нет - это еще один пример двух разных контекстов.

> Это не "разные точки зрения". Это выдача неправильной информации. И возникший на её основе конфликт.

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

>> Если А является родителем Б, и Б имеет возраст менее 18 лет,
>> то А является законным представителем Б
> Нет, конечно. Биологические и юридические связи ортогональны.

Из того, что они ортогональны, не следует, что они никак между собой не взаимодействуют. Термин "родитель" имеет две ипостаси - биологическую и юридическую. По умолчанию они равны: получив ребенка из роддома, мы автоматически получаем юридические права родителя. Эту ситуацию можно изменить - лишиться родительских прав, или усыновить ребенка, но все такие действия просто подразумевают применение неких цепочек правил, которые изменяют изначальное состояние вещей.

В общем, для демонстрационного примера указанное правило вполне правомерно. Если бы речь шла о настоящей юридической системе, потребовались бы оговорки вроде "... И А не лишен родительских прав решением суда), ИЛИ А является усыновителем Б".

> Интерфейс, конечно, ужасен. Надо работать с графами.

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


Кстати, то, что в Европе есть законодательное понятие "сожительство", а в России нет - это еще один пример двух разных контекстов.

Это разница законодательства. Буржуи пререкрывают в своей модели больше случаев реального мира. В том числе "партнёр 1" и "партнёр 2" вместо "муж" и "жена".

Дело в том, что буржуйская классификация российскую покрывает. По этой причине разговор о полноте, а не о разнице в контекстах.

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

2+2 = 5 - это не альтернативная точка зрения, а ошибка.

Разные контексты ортогональны. Если они связаны, они уже не разные.

Из того, что они ортогональны, не следует, что они никак между собой не взаимодействуют.

Не стоит путать корреляцию с причинно-следственными связями.

Давайте хотя бы с двумя вопросами разберемся, потому что в остальных можно утонуть.

Итак, про брак:
1. В России это "союз 1 мужчины и 1 женщины";
2. В Европе это "союз 1 человека и 1 человека"; (огрубляю)
3. В арабских странах это "союз 1 мужчины и N женщин";
4. В племени Мумба-Юмба это "союз N мужчин и N женщин".

Хотя точка зрения Мумба-Юмбы перекрывает все остальные, ее нельзя взять за основу для остальных. Каждая точка зрения актуальна в своем контексте - на той территории, где действует соответствующее законодательство. Ни одна точка зрения такого рода не может превалировать над другими. Они равнозначны, и в своем контексте каждая из них истинна. Это мы и выражаем в модели.

Второй вопрос - про альтернативные точки зрения и ошибки. Возьмем утверждение: "Земля круглая". Оно истинно? Как посмотреть... если провести соцопрос, окажется что для 80% населения (моя оценка) она круглая, то есть общественный консенсус наличествует. Для географов и физиков, конечно, "круглая" - это непростительное огрубление, форма Земли для них куда сложнее. И если повышать точность описания, в какой-то момент окажется, что нет вербального способа описать форму Земли, следовательно, любое утверждение о ее форме будет ложным. Что лишний раз доказывает, что "мысль изреченная есть ложь".

Но контекст, в котором это имеет значение - экстремален, и в практических ситуациях встречается крайне редко. В контексте спора Галилея с церковью фраза "Земля круглая" истинна. В контексте современного туриста - тоже. А в контексте, в котором работают разработчики системы глобального позиционирования, эта фраза будет ложью.
И далее - самое важное: ни один из этих контекстов не имеет преимущества перед другим, они так же равноправны, как использующие их субъекты, или как законодательство разных стран. Если какую-то практическую задачу можно решить исходя из истинности фразы "Земля круглая" - значит, в контексте этой задачи, для владельца этой задачи - это истина.

Нет никакой "абсолютной мировой правды", к которой можно стремиться, с которой можно сравнивать наши высказывания.



Итак, про брак:

Брак - это взаимодействие некого сообщества людей с государством.

В Германии тоже может быть шведская семья N x M, но при классификации придётся это раскладывать на систему учёта 1 x 1 плюс некое дополнение.

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

То же самое и про форму Земли.

И далее - самое важное: ни один из этих контекстов не имеет преимущества перед другим, они так же равноправны

Нет, конечно. Если "союз человека и человека" переезжает из Германии в Россию, он имеет проблемы с регистрирующими органами.

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

Есть ли возможность отнести элемент онтологии сразу к нескольким контекстам?
Или выстраивать иерархии контекстов? Например, механический (насос) + электрический (двигатель) = электромеханический (насосный агрегат).

Edited at 2016-02-16 01:43 am (UTC)

> Есть ли возможность отнести элемент онтологии сразу к нескольким контекстам?

Да, конечно. В примере было: конкретная жилплощадь в одном контексте - "квартира", в другом - "объект жилой недвижимости".

> Или выстраивать иерархии контекстов? Например, механический (насос) + электрический (двигатель) = электромеханический (насосный агрегат).

Да - это конструкция объекта в разных контекстах. Другое дело, что не факт, что механический и электрический контекст действительно надо разделять на два разных, в принципе они друг другу не противоречат.


Сергей, восхищен и жду продолжения! Вот какие есть соображения.

1. Не очень аккуратно говорить, что интенсионал «именует» экстенсионал. Чаще говорят, что имя, интенсионал и экстенсионал — это три разные вещи, образующие некий треугольник, называемый иногда «треугольником Фреге» в честь автора текста «Смысл и денотат».

2. Кстати, как вы решаете проблему взаимозаменяемости имён в интенсиональных контекстах? Ведь если некто считает, что ?s ?p ?o , и при этом ?o owl:sameAs ?q, отсюда вовсе не следует, что этот некто считает, что ?s ?p ?q.

3. Из умения обрабатывать мнения нелегко получить умение обрабатывать знания, поскольку из понятия «мнения» нелегко получить понятие «знания». Разница между «считает» и «знает» в некоторых контекстах может оказаться важной. А почему нелегко — есть небольшой текст Гетье «Является ли знанием истинное обоснованное мнение».

4. Есть различные системы, называемые «логиками знаний» и «логиками мнений», и есть попытки скрестить эти системы с description logic. Обзор этих систем в чистом виде есть по-русски в довольно недавней книжке Мчедлишвили, а результаты скрещивания можно гуглить по словам epistemic description logic и belief/doxiastic/subjective description logic. Это, конечно, все далеко от практического применения, но вдруг там есть какие-то идеи, которые вы сможете использовать.

1. Полностью согласен, неаккуратно отождествил имя и интенсионал.
В свое оправдание скажу, что замечал неоднократно - если делать все необходимые оговорки, статьи получаются невыносимо занудными )

2. В рамках этого примера мы такую проблему не решали - здесь у нас имена взаимозаменяемы для _разных_ субъектов, то есть они не owl:sameAs. Ваш пример интересно проверить на разных машинах логического вывода - будут ли они автоматом делать вывод, что ?a ?p ?q. Или даже еще интереснее, когда ?q стоит на первой позиции в утверждении.

3. Конечно, разница важна - точнее, существуют некоторые задачи, где она важна. Понятие "знание" в нашем случае - это вообще маркетинг. Если очень строго с ним разбираться, можно прийти к выводу, что в онтологии никаких знаний не содержится (недавно на Хабре один ортодокс отстаивал такую точку зрения). В каком-то извращенном смысле это даже правда :) Но в гораздо большем числе смыслов правы мы. В том числе с учетом того, что знание о мнениях субъекта - это тоже знание.
Рассуждения Гетье мне не показались убедительными, точнее - вся проблема кажется странной. Я бы не стал смешивать понятия "знание" и "истинность". Очевидно, что все наше знание истинно только в каком-то приближении, в определенном диапазоне условий. Если копать глубоко, окажется, что "мысль изреченная есть ложь". Что совершенно не мешает существованию знаний и их использованию в практике.
Поэтому для меня знание - это, скорее, набор убеждений субъекта или групп субъектов. Нет никакого "абсолютного" знания, с которым можно было бы эти убеждения соотнести, за исключением мнения абсолютного большинства людей - или мнения, принятого в определенных кругах (например, научных). Таким образом, вся "истинность" проявляется только в соотнесении одной точки зрения с другой, но не одной точки зрения с некой "истиной".

4. За ссылки спасибо, буду читать. Если можно, название книжки Мчедлишвили скажите, а то по этой фамилии в поиске выпадают очень разные люди ))


2. Попробовал найти ответ в описаниях entailment-режимов, но сходу не получилось, проще натравить какой-нибудь Pellet и посмотреть. Пока что думаю, что ответ отрицательный, а если положительный, то, наверное, можно научить движок обходить это «правило экстенсиональности» при реификации: думаю, она является основным формальным признаком интенсиональности контекста.
3. Безусловно, интересная тема: проблема Гетье при некорреспондентных теориях истины… Может быть, в каком-то виде её все-таки можно будет сформулировать.
Вообще, основным контекстом, где может быть важно различие знания и мнения, кажется педагогический. Учителю может быть важна разница между «Ученик считает, что _p_» и «Ученик знает, что _p_». Наверное, неслучайно, что в «Теэтете», откуда все пошло, сюжет тоже педагогический :).
4. Виноват, ошибся. Бежанишвили М. Н. «Логика модальностей знания и мнения», М., 2007.

За книжку спасибо! Скачал, смотрю. Сходу сформулировалась проблема для следующего изыскания - применение описанного нами механизма в системах поддержки принятия решений. Когда мы это писали, почему-то до такого use case не додумались.

Конечно, мне недостает систематических познаний в мат. логике.
С другой стороны, то, что я смотрю на все эти задачи с чисто утилитарной точки зрения, с бизнесовой и/или программистской - как мне кажется, в некоторых случаях обеспечивает определенные преимущества :)



Это и слава богу, что с утилитарной :). А то иногда создается впечатление, что основная цель этих скрещиваний ужей с ежами — получение гранта от DARPA. Ужей много, ежей тоже, бюджет DARPA неограниченный.

Кстати, взять какой-нибудь DAML. Если судить по второй букве названия, там уже должны были быть агенты, субъектность и все то, о чем вы пишете. Но этого там, насколько знаю, нет.

А системы эти часто относят к так называемой «Philosophical Logic». Тут долгая история с терминами, осложненная к тому же российской спецификой.

Edited at 2016-02-20 12:20 pm (UTC)

> А то иногда создается впечатление, что основная цель этих скрещиваний ужей с ежами — получение гранта от DARPA. Ужей много, ежей тоже, бюджет DARPA неограниченный.

:D Станислав, спасибо - порадовали!!! ))))))

А если серьезно - вполне вероятно, что в результатах таких проектов есть "открытая" и "закрытая" части.


>> Для любой группы объектов, связанных между собой свойством «является членом семьи», Создается объект типа «Семья», и каждый объект группы входит в состав данной семьи*
>> * то, как мы формализовали такое правило в онтологии, само по себе интересно, поскольку мощности обычных правил логического вывода для этого недостаточно; об этом мы расскажем в другой статье

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

По секрету скажу, что и тут по факту получилась императивная процедура. Нас не устроили правила SWRL сразу по нескольким причинам, в результате мы написали собственный движок выполнения правил и интерфейс для их конструирования.
Естественно, в этом движке мы смогли ввести в синтаксис правил такие возможности, какие посчитали нужными, и обработать их так, как необходимо.
Отход от стандартов - это плохо, но по-другому было никак.
Сейчас все это в процессе разработки и отладки, как только продукт будет готов - поделюсь результатами.

А по каким принципам вы определяете, какие объекты должны существовать изначально (персона, домохозяйство, квартира), а какие можно (нужно) создавать по правилам логического вывода (семья, молодая семья)?

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

Да, согласен.
Но ведь можно пытаться обойтись и без императивного создания объектов, например насоздавать их заранее, а затем просто устанавливать связи вида "Мария входит в состав Семьи, в состав которой входят также Алексей и Ольга и больше ни одна персона", или вообще в качестве объекта использовать установленную связь "является членом семьи" (только она здесь бинарная, а семья n-арная).

Семьи создаются и распадаются, то есть, можно данный случай рассматривать как решение задачи определения семей на основе базы данных ЗАГСа.

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

Если бы в OWL были n-арные связи, вполне возможно, что создавать объект "Семья" и вовсе бы не пришлось. Он нужен, только если семья как целое вступает в какие-то взаимодействия - например, хочет получить субсидию на жилье.

Вы наверняка это видели, я просто погуглил https://www.w3.org/TR/swbp-n-aryRelations/

Конкретно этот документ не видел (спасибо!), но паттерны знакомы. Реификация - самый распространенный вариант, но он перегружает модель за счет создания сущностей, которые ни для чего другого не понадобятся. Обычно, конечно, так и приходится поступать. Вариант со списками довольно экзотичен.
В OWL2 еще есть property chains, которые тоже можно для этой задачи приспособить.

Чисто информационные объекты часто предстают в виде n-арных отношений, пока не имеют воплощения, например мысль Марии о том, что у них семья с Алексеем и Ольгой. Когда же они начинают вестись как записи (например, запись акта гражданского состояния) в базе данных или бумажном журнале, то становятся объектами (например, семья, получающая субсидию). Видимо, здесь и решаются вопросы уникальности и выполнение условий существования, ведь никто не будет заносить запись о составе семьи в отсутствие членов семьи. А вот незаписанные слова и мысли людей вполне могут противоречить друг другу. Если бы Ольга была ребёнком не Алексея, то с точки зрения Марии в их семье было бы три человека, а со стороны Алексея только двое.
Вообще, выбор того что в факт-ориентированной модели является (левой/правой) сущностью, а что отношением или набором фактов, похож на выбор того что в ООП-модели является объектом, а что атрибутом.

Я уже когда-то поднимал вопрос необходимости логической обоснованности онтологических моделей. У меня складывается впечатление, что модель предметной области в процессе её построения подстраивается не только под задачу (разбирательство что есть априорное знание, а что выводы), но также под синтаксис логических выражений и возможности ризонера. Например, мне достаточно очевидно, что эти выражения просто дополняют друг друга: "Мария входит в состав Семьи, в состав которой входят также Алексей и Ольга и больше ни одна персона" и "Мария является членом семьи Алексея"+"Мария является членом семьи Ольги". В зависимости от задачи можно делать логический вывод как от "является членом семьи" к "входит в состав", так и обратно (априорным знанием может и то и другое). А можно вообще не делать никаких выводов и просто задать в определении класса "члены семьи" требование наличия одновременно двух отношений "ЧленСемьи входит в состав Семьи" и "ЧленСемьи1 является членом семьи ЧленСемьи2". Не факт, конечно, что при таком подходе можно будет пользоваться (любой) машиной логического вывода, но вполне можно решать поставленную задачу путём обхода семантической сети как графа. И другую задачу путём обхода того же самого графа.

Edited at 2016-02-27 05:14 am (UTC)

В принципе, и записанные факты могут друг другу противоречить. Бывает, например, что люди заключили брак за границей, но чтобы он был признан в РФ - надо привозить и переводить документы, заверять и т.п. Пока этого не сделано, возникает ситуация неопределенности - с одной точки зрения, брак заключен, а с другой нет. Но это частности.

Я все же придерживаюсь мнения, что сущности для передачи отношений лучше не вводить до тех пор, пока сущность как целое не начинает вступать в какие-то отношения. Кстати, распространенный способ отражения модальностей в онтологиях - это как раз реификация путем создания объектов со смыслом типа "Джон верит, что [пингвины живут в Арктике]". То есть такой индивидуальный объект соединяет субъекта, которому принадлежит мнение, модальность (верит, хочет и др.), и сам выражаемый факт, причем факт при такой конструкции снова приходится делать индивидом, а не просто триплетом. Вот это и есть самый настоящий костыль, по-моему :)

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

>> В принципе, и записанные факты могут друг другу противоречить.

С незаписанной информацией засада в том, что она бесконтрольно и неограниченно создаётся и пропадает. Мария может думать много мыслей по поводу статуса своих отношений, да ещё и передумывать, как настоящая женщина ;-) Это приводит к тому, что состав и количество таких сущностей в модели "плавает", в отличие от воплощенных объектов. Думаю, общественный консенсус реально обрабатывать только хоть в каком-то в зафиксированном виде.


>> Я все же придерживаюсь мнения, что сущности для передачи отношений лучше не вводить до тех пор, пока сущность как целое не начинает вступать в какие-то отношения.

А когда понадобилось ввести, то кортеж отношений заменяется на сущность или дополняется ею? Если первое, то это приводит к перестроению запросов в решаемой задаче? Если последнее, то как обеспечивается одинаковость смысла n-арного отношения и создаваемой сущностью?


>> Но на практике обычно вопрос о направлении получения выводов не возникает, так как известна очень небольшая часть той информации, которой хотелось бы обладать.

Когда проектируется база данных, то по её схеме трудно сказать о решаемой задаче. Посмотрите в сторону property graph (http://arxiv.org/abs/1006.2361) и соответствующих языков запросов (Cypher, WIPE/GEM, ...) которые больше похожи на SQL, чем на SPARQL.

> А когда понадобилось ввести, то кортеж отношений заменяется на сущность или дополняется ею? Если первое, то это приводит к перестроению запросов в решаемой задаче? Если последнее, то как обеспечивается одинаковость смысла n-арного отношения и создаваемой сущностью?

По идее, должен заменяться, иначе создаем два параллельных выражения одного и того же факта, что избыточно, плюс требуются специальные усилия по поддержанию консистентности. Типа триггеров, которых в SPARQL нет, но мы их эмулировали :)

Запросы - да, придется перестраивать, поэтому менять коней на переправе будет сложно. По идее, надо такие вещи предусматривать сразу, при первоначальном дизайне модели.

Насчет других технологий хранения графов в БД, других языков запросов - такие мысли возникали, т.к. проблем полно. Аргумент в пользу OWL и иже с ним один - это какой-никакой, а стандарт, для которого есть приличное количество программных реализаций. С ним легче идти в коммерческие внедрения, чем с чем-нибудь совсем экзотическим.



Сергей, в связи с вашим третьим правилом вывода… Читал тут про Jena rules, наткнулся вот на что (https://jena.apache.org/documentation/inference/#RULEbuiltins):

makeSkolem(?x, ?v1, ... ?vn)
Binds ?x to be a blank node. The blank node is generated based on the values of the remain ?vi arguments, so the same combination of arguments will generate the same bNode.
Может, как-то пригодится вам в конструкторе или исполнителе правил. У вас ведь Apache Jena, насколько понимаю.

Это что касается формулировки заключения третьего правила, а с формулировкой посылки не могли бы вы разъяснить.
«Является членом семьи» у вас отношение переменной местности, или же речь идет о том что в этом бинарном отношении (или в обратном ему) находятся попарно все объекты этой группы?

Edited at 2016-03-14 08:44 am (UTC)

Станислав, спасибо за ссылку!
Конструктор и исполнитель правил совсем скоро покажем, они входят в состав новой версии СУЗ. Работает все действительно на Jena.

Насчет формулировки третьего правила вы верно заметили! Да, тут тоже есть особенность. "Является членом семьи" - это бинарное отношение, и мы хотим собрать группу из объектов, связанных этим отношением, но не попарно, а посредством цепочки любой длины. То есть, А связан с Б, Б связан с В, и все вместе они удовлетворяют условию этого правила.

Конечно, можно это решить, сделав свойство транзитивным. Тогда будет автоматически делаться вывод, что А связан с В, и мы сможем строить группу при помощи попарных отношений, что намного проще. Одна беда - если объектов много, число выведенных триплетов будет расти до потери моделью практической пригодности.

Есть ведь выражение «живет на две семьи». Вполне себе бытовое. В этом контексте из того, что «A является членом семьи Б» и «Б является членом семьи В», вовсе не будет следовать, что «А является членом семьи В». (В этом примере Б «живет на две семьи»).

Можно даже попробовать представить ситуацию, когда A все же является членом семьи В, но это еще одна третья семья :).


Согласен, если бы эту модель стали применять к реальным людям - так бы и получилось. Разные семьи стали бы объединяться через людей, которые входят и в одну семью, и в другую. Надо думать дальше над этим правилом.



  • 1