четверг, 30 декабря 2010 г.

Как решить проблемы современного поиска?

ABSTRACT

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


ЧТО ПОИСК МОЖЕТ СЕГОДНЯ

Сегодня поиск может найти миллионы страниц контента, однако вместе с правильными результатами мы можем получить и ненужную информацию. "Столица Франции" может извлечь 35 миллионов страниц вместо всего одного слова. Пока пользователи мирятся с данным положением дел, но все больше и больше зреет необходимость в чем-то более искушенном, чем просто догадка, основанная на сложных математических/статистических методах для поиска слов в базе данных миллиардов страниц. Но проблема не только в поиске, но и в том, как информация организована, что видно из следующих примеров:

1. Поиск.

- Запрос "опера" дает ссылки на (а) браузер, (б) статьи об опере как виде искусства, (в) оперные театры, (г) отель "Опера".
- Запросы "Европейский Союз" и "ЕС" дают разные результаты и включают информацию не только о самом ЕС, но и близких по значению темах, таких как делегация ЕС или поездки в ЕС.
- Запрос "Германия Испания" дает ссылки в основном на матч чемпионата мира 2010, однако, не все интересуются футболом (а отношения между Испанией и Германией не ограничиваются только этим матчем, даже внутри футбольной темы)
- Запрос "Германия Испания 2010 футбол" дает ссылки на чемпионат мира 2010 года в общем (хотя этот запрос, напротив, конкретизирует смысл)
- Запрос "Как проехать в Арагон", по сути, не дает результатов вообще (хотя он дает множество ссылок, которые не имеют отношения к запросу)
- Запрос "Арагон" неоднозначен, т.к. мы можем хотеть или (а) идентифицировать слово, т.к. не знаем, что такое Арагон вообще, или (б) детализировать слово, нам же поиск дает множество неотсортированных ссылок, которые пытаются покрыть все возможные цели запроса
- Запрос "Арагон Наварра" неоднозначен, т.к. мы можем хотеть узнать (а) как слова обобщаются, например, что они являются частью современной Испании, (б) как слова связаны, например, какие отношения между Арагоном и Наваррой существуют сейчас или в прошлом, или как проехать из Арагона в Наварру и т.п.
- Запросы "Арагон Испания" и "Арагон Сарагоса" неоднозначны, т.к. включают в себя понятие, который является частью другого понятия

2. Помощь к поиску.

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

3. Обобщения, ключевые слова.

http://gazeta.ru/science/2010/10/12_a_3427805.shtml
Страница озаглавлена как "Есть ли жизнь под Марсом", подзаголовок гласит "Жизнь на Марсе может существовать на глубине нескольких километров", другой подзаголовок раскрывает тему еще больше: "Жизнь на Марсе может существовать на глубине нескольких километров. Такое предположение сделали ученые, ознакомившись с новыми данными, полученными станцией Mars Reconnaissance Orbiter (MRO)". Какой из заголовков правильный? Какой наиболее точно передает содержание страницы? Теги содержат следующие слова: Жизнь на Марсе, Mars Reconnaissance Orbiter, карбонаты, гидротермальные ископаемые. Почему "Жизнь на Марсе" и почему не просто "Марс"? Почему "карбонаты"? Относится ли эта страница к теме карбонатов или же к теме карбонатов на внеземных объектах? Сама статья, в соответствии с URL классифицирована, как относящаяся к "Науке", внутри страницы мы еще находим ссылку на тему "Космический обзор". Почему "Космический обзор", а не "Космос"?

Если мы посмотрим на html, то увидим еще множество параллельных определений (которые включают заголовки разных типов и стандартов):
<link rel="alternate" type="application/rss+xml" title="Газета.Ru - двадцать строк о науке" href="http://www.gazeta.ru/export/rss/science_20.xml">
<link rel="alternate" type="application/rss+xml" title="Газета.Ru - Наука. Новости" href="http://www.gazeta.ru/export/rss/science_more.xml">
<meta name="keywords" content="Жизнь на Марсе, Mars Reconnaissance Orbiter, карбонаты, гидротермальные ископаемые">
<meta name="description" content="Жизнь на Марсе может существовать на глубине нескольких километров. Такое предположение сделали ученые, ознакомившись с новыми данными, полученными станцией Mars Reconnaissance Orbiter (MRO).">
Так какой из заголовков правильный?

4. Классификации.

Как размещается информация на порталах, можно увидеть на примере одной утилиты, которая оказалась в следующих категориях на разных сайтах:
- Система
- Системная информация
- Софт / Сетевые утилиты / Мониторинг сети
- Home > Windows > Network Tools > Network Information
- Home > Windows Software > Utilities & Operating Systems > System Utilities
- System > Power Tools

http://www.bbc.co.uk/nature/species/Common_Goldeneye
Страница использует множество произвольных, по сути, классификаций (можно представить еще пару подобных: Nature -> Birds -> Goldeneye или Birds -> Goldeneye):
1. Внутри URL: Nature -> Species -> Common Goldeneye
2. На странице: Wildlife Finder -> Animals -> Goldeneye
3. Animals -> Vertebrates -> Birds -> Anseriformes -> Ducks, geese and swans -> Bucephala -> Goldeneye

5. Локальная информация.

Страницу из предыдущего примера мы можем положить в C:\Downloads\Animals\Goldeneye.html (хотя браузеры предлагают даже более интересное имя файла: "BBC - Wildlife Finder - Goldeneye facts, pictures & stunning videos"). Если после этого вы нашли еще и видео файл, но на диске C нет места, то вы сохраните его как D:\Video\Animals\Duck_geye.avi. Как позже найти оба файла? Запустить локальный поиск? Один раз это имеет смысл, но, если вы будете работать с ними несколько раз, то желательно иметь их под рукой всегда. Библиотеки файлов? У них свои ограничения: вы должны вручную их создавать, а если их станет совсем много, то вам опять придется использовать поиск уже внутри этих библиотек. В реальности же, получается так, что мы многократно проделываем одну и ту же операцию (поиск ли это или следование пути, используя каталоги или библиотеки).

6. XML, Семантический Веб, микроформаты.

Семантический Веб уходит от акцента на представлении информации (что делает гипертекст) и обращается к смыслу (семантике) информации. Например, данные о конкретном человеке в нем представляются так:


<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#">

<contact:Person rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:fullName>Eric Miller</contact:fullName>
<contact:mailbox rdf:resource="mailto:em@w3.org"/>
<contact:personalTitle>Dr.</contact:personalTitle>
</contact:Person>

</rdf:RDF>


Конечно, едва ли мы сможем пользоваться таким представлением, которое, очевидно, ориентировано на машинную обработку данных. Микроформаты реализуют ту же идею (работы со смыслом), используя гипертекстовые элементы. Пример данных о домашнем телефоне:


<span class="tel">
<span class="type">home</span>:
<span class="value">+1.415.555.1212</span>
</span>


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


ПРОБЛЕМЫ СОВРЕМЕННОГО ПОИСКА И ОРГАНИЗАЦИИ ИНФОРМАЦИИ

Как вы можете видеть, мы сталкиваемся с множеством проблем, так как поисковые системы:
- ищут слова, а не смысл (запрос "ЕС" об именно ЕС, а не обо всем, что относится к ЕС)
- не понимают всех синонимов ("ЕС" и "Европейский Союз")
- не пытаются уточнить, что вы имели ввиду ("опера" - это браузер или музыкальное произведение)
- не пытаются понять цель запроса (идентифицируем мы слово или детализируем, и т.п.)
- информация не всегда упорядочивается (например, группировка схожей информации)
- предоставляют слишком избыточные ответы (миллион страниц вместо одного слова)
- не понимают сложных отношений между словами
- последния события имеют большую релевантность (только потому что они чаще упоминаются в новостях и дискуссиях), но это не всегда так для того, кто ищет
- требуют дополнительного времени для уточнения запроса (что часто нарушает одно из правил GUI, что любая цель должна быть достигаема за 3 клика)
- удовлетворительный результат обычно получается, если мы ищем либо определения термина (тогда, здесь нет сложных отношений и слово запроса обычно совпадает с заголовком страницы в словаре), либо типичную информацию (которая представлена на множестве страниц, которые используют разные синонимы, что увеличивает шансы угадать их в запросе)

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

Но ведь существуют еще и проблемы упорядочивания и использования информации:
- идентификация предметов реального мира недоступна (поэтому смысл слов доступен только людям)
- классификации произвольны (относится ли статья к "животным" или "хордовым"?)
- некоторые классификации (как каталоги файлов) позволяют упорядочивать информацию, но не запрещают неправильно отклассифицированную информацию (например, вы можете положить файл музыки в каталог с фильмами и т.п.), т.к. не делают явными критерии классификации (например, если вы не знаете, кто такой Верди, то вы не сможете понять, что означает путь "Музыка/Опера/Верди")
- зафиксированные критерии классификации ухудшают вероятность повторного нахождения информации (вы можете поместить фильм в каталог "Фильмы/2010", но после забыть в каком году фильм был выпущен) и разделяемость информации (копирование части дерева каталогов может быть весьма трудоемко, т.к. оно охватывает вовлеченные ветви дерева полностью, а нам нужны только их части, например, если вам нужно скопировать три файла из разных подкаталогов, с сохранением имен каталогов)
- существующие классификации (включая разнообразные таксономии и онтологии) используют множество отношений для определения своих элементов, что затрудняет их использование (а часто понятно только экспертам в семантике)
- обобщение или абстрагирование (которое обычно представлена заголовком, т.е. кратким содержанием статьи) тоже произвольно: заголовки часто состоят из метафор или других элементов, которые засоряют понимание какой контент скрывается за ним (например, заголовок может включать название сайта, но вы даже можете не подозревать, что это название сайта), иногда они заменяются ассоциациями, ключевыми словами и тегами (например, "Жизнь на Марсе может существовать на глубине нескольких километров" раскрывает смысл статьи, а ассоциации "карбонаты" или "гидротермальные ископаемые" понятны только специалисту)
- обобщение дублируется (и частично становится противоречивым) внутри заголовка ссылки, внутри заголовка страницы, в дополнительных тегах, ключевых словах, в заголовках ссылок, которая указывает на эту страницу и т.п.
- URL трудно запомнить (т.к. используются аббревиатуры, а разделители естественного языка не используются по назначению)
- ссылка указывает на один ресурс, тогда как в естественном языке ссылка (слово) является обобщающей ссылкой (слово "фильм" может указывать на любой фильм)
- не у каждого предмета или явления есть соответствующий компьютерный ресурс, а если и есть, то он может устареть или быть удаленным
- гипертекст жестко интегрирует разнородную информацию, что приводит в результате к "контентовому кошмару" (невозможно понять, где граница между разным контентом, между контентом и не-контентом)
- во многих случаях мы работаем с простым текстом потому, что существующие приложения работают либо с заранее структурированной информацией, либо с неструктурированной информацией вообще
- интеграция информации, во многих случаях, практически отсутствует, т.к. мы используем текстовые идентификаторы без привязки к смыслу (т.е. если даже файл назван "Храброе сердце" - то это не означает, что файл связан с фильмом, или с каким-то другим содержанием, которое вы решили назвать так)
- обмен информацией затруднен вследствие необходимости явного использования определенных средств (электронной почты, сайтов и т.п.)
- использование информации затруднено, т.к. не существует простых способов совместного использования классифицирующей информации (т.е. каждый пользователь должен классифицировать информацию заново) и фильтрации информации (т.е. пользователь должен заново фильтровать информацию практически при каждом обращении к ней)
- проблема доступа к информации не решена прозрачно, поэтому ее либо игнорируют вообще, либо ставят столько барьеров, что пользование информации становится проблематичным

У Семантического Веба (его создатели называют его еще "Вебом данных") свои недостатки и проблемы репрезентации знаний вообще:
- ориентирован на обработку машинами
- рассматривает упорядоченные данные и приложения и представляет собой универсальный формат данных для интеграции больших массивов данных и приложений, но пока нет общепринятого представления для людей
- работать с ним могут эксперты (которые могут иметь дело с его стандартами)
- проблема идентификация предметов и событий реального мира не раскрывается полностью (иначе бы мы уже бы пользовались ею)
- в нем отсутствует механизм поддержки детализации/обобщения (который является одним из важнейших механизмов интеллекта)
- семантика представляется в виде триплетов "подлежащее-сказуемое-дополнение" (subject-predicate-object), игнорируя все богатство естественного языка
- для него актуальна квалификационная проблема (для любого обобщающего определения существует множество исключений) и проблема большого количества взаимосвязанных фактов


ОТКУДА БЕРУТСЯ ЭТИ ПРОБЛЕМЫ?

Данные недостатки появляются т.к. поиск рассматривает тексты как набор символов (подобно тому, как мы видим текст на неизвестном нам языке). Естественно, что не понимая смысла текста, можно только угадывать что ищут пользователи, благодаря совпадению слов. Советы для поиска, более изощренные математические методы могут помочь увеличить вероятность успешного совпадения, но не более того. И только понимание текста может вывести поиск на качественно новый уровень, что означает, что поиск должен рассматривать не текст, а смысл.

Например, в чем смысл фильма "Храброе сердце"?
- фильм как (1) последовательность кадров, (2) видеокассета, диск или файл, (3) актеры, декорации, сцены
- в самих исторических событий, которые имели место несколько веков подряд
- (1) в описании этих событий, (2) интерпретация этого описания в фильме, (3) описании того, как снимался фильм
- идеи, мысли, чувства и эмоции, которые (1) вложены в эту интерпретацию, (2) испытывали реальные актеры при съемке, (3) испытывает конкретный зритель

Этому смыслу соответствует следующие идентификаторы:
- название "Храброе сердце", которое уникально идентифицирует этот фильм (хотя это название не уникально, т.к. в 1925 году уже выходил такой фильм, поэтому более точное название будет "Храброе сердце (1995)")
- слово "фильм" или "исторический фильм", которыми мы подчеркиваем сходство с другими фильмами, обобщая его свойства и игнорируя детали
- слова, которые описывают сюжет фильма
- слова, которые описывают наши чувства и впечатления от фильма
- кадры, которые и есть фильм, тоже могут считаться описанием (изображение - это тоже язык, но визуальный)

Давайте, попробуем разобраться по порядку, что же мы здесь видим (и что, собственно говоря, и составляет понятие смысла):
- предметы и явления реального мира (здесь, это исторические события)
- чтобы уменьшить сложность предметов и явлений до уровня, достаточного для восприятия, субъект познания трансформирует их в символы и идентификаторы (визуальные и другие представления, буквы и слова естественного языка, цифры, и т.п.)
- идентификаторы, отделенные от реального мира (т.к. они остаются внутри субъекта познания), начинают жить своей собственной жизнью, образуя систему идентификаторов / абстрактный мир со своими предметами и явлениями (здесь, это описание исторических событий и их интерпретация в фильме, а также идеи, мысли, чувства как самого фильма, так и зрителей)
- идентификаторы используются для ссылки на объекты ("Уильям Уоллес"), на действия ("битва на Стерлингском мосту"), на отношения, т.е. объекты абстрактного мира ("отец Уильяма Уоллеса", где "отец" - это отношение, которое обозначает факт родства, но которое не может быть воспринято в реальности напрямую, т.к. факт родства может быть только зарегистрированным или подтвержденным анализом ДНК), на временные отношения, т.е. абстрактные действия (сам фильм и фраза "если бы Уильяма Уоллеса не казнили", где действия не являются частью реальности), и на смешанные структуры ("я смотрел Храброе сердце", где "я" и "смотрел" являются частью реальности, тогда как сам фильм - смесью реляционных объектных и временных структур)
- в общем случае, чем больше идентификаторов мы используем для описания, тем более конкретным (детальным) оно является, и более абстрактным (обобщенным), в обратном случае (например, "Храброе сердце, кинотеатр М города Н, 20:00 26 октября 2010 года" указывает на сеанс конкретного фильма, фраза "фильм в октябре 2010 года" указывает на все фильмы, которые где-либо проходили в октябре 2010 года, а слово "фильм" указывает на любой фильм вообще, хотя в фразе "я смотрел вчера фильм" оно указывает и на конкретный сеанс)
- чтобы уменьшить количество идентификаторов ("человек, который боролся за независимость Шотландии в 13 веке") мы можем использовать уникальный идентификатор (например, "Уильям Уоллес"), которые могут образовывать собственные системы идентификаторов (система личных имен, названия стран, база данных, и т.п.)
- так как система идентификаторов независима от реального мира (мы должны, но не всегда поддерживаем верифицируемость), то смысл идентификатора может зависеть как от обстоятельств, предметов и явлений (смысл фразы "я был в кино" зависит от того, где и когда была сказана эта фраза), так и от субъекта и его представлений ("я был в кино" зависит еще и оттого, зачем и почему фраза была сказана), так и от самой системы идентификаторов (не понимая русского языка, нельзя понять, что означает слово "фильм")
- перевод идентификаторов из одной системы в другую (из представления в язык, из языка в язык, между идентификаторами одного языка) может быть основан на идентичности (если существует однозначное соответствие идентификаторов, как между "Уильям Уоллес" и "William Wallace") или же на схожести, т.е. частичной идентичности (как между "Уильям Уоллес" и "герой Шотландии", где сходство между идентификаторами достигается за счет идентичности только части из критериев, входящих в описание этих идентификаторов)

Но причины существующих проблем еще и в том, что смысл должен рассматриваться шире:
1. Чтобы рассматривать смысл как можно точнее, мы должны брать во внимания все системы идентификаторов, которые при этом используются. А они включают в себя как сам текст (как результат поиска), так и запрос (которому уделяется недостаточно внимания, даже учитывая советы по поиску). Сейчас поисковая система пытается удовлетворить сразу все направления поиска, которые возможны теоретически, оставляя выбор на усмотрение человека. Однако, такой подход будет проблемой, если мы будем использовать сложные запросы, которые будут включать подзапросы (т.е. для которых выбор будет предоставляться не человеку, а машине).
2. Интерфейс тоже должен рассматриваться как часть семантики. Что, по меньшей мере, подразумевает некоторую синхронизацию между интерфейсом и семантикой (например, если вы в данный момент оказались в окне программы регистрации фильмов, то все запросы, сделанные из этого окна, должны быть фильмами, и т.п). То есть, результат работы интерфейса или поиска должен являться контекстом (основой) для дальнейшей работы с информацией.
3. Проблема идентификации сильно недооценена: например, вместо определения всех деталей информации (определения ее связей, отношений, и т.п.) часто достаточно уточнить ответ на вопрос "Что это такое?" Так, даже простой пользователь, может идентифицировать какое вино он купил по этикетке, но только эксперт может сказать к каким классам оно принадлежит, как связано с другими объектами и т.п. Детальная же информация является уже производной от идентификации: если вы знаете, что смотрите именно "Храброе сердце" 1995 года, то этого достаточно, чтобы найти, на какой студии выпущен, кто в нем играет, и т.п.
4. Локальный поиск рассматривают как аналог поиска в Интернете, хотя его задача звучит скорее как "Где оно находится?", чем "Что это такое?", поэтому просто неэффективно запускать каждый раз полнотекстовый поиск для нахождения потерявшегося файла (содержание которого вы даже может помнить лучше, чем его месторасположение на диске).

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


КАК РЕШИТЬ ПРОБЛЕМЫ ПОИСКА И ОРГАНИЗАЦИИ ИНФОРМАЦИИ?

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

Если мы посмотрим на развитие компьютерных технологий, в общем, и развитие Веба, в частности, мы можем увидеть, что и здесь мы сталкиваемся с тем же дуализмом. С одной стороны, точные приложения, с другой стороны - необходимость предоставить интерфейс людям, которые предпочитают гибкость и обобщения. Этот дуализм проявляется и в двух Вебах: обычном и Семантическом ("Веб данных"). Изначально обычный Веб был создан именно для людей, что хорошо проявляется в его особенностях:
- гипертекст связывает разнородный контент, используя достаточно простой язык (до этого для этих целей использовались технологии и форматы, которыми можно было пользоваться только используя сложный инструментарий, тогда как гипертекст можно редактировать в любом текстовом редакторе)
- гипертекст обладает хорошей выживаемостью (он функционирует даже при неполных данных, т.е. неполностью загруженный или неправильный гипертекст во многих случаях, не утрачивает информативности)
- гипертекст допускает неопределенность (слова) и определенность (конкретные ссылки) одновременно
В то время Семантический Веб (и отчасти XML) ориентированы прежде всего на машины:
- они представляют собой набор форматов для универсального представления данных, что, в общем-то, недалеко от бинарных форматов, которые существовали и десятилетия до этого (сама универсализация данных стала более насущной в силу существования Интернета и необходимости совместимости между данными из различных источников)
- как и любой машинный формат, он должен быть точным и подчиняться определенным правилам, что не всегда приемлемо для людей

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

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

Компромисс между точностью и гибкостью может быть достигнут только на стыке технологий, которые их предоставляют. В отношении смысла, такими технологиями выступают машинно-ориентированный XML (стандарты Семантического Веба отчасти являются продолжением идей XML) и человечески-ориентированный HTML. Микроформаты уже используют эту идею, с несколькими "но": (а) это опять же "форматы", т.е. опять же ориентированы на машины (люди способны работать с форматами тоже, но только до определенной степени сложности), (б) это именно микро-форматы, т.е. возникает проблема их фрагментированности, (в) они используют теги class, rel, rev и title, которые уже имеют другой смысл и которые не могут обеспечить всех возможностей, но об этом ниже. Так как же сделать решение дружественным и для людей, и для машин, но и чтобы присутствовали все необходимые возможности?


ИДЕНТИФИКАЦИЯ

Прежде чем манипулировать чем-то, мы должны узнать что это. А для этого нам нужны идентификация. И идентифицирующий протокол. Почему именно протокол? Естественного языка (который выступает таким идентифицирующим протоколом в реальной жизни) нам недостаточно, в силу его двусмысленности. Зачем же нужен протокол, можно видеть на примере гипертекстового протокола, который нужен, чтобы установить соответствие между URL и информационными ресурсами. Точно также идентифицирующий протокол нужен, чтобы установить соответствие между идентификаторами, и между любым идентификатором и предметами и действиями реального мира, понятиями и т.п. Для этого, собственно говоря, уже существует URN, но он не нашел своего развития в силу ограничений:
- говоря о различиях между URN и URL, первый сравнивают с "именем адресата", а URL с "адресом", утверждая, что они дополняют друг друга
- URN включает в себя NID (идентификатор пространства имен), которые должны регистрироваться (подобно именам доменам)
- URN включает в себя NSS (строка пространства имен), который не учитывает особенности построения идентификаторов в естественном языке
Эти ограничения существенно сдерживают применения URN, т.к.:
- на самом деле, URL - частный случай URN, т.к. представляет собой частный случай идентификатора, который указывает на информационный ресурс в Интернете
- существующая вялотекущая регистрация NID-ов потенциально грозит той же коррупцией, которая сложилась с доменами и коллизиями вокруг имен; разумеется, что регистрация сама по себе необходима, чтобы исключать конфликты между пространствами имен, но она должна быть децентрализирована и распределенной
- NSS представляют собой трудно запоминаемые идентификаторы (например, urn:isbn:0451450523 для книги или urn:isan:0000-0000-9E59-0000-O-0000-0000-2 для фильма), вместо них желательно использовать сложные идентификаторы на естественном языке (но и транслируя их за сценой в более точные идентификаторы, если это неоходимо)

Например, возьмем наш случай со словом "опера", при помощи URN мы можем представить отдельные значения как:
- urn:browser:Opera
- urn:art:opera
- urn:hotel:Opera (Madrid)
- urn:English:opera
- urn:Russian:опера
Вообще говоря, существует бесконечное количество NID-ов (включая (а) личные, например urn:PetrovVasiliy:я, который укажет, что идентификатор "я" связан с конкретной личностью, (б) для организаций: urn:Моя компания:Здание 1, Офис 220 или urn:Моя компания:Проект 1, Приложение, Окно настроек, (в) внутри абстрактного мира, например, фильма: urn:Braveheart:Bruce Wallace, который указывает на образ, созданный в этом фильме), которые относятся либо к различным системам идентификаторов (языки, протоколы, и т.п.), либо к субъектам, в рамках которых складывается своя система идентификации (личности, организации, науки, и т.п.). Отдельного упоминания заслуживают цифры, которые представляют собой бесконечный ряд идентификаторов, изменяющихся по определенным правилам. Они тоже нуждаются в субъекте (который меняет их смысл), который должен представлять (1) систему исчисления, (2) формат разделителей, (3) единицу измерения.

По сути же NID представляет собой субъект, в рамках которого идентификатор получает субъективную ассоциацию с предметом или понятием. Но идентификаторы могут менять смысл не только из-за субъекта, но и в силу следующих факторов:
- предыдущего контекста (например, "Я видел сегодня фильм А и фильм Б. Этот фильм - лучший", где слово "фильм" в последнем предложении может принимать два значения)
- времени высказывания ("Я видел фильм", сказанное вчера и сегодня, может указывать на разные фильмы)
- субъекта высказывания ("Я видел фильм", сказанное разными людьми, может указывать на разные фильмы)
- субъективного времени (выражающиеся в модальных глаголах и различных временах: "Я мог видеть этот фильм" или "Я посмотрел бы этот фильм")
Больше того, эти факторы могут пересекаться (субъект может предоставлять смысл, для идентификаторов внутри какой-либо темы: urn:Моя Компания:Предметная Область:термин), и отсутствовать вообще (если вы знаете термин, но не знаете к какой категории он принадлежит).


СМЫСЛ (АБСТРАГИРОВАНИЕ, СВЯЗЫВАНИЕ)

Главная цель идентифицирования: сделать сравнение точным. В простейшем случае - это сравнение двух идентификаторов: т.е. если у нас есть запрос "Смотрел ли ты Храброе сердце?" и текст "Я смотрел Храброе сердце", где обе фразы "Храброе сердце" указывают на "urn:movie:Braveheart(1995)", то мы сможем сравнить их более точно, чем это возможно сейчас. Но, ведь запрос и текст не ограничивается только простыми идентификаторами. Система URN может дать базу для элементарных идентификаторов, но она не может охватить все возможные их сочетания и то, как эти сочетания образуют все более сложные структуры, балансируя между краткостью и точностью. Для этого нам и нужен гипертекст.

Представьте, что у нас есть следующий XML (на его месте может быть любой другой формат), который соответствует стране и ее характеристикам:


<Country> <!-- Страна -->
<Name>Бутан</Name> <!-- Название -->
<Area>38,8 кв. км.</Area> <!-- Площадь -->
</Country>


Вроде эта структура довольно понятна для человека (знакомого с английским языком), но с ростом количества полей и информации, вам трудно будет разобрать эту информацию даже в иерархии. А названия полей? Во-первых, предпочтительно использовать не только латиницу, во-вторых, даже, если название состоит из двух слов, мы вынуждены их соединять в один идентификатор (например, "LastName") или заменять пробел другим разделителем, а иногда они вообще представляют собой аббревиатуры (например, "LName"). А можно ли представить ту же самую структуру внутри HTML?


<span s-id="urn:Страна"> <!-- urn:* задает префикс по умолчанию для данного субъекта -->
<span s-id="Название" s-id="urn:country:Bhutan">Бутан</span>
<span s-id="Площадь">38,8 кв. км.</span>
</span>


Тоже самое мы можем сделать и с любой другой структурой, например, таблицей:


<table s-id="urn:Страна">
<th s-id>Флаг</th>
<th s-id>Название</th>
<th s-id="urn:Площадь:кв.км.">Площадь</th> <!-- у единиц измерения площади собственное подпространство имен -->
<tr s-id="urn:country:Bhutan" s-id="#bh"> <!-- #bh - локальный идентификатор -->
<td><img src="bhutan.jpg" /></td>
<td>Бутан</td>
<td>38,8</td>
</tr>
</table>


<p>Королевство <span s-ref="#bh">Бутан</span> - государство в Азии в Гималаях, расположенное между Индией и Китаем.</p>

где:
- s-ref="#bh" связывает второе упоминание Бутана с локальным идентификатором
- вложенность тегов является естественной возможностью для выражения обобщения/детализации (Страна -> Название -> Бутан)
- логика соответствия полей и значений может отличаться в разных тегах ("Название" может быть аттрибутом тега, а может быть и отдельным тегом)
- пустой аттрибут необходим для исключения избыточности (в примере это означает, что значение внутри тега используется как s-id)

Или же не используя вложенные теги:
<s-of="#3" s-id="#1">Площадь</s-of> <s-id="#2">страны</s-id> <s-id="urn:country:Bhutan" s-id="#3" s-is="#2">Бутан</s-id> - <s-of="#1">38,8 кв. км</s-of>.

где:
s-of=#3 связывает "площадь" и "Бутан"
s-is="#2" связывает "Бутан" и "страна"
s-of="#1" связывает "38,8 кв.км" и "площадь"

или
<s-id="#1" s-has="#4">Площадь</s-id> <s-id="#2">страны</s-id> <s-id="urn:country:Bhutan" s-id="#3" s-is="#2" s-has="#1">Бутан</s-id> - <s-id="#4">38,8 кв. км</s-id>.

где:
s-has=#4 связывает "площадь" и "38,8 кв.км"
s-has="#1" связывает "Бутан" и "площадь"

Итак, зачем нам нужны вышеупомянутые теги?
- s-id: связывания идентификаторов естественного языка и элементов гипертекста с другими идентификаторами
- s-is: абстрагирование (в нашем случае, это "Бутан", абстрагируемый в "страна", но это может быть и краткое содержание статьи или книги)
- s-of: обобщение в виде части общего (например, "площадь Бутана")
- s-has: детализирование
- s-ref: связывание

Нужно ли размечать весь гипертекст при помощи идентификации и семантических тегов? Использование уже существующего html позволяет производить разметку по мере необходимости (в первую очередь, она может затронуть краткое содержание страниц, как наиболее важную часть контента).

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

Но ведь есть же еще глаголы, прилагательное, наречия. Как быть с ними? На самом деле, мы можем использовать естественный язык и без того, чтобы знать является ли слово глаголом или нет. В конце концов, если мы точно идентифицируем слово, то компьютер и сам может точно сказать глагол это или нет (а чаще и без этой подсказки). Но возможно нам нужно очевидно сказать, что глагол является глаголом? Освещение данной темы выходит далеко за пределы этой статьи. Вкратце же можно заметить, что необходимость дополнительной идентификации видна на примере вопросов:
- Где находится Бутан? (вопрос относится именно к пространству)
- Когда буддизм проник в Бутан? (вопрос относится именно ко времени)
- Какого цвета флаг Бутана? (вопрос относится к характеристики флага)
- Как проехать в Бутан? (вопрос относится к отношениям, которые подходят для проезда и которые можно установить между вашим домом и Бутаном)
- Почему в Бутане было запрещено телевидение? (вопрос относится к причинно-следственным связям, которые ведут к запрету телевидения)
- Могу я попасть в Бутан? (вопрос относится к возможностям)
С другой стороны, мы опять же можем заметить, что принадлежность тех или иных слов к пространству или прилагательному может быть установлено и на основе идентификации.

Нужна ли нам вообще система семантических тегов? Можно заметить, что, например, в программировании пример выше выражается как: "Бутан" как объект класса "страна", "площадь" - свойство или поле, которое может принимать какое-то значение (какого-то типа). В Семантическом Вебе, данный пример выражался бы как "Бутан" как подлежащее-субъект, "иметь площадь" как сказуемое-предикат, и его значение как дополнение-объект. Так, зачем нам еще одна система идентификаторов? Проблема в том, что программирование недостаточно гибко, чтобы легко оперировать превращениями объектов в свойства и значения, и наоборот. Т.е. если вы изначально не сделали "Бутан" объектом (решив, что будет достаточно, оставаться ему строковым значением), то потом переделка его в объект отнимает множество времени и ресурсов. Кто-то скажет, что всё должно быть объектом, кто-то скажет, что это проблема дизайна. В этом-то всё и дело: такие предположения хорошо делать для приложения, которое должно быть оптимизировано для той задачи, для которой оно предназначено. Но негибко делать подобные предположения для смысла, где "Бутан" может быть связан с другим смыслом как угодно. Триплеты Семантического Веба помимо того, что также недостаточно гибки, имеют и другой недостаток: они заставляют представлять данные в виде тернарных связей, тогда как ежедневно работаем с бинарными связями, которые абсурдно превращать в тернарные.


ПОИСК

Итак, что же меняется с точки зрения поиска информации? Например, что найдет запрос "Какая площадь Бутана?"? Любой вопрос имеет дело с неизвестным, для чего нам нужен свой идентификатор: urn:_. Таким образом этот вопрос "Какая площадь Бутана?" должен представляться как (впрочем явное использование идентификатора для неизвестного может быть излишним, т.к. список вопросительных слов довольно ограничен, а следовательно может использоваться автоматически)
<s-id="urn:_" s-of="#1">Какая</s-id> <s-id="#1" s-of="#2">площадь</s-id> <s-id="urn:country:Bhutan" s-id="#2">Бутана</s-id>

тогда как искомая фраза как
<s-of="#3" s-id="#1">Площадь</s-of> <s-id="#2">страны</s-id> <s-id="urn:country:Bhutan" s-id="#3" s-is="#2">Бутан</s-id> - <s-of="#1">38,8 кв. км</s-of>

Таким образом, запрос сводится к нахождению одинаковых связей (между "площадью" и "Бутаном"), игнорированию нерелевантных (связь между "страной" и "Бутаном"), а также сравнению искомого в запросе (между "площадью" и неизвестным) и тексте (между "площадью" и "38,8 кв. км").

Но, использование urn:_ не ограничивается одними только запросами. Так, например, сервис, предоставляющий географические данные о странах, может не индексировать все свои запросы, а предоставлять данные в виде связанности с неизвестным, например: <s-id="#1" s-of="#2">Площадь</s-id> <s-id="#2" s-id="urn:country">стран</s-id> <s-id="urn:_" s-of="#1" />. Тогда, при поиске "Какая площадь Бутана?" мы можем воспользоваться данным сервисом, если мы используем абстракцию Бутана как страны.

Но, конечно же, поиск не будет ограничиваться только простейшими запросами. А более сложные запросы могут включать (а) похожую, (б) подразумеваемую информацию. Например, запрос "Бутан - большая страна?" подразумевает, что запрос должен найти значение площади Бутана и сравнить ее с понятием "большая страна", что возможно только примерно, т.к. не существует общепризнанной классификации площадей государств. Или возьмем еще более неоднозначный вопрос "Тепло ли в Бутане?" и попробуем его соотнести с фразой "На севере Бутана — круглогодичный снег, на западе — сильные муссонные дожди, в восточной и центральной части — сухой климат, на юге — влажный субтропический климат." Здесь нельзя найти точного соответствия между отношениями между "тепло" и словами для описания климата. Однако, можно заметить, что "тепло" и "субтропический климат" схожи, в таком случае, если точное соответствие не найдено, мы можем использовать похожие идентификаторы, явно указав критерий схожести: "Тепло на юге Бутана, где субтропический климат" (естественно, что мы взяли только одну фразу как ответ, но в реальной жизни, ответ должен быть расширен при помощи дополнительных фактов).

Если же запрос ("Что такое Бутан?") дает нам больше, чем один ответ, то к ответам необходимо применить рекурсивно основные операции:
- идентификации ("Бутан" как страна, "бутан" как газ)
- детализации (сведения о Бутане, карты и т.п.)
- обобщения ("Бутан и туризм", "Бутан и горы" и т.п.)
- связи ("Как проехать в Бутан", "Как получить визу в Бутан" и т.п.)

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


ОРГАНИЗАЦИЯ ИНФОРМАЦИИ

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

* Как искать информацию в бинарных файлах?
У бинарных файлов есть только имя (в которое можно добавить не так уж и много структурированной информации, а если и добавите, то только в неизвестном для других формате, как "Bravehear_1995_Gibson") и так называемая метаинформация (которая, впрочем, существует не для всех видов информации, а формат метаинформации ограничен). В силу этого, нам нужно другое решение: гипертекст должен описывать информацию и иметь возможность быть присоединенным к файлу. Таким образом, каждое копирование файла должно подразумевать, что получатель получит также и присоединенную обертку файла, которая его описывает и (возможно) идентифицирует.

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


<semantics>
<s-id="urn:movie:Braveheart(1995)" s-has="urn:movies:trailer" />
</semantics>


Список файлов (URL) могут быть описаны так:


<semantics>
<s-id="urn:file://c:/movies/braveheart.html" />
<s-id="http://youtube.com/watch?v=vBXBtORI7pE" />
</semantics>


Подобное представление также может использоваться для цитирования (которое может являться внешней разметкой информации, т.е. которая сделана не создателем информации):


<semantics>
<s-id="http://mysite.com/blog/braveheart.html">
Мое мнение.
</s-id>
</semantics>


То есть, работая с уже описанными файлами, вам не нужно будет заново идентифицировать их, что упрощает дальнейшее использование: вам не нужно думать, куда его сохранять и как его найти в будущем (т.к. он будет встроен в вашу локальную систему на основе идентифицирующей и классифицирующей информации в описании). Например, вместо "c:/movies/braveheart.html" (путь и имя файла гарантируют уникальность этого идентификатора внутри вашей системы, но он будет отличаться на других системах) вы сможете использовать "urn:movie:Braveheart(1995)" как глобально уникальный идентификатор (которые мы и так используем в реальной жизни), так и классифицирующую информацию, которая ассоциируется с этим идентификатором (а не фиксированную классификацию в виде иерархии каталогов).

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

* Как взаимодействуют информация и субъекты?
Наши современные возможности для запроса, передачи и доставки информации искуственно сдерживаются существующим программным обеспечением. Например, представьте, что вы ничего не можете найти необходимую информацию и проделываете следующие действия: (1) вы спрашиваете это, например, при помощи электронной почты, (2) друг ищет файл, (3а) прикрепляет его к письму и посылает вам ответ, или, как вариант, (3б) шарит файл и посылает вам ссылку, (4) если файл был обновлен, то процедура повторяется. Мы вынуждены совершать подобные действия, т.к. (1) мы не можем запросить информацию напрямую, (2) мы должны знать, где информация должна быть найдена, (3) работа с версиями и обновлениями информации доступна только в специализированных программах, (4) способ обмена информации отделен от самой информации.

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

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

Отдельно стоит отметить, что маршрутизация запросов должна включать в себя несколько аспектов:
- трансляция идентификаторов из одной системы в другую (перевод слов, соответствие синонимов, и т.п.)
- делегация сложных идентификаторов, когда часть идентификатора указывает на другую систему идентификаторов (например, идентификатор отеля может включать в себя и идентификатор города, т.к. одно название не обеспечивает уникальность)
- делегация подзапросов (например, запрос о фильме о средневековой Шотландии может быть разделен на подзапросы о географии Земли, историческом делении эпох, и о видах искусства)
- делегация соответствия идентификаторов и ресурсов, т.к. на каждом уровне (работник - отдел - компания - мир) могут быть разные соответствия (т.е. для работника "Проект 1" может означать один набор документов, а для внешнего мира - совсем другой)
- делегация вычислений, когда запросы могут распределяться между ресурсами
- делегация неполных идентификаторов (вы можете использовать идентификатор без указания NID-а, особенно это актуально для запросов, которые сами должны найти соответствующий NID).

То есть, провайдеры информации могут использовать довольно сложную маршрутизацию запросов (например, вы можете использовать компьютеры А и Б как провайдеры информации по проекту 1, а компьютеры А и В по проекту 2), которая должна быть скрыта от пользователя. А, например, если вы ищете "Спецификацию проекта 1", то запрос за кулисами может пройти по следующему маршруту:
1. Искать документ в данном приложении (если не найден, то перенаправить запрос на уровень выше)
2. Искать документ в данном компьютере
3. Искать документ в данном домене сети (если не найден, то перенаправить запрос на провайдера внутри домена)
4. Искать документ в компьтере А
5. Искать документ в приложении 1 компьютера А
В итоге вы можете получить документ по пути \\computerA\app1\doc1.doc, даже не подозревая о том, где находится документ.


РАСШИРЕННОЕ ИСПОЛЬЗОВАНИЕ

Крестьянину нужно перевезти через реку волка, козу и капусту. Но лодка такова, что в ней может поместиться только крестьянин, а с ним или один волк, или одна коза, или одна капуста. Но если оставить волка с козой, то волк съест козу, а если оставить козу с капустой, то коза съест капусту. Как перевез свой груз крестьянин?

Что у нас есть:
1. Крестьянин, волк, коза, капуста, река, лодка.
2. Лодка перевозит крестьянина и (волка или козу или капусту).
3. Волк ест козу, коза ест капусту.
4. Вопрос: как перевез свой груз крестьянин?

Что подразумевается:
4. У реки два берега.
5. "перевозить" подразумевает перемещение предмета (при помощи лодки) с одного берега на другой.
6. "груз" подразумевает волка, козу и капусту.
7. "перевезти груз" подразумевает, что вначале волк, коза и капуста были на одном берегу, то в конце они будут на втором.
6. "перевезти лодкой" означает, что крестьянин и один предмет помещается в лодку на одном берегу, а потом этот предмет извлекается на другом берегу.
7. "оставить" подразумевает, что крестьянин находится в лодке с одним предметом, а слова, связанные с "оставить" находятся на одном из берегов.
8. "ест" подразумевает, что второй предмет уничтожается.

Возможно ли решить данную задачу разметив данный текст при помощи семантических тегов? Задача включает как начальные условия (то есть, то, что мы можем идентифицировать непосредственно), так и подразумевающиеся условия (выводимые, при помощи детализации и обобщения), причем каждое из условий представляет собой идентификаторы, связанные между собой. То есть, эти условия вполне покрывается описанными выше операциями. Но возможно ли создать решение на основании полученного гипертекста? Решение, с точки зрения, задачи, подразумевает "будущее" (в виде причинно-следственных связей) для условий, то есть, на основе описанной ситуации и возможных действий, мы должны создать действия, которые произойдут в этом маленьком абстрактном мире задачи. Отличается ли принципиально создание решения от прочей информации? Нет, ведь создание "будущего" задачи, основывается точно на ее условиях:
- крестьянин берет волка в лодку, коза есть капусту, капуста уничтожается -- крестьянин не может перевезти груз, т.к. он включает и капусту
- крестьянин берет козу в лодку, волк не ест капусту, коза оказывается на другом береге, крестьянин перевозит себя на первый берег и т.п.


ЗАКЛЮЧЕНИЕ

Итак, решает ли предложенное решение проблемы поиска и организации информации? По крайней мере, некоторые из них. По крайней мере, они позволяют запрашивать информацию так, как это удобно пользователю, а не так, как к этому принуждают советы для поиска. Запросы могут быть любыми по сложности и по содержанию. Нам можно будет не задумываться как будет выглядеть информация, которую мы ищем. Кроме того, мы можем быть уверены в том, что мы ищем именно то, что и хотели искать. Это составляет разительный контраст с тем, как поиск работает сегодня. Следовательно нам остается только одно: воплотить это в жизнь.

Комментариев нет:

Отправить комментарий