Еще один шаг развития Web-технологий в направлении активности и открытости

Е.М. Бениаминов

Сегодня на страницах Web может быть представлена разнородная информация: тексты, изображения, видеоклипы, конференции, аудио информация и т.д. Более того, на некоторых сайтах пользователям предоставляется возможность в онлайн-режиме формировать свою страницу. Каждая такая страница набирается (составляется) самим пользователем из различных объектов и сервисов.

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

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

Основное средство (может быть единственное?), которое сейчас используется для поиска информации на загруженной странице - это поиск слова или некоторого фрагмента текста на странице. А хотелось бы, чтобы пользователь в браузере мог задавать запросы к загруженной странице на поиск объектов данной страницы, обладающих некоторым набором свойств. Если пользователю позволяется формировать свою страницу, то ему должно быть позволено задавать и изменять некоторые свойства его объектов. Поэтому хотелось бы, чтобы пользователь в браузере мог задавать вопросы к странице, получать ответы и формировать команды к объектам страницы. Если продолжать фантазировать в этом направлении, то в идеале хотелось бы сделать более реальным процесс диалога со страницей (текстом, книгой). Как известно, если текст страницы (книги) хороший, то человек раздумывая, ведет мысленный диалог с текстом, создавая образ содержания текста в голове и формирую ответы на вопросы к своему представлению текста. Хотелось бы элементы этого диалога сделать реальными.

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

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

Таким образом, у Web-страницы есть текст, внешнее отображение (лицо), сервисы (программы, работающие с данными и объектами страницы) и должна быть часть, которую можно назвать внутренним представлением «мира страницы». Внутреннее представление страницы формируется на основании онтологического описания этой страницы и ее данных. Внутреннее представление - это часть страницы, в которой фиксируются некоторые договоренности о данных, представленных на странице и о самой странице в строго фиксированной форме. Эти данные будут использоваться при формировании ответов на запросы к «миру страницы», но могут использоваться и системами поиска страниц для построения релевантных ответов на поисковые запросы.

В направлении развития Web-технологии, получившей название «семантика Web», именно релевантный поиск рассматривается как основная функция, побуждающая вводить семантическую информацию на страницах. Мне кажется, улучшение качества поиска страниц не побудит массового пользователя делать большие усилия для формализации «мира страницы» и делать это на программистских языках онтологий. Если же введение представления «мира страницы» обеспечит новую функциональность для работы со страницей, то это может стимулировать некоторых пользователей к формализации своих страниц в требуемом направлении. Если же мы хотим обеспечить массовость этой деятельности, то должны обеспечить пользователям либо простоту языка представления этих данных (хотя бы на уровне HTML), что, скорее всего, невозможно, либо предоставить удобные инструменты для формирования этой части страницы, подобные инструментам построения современных страниц, что на данном этапе нереально, либо обеспечить открытость языка представления «мира страницы», сформировав ядро такого языка на базе современных языков программирования, уже используемых для обеспечения функциональности элементов страниц в Web.

Открытость языка означает, что его функциональность и конструкции могут наращиваться и видоизменяться, и язык может специализироваться в зависимости от контекста – текущей страницы. Чтобы обеспечить работу системы в этой ситуации, нужно, чтобы доступ к словарям языка был контекстным - зависел от того, из какой страницы происходит обращение к словарю, содержащему термины и грамматические правила, доступные и применимые к загруженной странице. Кроме того, браузер нужно расширить программой эффективного грамматического анализа и программой выполнения грамматически разобранных выражений. Программа грамматического анализа тексты пользователя на предлагаемом языке должна переводить в префиксную (древовидную) форму или терм. Программа использует при этом грамматические правила, доступные из страницы, и соотношения, фиксированные во внутреннем представлении этой страницы. Далее, уже программа выполнения грамматически разобранных выражений по построенному дереву (терму) выполняет действия в последовательности, задаваемой термом. При этом может меняться внутреннее представление «мира страницы», словарь и грамматические правила, могут подгружаться внутренние представления и программы из других страниц, где определены действия используемых функций, или выдаваться ответы на запросы пользователя, в соответствии с текстами, сформулированными пользователем на предлагаемом открытом языке.

Открытость языка позволит сначала продвинутым пользователям создавать и коллективно отлаживать специализированные языки для своих специфических нужд, а затем массовым пользователям использовать и подстраивать эти языки для своих страницах. Естественно, что пользователям нужно обеспечить возможность создавать свои страницы не с нуля, а использовать чужие страницы в качестве среды или, как это называется в wiki, страниц-шаблонов. В этом случае, пользователь может воспользоваться, языком страницы-среды, элементами ее внутреннего представления и сервисами.

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