Описание картин мира
Итак, обратимся к вопросу представления картин мира более формализованно.
Как их описывать?
С человеческими картинами мира мы уже разобрались. Они легко описываются на естественном
языке, позволяющем выразить любую информацию. Вот, например:
"Утром шёл дождь, а днём ярко светило солнце".
Машинная картина мира описывается на некотором объектно-ориентированном языке,
например, C++ или C# (непрограммисты могут пропустить, ничего не потеряют):
public class дождь: Notion { }
public class солнце: Notion {
public Ability светить;
}
public
class MyWorld: World {
public MyWorld() {
дождь дождь_obj = new дождь();
objects.Add(дождь_obj);
дождь_obj.exists(new Circumstances(Time.Morning));
солнце солнце_obj = new солнце();
objects.Add(солнце_obj);
солнце_obj.светить = new Ability(new Circumstances(Time.Afternoon, Brightness.Bright));
}
}
И то, и другое описание является самодостаточным
и позволяет описывать любые картины мира. Однако они неудобны для передачи представлений
о мире от одного субъекта к другому. Для того,чтобы понять друг друга, субъектом
нужно понимать принципы данного описания, а это не всегда удобно. Например, вам
сложно будет объяснить по-русски что-либо человеку, который не владеет русским языком.
Для построения предложения или набора классов требуются знания о структуре соответственно
предложений или классов.
Чтобы подготовить описание картины мира к транспортировке, необходимо перевести
его в упрощённую, но более структурированную форму. Из такой формы проще перейти
к записи на ЯОФ, которая уже не зависит от описания и является универсальным форматом
для передачи картин мира.
Для текста упрощением будет являться так называемая семантическая сеть (семантическое
дерево в нашем случае). В предложении каждое из слов подчинено другому, между ними
существует определённая связь. Эту связь можно охарактеризовать вопросом или названием
отношения. Например: "Дождь Что_делать? Идти" или "Идти Время Утро".
Подобное описание в виде троек "субъект - отношение - объект" позволяет
превратить достаточно сложные предложения в набор простейших связок между словами.
Субъект и объект обозначают вершины графа, а отношения - дуги между этими вершинами
(с подписями).
Для удобства будем также считать главные члены предложения равноправными и подчинёнными
фиктивному узлу "Факт", который будет главнейшим в иерархии слов в предложении.
Вот запись нашей картины мира в таком формате:
Факт1 Субъект дождь
Факт1 Действие идти
идти Время утро
Факт2 Субъект солнце
Факт2 Действие светить
светить Время день
Светить Образ ярко
Тако описание удобно для машинной обработки. Сразу понятно, к чему относится каждое
слово предложении, не возникает двусмысленных толкований. Легко преобразовать к
описанию на ЯОФ.
Для объектной картины мира подойдёт текст, описывающий процесс построения данной
картины мира в виде простых, SQL-подобных команд. Вот запись нашей картины мира
на этом языке:
create дождь;
set дождь.exists();
create солнце;
has солнце светить();
set солнце.светить();
Перед вами - набор простых инструкций, с
помощью который и строится объектная модель. В свою очередь, эти инструкции можно
преобразовать к записям на ЯОФ.
Возможно, вы уже догадались до следующего логического шага :) Чтож, продолжение
следует.