Semantic Web to DVO network

Материал из DvoWiki
Перейти к: навигация, поиск

Описание проекта

Проект Semantic Web to DVO network представляет из себя набор сервисов для сбора информации о рессурсах и сервисах информационно-вычислительной сети с возможностью предоставления по найденной информации различных видов отчётности.

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

  1. Обнаружение сервисов и рессурсов информационно-вычислительной сети.
  2. Извлечение явно представленной метаинформации к рессурсу.
  3. Извлечение неявно представленной метаинформации с использованием технологий TextMining.
  4. Построение по найденной информации семантической сети.
  5. Полнотекстовая индексация.
  6. Предоставление сервисов, отвечающих за предоставление различных видов отчетности по собранным данным. Сервисы включают в себя:
    1. Поиск информации по заданному запросу и представление результатов в форме RDF.
    2. Веб интерфейс пользователя для проведения поиска.

Скачать последнюю версию продукта можно здесь. Или через SVN svn://oberon.dvo.ru/.

А попробовать поиск организованный с его помощью здесь.

Система контроля битторент трафика. (В режиме разработки).

Багзилла проекта.http://bugs.dvo.ru.

Документация

В силу того что проект находится в разработке документация является несколько незаконченной.

Описание API

Система контроля версий - указание к использованию

Руководство пользователя веб агента поиска

Руководство администратора

кластеризация и классификация

Пользовательский_интерфейс

Сторонние агенты

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

Оценка сложности алгоритмов. Эффективность и скорость работы

Требования к утилитам для работы с текстом

Спецификация на веб интерфейс поисковой машины 3S

Описание поискового механизма

Организация Subversion

Состояние проекта

22.05.2008 Начаты работы по выяснению возможности использования системы для работы с пространственными данными

25.04.2008 Версия веб интерфейса поиска, использующая новый Ext выложена на тестовый сервер.

4.02.2008 Вышла новая версия Ext 2.0.1 (библиотеки для построения веб интерфейсов), идут работы по замене ext 1.0 на более новую.

1.02.2008 Обновление библиотек закончено. В стадию финального тестирования перешли изменения в структуре полнотекстовых индексов литералов, так что на данный момент на сервере oberon.dvo.ru происходит переиндексация.

25.01.2008 Вышла новая версия библиотеки Lucene 2.3.0. Происходит процесс интеграции. Возможны перерывы в работе сервера http://oberon.dvo.ru

22.01.2008 Идёт исправление ошибки в XSL скриптах. Bug report.

18.01.2008 Исправлена ошибка с релевантностью поиска, идёт опробация и тестирование.

11.01.2008 Исправлены некоторые ошибки, сейчас идёт работа по исправлению работы с релевантностью поиска по литералам.

25.12.2007 Работа по переносу закончена идёт апробация и учёт ошибок. В момент тестовой апробации была обнаружена ошибка с релевантностью поиска по литералам.

11.12.2007 Начата работа по переводу поискового движка системы на SDB, новый fraimework для работы с RDF базой данных.

6.11.2007 Найдена ошибка в работе системы добавления информации.Bug reference

30.10.2007 Исправлен баг в подсистеме полнотекстового поиска.

18.10.2007 Проведены работы по уменьшению потребления памяти системой.

2.10.2007 Исправлены некоторые ошибки в веб интерфейсе поискового агента.

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

7.09.2007 Происходит лабоаторное тестироване нового движка веб интерфейса пользователя. Среди нововведений:

  1. использование XSL преобразований для выделения информации из RDF/XML выхода поисковой машины,
  2. некоторая реорганизация пользовательского интерфейса (было добавлено дерево концептов для уточнения параметров поиска),
  3. веб интерфейс переписан с использованием AJAX.

Идёт подготовка новой версии с частичной переработкой механизмов т.к. старая не удовлетворяла запросом лёгкой замены онтологии. Также ведётся интеграция с SNORT. Данная интеграция производится с целью обеспечения более интеллектуального анализа проходящего трафика.

На данный момент проект находится на стадии лабораторного тестирования. Текущая версия 0.5.1. К данной версии весть полнотекстовый поиск (полнотекстовый поиск по тексту и литералам семантической сети) производится при помощи Lucene.

Из за серьёзных изменений в требованиях к системе закачки переписываем оною.

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

  1. Ошибки при работе с локальными ссылками [1] Ошибка обешает исправится после переписывания пауков в работе которых обнаружились некоторые недостатки.


Также производится рефакторинг кода всвязи с выходом нового API(Jena 2.5.2) Приступаем к внедрению нового API для Lucene-2.1.0 к модулю индексирования литералов сети. Дорабатывается интерфейс пользователя. Проведены некоторые изменения в вычислении релевантности.

Изменения в архитектуре и проекте

Общие изменения

    1. В качестве идентификатора ресурса в системе вместо md5 алгоритма выбран sha5.
    2. Изменена система логирования событий происходящих в системе.
    3. В качестве jvm теперь используется jvm версии 1.6.x
    4. Проводится сведение кода в единое дерево.
    5. Также идут работы над созданием нового модуля который будет отвечать за пользовательский интерфейс (в виду специфики системы данный интерфейс является веб интерфейсом)
    1. Также рассматривается возможность использования системы в качестве кеша получаемых из интернета ресурсов (с целью снижения нагрузки на внешний канал и уменьшения количества трафика). Очевидно что данная задача наиболее эффективно может быть решена для тех протоколов, которые для идентификации ресурсов и их получения используют хеш суммы этих ресурсов. К таким протоколам относятся torent, emule итд . Для ftp и http ресурсов к сожалению подобной возможности не предусмотрено. Для протоколов с докачкой возможно использование следующего алгоритма : после получения запроса на получение ресурса при помощи такого протокола мы запрашиваем для данного файла его небольшие части (например начало середина и конец), для полученных частей вычисляется кеш который сравнивается с имеющимися в базе, на основе чего можно попытаться сделать вывод о том есть ли данный файл у нас в кеше или нет.

Система логирования

    1. введено четыре статуса сообщений
      1. MESSAGE – информационное сообщение от системы
      2. WARNING – сообщение об ошибке после которой возможно продолжение работы
      3. ERROR - критическая ошибка, продолжение работы системы невозможно
      4. STACK – сообщения из стека генерируемого при возникновение Exception
      5. Параметры логирования задаются извне как параметры jvm
    2. Три способа выдачи информации
      1. на экран (возможно отключение данного вывода через задание параметра)
      2. в файл
      3. бд (тем самым появляется возможность централизованного сбора информации с элементов системы находящихся на различных компьютерах в сети)

Система закачки

Архитектура системы получения ресурсов из сети после проведения ряда испытаний была пересмотрена. Были проведены следующие изменения.

    1. Теперь тип файла или ресурса, а также базовая информация устанавливается пауком
    2. Листы задач хранятся в бд
    3. происходит проверка доступности необходимого свободного места на жд
    4. возможность контроля извне за получением ресурсов, а также съем статистики
    5. изменена система хранения полученных ресурсов (crawlerStore)
    6. изменен способ получения ресурсов из хранилища

Система извлечения метаинформации

В данном компоненте было признано целеобразным провести следующие изменения

    1. Извлечение метаинформации проводить асинхронно. Те на данный момент действует следующая схема: для каждого обрабатываемого файла существует набор правил. Данные правила описывают способы и порядок извлечения метаинформации (в виде дерева). Таким образом извлечение метаинформации происходит в неком смысле последовательно. После извлечения метаинформации она формируется в дерево, которое помещается в бд. Следовательно время поступления новой метаинформации связано со скоростью обработки файла. Поэтому было решено применить новую схему получения метаинформации. Теперь значения элементов ветвей дерева метаинформации которые не связаны между собой будут извлекаться параллельно, и сразу же после извлечения поступать в бд. Это позволить сделать процесс извлечения метаинформации более быстрым и плавным с очки зрения нагрузки на систему.
    2. Дерево метаинформации теперь упаковывается не в java объект (в виде dot нотации), а сохраняется в виде xml файла. Таким образом для преобразования данного файла в rdf и его последующего добавления в семантическую сеть достаточно иметь xslt преобразование. Данный способ позволяет более гибко проводить изменения в системе. Так теперь в случае изменения онтологии достаточно провести изменения в xslt преобразование. Также видно что автор фильтров извлечения метаинформации может не знать о том какая используется онтрология.

Описание архитектуры системы

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

Диаграмма компонентов

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


Сервис закачки

Этот сервис представляетт из себя сервер, принимающий запросы от разных агентов на закачку файлов. Для обеспечения работы с каждым протоколом доступа (ftp, http, rss), подгружается отдельный менеджер, поставляемый в качестве плагина. Скачанный файл поступает в временную деректорию. При поступлении нового файла информация о нём посылается на сервер получения метаинформации через сокетное соединение.

Сервис получения метаинформации

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

Сервис работы с семантической сетью

В архитектуре сервиса работы с семантической сетью можно выделить следующие функциональные части:

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

Сервис поиска

Серис поиска представляет из себя сервер принимающий запросы на поиск от разного рода агентов. В архитектуре сервера можно выделить управляющее ядро и набор подгружаемых компонентов. Ядро осуществляет загрузку модулей а также прием запросов и отсылку обработанных результатов. Подгружаемые модули реализованы в качестве плагинов и осуществляют оттельные виды поиска. На данном этапе реализованы модули поиска по литералам симантической сети и полнотекстовый поиск по текстовому содержимому документов.

Используемые технологии

  1. Java
  2. Jena
  3. Lucene
  4. Dublin Core
  5. LARQ
  6. XSLT
  7. XML
  8. AJAX

Проекты имеющие отношение к Semantic Web

  1. http://ibm-slrp.sourceforge.net/
  2. http://en.wikipedia.org/wiki/WebFountain
  3. http://www.semantictools.ru/tools/tools_list.shtml
  4. http://en.wikipedia.org/wiki/Semantic_wiki

Ссылки

  1. http://ru.searchipedia.org/catalog/
  2. http://ontoworld.org/
  3. http://ontoworld.org/wiki/Main_Page

Конференции

  1. http://www.eswc2007.org/
  2. http://data.semanticweb.org/conference/