Хранилище данных для основанной на знаниях системы извлечения информации из данных

Иллюстрации

Показать все

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

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение в целом относится к системам извлечения информации из данных.

Предпосылки создания изобретения

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

В основу работы существующих поисковых систем, таких как AltaVista, Google, Northern Light, FAST и Inktomi положен принцип навигации по всемирной паутине, т.е. эти системы получают доступ к Web-страницам и к страницам, гиперссылки на которые содержат страницы, к которым был осуществлен доступ, с генерированием инвертированного индекса ключевых слов, встречающихся на Web-страницах. В таком индексе ключевые слова соотнесены с идентификаторами (унифицированными указателями информационного ресурса или URL) страниц, которые содержат ключевые слова. Для ответа на запрос осуществляют доступ к индексу, используя в качестве действительных параметров запрошенные ключевые слова, после чего из указателя возвращаются URL-адреса страниц, удовлетворяющие запросам. Вернувшиеся идентификаторы страниц обычно упорядочивают по релевантности, например, по данным о ссылке или частоте употребления ключевых слов.

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

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

Рассмотрим также простой вопрос "совместима ли программа Adobe Acrobat с MS Word?". В ответ на столь простой запрос, введенный в одну из вышеупомянутых поисковых систем, был получен список результатов из 33 миллионов Web-страниц, на большинстве из которых не содержалось искомого ответа "да" или "нет". Для отсеивания бесполезных страниц потребовался бы специалист, который просмотрел бы каждую страницу и определил, является ли она страницей, которая может содержать информацию о совместимости программ. Затем потребовался бы другой специалист для изучения страниц, отобранных первым специалистом, и определения, действительно ли такие страницы содержат ответ на конкретный поставленный вопрос. Несложно понять, что на работу сменяющих друг друга специалистов, просеивающих большой объем информации, может уйти чрезмерно много времени.

Краткое изложение сущности изобретения

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

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

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

В частном предпочтительном варианте индексатор содержит индексы ключей и значения ключей, имеющихся в структурах хранения данных, например, таблицах. Он также может содержать булевы индексы, хранящие значения "да" или "нет" на запросы по форме "имеет ли ключ k значение v?". Кроме того, индексатор может содержать интервальные индексы, хранящие интервалы значений ключей, а также индексы текста. При необходимости индексатор может представлять собой обобщенное воплощение текстового индексатора в виде инвертированного файла, индексирующего Web-документы и обеспечивающего интерфейс прикладного программирования (API) для поиска документов по ключевым словам.

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

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

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

Краткое описание чертежей

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

на фиг.1 показана структурная схема системы с предпочтительной архитектуры системы,

на фиг.2 приведена блок-схема, поясняющая общую логику выполнения операций,

на фиг.3 показана схема горизонтальной таблицы,

на фиг.4 показана схема вертикальной таблицы,

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

Подробное описание предпочтительного варианта осуществления

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

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

Как более подробно описано ниже, система 10 имеет уровень сбора данных, уровень хранения данных, уровень анализа данных, уровень представления данных и уровень управления системой. На уровне сбора данных находящийся в левой части фиг.1 навигатор 12 всемирной паутины (WWW) получает доступ к всемирной паутине 14 (и при необходимости к другим частям сети Internet). Навигатор 12 также может получать доступ, например, к корпоративным сетям Intranet 16, в том числе к собственной информации фирмы, которую можно получить лишь путем соответствующей аутентификации. Предпочтительно, чтобы навигатор 12 осуществлял непрерывную навигацию по всемирной паутине 14, просматривая при этом одни страницы чаще других с учетом частоты обновления страниц и других критериев, и при помощи интерфейса 20 прикладного программирования (API) выводил просмотренные страницы в хранилище данных 18. В предпочтительном частном варианте осуществления изобретения интерфейсом 20 является протокол компании IBM для обслуживания запросов, известный как "Vinci xTalk", который представляет собой упрощенный протокол на основе языка XML в сочетании с набором пользовательских соглашений, регламентирующих текущий контроль, регистрацию и передачу данных. При описании используемых в системе API-интерфейсов сетевого уровня используются терминология фреймов протокола xTalk.

Также предпочтительно, чтобы навигатор имел канал обратной связи, позволяющий при необходимости изменять режим функционирования навигатора. В предпочтительном частном варианте осуществления изобретения навигатор 12 представляет собой инструмент, описанный в патенте US 6263364, или навигатор, описанный в полученном компанией IBM патенте US 6418433 (патентная заявка США №09/239921) под названием "System and Method for Focussed Web Crawling", также включенных в настоящее описание путем ссылки. Помимо получения данных при помощи навигатора 12 система при необходимости также может иметь инструмент 22 сбора структурированных данных, который осуществляет обработку данных из клиентских и сторонних баз данных 24 и передает обработанные данные в хранилище, или склад данных 18.

Что касается хранилища данных 18, в одном из вариантов изобретения хранилищем данных является система управления реляционной базой данных (реляционная СУБД), такая как СУБД DB2 компании IBM. В других вариантах могут использоваться иные системы, например файловые системы. Следующее далее описание применимо к хранилищам данных обоих типов.

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

Хранилище данных 18 связано с индексатором 26 и, при необходимости, с быстродействующей кэш-памятью 28 на полупроводниках. Для выполнения запросов анализаторов предусмотрен процессор 30 обработки запросов, имеющий доступ к кэш-памяти 28, индексатору 26 и хранилищу данных 18, как это описано ниже. Как составная часть уровня хранения данных системы 10 в системе могут быть реализованы очереди работ анализаторов, рассматриваемые ниже.

В хранилище данных 18 содержится довольно большой объем информации, например, данные Web-страниц, полученные от навигатора 12. В хранилище данных 18 также хранятся объекты, представляющие данные, на основе которых могут приниматься решения, что описано ниже. Такие объекты имеют соответствующие универсальные идентификаторы (UEID), кодирующие идентификацию и тип объекта, например, "Web-страница", "гиперссылка", "частное лицо", "корпорация", "статья". Объекты также могут содержать ключи с соответствующими значениями, которые присоединены к объектам описанными ниже анализаторами. Например, анализатор обрабатывает страничный объект и создает ключ, названный "Crawl:Content", который включает в себя HTTP-содержимое соответствующей Web-страницы (поэтому длина значения ключа относительно велика). В любом случае объекты могут быть сохранены в файловой системе, СУБД, такой как DB2, где они представлены в горизонтальных и вертикальных таблицах, или в другой системе хранения данных.

Индексатор 26, помимо прочих элементов, содержит индексы ключей и значения ключей, имеющихся в хранилище данных. Индексатор 26 может содержать булевы индексы, хранящие значения "да" или "нет" на запросы по форме "имеет ли ключ k значение v?". Кроме того, в индексаторе 26 могут содержаться интервальные индексы, хранящие интервалы значений ключей, например, координат географических областей, индексы текста, являющиеся обычными индексами для характеризующих объекты данных, а также при необходимости другие индексы.

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

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

В других вариантах реализации в индексаторе 26 содержатся определенные ключи, позволяющие осуществлять запросы в отношении конкретного объекта с применением булевой логики или позволяющие графическим данным поддерживать входящие и исходящие запросы, и тому подобное. Чтобы обеспечить такую универсальность, снабжение метками (tokenization) проводится отдельно от индексирования. В частности, индексатор 26 рассчитан на получение потока меток, а не потока документов. Соответственно, снабжение метками осуществляется перед индексированием. Для каждой индексированной метки положение метки (относительное положение метки в потоке) сохраняется вместе с определяемыми пользователем данными метки, которые могут быть произвольными. Такая упрощенная модель обеспечивает эффективное индексирование и обеспечивает универсальный API-интерфейс, применимый в разнообразных случаях. Кроме того, развязка снабжения данных метками и индексирования позволяет совместно индексировать метки, происходящие из разных вариантов реализации правил (например, из различных генераторов меток).

Несколько версий индексатора 26 могут выполняться одновременно. Для простоты "главным" текстовым индексатором считается индексатор, в котором хранятся метки, соответствующие всему набору просмотренных и отобранных страниц. Как указано ниже в отношении анализаторов согласно настоящему изобретению, анализаторы присоединяют "ключи" к объектам, хранящимся в хранилище данных 18. Генераторы меток, связанные с индексатором 26, действуют точно по тому же принципу. В частном варианте изобретения генератор текстовых меток может быть выполнен на основе генератора меток Text Analysis Framework (TAF), разработанного компаниями IBM Research и IBM Software (г.Беблинген). Такой генератор меток считывает данные страницы и записывает результат исходной разметки для каждой страницы. Затем задействуются другие генераторы меток, которые используют эти данные или, по своему выбору, необработанные данные страниц и сохраняют в хранилище данных другие метки. В частности, один генератор меток может сопоставлять собственные имена и тегировать (метить) их в качестве таковых, а другой генератор меток - считывать только выходные данные генератора меток собственных имен и записывать метки, содержащие метаданные, соотносящие собственные имена с конкретными известными объектами, находящимися в любом другом месте системы 10. Все эти генераторы меток регистрируются в главном индексаторе 26.

За подробным описанием предпочтительного частного варианта выполнения индексатора 26 следует рассмотрение процессора 30 обработки запросов. Для активизации процессора 30 обработки запросы потоков данных из хранилища данных 18 могут осуществляться описанными ниже анализаторами на расширяемом языке запросов. Принцип доступа к процессору 30 обработки запросов в точности совпадает с принципом доступа к индексатору 26, т.е. инициатор запроса направляет запрос на обслуживание (в данном случае постановку задачи на расширяемом языке запросов) и получает поток данных из процессора 30 обработки запросов. Запрос может предполагать объединение нескольких потоков с использованием стандартных операций комбинационной логики, объединяющие потоковые данные (булевых операторов, таких как И и ИЛИ, операторов соединения баз данных, таких как внутреннее и внешнее соединения, операторов сортировки и операторов, пополняющих поток дополнительной информацией за счет, например, дополнения каждого универсального идентификатора объекта UEID в потоке значением определенного ключа). Язык запроса может соединять любые произвольные потоки.

Как упомянуто выше, уровень анализа данных системы 10 включает библиотеку 32 анализаторов, в которой хранятся реализованные программно анализаторы, которые взаимодействуют с API-интерфейсом 20 уровня сбора данных и, следовательно, с уровнем хранения данных. В типичном частном варианте изобретения библиотека 32 анализаторов включает анализатор 34 ссылок, выдающий ссылки на определенную страницу и/или со страницы, фильтр 36 спама, выявляющий спам в хранилище данных 18, фильтр 38 порнографии, выявляющий в хранилище данных 18 порнографические страницы, анализатор-классификатор 42, который классифицирует страницы на основе наличия на страницах последовательностей терминов, анализатор 44 географических данных, выявляющий на Web-странице любую географическую информацию, анализатор 46 корпораций, анализатор 48 таксономии, выдающий страницы заданной таксономической категории, анализатор 50 регулярных выражений, выдающий поток страниц, содержащих определенное регулярное выражение, и так далее.

Под "анализатором" или "элементом анализа данных" понимается механизм анализа, который на основе набора правил генерирует выходные данные, в частности - выходные данные, которые могут содержать один или несколько ключей, представляющих характеристики объекта. Такие правила могут быть определены эвристически и могут включать статистически обоснованные правила. В качестве примера, анализатор 38, реализующий функцию фильтра порнографии, при помощи техники анализа изображений может определять, содержит ли Web-страница порнографию, и присоединять к странице ключ и булево значение ключа: "порно = да" или "порно = нет". Для примера, в таком анализаторе порнографии могут использоваться принципы, описанные в патенте US 6295559 на имя компании IBM. Или же анализатор 46 корпораций на основе правил взаимосвязи слов, анализа URL-адресов или иным способом может определять, является ли определенная страница страницей какой-либо корпорации, и затем присоединять к такой странице ключ, указывающий на результат проведенного анализа. Опять же, в анализаторе, реализующем фильтр 36 спама, могут использоваться, например, принципы, описанные в патенте US 6266692 на имя компании IBM. Такой анализатор может присоединять к Web-страницам или сообщениям, получаемым по электронной почте, ключи, указывающие на то, являются ли они спамом. Далее, анализатор 44 географических данных может присоединять к Web-странице ключ, представляющий интервалы градусов широты и долготы, относящиеся к теме страницы или ее автору, используя правила для извлечения такой информации. В частном примере выполнения изобретения в основу работы анализатора географических данных могут быть положены принципы, описанные в патенте US 6285996 на имя компании IBM. Следует учитывать, что конкретные типы анализаторов и конкретные правила, используемые каждым анализатором, могут различаться, не сказываясь на работоспособности и объеме настоящего изобретения.

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

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

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

Таким образом, анализаторы считывают из хранилища данных 18 долговременные и достоверные потоки необработанного содержимого (т.н. контента), а также обработанные данные, созданные другими анализаторами. Эти анализаторы, а также по сути дела многие анализаторы системы 10 потребляют и обрабатывают данные. Две рассмотренные выше модели осуществления доступа к данным включают в себя произвольный доступ к конкретному объекту или множеству объектов и потоковый доступ к перечню объектов. В случае произвольного доступа в хранилище данных 18 анализатор просто запрашивает релевантные части соответствующего объекта, используя универсальный идентификатор объекта UEID. Для получения потока данных инициируется составление перечня объектов путем запроса данных из хранилища данных 18 с использованием индексатора 26 или процессора 30 обработки запросов.

Например, анализаторы с более сложными требованиями к данным могут обращаться к процессору 30 обработки запросов со сложными запросами, возможно предусматривающими необходимость получения доступа к множеству компонентов, при этом обычными способами осуществляется оптимизация запросов, и в ответ генерируются потоки данных. Такие запросы могут повлечь за собой соединение баз данных по множеству таблиц, создание справочных таблиц индексов, включая поиск текста, запросы интервалов значений, географические справочные таблицы и сложение в системе меньших наборов результатов из множества различных источников. Независимо от того, выведены ли перечни из индексатора 26 или процессора 30 обработки запросов, эти перечни обеспечивают постоянство существования объектов, а доступ к ним может осуществляться последовательно или параллельно - в зависимости от характера обработки.

Результаты обработки, осуществленной анализаторами, сохраняются в хранилище данных 18 с возможностью доступа к ним других анализаторов и конечных пользователей. Как указано выше, для записи данных в хранилище данных 18 с возможностью доступа к ним других анализаторов анализатор просто создает новые ключи и значения, которые следует присоединить к объекту, после чего выполняет операцию записи в память.

Результаты запроса конкретного клиента на получение информации, предоставляемой анализаторами согласно настоящему изобретению, могут быть представлены на уровне 52 представления данных. Результаты могут быть распечатаны или представлены в аудиовизуальной форме или иной форме по желанию. Описанными выше уровнями управляет уровень 54 подсистемы управления кластером, что более подробно описано ниже. Для облегчения ввода данных и ответа на запросы клиентами информации, клиентский интерфейс 56 при необходимости может получать доступ к API-интерфейсу 20 уровня сбора данных и клиентским базам данных 58.

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

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

Все события в системе 10 стекаются на один информационный сервер, который отслеживает состояние системы, ведет статистику, регистрацию и получает коды ошибок из приложений и компонентов инфраструктуры. События генерируются разнообразными источниками и включают в себя классы ошибок, используемые компонентами программного обеспечения кластера, событие базы данных DB2 и диспетчер регистрации, связанный с хранилищем данных 18, системные и сетевые компоненты контроля и так называемые наблюдающие агенты ("няньки" - "Nanny"), которые являются частью уровня 54 подсистемы управления и выполняются на соответствующих ЭВМ кластера.

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

На фиг.2 представлена общая логика работы описанной выше системы 10. На шаге 60 навигатор 12 осуществляет поиск во всемирной паутине 14, чтобы пополнить данными хранилище данных 18. При желании пополнение хранилища данных 18 данными из базы 24 данных может быть осуществлено на шаге 62 при помощи инструмента 22 сбора данных.

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

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

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

На фиг.3 и 4 показана схема горизонтальных и вертикальных таблиц, которые могут использоваться, когда - в качестве частного примера осуществления изобретения - хранилище данных реализовано в виде СУБД, такой как DB2. На фиг.3 показана горизонтальная таблица 72, каждая строка 74 которой отображае