Конвертация знаний в экспертных системах
От: Satyr  
Дата: 12.08.09 16:58
Оценка:
Добрый день.
Стоит задача создания ЭС, допускающей ввод знаний в различных форматах. Т.е. пользователь может выбрать между предикатами, фреймами и др. Хранятся знания, разумеется, в одном формате.
Собственно вопрос в том, какие из форматов знаний наиболее просто привести друг к другу. И есть ли для таких целей отработанные алгоритмы. Задача сугубо академическая, поэтому на каких форматах остановиться в качестве исходного и целевого ограничений нет.
Подскажите, где лучше копать по этой теме.
Re: Конвертация знаний в экспертных системах
От: vadimcher  
Дата: 12.08.09 17:04
Оценка: +1 :))
Здравствуйте, Satyr, Вы писали:

S>Добрый день.

S>Стоит задача создания ЭС, допускающей ввод знаний в различных форматах. Т.е. пользователь может выбрать между предикатами, фреймами и др. Хранятся знания, разумеется, в одном формате.
S>Собственно вопрос в том, какие из форматов знаний наиболее просто привести друг к другу. И есть ли для таких целей отработанные алгоритмы. Задача сугубо академическая, поэтому на каких форматах остановиться в качестве исходного и целевого ограничений нет.
S>Подскажите, где лучше копать по этой теме.

Эх, черт, красиво звучит!..

А вот зайца кому, зайца-выбегайца?!
Re: Конвертация знаний в экспертных системах
От: andy1618 Россия  
Дата: 12.08.09 17:35
Оценка: 14 (1)
Здравствуйте, Satyr, Вы писали:

S>Подскажите, где лучше копать по этой теме.


В своё время был довольно любопытный практический проект создания здоровой базы знаний: OpenCyc.
Документацию по форматам и т.п. можно посмотреть тут:
http://opencyc.org/doc
Как у них дела сейчас — не знаю, но факт, что опыт накоплен очень большой.
Re: Конвертация знаний в экспертных системах
От: LaptevVV Россия  
Дата: 13.08.09 07:34
Оценка: -2
Здравствуйте, Satyr, Вы писали:

S>Добрый день.

S>Стоит задача создания ЭС, допускающей ввод знаний в различных форматах. Т.е. пользователь может выбрать между предикатами, фреймами и др. Хранятся знания, разумеется, в одном формате.
S>Собственно вопрос в том, какие из форматов знаний наиболее просто привести друг к другу. И есть ли для таких целей отработанные алгоритмы. Задача сугубо академическая, поэтому на каких форматах остановиться в качестве исходного и целевого ограничений нет.
S>Подскажите, где лучше копать по этой теме.
XML — универсальный формат представления
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Конвертация знаний в экспертных системах
От: mefrill Россия  
Дата: 18.08.09 10:26
Оценка:
Здравствуйте, Satyr, Вы писали:

S>Добрый день.

S>Стоит задача создания ЭС, допускающей ввод знаний в различных форматах. Т.е. пользователь может выбрать между предикатами, фреймами и др. Хранятся знания, разумеется, в одном формате.
S>Собственно вопрос в том, какие из форматов знаний наиболее просто привести друг к другу. И есть ли для таких целей отработанные алгоритмы. Задача сугубо академическая, поэтому на каких форматах остановиться в качестве исходного и целевого ограничений нет.
S>Подскажите, где лучше копать по этой теме.

Приведение фреймов (классов) в логический вид известная вещь. Можно посмотреть руководство по OWL, там внутри все логическим языком представляется, а снаружи выглядит как классы. Подход вообще здесь простой: класс -- это одноместный предикат, т.е. отношение на элементах предметной области. На классах есть отношение "быть элементом" и отношение "наследования". В Cyc это предикаты isa и genl. В OWL также есть атрибуты классов (то бишь, слоты). Задать атрибут легко, для атрибута генерируется два двуместных предиката. В первом задется тип атрибута, а во втором -- его значение. В качестве первого параметра в обоих атрибутах выступает экземпляр класса. Надо только еще задать аксиомы, связывающие атрибуты с экземплярами классов.

Есть еще специальный язык для обмена знаниями, называется Knowledge Interchange Format (KIF). Этот KIF давно придуман и реализован в системе Ontolingua. KIF -- язык, основанный на логике первого порядка, в системе Ontolingua есть так называемая Фреймовая Онтология (Frame Ontology), разработанная Грубером специально, чтобы позволить вводить знания в виде фреймов (классов). Там есть и классы и слоты и все такое прочее. Все это реализовано над KIF, т.е. сделана конвертация из исчисления предикатов первого порядка в фреймы. Там же есть и другие примеры преобразования языков представления знаний.

Кстати, а что за система разрабатывается, если не секрет?
Re[2]: Конвертация знаний в экспертных системах
От: barn_czn  
Дата: 21.08.09 07:15
Оценка:
То что вы пишите мне кажется очень интересно ..
Меня интересует инструмент аля "OWL to C#".
Но гугл на запрос "OWL to C#" ничего не отвечает.
Правда есть много ссылок "UML to C#" , но чтото в этой области не видно никакого прогресса.
Чем кстати принципиально UML от OWL отличается?
Re[3]: Конвертация знаний в экспертных системах
От: mefrill Россия  
Дата: 21.08.09 11:37
Оценка:
Здравствуйте, barn_czn, Вы писали:

Сначала про это:

_>Чем кстати принципиально UML от OWL отличается?


Принципиальное отличие в тех целях, для которых эти языки создавались:
OWL создавался, как язык представления знаний.
UML создавался, как язык представления программных моделей.

Для представления знаний в OWL используется исчисление логики предикатов первого порядка, хотя есть некоторые элементы второго порядка, типа ограничений на мощность свойств и т.п. Предикат -- это множество списков элементов. Если число аргументов предиката фиксировано, то все списки имеют одну и ту же длину. Поэтому, легко представить класс, как одноместный предикат, т.е. множество списков длины один. Тогда, каждый такой список -- это просто экземпляр класса. В общем, класс -- это одноместное отношение. Также можно представить и свойства классов. Например, если у класса Person есть свойство Age типа integer, то можно создать двуместный предикат PersonAge, берущий два параметра: экземпляр класса Person и элемент-свойство, причем это все надо связать аксиомой, что первый параметр должен быть типа Person, а второй -- типа integer. Что-то типа такого:

DefRelation PersonAge(a, b)
axiom: Person(a) and integer (b)


В OWL так примерно и сделано. Поэтому, хотя OWL и выглядит как фреймовый (ОО) язык, он на само деле таковым не является. Кроме того, семантика OWL точно определена, также в стандартах (их теперь два, для первой и второй версий) этого языка указывается, для каких диалектов можно применять логический вывод и т.п.

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

Вообще, язык OWL не для человека, а для машины. Он подобен языку XML, который используется для представления данных, только OWL используется для представления знаний. Для редактирования онтологий на OWL используются программы, мало кто редактирует тексты OWL вручную. Самая известная из таких программ -- это Protege. Есть и другие. Есть еще серверы баз знаний (OWL хранилища), в которых имеется возможность добавлять новые знания или извлекать знания в формате языка OWL. На самом деле. я таких серверов хороших не видел, есть более-менее сделанные RDF хранилища. Но все они жутко тормозные в сравнении с реляционными базами данных, поэтому широко не используются.

Теперь, наверное, ясно, почему не может быть такого инструмента.

_>То что вы пишите мне кажется очень интересно ..

_>Меня интересует инструмент аля "OWL to C#".
_>Но гугл на запрос "OWL to C#" ничего не отвечает.
_>Правда есть много ссылок "UML to C#" , но чтото в этой области не видно никакого прогресса.
Re[3]: Конвертация знаний в экспертных системах
От: kl Германия http://stardog.com
Дата: 21.08.09 13:07
Оценка:
Здравствуйте, barn_czn, Вы писали:

_>Чем кстати принципиально UML от OWL отличается?


Если принципиально, то одним: OWL обладает формальной семантикой. Если очень грубо, то OWL — это логика + несколько возможных синтаксисов (OWL/XML, RDF/XML, наш манчестерский и еще несколько).
no fate but what we make
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.