Индустрия знаний

Содержание
  1. Велосипеды и интегрированность науки
  2. Язык + знания + компьютер
  3. KML
  4. PS:
  5. Литература

Велосипеды и интегрированность науки

"Путешествия вглубь науки", о которых писал Станислав Лем, сейчас стали неотъемлемой частью научной деятельности всякого ученого. Открытия в области естественных наук, техники, архивы результатов исследований предстают перед ним необъятным информационным потоком. Так получается, что современный учёный вынужден тратить большую часть своего времени на изучение и анализ чужих работ. А порой, группы учёных осуществляют целые "экспедиции" вглубь какой-нибудь необычайно разросшейся или забытой теории. Относительно недавно математики предприняли "экспедицию" в теорию групп и алгебр Софуса Ли. Эта теория была разработана в конце 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, позволяя тем самым создавать хорошо оформленные строительные блоки знаний.

Итак, 1) KML претендует на решение проблемы чистоты содержания знаний (отсутствие "воды"), и 2) KML предоставляет стандарт для объединения накопленной человечеством информации в единой распределённой Базе Знаний.

Каждый человек, публикующий документы в формате KML, должен помнить три повелительных глагола:

  1. Избегать повторения.
  2. Использовать имеющееся.
  3. Улучшать существующее.
А KML, в свою очередь, будет заботиться о следующем:
  1. Разнообразные и выразительные средства формализации знаний.
  2. Средства для изменения и публикации знаний в контексте базы знаний.
  3. Единая среда разработки и хранения знаний.
  4. Удобство навигации по знаниям.

PS:

Что науку отличает от искусства? — стремление к объективности. Наука, представленная в виде огромного архива мало связанных друг с другом работ, близка к искусству, где каждый творец индивидуален и неповторим. Остаётся надеяться, что мотивация формирования объективной целостной науки будет достаточно сильной, и технологии формализации языка знаний, предлагаемые 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