Глава 1. Аналитический обзор предметной области
В рамках данной главы необходимо провести аналитический обзор предметной области с целью ответа на следующие исследовательские вопросы:
? определить понятие семантической аннотации и ее использование;
? сравнить существующие средства решения задачи представления аннотаций в текстовых документах, выделить их сильные и слабые стороны для обозначения требований к разрабатываемому компоненту;
? проанализировать формат электронных документов Office Open XML (OOXML) с целью локализации в нем стилей документа, которые затем можно конвертировать в стили технологии WPF и тем самым сохранить форматирование документа в компоненте;
? проанализировать стили технологии Windows Presentation Foundation (WPF), изучить способы их хранения и динамического создания, данная информация затем будет использована для отображения документа в компоненте с сохранением форматирования.
1.1 Понятие и использование аннотаций
Под аннотацией понимается дополнительная информация (названия, атрибуты, комментарии, описания), которая присоединяется к документу или части текста этого документа [1, 2]. Таким образом, предоставляя метаданные о некоторой существующей информации.
Аннотации создают связь между аннотируемыми данными и данными, которые их аннотируют. Аннотируемыми данными в документе могут являться текст, изображения, таблицы, или их комбинация, вплоть до выделения всего документа как данных для аннотирования.
Аннотации могут быть разделены на формальные, неформальные и комбинированные [3]. Неформальные аннотации описываются на естественном языке из-за чего не могут быть обработаны машинными способами. Формальные аннотации описываются формальным языком, и потому являются машинно-читаемыми. Наконец, комбинированные аннотации включают в себя как неформальные, так и формальные описания.
В данной работе нас интересуют семантические аннотации, которые являются формальными. Отличие семантических аннотаций в том, что они связывают аннотируемые данные с понятиями из некоторой онтологии [4]. Семантические аннотации могут быть описаны с помощью RDF-графа с помощью триплетов – кортежей вида (s, p, o), где
s – URI идентификатор субъекта (аннотируемых данных), p – URI идентификатор предиката, o – URI идентификатор некоторого объекта или конкретное значение некоторого типа (аннотирующие данные).
Использование аннотаций позволяет устранить нечеткость и двусмысленность естественного языка, за счет выражения понятий и их взаимосвязей в формальной строгой форме [1]. Более конкретное использование аннотаций может подразумевать процессы выделения, индексирования, поиска, категоризации и извлечения информации или же некоторой совокупности этих процессов машинными средствами, что позволяет осуществлять семантический поиск документа в некотором корпусе документов, формировать рекомендации на основе профиля пользователя, автоматически категорировать документы по заданной иерархии рубрик и др.
1.2 Обзор существующих средств
В данном разделе рассмотрены инструменты аннотирования документов, такие как Brat Corpora и General Architecture for Text Engineering (GATE). Для выявления сильных и слабых сторон этих решений был проведен аналитический обзор. Были сформулированы критерии оценки и сравнения решений, которые перечислены ниже.
? Выделение аннотаций в тексте документа. Данный критерий определяет возможность для пользователя нахождения аннотаций в тексте документа, просто просматривая текст;
? Количество альтернативных представлений аннотаций (помимо представления в тексте документа). Из самого названия критерия следует его суть. Альтернативные представления полезны, когда нужно работать с аннотациями вне текста. Чем больше, тем лучше;
? Детальная настройка отображения аннотаций. Данный критерий определяет возможность для пользователя детально настроить отображение аннотаций. Под детальной настройкой подразумевается настройка множества свойств аннотаций: цвет фонового выделения, цвет самой аннотации, различные настройка шрифта (размер, стиль, вес и т.д.), привязка анимации к аннотации и триггеров;
? Сохранение исходного форматирования текста. Из самого названия критерия следует его суть. Исходное форматирование текста помогает пользователю ориентироваться в документе.
1.2.1 Средство Brat Corpora
Brat Corpora [5, 6] – веб-инструмент для создания текстовых аннотаций и их добавления в текстовые веб-документы. Предполагается, что аннотации имеют строгую структуру, и таким образом могут быть обработаны компьютером.
На следующем рисунке (Рисунок 1.1) можно увидеть пример, в котором предложение было аннотировано с целью добавления информации о некоторых сущностях, их типах и отношениях между собой.
Рисунок 1.1 – Пример аннотаций в Brat Corpora
На рисунке 1.1 представлены два основных типа аннотаций Brat Corpora, это текстовые диапазоны, которые выделяются цветом и некоторым тегом над самим диапазоном и отношения, которые соединяют текстовые диапазоны в некоторые новые понятия. Пример на рисунке – отношение “Family”, которое связывает две и более аннотации типа “Person”.
Текстовые диапазоны могут содержать в себе дополнительную текстовую информацию, которую пользователь добавляет сам, либо связывает аннотацию со внешними документами, например с популярными сайтами-энциклопедиями (Рисунок 1.2)
Рисунок 1.2 – Текстовый диапазон с информацией из Википедии
На рисунках 1.3 и 1.4 представлены фрагменты аннотированных документов. В глаза сразу бросается обилие аннотированных диапазонов текста и связей между ними. Такая структуризация очень удобна для машинной обработки текста, но для человеческого глаза это выглядит трудно читаемым.
Теги текстовых диапазонов могут быть любого цвета, из-за чего текст может превратиться в калейдоскоп ярких цветов, что в свою очередь затруднит чтение документа. Также теги и отношения между ними могут увеличивать пространство между строками текста, из-за чего текст становится большим по размеру, а на экране помещается меньше исходного текста.
Рисунок 1.3 – Фрагмент текста с обилием текстовых диапазонов
Рисунок 1.4 – Фрагмент текста с обилием отношений между текстовыми диапазонами
Текстовые диапазоны позволяют лишь настроить цвет подсветки диапазона с тегом, а также наименование тега, хотя это уже позволяет иметь большое количество возможных вариантов. Отношения между диапазонами позволяют настроить только наименование отношения.
Инструмент позволяет настраивать типы аннотаций, что позволяет иметь большое количество их визуальных представлений. Однако сам способ отображения аннотаций не слишком удобен для человеческого восприятия, но имеет большой потенциал для машинной обработки.
Формализуем все в рамках критериев сравнения: аннотации данного решения имеют выделение в теле документа, решение не имеет детальной настройки отображения аннотаций и не имеет альтернативных представлений этих аннотаций, а исходное форматирование текста не сохраняется.
1.2.2 Средство Word Add-in for Ontology Recognition
Word Add-in for Ontology Recognition [7] (далее Word Add-in) является надстройкой для Microsoft Word. Word Add-in предоставляет новый элемент пользовательского интерфейса в Word, который представляет из себя боковую панель с понятиями из онтологии (Рисунок 1.5), а также диалоговые окна и новые опции контекстного меню (Рисунок 1.6) для взаимодействия с пользователем.
Для добавления и отображения метаданных в документ используются смарт-теги, которые являются одним из способов добавления пользовательских данных в документы Office Open XML. Смарт-теги позволяют настроить тип данных, который в свою очередь определяет набор возможных операций данного тега. Например, для типа «Имя» имеются следующие операции: «Назначить встречу», «Добавить в свои контакты», «Добавить адрес».
Как было сказано, Word Add-in использует для отображения метаданных смарт-теги. Стоит сразу сказать, что на данный момент смарт-теги не рекомендуются для использования в документах [8]. До версии MS Word 2010 смарт-теги подчеркивались в документе фиолетовыми точками, но в последних версиях программы они никаким образом не помечаются. Все действия, которые доступны над смарт-тегами, доступны пользователю после того, как он выделит участок текста, содержащий тег и вызовет контекстное меню правым кликом мыши.
Таким образом, пользователь должен либо просто знать местоположение аннотаций, либо собственноручно помечать их (или наоборот, снимать метки), с участков текста, которые соответствуют аннотациям. Это может быть крайне неудобным, если речь идет о нескольких десятках аннотаций.
Если формализовать все в рамках критериев сравнения, то получим: аннотации данного решения никаким образом не выделяются в теле документа, решение не имеет детальной настройки отображения аннотаций и не имеет альтернативных представлений этих аннотаций. Поскольку данное решение является надстройкой над MS Word, то форматирование документа сохраняется.
Рисунок 1.5 – Боковая панель с понятиями онтологии
Рисунок 1.6 – Диалоговое окно по добавлению аннотации в документ
1.2.3 Средство General Architecture for Text Engineering
General Architecture for Text Engineering (GATE) [9] – проект с открытым исходным кодом, который предоставляет пользователям среду, в которой они могут легко использовать инструменты (такие как парсеры и теггеры) и лингвистические базы данных, а также запускать различные процессы обработки текста.
Согласно официальному сайту [10], аннотации в GATE организованы в виде графов, которые моделируются множествами языка Java. Аннотации представлены в виде дуг с начальным и конечным узлами, ID, присвоенным типом и набором объектов. Узлы содержат указатели на источники в документе в виде отступов. Чтобы определить тип аннотации, используются XML схемы, которые предоставляют средства для описания типов.
На рисунке 1.7 представлен фрагмент текста, который был автоматически проаннотирован средствами GATE. Аннотации в GATE визуализируются с помощью подсветки соответствующих им диапазонов текста. Цвет подсветки аннотаций можно сменить, но более детальной настройки визуализации не предусмотрено.
Рисунок 1.7 – Визуализация аннотаций в GATE
Подобно Word Add-in, GATE имеет боковую панель, на которой содержатся типы возможных аннотаций, отображение которых можно включить или отключить, поставив напротив наименования типа флажок. Каждый тип аннотаций определяет набор полей, которые могут быть отредактированы пользователем при создании аннотаций. Пользователь также может задать свои собственные типы. Интерфейс позволяет организовывать аннотации в группы. На рисунке группа стандартных типов не имеет названия и расположена первой, пользовательские группы следуют за ней.
Помимо боковой панели, интерфейс содержит дополнительные опции отображения аннотаций, например в виде таблицы (Рисунок 1.8).
Инструмент GATE предоставляет несколько способов отображения аннотаций. Самый простой из них – подсветка аннотаций непосредственно в тексте документа, что очень схоже с визуализацией аннотаций в Brat Corpora. Но GATE позволяет отключить отображение определенных типов, что является большим плюсом. Другое достоинство GATE – другие способы отображения метаданных пользователя, между которыми можно свободно переключаться. Это предоставляет большой простор для анализа метаданных как человеком, так и машиной.
Формализуем все в рамках критериев сравнения: аннотации данного решения имеют выделение в теле документа, решение не имеет детальной настройки отображения аннотаций, но имеет несколько альтернативных представлений этих аннотаций (группами, таблицей, списком), исходное форматирование текста не сохраняется.
Рисунок 1.8 – Отображение аннотаций в виде таблицы
1.2.4 Примечания MS Word
Согласно онлайн-справке программы, Microsoft Word, начиная с версии Microsoft Word 2003, имеет встроенный инструмент по аннотированию текста – примечания. Примечания позволяют выделить участок текста и добавить к нему некоторую текстовую информацию. Добавлены они были для совместной работы над документов нескольких пользователи. То есть, примечания в первую очередь – инструмент рецензирования документа.
На рисунке 1.9 представлены примечания, которые аннотируют текст расписания занятий. При наведении на текст аннотации, проаннотированные диапазоны текста подсвечиваются цветом, который уникален для каждого пользователя документа (и не может быть изменен для отдельной аннотации). Также, при наведении отображается линия, связывающая аннотацию и текст, что удобно при поиске аннотированного текста. Сама аннотация всегда находится справа от основного текста, в отдельном столбце, который не может быть скрыт.
Поскольку примечания были добавлены для совместной работы над документом, пользователи могут отвечать на примечания других пользователей, делать их неактуальными (кнопка «разрешить») и удалять. Удаление примечаний осуществляется так же, как и добавление через кнопки вкладки «Рецензирование» на ленте инструментов MS Word. Однако, это не кажется естественным – было бы гораздо удобней добавить к каждой аннотации кнопку удаления, чем выделять ее и переключать вкладки и кнопки.
Рисунок 1.9 – Примечания в MS Word
Если формализовать все в рамках критериев сравнения, то получим: аннотации данного имеют выделение в теле документа, решение не имеет детальной настройки отображения аннотаций и не имеет альтернативных представлений этих аннотаций. Поскольку данное решение включено в MS Word, то форматирование документа сохраняется естественным образом.
1.2.5 Сравнение средств
В данном пункте приведено сравнение описанных средств по описанным в начале этого раздела критериям в виде таблицы 1.1. Для удобства, продублируем критерии ниже:
? Выделение аннотаций в тексте документа. Данный критерий определяет возможность для пользователя нахождения аннотаций в тексте документа, просто просматривая текст;
? Количество альтернативных представлений аннотаций (помимо представления в тексте документа). Из самого названия критерия следует его суть. Альтернативные представления полезны, когда нужно работать с аннотациями вне текста. Чем больше, тем лучше;
? Детальная настройка отображения аннотаций. Данный критерий определяет возможность для пользователя детально настроить отображение аннотаций. Под детальной настройкой подразумевается настройка множества свойств аннотаций: цвет фонового выделения, цвет самой аннотации, различные настройка шрифта (размер, стиль, вес и т.д.), привязка анимации к аннотации и триггеров;
? Сохранение исходного форматирования текста. Из самого названия критерия следует его суть. Исходное форматирование текста помогает пользователю ориентироваться в документе.
Из результатов сравнения следует, что наиболее удачным решением оказалось решение GATE, но и оно обладает общим недостатком -– отсутствие детальной настройки отображения. Одно из преимуществ GATE – большое количество альтернативных представлений аннотаций, поэтому при проектировании средства аннотирования необходимо это учесть и добавить несколько альтернативных представлений аннотаций.
?
Таблица 1.1 – Сравнение решений
Решение Выделение аннотаций в тексте документа Кол-во альтернативных представлений Детальная настройка отображения аннотаций Сохранение исходного форматирования текста
Brat Corpora есть 0 нет нет
Word Add-in нет 0 нет есть
GATE есть 3 нет нет
Примечания MS Word есть 0 нет есть
1.2.6 Выводы раздела
Наиболее удачным средством оказался GATE, за счет возможностей выбора способа отображения аннотаций и частичного или полного отключения их отображения, что в свою очередь позволяет сосредоточиться на чтении текста документа.
Но также рассмотренные решения обладают общим недостатком – негибкая настройка отображения аннотаций. Пользователь практически никак не может повлиять на отображение метаданных документа, кроме как изменить цвет подсветки в тексте.
Для решения этой проблемы предлагается подход схожий со стилями CSS – дать пользователю возможность декларативно описать облик аннотации в отдельном файле, а затем подключить этот файл к компоненту и заново отобразить все аннотации с учетом этого файла.
1.3 Обзор формата документа Office Open XML
В данном разделе рассматривается формат документов Microsoft Word, который основывается на стандарте Office Open XML (OOXML). Прежде всего необходимо рассмотреть сам стандарт электронного документа, чтобы разобраться в его структуре. После, нужно узнать, что такое стиль, каких типов бывают стили, их иерархию. Для лучшего понимая, нужно рассмотреть примеры каждого типа стилей.
1.3.1 Стандарт OOXML
Стандарт OOXML – серия форматов файлов для хранения электронных документов пакетов офисных приложений, в частности, Microsoft Office. Данный стандарт представлен в ISO/IEC 29500.
Стандарт был предложен [11, 12] для преодоления ограничения двоичных форматов хранения документов, которые длительное время использовались на таких платформах, как Microsoft Office. Основанный на XML, формат стандартизован и базируется на открытых технологиях, что обеспечивает его применимость на различных платформах и во многих ОС.
Логически, документ OOXML является пакетом Open Package Conventions [12]. Пакет представляет собой коллекцию частей. Каждая часть имеет имя, которое состоит из последовательности именованных сегментов, разделенных косой чертой. Также, каждая часть имеет тип содержимого (content type). Физически, пакет – это ZIP-архив, каждый элемент которого является частью, и пути в архиве напрямую соответствуют именам частей. Корневой элемент «/[Content_Types].xml» всего пакета определяет тип содержимого каждой части этого пакета.
Части могут содержать в себе явные отношения с другими частями этого же пакета, а также с внешними ресурсами. Каждое явное отношение имеет идентификатор, который позволяет содержимому части ссылаться на нее; и тип, который позволяет приложению решать, как обрабатывать содержимое части. Типы отношений именуются с использованием URI, что позволяет создавать новые типы без конфликтов.
Явные отношения для пакета или его части хранится в части отношений. Часть отношений для всего пакета называется «/_rels/rels», а для части с именем «/a/b/c.xml», она будет называться «/a/b/_rels/c.xml.rels». Части отношений и части типов содержимого – единственные части с особыми именами в пакете. Для открытия пакета приложение должно проанализировать часть отношений пакета и выбрать отношения подходящих типов.
Все остальные части пакета содержат Open XML, пользовательский XML или файлы произвольного типа, такие как объекты мультимедиа.
1.3.2 Cтили в документе
Стиль является набором определенных значений параметров форматирования, который можно применить как единое целое к элементу документа [11, 12, 13]. Стили хранятся в отдельной части пакета, которая называется компонентом стилей. Она содержит XML-код, соответствующий стандарту OOXML, и имеет особый тип содержимого (Рисунок 1.10).
Рисунок 1.10 – Тип содержимого для стилей
Компонент стилей имеет также и особый вид явного отношения, которым он соединён с основным компонентом документа. Тип этой связи представлен на рисунке 1.11.
Рисунок 1.11 – Тип явного отношения для стилей
Таким образом, явные отношения, устанавливаемые определенным компонентом, могут храниться в файле части отношений, который относится к данному компоненту.
Типы стилей
В компоненте стилей хранятся три разновидности элементов: стили, скрытые стили (latent-styles) и стандартные стили документа (document defaults). Все они могут определять параметры форматирования содержимого документа.
Стили определяют параметры форматирования, применяемые в документе в данный момент. Скрытые стили не используются и не видны в документе и формируют своего рода кэш стилей: к ним, например, относятся стили, скопированные из шаблона документа. Стандартные стили документа – это стили, используемые в документе по умолчанию. На рисунке 1.12 представлена возможная структура компонента стилей.
Стили позволяют задавать параметры форматирования для элементов трех типов: диапазонов текста, абзацев и таблиц. Стили абзаца могут определять формат как абзацев, так и диапазонов текста, т. е. применяться в элементах документа pPr и rPr. Стиль символа может быть применен только на уровне свойств области (rPr). Стили таблиц могут быть указаны в свойствах таблиц и ячеек (tblPr и tcPr), а также в свойствах абзацев и областей.
Рисунок 1.12 – Структура компонента стилей
Иерархия стилей
Стили могут наследовать другие стили, формируя иерархии. Верхние уровни иерархии (Рисунок 1.13 [13]) применяются первыми (стандартные стили документа), а нижние – последними (непосредственное форматирование). Каждый последующий уровень может расширять и переопределять параметры предыдущего (верхнего) уровня.
Рисунок 1.13 – Иерархия стилей
Возможные конфликты разрешаются двумя способами. Любое свойство, определенное на родительском (более высоком) уровне, переопределяется дочерним уровнем (более низким). На дочернем свойство может быть или переопределено или сброшено. В случае сброса значение свойства наследуется от предка. Если в родительском стиле свойство тоже не определено, поиск возможного значения производится вверх по иерархии – вплоть до корневого стиля, которым является стандартное значение стиля документа.
1.3.3 Примеры стилей
Стиль абзаца
Как можно увидеть из рисунка 1.14, стиль объявляется элементом w:style, после чего указывается его тип w:type, который для абзаца равен paragraph, и идентификатор w:styleId. Далее следуют четыре основных элемента стиля его наименование w:name, следующий за ним стиль w:next, стиль, от которого унаследован данный w:basedOn и элемент w:qFormat, который указывает, что данный стиль должен отображаться в окне быстрого форматирования. Это базовые элементы каждого стиля.
После основных элементов следуют элементы, которые непосредственно определяют стиль. Стиль абзаца может содержать в себе свойства как самого абзаца, так и областей текста, которые содержатся в нем. Свойства абзаца и области текста находятся в различных элементах-контейнерах. Сделано это для того, чтобы разделить описание свойств самого абзаца (w:pPr) и его областей текста (w:rPr). В данном примере свойства абзаца определяют отображение нижней рамки абзаца и величину отступа, а свойства области текста определяют шрифт и его размер.
Рисунок 1.14 – Пример стиля абзаца
Стиль символов
Тип стиля символов – character. В отличии от стиля абзаца, стиль символов может содержать в себе только свойства области текста w:rPr. Пример стиля символов приведен на рисунке 1.15. В данном примере стиль определяет, что текст должен отображаться полужирным.
Рисунок 1.15 – Пример стиля символов
Стиль таблицы
Тип стиля таблицы – table. Стили таблицы отличаются более сложной структурой. Каждый стиль таблицы может содержать не только свойства самой таблицы и ее ячеек, но и свойства верхней и нижней строк, первого и последнего столбца, свойства чередующихся строк. Кроме того, эти элементы внутри себя могут содержать свойства абзацев и областей текста. Пример стиля таблицы приведен на рисунках 1.16 и 1.17.
Рисунок 1.16 – Пример стиля таблицы
Рисунок 1.17 – Продолжение примера стиля таблицы
Данный пример содержит определение свойств для первой строки, первого столбца и каждой четной строки таблицы, помимо определения свойств таблицы (w:tblPr), которые распространяются на все элементы таблицы.
Свойства первой строки, первого столбца и четных строк определены в под-стилях, которые объявляются с помощью элемента w:tblStylePr, после чего указывается тип под-стиля. Это может firstRow, firstColumn или band1Horz, которые соответствуют первой строке, первому столбцу и четным строкам. Внутри стиля таблицы или ее под-стилей могут определяться свойства ячеек (w:tcPr).
1.4 Стили в Windows Presentation Foundation
В данном разделе рассматриваются стили в приложениях на базе Windows Presentation Foundation. Акцент сделан на возможностях, которые предоставляют стили, их структуре и способе хранения и применения. Необходимо узнать место хранения стилей в приложениях, какие возможно предоставляют стили WPF, их структуру и способ создания.
Технология Windows Presentation Foundation (WPF) представляют собой API-интерфейс для создания программ с богатым графическим интерфейсом. Важная особенность – декларативность определения графического интерфейса при помощи языка разметки XAML, основанного на XML.
1.4.1 Ресурсы WPF
Здесь и далее, согласно [14] система ресурсов WPF представляет собой простой способ хранения в одном месте набора некоторых ресурсов, таких как наиболее часто используемые кисти, стили или шаблоны. Такой подход существенно упрощает работу с разметкой интерфейса.
Ресурсы можно определять в коде разметки до основного описания всего интерфейса или в различных местах внутри разметки.
Ресурсы обладают следующими преимуществами:
? Эффективность – ресурсы позволяют определять объект один раз, а затем использовать его в нескольких местах внутри разметки,
? Сопровождаемость – ресурсы позволяют переносить низкоуровневые детали форматирования в одно центральное место, в котором их легко изменить,