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