Хотелось бы получить пояснения на описанную ниже ситуацию.
Берем пустую онтологию. Добавляем понятие Sex (Пол), Person(Человек) и
понятие Balalaika(Балалайка)
добавляем два экземпляра к класу Sex - Man и Woman.
добавляем экземпляр Sidorov к классу Person
добавляем свойство hasSex (иметь пол)
потом я добавляю утверждение о том, что Сидоров мужчина (Sidorov
hasSex Man)
Пока все хорошо.
Но вдруг я добавляю restriction на класс Person - hasSex only
Балалайка
Нажиммаю классифицировать и жду, что он заругается....
Но этого не происходит. и я не понимаю почему.
Вопрос: Где у меня в ДНК ошибка?
10 июня 2009 г. 23:11 пользователь Alexander Sidorov
<alex...@gmail.com> написал:
11 июня 2009 г. 0:47 пользователь Alexander Sidorov
(alex...@gmail.com) написал:
On 11 июн, 06:20, Антон Черний <antony.che...@gmail.com> wrote:
> :-)))
> Саш, я открою для тебя страшную тайну...
> Грамотное составление онтологий - ацкий пропотливый труд.... :-)
>
> 11 июня 2009 г. 0:47 пользователь Alexander Sidorov
> (alexi...@gmail.com) написал:
>
>
>
> > Антон, даже если так... для того чтобы реализовать "защиту от дурака" (не
> > дать присвоить свойству инстанса значение, противоречащее restriction),
> > придется приложить слишком много усилий.
>
> > 2009/6/11 Антон Черний <antony.che...@gmail.com>
>
> >> Спасибо, завтра попробую доложу о результатах.
> >> Саш, дисжойнить надо помойму одноуровневые классы, дальше наследование
> >> сработает. Вот.
> >> Спасибо за наводку.
>
> >> 10 июня 2009 г. 23:11 пользователь Alexander Sidorov
> >> <alexi...@gmail.com> написал:
>
> >> > Получается, для того чтобы предотвратить появление нежелательного
> >> > subject (не типа Sex), нужно дисджойнить каждый класс с каждым?
>
> >> > 10 июня 2009 г. 21:17 пользователь Mikhail Roshchin <roshc...@gmail.com>
> >> > написал:
>
> >> >> @ Anton попробуйте скзать что балалайка disjoint с полом человека. Дело
> >> >> в том, что по принципу OWA ризонер и не должен ругаться, пока вы не скажите
> >> >> вполне конкретно, что балалайка не относится ни каким образом к полу
> >> >> человека
>
> >> >> 2009/6/10 Dmitry Ulanov <dula...@gmail.com>
>
> >> >>> Рекоммендую также продублировать вопрос в тематический форум как раз
> >> >>> по всему, что связано с онтологиями -http://shcherbak.net/forum/
>
> >> >>> 2009/6/10 Anton Cherny <antony.che...@gmail.com>
Видимо, придется использовать другой язык для представления онтологии.
Либо использовать программные средства.
Наконец, можно отказаться от индивидов -- использовать перечислимый
тип данных
со значениями для Пола.
С уважением,
Владимир
On 11 июн, 12:22, Alexander Sidorov <alexi...@gmail.com> wrote:
> Ну никак не укладывается в моей голове сей факт.
> Подскажите, есть ли более короткий путь задания ограничения object
> определенной связи (как в описанном Антоном примере), кроме как сделать
> множество disjoint'ов? Я представил эту картину в масштабах хотя бы NCI
> Thesaurus - и ужаснулся.
>
> 11 июня 2009 г. 11:06 пользователь Anton Cherny
> <antony.che...@gmail.com>написал:
> @ Владимир: вы вилимо не совсем понимаете предназначение именно описательной
> логики и ее отличие от той же логики первого порядка.
> OWA как раз для того и
> нужен, чтобы находить неожиданные свойства знаний.
Хотите ли Вы тем самым сказать, что логика первого порядка не
предназначена
для нахождения неожиданных свойств знаний (и в этом состоит ее отличие
от DL)?
И какие, позвольте узнать, "неожиданные свойства знаний" мы найдем,
если _явно укажем_, что Класс "Пол" не пересекается с Классом
"Балалайка"?
> Естественно, им надо
> пользоваться осторожно - всегда есть свои недостатки. Но когда у вас будет
> опыт побольше создания сложных онтологий (это который предназначены для
> решения сложных задач, а не больших по размеру), то будете уже автоматом
> проставлять дисджойнт при определении каждого класса.
Насколько я понимаю, "дисджойнт" касается двух классов, а не одного.
Так что при определении каждого нового класса
дисджойнтов проставлять надо все больше и больше.
Это еще полбеды, но если они еще используются
исключительно как средство проверки целостности онтологии...
> Создание и
> тестирование одной такой онтологии (всего 50 классов) может занятъ
> человеко\месяц - но окупается засчет отсутствия надобности жесткого
> кодирования. Так что удачи в этом труде
А примеры создания / использования сложных онтологий в сложных (=
реальных)
задачах можно привести?
Спасибо,
Владимир
Хотите ли Вы тем самым сказать, что логика первого порядка не
предназначена
для нахождения неожиданных свойств знаний (и в этом состоит ее отличие
от DL)?
И какие, позвольте узнать, "неожиданные свойства знаний" мы найдем,
если _явно укажем_, что Класс "Пол" не пересекается с Классом
"Балалайка"?
Насколько я понимаю, "дисджойнт" касается двух классов, а не одного.
Так что при определении каждого нового класса
дисджойнтов проставлять надо все больше и больше.
Это еще полбеды, но если они еще используются
исключительно как средство проверки целостности онтологии...
А примеры создания / использования сложных онтологий в сложных (=
реальных)
задачах можно привести?
Since AllDisjoint is (important) syntactic sugar, the lack thereof essentially eliminates it from theпросто не стоит путать синтаксис овл (или рдф) и ту логику, которая стоит за ним. логика имеется в виду математическая
RDF syntax. The trade-off is backwards compatibility. [But this is a desired backward
incompatability :)]
Михаил, скажу честно, Вашей глубокой мысли я не понял. Однако, оказывается, то, о чем я говорю, уже активно обсуждалось пару лет назад: http://www.w3.org/2007/OWL/tracker/issues/2 Написано, что в результате обсуждения allDisjoint был добавлен в функциональный синтаксис и RDF mapping. Но я так и не нашел, как allDisjoint можно представить в RDF...
>>просто не стоит путать синтаксис овл (или рдф) и ту логику, которая стоит за ним. логика имеется в виду математическаяНо ведь там написано: "RESOLUTION: AllDisjoint will be added to the functional syntax and the RDF mapping". RDF mapping, я так понимаю, - это представление AllDisjoint в RDF/OWL. Значит речь не только о математической логике, но и о представлении ее элемента - allDisjoint - в RDF/OWL. Или я неправильно трактую RDF mapping?
И еще мне непонятно утверждение об обратной совместимости. OWL развивается, появляются новые версии и, как мне кажется, ничто не мешает внедрить новую конструкцию. В чем тогда проблема?