Язык+Знания+Компьютер=?

Язык+Знания+Компьютер=?

Интегрированность науки
"Путешествия вглубь науки", о которых писал Станислав Лем, сейчас стали неотъемлемой частью научной деятельности всякого ученого. Открытия в области естественных наук, техники, архивы результатов исследований предстают перед ним необъятным информационным потоком. Так получается, что современный ученый вынужден тратить большую часть своего времени на изучение и анализ чужих работ. А порой группы ученых осуществляют целые "экспедиции" вглубь какой-нибудь необычайно разросшейся или забытой теории. Относительно недавно математики предприняли "экспедицию" в теорию групп и алгебр Софуса Ли. Эта теория была разработана в конце XIX века, но обнаружила свою актуальность лишь в 60-х годах XX, когда многие идеи были переоткрыты заново.

Изобретение велосипедов — это не самая большая беда. Изобрести велосипед заново иногда проще, чем найти описание его конструкции в архиве. Проблема в том, что ученые, занимающиеся как будто бы одной проблемой, вдруг обнаруживают, что не понимают друг друга, потому что выросли в разных научных школах.
Можно предположить, что у науки слабая "информационная поддержка" или "недостаток интегрированности". Но это не так.
С момента возникновения Интернета процесс "электронизации" знаний идет и набирает ход [3,4], проводятся интернет-конференции, создаются международные архивы научных работ. Научно-образовательная деятельность так или иначе стала занимать свою нишу в WWW (например, xxx.lanl.gov, www.citeseer.com, www.nature.ru, www.mccme.ru). И, несмотря на это, проблема целостности науки по-прежнему стоит достаточно остро.
Дело в том, что информационные потоки в науке велики и постоянно растут. Не каждый ученый способен полноценно усваивать то, что делается даже в той отдельной области науки, которой он занимается. Создается впечатление, что некоторые "науки" уже достигли ситуации "мегабитовой бомбы", или "информационного барьера". Эти термины, введенные Станиславом Лемом, обозначают ситуацию, когда научное сообщество не может справиться с лавиной информации, которую само же создает.

Язык + знания + компьютер
Конечно, решения есть, и одно из них предлагает российский проект KML, kml.mipt.ru, который занимается вопросами объединения и формализации научных знаний. Основная идея проекта заключена в создании специального языка знаний — Knowledge Markup Language.
Если вспомнить историю науки, то можно обнаружить, что развитие научных теорий (а иногда и рождение) всегда было связано с эволюцией языка. Такова, например, алгебра, которая зародилась оттого, что люди научились кратко и в общем виде записывать уравнения. До возникновения алгебры все уравнения описывались на естественном языке при помощи бытовых или геометрических аналогий. Сегодня математическая теория групп не содержит, пожалуй, и одного процента естественного языка. В этом ее удивительная сила и сложность.
Понятие языка является ключевым во многих областях науки. Проблема формализации знаний, использования компьютера для работы со знаниями и их анализа активно порождала новые задачи и проблемы.

Формула ЯЗЫК + ЗНАНИЯ + КОМПЬЮТЕР = имеет на выходе много интересных теорий и технологий: теория экспертных систем, интеллектуальных агентов и искусственного интеллекта, теория и технология создания баз знаний, компьютерная лингвистика, общая теория систем, теория компьютерного анализа естественного языка и компьютерного выделения семантики. Есть языки для записи доказательств, архивы этих доказательств и программы, которые могут не только проверять, но и искать доказательства утверждений. Случаи, когда какой-либо этап решения задач, в том числе теоретических, проводят с помощью компьютера, сегодня уже не редкость. Человечество начинает доверять свои знания компьютеру.
Одна из фундаментальных идей, связанных с формулой ЯЗЫК + ЗНАНИЯ + КОМПЬЮТЕР, заключается в разработке единых стандартов формализации знаний, протоколов обмена знаниями, технологий взаимодействия различных онтологий (см. XML [5], RDF [6], Web-Ontology [9]) и связывания объектов в единые сети (Semantic Web, [10]).
Настал момент серьезно поговорить о создании языка и технологии для объединения всех научных знаний.

KML — Язык Знаний
KML (Knowledge Markup Language) — это XML [5] язык для создания больших Баз Знаний — как естественнонаучных, так и гуманитарных. Это могут быть строгие теории, описания технологий, материалы по истории науки, фундаментальные работы, статьи о текущих исследованиях, учебники, методические разработки, результаты экспериментов — все, что является рациональным знанием.
Проект KML взял на себя задачу разработки спецификации этого языка, а также различного инструментария для работы со знаниями. Инструментарий — это программы
1) для создания знания и его публикации в WWW — Knowledge Builder;
2) для навигации по Базе Знаний — Knowledge Viewer;
3) для запросов к Базе Знаний — Knowledge Query;
4) для перевода знаний из KML в другие форматы (HTML, TeX, rtf).
Основные идеи проекта по решению проблемы "мегабитовой бомбы" таковы:

I. Стандартизация Языка Знаний
Это означает создание базовой спецификации Универсального Языка Знаний, а скорее, даже создание общей технологии формализации элементов знаний в различных областях науки плюс технологии построения самой Базы Знаний. В качестве основы был взят язык-схема (то есть язык для описания/создания языков) XML (www.xml.org, www.w3.org), который уже хорошо зарекомендовал себя. На основе XML написаны языки для математических (MathML) и химических (CML) формул, логики высказываний, доказательств, языки обмена информацией (XML Query) и много других.
KML является XML-языком, и, кроме того, он содержит в себе возможность включения объектов других XML-языков. KML предназначен для формализации структуры знаний, он, в некотором смысле, язык-каркас для объединения в единую сеть знаний, написанных на различных языках.
Эта расширяемость KML позволяет ему эволюционировать, что является неотъемлемым свойством языка знаний, а стандартизация есть обязательное условие построения единой глобальной базы знаний.

II. Грануляризация знаний
Грануляризация означает хранение знаний в отдельных небольших относительно самостоятельных единицах. Эти единицы имеют определенную структуру и снабжены богатой метаинформацией, то есть информацией о роли, связях и контексте. Для обозначения единицы знаний в KML существует специальный термин — UNIT.
UNIT — это элементарная единица знаний, например, идея, теорема, аннотация, параграф, то есть нечто, на что можно ссылаться и что можно связывать с остальными единицами.
Каждый UNIT помещается в общую базу знаний и при этом содержит 1) ссылки на базовые знания, то есть на фундаментальные работы, в которых даны определения ключевых терминов и основы теории, 2) ссылки на близкие по содержанию знания, 3) ссылки на следующий и предыдущий UNIT'ы знаний, 4) информацию о научной специализации, к которой он относится, а также много другой метаинформации. Полезность содержания единицы знаний определяется не только тем, из чего она состоит, но и тем, как она размещена в общей Базе Знаний, то есть метаинформацией, связанной с этой единицей. Чрезвычайно важно, чтобы каждый UNIT был помещен в адекватный его содержанию "контекст" базы знаний, или, другими словами, чтобы информация, содержащаяся в UNIT'е, извлекалась только при тех запросах к базе знаний, которые релевантны его содержанию.
Содержание UNIT'а должно быть построено таким образом, чтобы он был маленькой, но все-таки самостоятельной единицей знания и мог читаться в отрыве от контекста научной работы, в рамках которой создавался.
Конечно, любые изначальные рамки и рафинирование губят мысль. Но, возможно, иначе нельзя. Эти рамки должны поощрять процесс формирования ключевых, универсальных, связанных друг с другом идей, представляющих фундамент науки.

III. Программируемость знаний
Речь идет об идее возведения знаний в ранг программного продукта. Публикация знаний в недалеком будущем, возможно, будет напоминать программирование. "Программировать значит понимать" — сложно написать работающую компьютерную программу, не понимая алгоритма. Хотелось бы, чтобы аналогичная ситуация была с публикацией знаний. Но, к сожалению, можно говорить долго и красиво, совсем не понимая сути обсуждаемой задачи или теории.

Конечно, "писать знания = программировать знания" не может быть полной аналогией, потому что большая часть знаний программиста остается все-таки в его голове и не попадает в код программы, так как программа — это машинные знания. Программист формализует знания не для остальных людей, а для машины. Чтобы код был понятен остальным, программисту надо писать к нему комментарии. Возьмем теперь экспертные системы. В их создании участвуют три постоянных роли: специалист предметной области, инженер по знаниям и программист. Первый из них — это носитель знаний (человеческих знаний), второй осуществляет формализацию знаний для занесения их в программу, при этом процесс выглядит как "допрос" эксперта предметной области, "вытягивание" из него знаний. Третий должен запрограммировать результат, проделать конечный этап переработки человеческих знаний в машинные. Технология KML предполагает совмещение в лице писателя знаний сразу трех ролей. Конечно, это тяжело, но здесь на помощь приходят разрабатываемые инструменты для Визуального Программирования Знаний.
Таким образом, еще одна цель KML — это создание простого и понятного языка формализации знаний и инструментов, которые позволили бы специалистам и экспертам в предметной области не прибегать к услугам инженера по знаниям и программиста, а самостоятельно "программировать" свои знания.
Следующая важная параллель программирования для машин и формализации знаний для людей — это повторное использование: мы достигнем большего, если будем стартовать с плечей гигантов. При разработках программных систем особое внимание уделяется возможности повторного использования и доработки. Повторное использование может относиться практически к любым аспектам программирования (структуры данных, модели поведения, протоколы и т.п.) и заметно удешевляет и ускоряет процесс разработки. Почему бы не использовать эту технологию создания программ для построения структуры человеческих знаний? Чтобы знания как программный компонент можно было использовать повторно, их форма должна удовлетворять определенным условиям "стыковки". Эти условия и диктует KML, позволяя тем самым создавать хорошо оформленные строительные блоки знаний.

В принципе, любая хорошая статья по математике уже удовлетворяет требованиям "программирования знаний", потому что содержит аннотацию, содержание, внутренние ссылки и список ссылок на другие работы. Она обычно содержит введение. Ссылки, указанные во введении, играют роль бэкграунда, фундамента. Есть структурированная основная часть, есть выводы, теоремы, главные положения и ключевые слова четко выделены. Ученые догадываются, что, если они не будут придерживаться принятого стандарта публикации знаний, их работы будут пользоваться малой популярностью из-за недоступности, неясности, они будет выбиваться из общего потока работ.
"Программировать знания" можно понимать как "вписывать в строго заданную схему". В бумажной индустрии знаний это повсеместное явление. Осталось научить этой схеме компьютер, сделав из него достойного помощника.
Сегодня методы структурирования и связывания знаний рассчитаны на человека. Когда структура, выделения, внешние и внутренние связи будут прозрачны для компьютера, появится возможность создавать интеллектуальные экспертные системы над естественно-научными базами знаний. Неважно, какая именно технология сможет эффективно решить эту задачу, KML или какая-либо другая. Это ключевой шаг на пути доверия знаний компьютеру и привлечения его к их анализу. Это также шаг к компьютерным обучающим системам, интерактивным учебникам, научным электронным справочникам, энциклопедиям, а также, если хотите, шаг к искусственному интеллекту.
Мечта многих ученых, людей, так или иначе занимающихся интеллектуальным трудом, иметь возможность в любой момент получить информацию по интересующему вопросу — узнать характеристики какого-то материала, посмотреть работы определенного автора по определенной тематике, почитать какую-либо теорию, варьируя глубину, сложность и подробность изложения. А другая мечта — это возможность просто рассказать о своей проблеме компьютеру и получить ответ-реферат, в котором бы излагалась история этой проблемы, то, как ее решали, какие недостатки и достоинства у каждого метода и где можно получить более подробную информацию по отдельным вопросам. Важнейшим этапом создания такого электронного всезнающего научного консультанта является Язык Знаний. Он является основой, и, конечно, к его созданию нужно отнестись очень серьезно.

Пока мы можем сделать такое резюме:
1) KML претендует на решение проблемы чистоты содержания знаний (отсутствие "воды") и 2) KML предоставляет стандарт для объединения накопленной человечеством информации в единой распределенной Базе Знаний.
Каждый человек, публикующий документы в формате KML, должен помнить три повелительных глагола:
1. Избегать повторения.
2. Использовать имеющееся.
3. Улучшать существующее.
А KML, в свою очередь, будет заботиться о следующем:
1. Разнообразные и выразительные средства формализации знаний.
2. Средства для изменения и публикации знаний в контексте базы знаний.
3. Единая среда разработки и хранения знаний.
4. Удобство навигации по знаниям.
P.S.: Что отличает науку от искусства? — стремление к объективности. Наука, представленная в виде огромного архива мало связанных друг с другом работ, близка искусству, где каждый творец индивидуален и неповторим.

ЯЗЫК + ЗНАНИЯ + КОМПЬЮТЕР = ОБЪЕКТИВНАЯ НАУКА
Остается надеяться, что мотивация формирования объективной целостной науки будет достаточно сильной, и технологии формализации Языка Знаний, предлагаемые KML, не постигнет участь языка Эсперанто, который так и остался замечательной, но никому не нужной идеей.

Литература
1. Станислав Лем. Мегабитовая бомба. — Stanislaw Lem. Bomba megabitowa. Krakow. Wydawnictwo literackie, 1999.
2. Станислав Лем. Сумма технологий. — Stanislaw Lem. Summa Technologiae. Krakow. Wydawnictwo literackie, 1967.
3. Ronald Brachman and James Schmolze. An overview of the kl-one knowledge representation system. Computational Intelligence, 9(2):171-216, 1985.
4. S. Decker, D. Fensel, F. van Harmelen, I. Horrocks, S. Melnik, M. Klein, and J. Broekstra. Knowledge representation on the web. In Proceedings of the 2000 International Workshop on Description Logics (DL2000), Aachen, Germany, 2000. http://citeseer.nj.nec. com/decker00knowledge.html.
5. T. Bray, E. Maler, J. Paoli, and C. M. Sperberg-McQueen, Extensible Markup Language (XML), w3c recommendation, October 2000. http://www.xml.org.
6. O. Lassila and R. R. Swick. Resource Description Framework (RDF) model and syntax specification. W3C Working Draft WD-rdf-syntax-19981008. See http:// www.w3.org/RDF/, http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/.
7. T. Finin, R. Fritzson, D. McKay, and R. McEntire, KQML as an Agent Communication Language, Proceedings of the Third International Conference on Information and Knowledge Management, ACM Press, November 1994. http://citeseer.nj.nec.com/ finin94kqml.html.
8. J. Mayfield, Y. Labrou, and T. Finin, Evaluation of KQML as an agent communication language. In Intelligent Agents II: Agent Theories, Architectures, and Languages, pages 347-360. Berlin: Springer, 1996. http://citeseer.nj.nec.com/mayfield96evaluation.html.
9. OWL Web Ontology Language. W3C Working Draft 29 July 2002. Latest version is available at http://www.w3.org/2001/sw/WebOnt/.
10. Semantic Web, Representation of data on the World Wide Web, based on the RDF standards, http://www.w3.org/2001/sw/.
11. A. Farquhar, R. Fikes, and J. Rice. The Ontolingua server: A tool for collaborative ontology construction. Technical report, Stanford KSL 96-26, 1996. http://citeseer.nj.nec.com/farquhar96ontolingua.html.
12. Кузнецов Н.А., Полонников Р.И., Юсупов Р.М. Состояние, перспективы и проблемы развития информатики. В кн.: Теоретические основы и прикладные задачи интеллектуальных информационных технологий. СПб: СПИИРАН, 1998 г.

Ворожцов Артем, artema@dgap.mipt.ru


Компьютерная газета. Статья была опубликована в номере 44 за 2002 год в рубрике чтиво :: Станислав Лем

©1997-2021 Компьютерная газета