Подписка на RSS-ленту
Здесь знают,
Что такое Semantic Web

Как создать приложение Semantic Web?

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Оцените заметку!!!

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

Cначала давайте определимся, что будем понимать под приложением .

Итак, если приложение построено с использованием таких средств , как , , SPARQL, то такое приложение будем называть приложением первого типа.

В случае, если приложение реализует идеи , как концепции,  тогда такое приложение назовем приложением второго типа.

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

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

Компонент 1 - распределенная база знаний в виде онтологии. Онтология может быть описана  на одном из языков представления поверхсностных знаний (/RDFS, , DAML+OIL и т.п.)

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

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

Что касается термина CRUD - это просто набор операций Create, read, update and delete! ))

Компонент 3 - SPARQL-точка доступа, через которую приложение  будет осуществлять взамодействие c внешним миром ( агентами, другими семантическими приложениями и т.п.).  Для такой точки доступа к ресурсами приложения можно использовать различные языки запросов, например, SPARQL или SWRL.

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

Реализация!

Приложения первого типа разделим на два подкласса (деление характерно и для обычных приложений):

1) Статические приложения

2) Динамические приложения

Если со статическими приложениями все в общем ясно, заглянув на сайт ontolib.com! Есть онтология , есть правила логического вывода на  , есть генератор страниц HTML  в виде  процессора, например,  Saxon или XALAN. Вообщем и все. Полноценное статическое приложение  готоро. Почему статическое? Да потому что запросы по формированию html-страниц выполняются не в реальном режиме времени.

А где вы скажите CRUD? А CRUD в редакторе онтологий, например,  в или SemanticWorks. Вы скажите, что это неудобно и так уже никто не делает программы ))) и я с вами соглашусь )))

Конечно, проще всего сделать динамическое приложение, например, что-то из серии Web-ориентированных приложений.

Итак, берем относительно простой язык программирования Java, пишем простой сервлет или JSP-страницу, добавляем в проект сервлета вызов стандартной библиотеки для обработки с помощью или непосредственно к сервлету/JSP подключаем XALAN или SAXON, берем правила интерпретации - конструкций отсюда и все готово! Динамическое приложение 1-го типа готово! Предугадывая вопросы типа - это отстой, хочу напомнить, что никто вам не запрещает модифицировать мои правила для интерпретации -конструкций )) А это сделать очень легко вспомнив, что в основе представления лежит , а в основе представления в синтаксисе / лежит ! Для примера, я некоторые приведенные на моем сайте правила  модифицировал для обработки за 15 минут )) Время привожу исключительно для того, чтобы вы не думали, что это сложно!

И, конечно же, помните об оптимизации, примеры с моего сайта надо оптимизировать для реального использования! Я в приведенном материале не ставил перед собой цель создать эффективное решение!

Кроме того, подобное решение можно аналогично сделать на языках программирования PHP, C# и на любом другом, где есть поддержка !

Я ничего не сказал об третьей компоненте - SPARQL-точке доступа. Это тема для отдельной заметки )

Компоненту с -процессором и правилами вывода можно заменить средством обработки -конструкций JENA!

В этом случае, Вам не нужно мучится с освоением и вы автоматически получаете средство, понимающее SPARQL. А это прямой путь автоматически получить функциональность точки доступа ))

Кстати, Вам никто не запрещает совместить в одном приложении на языке Java и процессор и JENA.

Пока думаю хватит!

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

Повторюсь, эти приложения не решают основных проблем искусственного интеллекта!

Так что есть над чем еще работать ))

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
Понравилась статья, подписаться на новости можно здесь!

Популярность: 43%