Прототип системы интеллектуального поиска документов на основе онтологии предметной области

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 24.01.2016
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

- Выполнение поиска по коллекциям документов;

- Формирование списка результатов поиска;

- Предоставление доступа к документам-результатам поиска.

Уровень подготовки пользователя

Пользователь системы должен:

- уметь работать с web-браузером, предоставляющим доступ к информационно-поисковой системе;

- иметь возможность сформулировать поисковой запрос к системе в виде текстовой строки;

- знать название предметной области, в которой необходимо осуществлять поиск документов;

Дополнительные (не обязательные) знания пользователя:

- URL дополнительных онтологий, отсутствующих в системе, которые можно использовать в процессе поиска;

- направления расширения запроса - элементы, которыми необходимо расширить запрос.

Администратор системы должен:

- иметь навыки работы с операционной системой Debian Linux;

- иметь представление об устройстве системы;

- уметь пользоваться программным обеспечением, используемым в системе: Sphinx search engine, OntoLoader, Apache Tomcat, MySQL.

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

Перечень эксплуатационной документации

В состав эксплуатационной документации входит:

- Настоящая Рабочая Документация к системе;

- Рабочая документация к программному обеспечению, обеспечивающему функционирование системы

- Debian Linux 6.0 x86;

- Web-сервер Apache;

- Контейнер сервлетов Tomcat 6.0;

- СУБД MySQL 5.3;

- Sphinx Search Engine 2.0;

- Java EE 1.7;

- Apache Ant 1.8.3;

- Система морфологии УИС "РОССИЯ".

Назначение и условия применения

Программные и аппаратные требования к ссистеме

Требования к аппаратному обеспечению сервера системы:

- Процессор с тактовой частотой не менее 800 МГц;

- Жесткий диск объемом не менее 20 Гб;

- Оперативная память объемом не менее 512 Мб;

- Сетевое соединение (сетевая карта), скоростью подключения к сети не менее 100 Мбит\сек.

Требования к программному обеспечению сервера системы:

- Операционная система Debian Linux x86 версии 6.0;

- Web-сервер Apache версии 2.0;

- Контейнер сервлетов Tomcat версии 6.0;

- Система полнотекстового поиска Spring версии 2.0

- Cервис морфологии УИС "РОССИЯ";

- СУБД MySQL версии 5.3;

Подготовка к работе

Состав дистрибутива

В состав дистрибутива системы входят:

- Программные компоненты системы в формате WAR-файла;

- SQL-скрипт создания базы данных системы;

- Дистрибутив операционной системы Debian Linux 6.0 x86;

- Дистрибутив web-сервера Apache версии 2.0;

- Дистрибутив контейнера сервлетов Tomcat версии 6.0;

- Дистрибутив СУБД MySQL версии 5.3;

- Дистрибутив Java JDK, Java EE версии 1.7;

- Дистрибутив системы полнотекстового поиска Sphinx версии 2.0;

- Дистрибутив системы морфологии УИС "РОССИЯ";

- Дистрибутив утилиты автоматизации Apache Ant версии 1.8.3

- Конфигурационный файл системы полнотекстового поиска Sphinx;

- Конфигурационный файл СУБД MySQL;

- Конфигурационный файл компонентов системы;

- Настоящая рабочая документация системы;

- Скрипт автоматизированной установки и конфигурации (настройки) системы;

- Скрипт самотестирования системы;

- Скрипт тестового набора данных;

- Тестовая коллекция документов;

- Тестовая онтология предметной области.

Запуск системы

Для запуска функционирования системы необходимо:

- Установить на каждый сервер операционную систему Debian Linux 6.0 x86;

- Обеспечить к каждому из серверов доступ по протоколу SSH;

- Установить на сервер баз данных СУБД MySQL 5.3 Допускается установка как с диска с дистрибутивом, так и из специального сетевого репозитория операционной системы;

- Установить на сервер баз данных Web-сервер Apache 2. Допускается установка как с диска с дистрибутивом, так и из специального сетевого репозитория операционной системы;

- Установить на сервер приложения виртуальную машину Java EE 1.7;

- Установить на сервер приложений контейнер сервлетов Tomcat 6.0. Допускается установка как с диска с дистрибутивом, так и из специального сетевого репозитория операционной системы;

- Установить на сервер приложений систему полнотекстового поиска Sphinx 2.0;

- Запустить скрипт установки и конфигурирования системы с диска с дистрибутивом системы. Следовать указания скрипта;

- После успешного завершения работы скрипта установки и конфигурирования системы запустить скрипты заполнения тестовыми данными и самотестирования системы.

В случае успешной установки и конфигурирования системы web-интерфейс системы будет доступен по адресу: [сервер]: 8080/OntoSearcher

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

Контрольный пример

Для проверки работы системы необходимо открыть web-страницу формирования запроса, после чего:

- Ввести текст запроса "Оплата жилья";

- Выбрать онтологию предметной области "Государственное управление: Жилищная политика";

- Выбрать искомые типы элементов: Суперклассы, Эквивалентные классы, Субклассы;

- Нажать "Поиск"

В результате выполненных действий будет осуществлен поиск документов и, в результате которого будет представлен список документов-результатов поиска по двум запроса:

- "Оплата жилья" - введенный пользователем запрос;

- "Оплата жилья | Оплата недвижимости | Оплата жилища | Жилищный кредит жилья | Жилищный кредит недвижимости | Жилищный кредит жилища | Ипотека жилья | Ипотека недвижимости | Ипотека жилища | Ипотечный кредит жилья | Ипотечный кредит недвижимости | Ипотечный кредит жилища

При этом, каждый из запросов будет соответствовать списку документов-результатов поиска.

Заключение

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

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

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

Список используемой литературы

1. ГОСТ 34.601-90. Информационная технология. Автоматизированные системы. Стадии создания.

2. ГОСТ 34.602-89 Информационная технология. Техническое задание на создание автоматизированной системы

3. Требования к оформлению квалификационных работ: метод. указания для студентов по направлению 230200 "Информационные системы" / Сост.: А.П. Власов, Н.А. Марчук: Иван. гос. хим. - технол. ун-т. - Иваново, 2010, 35 с.

4. Требования к содержанию квалификационных работ: метод. указания для студентов по направлению 230200 "Информационные системы" / сост.: А.П. Власов, С.П. Бобков, Н.И. Терехин: Иван. гос. хим. - технол. ун-т. - Иваново, 2010. - 40 с.

5. Леоненков А.В. Нотация и семантика языка UML - http://www.intuit.ru/department/pl/umlbasics (28.03.2012) Сайт "intuit.ru"

6. Н.В. Лукашевич. Тезаурусы в задачах информационного поиска, М.: Издательство Московского Университета, 2011. - 512 с.

7. О.И. Россеева, Ю.А. Загорулько. Организация эффективного поиска на основе онтологий. Труды Международного семинара Диалог'2001 по компьютерной лингвистике и ее приложениям, т.2, 2001. - http://www.dialog-21.ru/materials/archive. asp? id=7029&y=2001&vol=6078 (01/04/2012)

8. "Введение в поисковые системы" / Ю. Лифшиц. - http://yury. name/modern/05modernnote. pdf (01.04.2012);

9. "Архитектура Google" / Александр Азаров, Ист. Вебпланета - http://www.i2r.ru/static/334/out_22655. shtml (01.04.2012);

10. "Профессиональный поиск в Интернете: планирование поисковой процедуры" / Михаил Талантов - http://citforum.ru/internet/search/prof_search02. shtml (10.04.2012)

11. "Пертинентность поиска - новый тренд в конкуренции поисковых систем" - http://www.seonews.ru/analytics/detail/121831. php (10.04.2012)

12. "Университетская Информационная Система РОССИЯ. Краткое описание" - http://uisrussia. msu.ru/is4/main. jsp (10.04.2012)

13. "Интеллектуальный поиск изнутри" - http://compsciclub.ru/courses/informationretrieval (10.04.2012)

14. "Information Technology - Database Language SQL (Proposed revised text of DIS 9075)" / Digital Equipment Corporation, Maynard, Massachusetts - http://www.contrib. andrew. cmu.edu/~shadow/sql/sql1992. txt (01.04.2012);

15. "RFC 2616 - Hyper Transfer Protocol - HTTP/1.1" / R. Fielding, UC Irvine, J. Gettys, Compaq/W3C, J. Mogul, etc. - http://tools. ietf.org/html/rfc2616 (01.04.2012);

16. "HTML5 - A vocabulary and associated APIs for HTML and XHTML - W3C Working Draft 29 March 2012" / Ian Hickson, Google, Inc. - http://dev. w3.org/html5/spec/ (01.04.2012)

17. "Теория и практика использования SSH" / Vsevolod Stakhov - http://www.opennet.ru/base/sec/ssh_intro. txt.html (01.04.2012)

18. POSIX

19. "Документация к системе морфологии, разработанной в рамках системы УИС РОССИЯ"

20. "Документация к MySQL" - http://www.mysql.ru/docs/ (01.04.2012)

21. "OWL, язык веб-онтологий. Руководство" - http://sherdim.ru/pts/semantic_web/REC-owl-guide-20040210_ru.html (01.04.2012)

22. "Uniform Resource Locators (URL)" - http://tools. ietf.org/html/rfc1738 (01.04.2012)

23. "Apache HTTP Server Documentation" - http://httpd. apache.org/docs/ (01.04.2012)

24. "OpenSSH Manual pages" - http://www.openssh.com/manual.html (01/04/2012)

25. "Apache Tomcat 6.0 Documentation Index" - http://tomcat. apache.org/tomcat-6.0-doc/index.html (01.04.2012)

26. "Java SE Specifications" - http://docs. oracle.com/javase/specs/ (01.04.2012)

27. "Документация Debian Linux" - http://www.debian.org/support#doc (01.04.2012)

28. "Центр справки Java" - http://www.java.com/ru/download/help/index. xml (01.04.2012)

29. "JavaServer Pages Technology" - http://www.oracle.com/technetwork/java/javaee/jsp/index.html (01.04.2012)

30. "Справочник с примерами по языку SQL" - http://sql. itsoft.ru/ (01.04.2012)

31. "RFC 2616 - Hyper Transfer Protocol - HTTP/1.1" / R. Fielding, UC Irvine, J. Gettys, Compaq/W3C, J. Mogul, etc. - http://tools. ietf.org/html/rfc2616 (01.04.2012);

32. "JavaScript Tutorial" - http://www.w3schools.com/js/ (01.04.2012)

33. "Documents associated with UML Version 2.4.1" - http://www.omg.org/spec/UML/2.4.1/ (01.04.2012)

34. "Visual Paradigm for UML 9.0 Model-Code-Deploy Platform FAQ" - http://www.visual-paradigm.com/product/vpuml/faq. jsp (01.04.2012)

35. "Embarcadero Technologies Product Documentation - ER/Studio" - http://docs. embarcadero.com/products/er_studio_enterprise/ (01.04.2012)

36. "Net Beans - Documentation, Training, & Support" - http://netbeans.org/kb/index.html (01.04.2012)

37. "Sphinx Online HTML Documentation" - http://sphinxsearch.com/docs/ (01.04.2012)

38. "Sphinx Online HTML Documentation" - http://sphinxsearch.com/docs/ (01.04.2012)

39. "MySQL Connector/J" - http://dev. mysql.com/doc/refman/5.1/en/connector-j.html (01.04.2012)

40. "Apache Log4j 1.2.16 API" - http://logging. apache.org/log4j/1.2/apidocs/index.html (01.04.2012)

Приложения

Приложение А

Фрагмент программного кода модуля онтологической обработки запроса:

/*

* Project: Domain Ontology Driven Retrieval System

* Organization: SRCC MSU, CIR

* Author: Krylov Al.

*

* Name: Ontology module

* Version: 1.0.0.0

* Date: Marth 2012

*

* Description: This class process ongology-query semantic

*/

package search. modules;

import java. util. ArrayList;

import java. util. Iterator;

import java. util. List;

import java. util. Set;

import java. util. Properties;

import java. io. *;

import search. *;

import org. apache. log4j. *;

import org. semanticweb. owlapi. apibinding. OWLManager;

import org. semanticweb. owlapi. io. *;

import org. semanticweb. owlapi. model. *;

import org. semanticweb. owlapi. reasoner. *;

import org. semanticweb. owlapi. util. SimpleIRIMapper;

import org. semanticweb. owlapi. util. DefaultPrefixManager;

import org. semanticweb. owlapi. io. *;

import org. semanticweb. owlapi. model. *;

import org. semanticweb. owlapi. reasoner. *;

import org. semanticweb. owlapi. util. SimpleIRIMapper;

import org. semanticweb. owlapi. util. DefaultPrefixManager;

/**

*

* @author blook

*/

public class OntologyModule

{

private static Logger logger = Logger. getLogger (SearchModule. class. toString ());

public int FillOntologyQueryElements (SearchObject so)

{

int res = 0;

int onto_elements = 0;

so. _ontoElements = new OntologyElementsCollection [16];

// for each ontologies in list.

for (String ontology_url: so. _usedOntologies)

{

OWLOntology ontology = this. GetOntology (ontology_url);

if (ontology == null)

{

return 6101; // error in ontology loading

}

// for each ontology elements type in list.

for (String query_element: so. _queryElements)

{

for (String onto_type: so. _ontoTypes)

{

OntologyElementsCollection onto_el_col = new OntologyElementsCollection ();

res = this. FillQueryElementsByOntology (onto_el_col, onto_type, query_element, ontology);

if (res! = 0) { return res; };

so. _ontoElements [onto_elements] = onto_el_col;

onto_elements++;

}

}

}

so. _ontoElemQuantity = onto_elements;

return res;

}

public int FillQueryElementsByOntology (OntologyElementsCollection onto_el_col,

String onto_type, String element_name, OWLOntology ontology)

{

int res = 0;

// OntologyElementsCollection onto_el_col = new OntologyElementsCollection ();

if (onto_type. equals ("SUB"))

{

onto_el_col. _elements = this. GetSubClassesForElement (element_name, ontology);

}

else if (onto_type. equals ("EQU"))

{

onto_el_col. _elements = this. GetEquivalentClassesForElement (element_name, ontology);

}

else if (onto_type. equals ("SUP"))

{

onto_el_col. _elements = this. GetSuperClassesForElement (element_name, ontology);

}

else

{

logger. error ("Error in ontology elements type list - unknown type: [" + onto_type + "] ");

return 6102; // error in ontology elements type list (unknown type)

}

onto_el_col. _type = onto_type;

onto_el_col. _sourceElement = element_name;

onto_el_col. _ongology = ontology. getOntologyID (). toString (). substring (1, ontology. getOntologyID (). toString (). length () - 1);

return res;

}

public OWLOntology GetOntology (String ontology_url)

{

logger. info ("stat GetOntology. [" + ontology_url + "] ");

IRI onto_iri = IRI. create (ontology_url);

OWLOntology ontology = null;

OWLOntologyManager manager = OWLManager. createOWLOntologyManager ();

try

{

ontology = manager. loadOntology (onto_iri);

}

catch (OWLOntologyCreationException ex)

{

logger. error ("Error loading ontology: [" + ontology_url + "] ");

}

return ontology;

}

// finction for filling list of subclsses by ontology element name and ontology object

public List<String> GetSuperClassesForElement (String element_name, OWLOntology ontology)

{

logger. info ("start GetSuperClassesForElement. [" + element_name + "] ");

int res = 0;

List<String> sup_elements = new ArrayList<String> (); // FIXME! we mast allocated memory in function body

// fixme

// ConsoleProgressMonitor progressMonitor = new ConsoleProgressMonitor ();

// OWLReasonerConfiguration config = new SimpleConfiguration (progressMonitor);

OWLOntologyManager manager = OWLManager. createOWLOntologyManager ();

OWLDataFactory fac = manager. getOWLDataFactory ();

String onto_id = ontology. getOntologyID (). toString (). substring (1, ontology. getOntologyID (). toString (). length () - 1);

IRI cls1Iri = IRI. create (onto_id + "#" + element_name);

OWLClass cls1 = fac. getOWLClass (cls1Iri);

Set<OWLClassExpression> classes = cls1. getSuperClasses (ontology);

for (OWLClassExpression cls: classes)

{

// logger. info ("Equivalent class: " + cls. toString (). substring (cls. toString (). indexOf ("#") +1, cls. toString (). length () - 1));

sup_elements. add (cls. toString (). substring (cls. toString (). indexOf ("#") +1, cls. toString (). length () - 1));

}

return sup_elements;

}

// finction for filling list of super clsses by ontology element name and ontology object

public List<String> GetSubClassesForElement (String element_name, OWLOntology ontology)

{

logger. info ("start GetSubClassesForElement. [" + element_name + "] ");

int res = 0;

List<String> sub_elements = new ArrayList<String> (); // FIXME! we mast allocated memory in function body

// fixme - -

// ConsoleProgressMonitor progressMonitor = new ConsoleProgressMonitor ();

// OWLReasonerConfiguration config = new SimpleConfiguration (progressMonitor);

OWLOntologyManager manager = OWLManager. createOWLOntologyManager ();

OWLDataFactory fac = manager. getOWLDataFactory ();

String onto_id = ontology. getOntologyID (). toString (). substring (1, ontology. getOntologyID (). toString (). length () - 1);

IRI cls1Iri = IRI. create (onto_id + "#" + element_name);

OWLClass cls1 = fac. getOWLClass (cls1Iri);

Set<OWLClassExpression> classes = cls1. getSubClasses (ontology);

for (OWLClassExpression cls: classes)

{

// logger. info ("Equivalent class: " + cls. toString (). substring (cls. toString (). indexOf ("#") +1, cls. toString (). length () - 1));

sub_elements. add (cls. toString (). substring (cls. toString (). indexOf ("#") +1, cls. toString (). length () - 1));

}

return sub_elements;

}

// function for filling list of equivalent classes by ontology element name and ontology object

public List<String> GetEquivalentClassesForElement (String element_name, OWLOntology ontology)

{

logger. info ("start GetEquivalentClassesForElement. [" + element_name + "] ");

int res = 0;

List<String> equ_elements = new ArrayList<String> (); // FIXME! we mast allocated memory in function body

// fixme - -

// ConsoleProgressMonitor progressMonitor = new ConsoleProgressMonitor ();

// OWLReasonerConfiguration config = new SimpleConfiguration (progressMonitor);

OWLOntologyManager manager = OWLManager. createOWLOntologyManager ();

OWLDataFactory fac = manager. getOWLDataFactory ();

String onto_id = ontology. getOntologyID (). toString (). substring (1, ontology. getOntologyID (). toString (). length () - 1);

IRI cls1Iri = IRI. create (onto_id + "#" + element_name);

OWLClass cls1 = fac. getOWLClass (cls1Iri);

Set<OWLClassExpression> classes = cls1. getEquivalentClasses (ontology);

for (OWLClassExpression cls: classes)

{

// logger. info ("Equivalent class: " + cls. toString (). substring (cls. toString (). indexOf ("#") +1, cls. toString (). length () - 1));

equ_elements. add (cls. toString (). substring (cls. toString (). indexOf ("#") +1, cls. toString (). length () - 1));

}

return equ_elements;

}

// module testing

public static void main (String [] args)

{

String onto_url = "http://budgetrf.ru/Publications/Ontology/Ontology1321427863687. owl";

// String z = localPizza. getOntologyID (). toString (). substring (1, localPizza. getOntologyID (). toString (). length () - 1);

SearchObject test_so = new SearchObject ();

test_so. getResources ();

test_so. _query = "Оплата жилья";

test_so. _queryElements. add ("Р-РёР"СЊРµ");

test_so. _queryElements. add ("РћРїР"ата");

test_so. _ontoTypes. add ("SUB");

test_so. _ontoTypes. add ("EQU");

test_so. _ontoTypes. add ("SUP");

test_so. _usedOntologies. add (onto_url);

OntologyModule test_onto_mod = new OntologyModule ();

int res = test_onto_mod. FillOntologyQueryElements (test_so);

for (int i = 0; i < test_so. _ontoElemQuantity; i++)

{

// System. out. println ("Ontology: " + test_so. _ontoElements [i]. _ongology);

for (int j = 0; j < test_so. _ontoElements [i]. _elements. size (); j++)

System. out. println (test_so. _ontoElements [i]. _elements. get (j));

}

test_so. clearResources ();

}

}

Размещено на Allbest.ru


Подобные документы

  • Развитие информационного бизнеса, электронной коммерции на основе Интернет. Описание предметной области, процессов и типичного хода событий при создании информационной системы виртуального предприятия. Калькуляция разработки электронной торговли.

    курсовая работа [872,8 K], добавлен 22.05.2015

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

    курсовая работа [6,2 M], добавлен 30.07.2012

  • Логическая и физическая структура базы данных. Аппаратное и программное обеспечение системы. Создание представлений, хранимых процедур, пользовательских функций, триггеров. Описание основной структуры ASP.NET документов. Пользовательский интерфейс.

    курсовая работа [4,2 M], добавлен 21.05.2013

  • Программирование полнофункциональной системы учета для предметной области "Концертный зал": построение концептуальной и реляционной моделей базы данных, описание способов реализации запросов и вывода отчета на экран, разработка интерфейса пользователя.

    курсовая работа [1,5 M], добавлен 22.11.2010

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

    дипломная работа [2,1 M], добавлен 11.07.2015

  • Обоснование выбора метода извлечения ключевых слов. Анализ предметной области, проектирование информационной системы поиска релевантных документов. Реализация запросов к электронным библиотекам. Реализация интерфейса системы поиска релевантных документов.

    дипломная работа [1,1 M], добавлен 21.09.2016

  • Реализация базы данных и серверной части информационной системы склада средствами СУБД Microsoft SQL Server. Анализ предметной области, информационных задач, пользовательской системы. Программа реализации проекта. Выработка требований и ограничений.

    курсовая работа [2,4 M], добавлен 15.11.2015

  • Анализ предметной области. Обеспечение качества проектной документации. Построение инфологической (концептуальной) модели предметной области. Проектирование физической структуры базы данных. Разработка интерфейса, организация ввода и поиска данных.

    курсовая работа [2,5 M], добавлен 10.01.2016

  • Моделирование предметной области. Состав программного модуля. Разработка логической структуры единой базы данных банковской информационной системы "БИС". Создание экранных форм для ввода и корректировки информации. Разработка интерфейса пользователя.

    курсовая работа [1,8 M], добавлен 17.05.2016

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

    курсовая работа [866,3 K], добавлен 02.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.