XML - статьи


Проблема описания семантики и границы XML


Несколько лет назад World Wide Web Консорциумом был разработан язык XML, предоставляющий стандарт структурирования и разметки произвольной информации. По мнению многих специалистов появление XML стало своего рода революцией в сфере Web-программирования. Разработчики получили простое средство для хранения данных в понятном для человека и легко читаемом формате, где разметка говорит сама за себя. Появилась возможность отделить информационное наполнение Интернет-страниц от их визуального представления.

Наиболее важной заслугой XML видится то, что программы различных производителей получили возможность “разговаривать” на одном языке. Взамен многочисленных разрозненных способов представления данных появился один универсальный синтаксис, который лег в основу передачи информации между программами, работающими в различных точках Интернета.

Универсальный синтаксис открыл дорогу появлению ряда важных сопутствующих XML технологий. Это языки XSL и XPath, предназначенные для работы с древовидной структурой документов; XML Schema – стандарт описания конкретных языков разметки, использующий синтаксис XML; XLink и XPointer – средства связи распределенных блоков информации в один общий документ; XQuery – язык запросов к размеченным данным и другие технологии.

Важным качеством всех указанных стандартов является их открытость и независимость от конкретных сфер применения и разделов знания. Их задача состоит в том, чтобы предоставить возможность пользователям и программам общаться между собой и друг с другом, не ограничиваясь какой-то конкретной предметной областью.

В свою очередь указанный универсализм привел к созданию стандартных средств поддержки XML и дополнительных технологий, а также к появлению стандартных программных интерфейсов для взаимодействия с ними. Таким образом, программисты получили не только удобные языки для работы с данными, но универсальные библиотеки для осуществления этой работы.

Однако постепенно с течением времени мировое сообщество приходит к пониманию того, что при всех своих достоинствах XML не в состоянии стать подходящим средством выражения семантики размеченных данных. Позволяя закодировать любую информацию и давая разработчику возможность без особого труда получить синтаксический анализатор и средства манипулирования данными, XML удовлетворяет потребностям программистов иметь универсальное средство разметки, обладающее синтаксической интероперабельностью (способностью быть средством взаимодействия между различными программами). Но при этом он не в состоянии адекватно справиться с задачей семантической интероперабельности.


Данное утверждение требует более детального объяснения.

Практически параллельно с работами по стандартизации XML основатель WWW Консорциума Тим Бернерс-Ли сформулировал новое понятие – Semantic Web – то, каким он видит будущее глобальной сети, и инициировал исследования в этом направлении. В основе предполагаемого им будущего лежит способность машин не только читать, но и понимать содержание Интернет-ресурсов, причем достигнуть этого, по мнению Бернерса-Ли, мы должны не через создание программ искусственного интеллекта, моделирующих деятельность человека, а через использование средств выражения семантики данных и их связей [1].

На пути к осуществлению поставленной задачи можно выделить несколько трудностей. С одной стороны программы должны понимать язык соответствующей предметной области, с другой – должны уметь сопоставлять связанные термины различных предметных областей. Это требование является существенным, поскольку в противном случае программы смогли бы работать лишь с отдельными сферами знаний, описанными, например, специализированными XML-языками. Целью же Интернета будущего является создание непрерывного информационного поля.

Здесь можно привести следующий пример. Предположим, что в одной точке глобальной сети размещены данные о какой-то компании и ее сотрудниках, в другой точке – информация о людях, в третьей – об адресах. Очевидно, что компании, люди и адреса принадлежат к отдельным, относительно независимым областям знаний. С другой стороны в непрерывном информационном поле программа должна без особого труда суметь сопоставить сотрудников и людей, адреса этих людей и предметную область адресов как таковых.

Итак, если синтаксическая интероперабельность неразрывно связана с синтаксическим анализом данных, то семантическая требует анализа самой информации, связи ее с мировым информационным полем, установления соответствия терминов и словарей одной предметной области элементам другой [2].

XML не может стать средством, обеспечивающим связь различных данных по ряду причин.



Основное его ограничение состоит в том, что XML лишь описывает грамматику. Выделить семантическую единицу в конкретной предметной области попросту нельзя, поскольку этот язык ориентирован на структуру документа и не предполагает общей интерпретации данных, содержащихся в нем.

XML оказывается слишком гибким средством описания данных и позволяет одну и ту же информацию разметить совершенно различными способами. В качестве иллюстрации сказанного можно представить несколько различных записей утверждения о том, что автомобиль имеет красный цвет:

<car color="red"/> <car><color>red</color></car> <car color="#cc"/><color id="cc" shade="red"/>

Данный факт может быть выражен и другими способами, а в том случае, когда имеется уже несколько упорядоченных отношений, вариантов кодирования еще больше [3].

С указанной проблемой можно было бы попытаться справиться одним из двух способов: либо всем заинтересованным сторонам договориться об используемом формате описания, либо прибегать к преобразованию одной грамматики в другую [2]. Однако, очевидно, что первый из этих способов не реален, поскольку заинтересованных сторон, как правило, много и состав их регулярно меняется, а второй способ крайне громоздок, и оба они по-прежнему не решают проблему выделения семантической единицы предметной области. Поэтому приходится признавать, что для эффективного представления фактов необходимо вводить некие ограничения на уровне самого языка.

Следующая сложность, которую следует отметить, несколько забегая вперед, связана с неудобством использования XML для задания метаданных по причине значимого порядка элементов. Вряд ли правильно и вообще возможно заботиться, например, чтобы при поиске книги автор был указан первым, а название вторым. Факты в информационном поле должны быть упорядочены только тогда, когда этот порядок важен с точки зрения самих данных, а не их записи.

И последняя причина заключается в том, что разметка, допускающая смесь из текста и вложенных элементов, сложна для вычленения данных и установления связи между ними. Эта сложность возникает, если необходимо отразить, что объект имеет некоторое свойство, а его значение в свою очередь представлено не значением простого типа и не вложенным поддеревом, а смешанной разметкой (“mixed content” в терминологии XML Schema) [4].

Подводя итог сказанному, следует отметить, что для Интернета будущего, в котором программы смогут автоматически анализировать содержание ресурсов, необходимо новое средство выражения семантики данных, а не только их записи.






Содержание раздела