Ни для кого не секрет, что львиная доля проектов, связанных с Semantic Web, разрабатывается на Java. Фреймворки для работы с семантическими онтологиями не являются исключением: все основные проекты (Jena, API, Sesame и т. д.) написаны именно на Java. Единственным серьезным представителем, использующим .NET, является фирма Intellidimension с продуктами RDF Gateway и Semantics.SDK.

В этой статье опишу свой опыт работы с вышеуказанными фреймворками и поделюсь результатами тестирования.
Читать продолжение »

Уголок OWL

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

Я буду использовать Манчестерский синтаксис OWL (не потому, что я сам из Манчестера, а просто потому, что он самый короткий и читабельный). Первым нашим примером будет тот самый "дядя".

1) Класс "Дядя" (Uncle) - класс всех объектов, братья и сестры которых имеют своих детей. Реализация в 2:

ObjectProperty: hasParent • hasBrother
SubPropertyOf: hasUncle
Class Uncle:
EquivalentTo: Person that (inverse hasUncle some Person)

Объяснение: здесь используется цепочка свойств (property chain) с вложенностью: сложное свойство hasParent hasBrother (цепочка двух свойств) являетс подсвойством hasUncle (это аналогично правилу hasParent(x,y) ^ hasBrother(y,z) => hasUncle(x,z)). Далее все просто: дядя - это все такие объекты x, что x принадлежит Person и существует такой y (племянник(ца)), что hasUncle(y,x). Заметим, что этот класс можно описать в 2 в котором появились property chains, но не в 1.

2) Класс "любитель кошек" (CatLover). Подразумевая класс "Кошка" (Cat) и свойство "любить" (loves)  надо выразить класс любителей кошек. Каждый экземпляр CatLover любит *всех* экземпляров Cat.

linkLover o (inverse linkCat) SubPropertyOf: loves
CatLover SubClassOf (linkLover some {link})
Cat SubClassOf (linkCat some {link})

Иллюстрация:

catlover

Смысл в том, что используется вспомогательный экземпляр (link), который связывает   любителей кошек и самих кошек. В легко сказать, что *каждый* любитель кошек связан с link при помощи свойства linkLover, и *каждая* кошка связана с link при помощи свойства linkCat (описания свойств тривиальны). Далее остается последний шаг: сказать, что любая цепочка "любитель кошек -> link ->  кошка" означает свойство "любить" (loves). Желающие могут проверить в , что для любого x из класса CatLover и любого y из класса Cat, reasoner сможет вывести loves(x,y). Если не сможет - то это баг (мой или reasoner'a). При этом ему будет гораздо сложнее вывести, что некий объект x является экземпляром CatLover, поскольку в это не будет следовать даже если x будет любить всех кошек *явно* перечисленных в онтологии (для желающих понять почему: почитайте про Open World Assumption).

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

3) Класс "Разнородный контейнер" (MixedContainer).

Условие задачи и варианты решения см. здесь!

4) Ждем предложений следующей задачки! (а вы думали, что я один буду трудиться? )

Начало положено, продолжение следует. Обязательно задавайте вопросы и присылайте свои примеры (даже если вы не знаете, как их выразить в ).

База знаний DMOZ – основа для приложений Semantic Web

Open Directory Project (ODP, Открытый Каталог (ODP)), также известный как  DMOZ (от одного из своих первых доменных имён directory.mozilla.org) — многоязычный свободный каталог ссылок на сайты всемирной паутины, принадлежащий AOL и поддерживаемый сообществом добровольных редакторов.

deepdmoz7a

Итак, чем может быть полезен DMOZ для нас - разработчиков приложений Semantic Web?

Ответ прост - Все содержимое DMOZ доступно в виде троек RDF, при чем отдельно можно получить доступ как к структуре каталога, так и к его содержимому.

Структура каталога DMOZ представляет собой мультиязычный набор иерархически организованных категорий. Причем русскоязычная часть хорошо проработана и может быть использована для разработки специализированных русскоязычных приложений. Отмечу, что каталог, как и его русскоязычная ветвь, активно развивается. Загрузить наиболее  "свежую" структуру и содержимое DMOZ (Open Directory RDF Dump) можно отсюда!

Кроме того, хотел обратить внимание читателей SHCHERBAK.NET на то, что DMOZ мультиязычный каталог, а дамп этого каталога в виде RDF представляет собой наглядный пример как можно связывать понятия на различных языках в виде единой онтологии.


SHCHERBAK.NET одобрен и зарегистрирован в DMOZ.

Агенты и онтологии на примере AgentOWL

В прошлый раз я описывала использование AgentOWL. Сейчас  я предлагаю рассмотреть некоторые теоретические и практические аспекты поддержки и использования RDF/ моделей агентами. Целью будет выявления возможностей и ограничений подхода AgentOWL.

Читать продолжение »

Использование AgentOWL

Лирическое отступление

AgentOWL - небольшая java библиотека, разработанная для поддержки RDF/ моделей для Jade агентов.

Здесь используется описание модели знаний агента(generic agent model), основанная на пяти основных элементах: Resources, Actions, Actors, Context и Events. Поддерживается обмен сообщениями в формате RDF/, включение полученной информации в модель.

Читать продолжение »

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

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

Подробнее

На данной странице будут публиковаться неофициальные файлы локализации для редактора онтологий  Protege.

Важно! Файлы локализации для редактора онтологий переведены добровольцами специально для сайта  SHCHERBAK.NET. Эти файлы протестированы на работоспособность c 3.4  RC1, но никаких гарантий, что файл будет у вас работать мы не даем. И самое-самое - вы используете все на свой страх и риск, осознавая, что локализация осуществлялась не разработчиками ...

Файл локализации для базового интерфейса 3.4  RC1 (на русском языке):

Скачать

Скачать архив

Скриншот руссифицированного интерфейса  3.4  RC1:

rus_protege_shcherbak_net

Процедура установки файла локализации:

1. В папке, где установлен  , найдите файл  protege_text.properties и сделайте его резервную копию!

2. Замените файл protege_text.properties скачанным с сайта SHCHERBAK.NET

3.  Запустите .


Замечания к переводу оставляйте в комментариях!

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

Захотите добавить сюда свой файл локализации для плагинов или , пишите...(адрес в контактах)