На форуме Semantic Future сейчас активно обсуждаются проблемы использования языка  веб-онтологий OWL.

Читатели спрашивают… (часть 1)

На shcherbak.net  добавлена новая рубрика «Читатели спрашивают…» В рамках этой рубрики читатели shcherbak.net могут  задавать вопросы по тематике Semantic Web, а мы и вы, читатели -специалисты в Semantic Web, надеюсь сможем на эти вопросы ответить. ))

В качестве первой записи этой рубрики решил взять вопросы читателя Dio.

Отвечаем вместе! Присоединяйтесь к обсуждению.

Из комментария читателя dio в FAQ SHCHERBAK.NET:

Я недавно начал знакомиться с инструментарием Semantic Web и пытаюсь выяснить, насколько он применим в моей ситуации. Хотел бы прояснить накопившиеся вопросы, да и вообще уточнить, в ту ли сторону я копаю. Надеюсь, в этом разделе сайта мои вопросы будут более-менее уместны. Должен сказать, что ко всему хорошему вдобавок, мое понимание БД чисто теоретическое, никаких сведений о прикладных аспектах работы с ними я не имею, т.к. моя область — алгоритмы Text Mining. Из-за этого затруднительно бывает понять, какие в точности задачи решает тот или иной инструмент. Одним словом, “сами мы нездешние, люди добрые, допоможите хто сколько сможет”(С) и т.д.

Вопросы:
1) Предположим, объект класса A определен как нечто, имеющее необходимую связь b c объектом класса С (экзистенциальная связь с кардинальностью min 1). Индивидуал I помещен в класс A явно. В Protégé 3 при этом на закладке Frames появляется табличка для ввода значений соответствующего свойства. Табличка подкрашивается красным, пока свойство не введено. В Protégé 4 не происходит вообще ничего.
Вопрос: можно ли заставить Protégé сообщать о таких ситуациях, как о явных ошибках и выдавать их списком.
2) Как выразить на OWL отношение следования вида A b C d V => A e V. Здесь (A, B) – классы, (b, d) – свойства классов, V – класс или тип данных, e – свойство класса или свойство данных.
Например:
Индивидуалы: Событие:Рождение, Персона:Человек, Дата:Год
(Рождение -> Год, Рождение -> Человек) => Человек (родился) Год
3) Контора имеет несколько традиционных баз данных, каждая из которых представляет какой-то аспект «предметной области». Реальна ли такая интеграция этих баз при помощи надстроечной онтологии, описывающей «предметную область» полностью, чтобы никаких фактических изменений в уже работающей части системы делать не пришлось? Годятся ли для этого такие средства, как D2RQ или Virtuoso? Какое средство предпочтительней?
4) Как решаются проблемы с масштабируемостью отдельной онтологии. Видно, что Protégé целиком прогружает онтологии в память и при размере онтологий порядка нескольких сот тысяч элементов начинает работать уже с некоторым скрипом. Если онтология генерируется по содержимому большой БД «традиционного типа», как это оговорено в п.3, размеры явно будут гораздо большими и критерия для деления результирующей онтологии на фрагменты не видно.
5) Предположим, что часть синсетов WordNet конвертируется в иерархию классов OWL, т.е., отношение isKindOf заменяется OWL isSubclassOf. При этом синсеты WordNet имеют еще десяток связей других типов, каждая из которых имеет определенные свойства (по наличию обратных, транзитивности, запрету на образование циклов и т.п.). Надо полагать, что в нотации OWL это должно быть выражено в виде требования, чтобы экземпляры, выведенные от синсета такого-то, имели связи со всеми экземплярами, выведенными от синсета сякого-то + описание дополнительных свойств. Есть ли практическая возможность поддерживать такого рода онтологию на OWL, или она будет слишком громоздкой?
6) Насколько эффективна будет процедура вывода в онтологии, состоящей из нескольких десятков тысяч классов и нескольких миллионов индивидуалов. Можно ли рассчитывать на то, что при автоматическом пополнении онтологии с таким характерным размером процедура классификации сможет отрабатывать если и не после каждой вставки, то хотя бы раз в час. Ожидающийся темп пополнения – десятки/сотни вставок в час.

Первые ответы на эти вопросы здесь!

Уголок OWL: Класс “Разнородный контейнер” (MixedContainer).

Новая задача по представлению на языке OWL класса «Разнородный контейнер» предлагается для обсуждения в нашем Уголке  OWL.

Условие задачи можно прочитать здесь. Ждем ваших решений ))

Обсудить задачу можно здесь!

P.S. Форум работает в тестовом режиме,  о возможных проблемах в работе форума просьба сообщать.

Класс “Разнородный контейнер” (MixedContainer). Есть классы Ball (мяч), Container (контейнер), свойство contains (содержит), связывающее контейнеры с мячами и функциональное свойство hasColor, задающее цвет мяча. Нужно описать класс контейнеров, в котором содержатся минимум два мяча разных цветов.

При этом реализация цветов остается на ваше усмотрение – можно использовать класс Color или datatype (т.е. просто строки типа “red”, “green” и т.д.).

Эта задачка недавно рассматривалась в mailing list Pellet’a (просто с чуть другими именами классов). Эврен Сирин (главный разработчик Pellet) предложил очень красивый вариант решения, который мне захотелось обсудить. Его нетрудно найти, поэтому я не скрываю, но рекомендую сначала подумать самим. Ну и разумеется не лишать других такого удовольствия.

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

В этой статье опишу свой опыт работы с вышеуказанными фреймворками и поделюсь результатами тестирования.
Read the rest of this entry »

Уголок OWL

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

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

1) Класс «Дядя» (Uncle) – класс всех объектов, братья и сестры которых имеют своих детей. Реализация в OWL 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). Заметим, что этот класс можно описать в OWL 2 в котором появились property chains, но не в OWL 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), который связывает   любителей кошек и самих кошек. В OWL легко сказать, что *каждый* любитель кошек связан с link при помощи свойства linkLover, и *каждая* кошка связана с link при помощи свойства linkCat (описания свойств тривиальны). Далее остается последний шаг: сказать, что любая цепочка «любитель кошек -> link ->  кошка» означает свойство «любить» (loves). Желающие могут проверить в Protege, что для любого x из класса CatLover и любого y из класса Cat, reasoner сможет вывести loves(x,y). Если не сможет – то это баг (мой или reasoner’a). При этом ему будет гораздо сложнее вывести, что некий объект x является экземпляром CatLover, поскольку в OWL это не будет следовать даже если x будет любить всех кошек *явно* перечисленных в онтологии (для желающих понять почему: почитайте про Open World Assumption).

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

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

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

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

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

На пути к OWL 2…

Рабочаю группа по OWL закончила Last Call и в ответ на замечания выпустила небольшой  обзорный документ, в котором описаны отличия OWL 2 от OWL 1.

Вполне возможно, что больше в OWL 2 серьезных изменений  не будет:

http://www.w3.org/TR/owl2-overview/

Вероятностные онтологии

Аннотация

В предыдущей статье я постарался осветить самые общие вопросы, касающиеся представления неточных знаний в онтологиях. Была приведена классификация типов неточных знаний, основными из которых являются неопределенные и нечеткие знания. Далее мы несколько сузим область интересов и рассмотрим проблемы представления вероятностных аксиом в онтологиях OWL. Основной упор будет сделан на том, как можно придать формальную семантику вероятностным аксиомам, так чтобы из вероятностных онтологий можно было делать интересные логические выводы (подобно тому, как они делаются из обычных OWL-онтологий).
Read the rest of this entry »

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

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

Read the rest of this entry »

О формальных основах OWL

Аннотация

2 недели назад я написал небольшую заметку о неопределенности в онтологиях и был весьма польщен, что она вызвала определенный интерес (в связи с чем выражаю глубокую признательность всем оставившим комментарии). Как и было обещано, я начал работу над продолжением, в котором я планировал более подробно остановиться на семантике вероятностной неопределенности в OWL. Однако в процессе написания я все больше склонялся к мысли, что стоит все же потратить время на классическую семантику OWL. В итоге я решил вынести это обсуждение в отдельную заметку, так как семантика OWL потребует некоторого знакомства с семантикой в логике вообще.
Read the rest of this entry »

Язык запросов SPARQL для RDF [перевод рекомендации W3C]

На странице переводов стал доступен перевод рекомендации W3C «Язык запросов SPARQL для RDF».

Таким образом, читатели SHCHERBAK.NET, могут получить доступ к важной подборке переводов нормативных документов W3C, а именно к рекомендациями RDFa, SPARQL, SPARQL PROTOCOL и черновику рекомендации OWL 2.
Read the rest of this entry »

Abstract

В данном небольшом очерке я попытаюсь немного приоткрыть завесу тайны над проблемой неопределенных и неточных знаний в онтологиях вообще и в OWL в частности. Он никак не может претендовать на полноценную статью, но все же может быть полезен тем, кто удивляется, почему в стандарте OWL по-прежнему нет никакой нечеткой логики (более того, она даже не обсуждается в контексте OWL 2) и тому подобного. Вообще по данной теме можно говорить много и спорить до хрипоты, но для начала я попытаюсь обрисовать ситуацию в самом общем плане.
Read the rest of this entry »

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

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

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

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

Read the rest of this entry »

Автоматическое построение онтологий

Рабчевский Евгений

Пермский Государственный Университет

Введение

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

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

Необходимо заметить, что оригинальная спецификация WWW [1] разрабатывалась именно для решения задачи интеграции научных материалов.

Очевидно, что для эффективной интеграции данных некой предметной области из различных Интернет источников, соответствующее приложение должно работать с семантикой веб ресурсов. В этой связи, в таких приложениях актуально использование различных технологий Semantic Web [2].

Стандарты Semantic Web

В Интернет используется множество языков представления данных, основанных на XML. В рамках проекта Semantic Web, для представления данных, имеющих графовую структуру, консорциум W3 разработал язык RDF (Resource Definition Framework – Среда Описания Ресурса). RDF предоставляет средства для записи триплетов, троек данных – субъект – предикат – объект. Объект и субъект соответствуют узлам графа, а предикат или свойство – направленной дуге графа. Дуга направлена от субъекта к объекту. Каждый из элементов триплета называют RDF ресурсом и идентифицируют с помощью URI идентификаторов.

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

Для машинного представления различных предметных областей в Интернет, используются онтологии и словари. Онтология – спецификация концептуализации [3], или явное, формальное описание предметной области. Как и в объектно-ориентированном описании, онтология состоит из классов и их экземпляров. У классов и экземпляров выделяются свойства, на свойства могут накладываться логические ограничения.

Поисковой системой SWOOGLE [4] на сегодня проиндексировано свыше 10 тысяч онтологий и словарей, доступных в Веб. Онтологии используются научными сообществами – для описания терминологии [5], в электронной коммерции – для описания товаров и услуг [6], и в других приложениях Интернет. Из-за своей популярности онтологии стали использоваться и в качестве баз знаний локальных интеллектуальных систем.

Для описания онтологий, доступных через Веб, созданы языки RDFS [7] (RDF Schema – RDF Схема) и OWL [8] (Ontology Web Language – Язык Сетевых Онтологий). В качестве своих базовых элементов данные языки используют RDF ресурсы. RDFS используется для записи словарей, а OWL – онтологий. Сетевые онтологии предоставляют более выразительные возможности по сравнению с RDF словарями, например логические операции над классами и логические ограничения свойств.

Постановка задачи

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

Базовой является задача разработки алгоритма автоматического построения семантической карты веб ресурса с помощью анализа его текста. Семантической картой ресурса назовем отображение контента Веб ресурса в концептуализацию его содержания, представленную в виде OWL онтологии.

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

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

Построение семантической карты ресурса

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

1. формировался набор пар «текст – конструкция языка OWL»;

2. по набору выявленных пар «текст – OWL конструкция» выявлялись правила, позволяющие автоматизировать процесс отображения текста в соответствующую OWL конструкцию;

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

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

Рассмотрим несколько правил:

1. «Сложный предмет» или «noun1 + noun2» (два подряд идущих существительных),
например словосочетание «ontology editor».

Проанализируем данный пример. Можно предположить существует целый класс абстрактных редакторов – Editor. Этот класс характеризуется тем, что все его экземпляры обладают неким характерным для этого класса свойством. В данном случае, это то, что они все что-либо редактируют. Назовем это характерное свойство mainPropertyOfEditor. Доменом этого свойства является класс Editor. Определим диапазон этого свойства, как класс RangeOfMainPropertyOfEditor. Выделим класс OntologyEditor, который будет подклассом класса Editor. При этом значение свойства mainPropertyOfEditor для подкласса OntologyEditor имеет строго определенное значение – экземпляр класса RangeOfMainPropertyOfEditor, индивид Ontology. Данные утверждения можно представить следующим OWL кодом:

<owl:Class rdf:ID=»Editor»> <rdfs:comment rdf:datatype=»http://www.w3.org/2001/XMLSchema#string»>класс абстрактных редакторов</rdfs:comment>

</owl:Class>

<owl:Class rdf:ID=»RangeOfMainPropertyOfEditor»><rdfs:comment rdf:datatype=»http://www.w3.org/2001/XMLSchema#string»>диапазон характерного свойства реадактора (редактируемый объект)</rdfs:comment>

</owl:Class>

<owl:Class rdf:ID=»OntologyEditor»>

<rdfs:subClassOf>

<owl:Restriction>

<owl:onProperty>

<owl:ObjectProperty rdf:ID=»MainPropertyOfEditor»/>

</owl:onProperty>

<owl:hasValue>

<RangeOfMainPropertyOfEditor rdf:ID=»Ontology»/>

</owl:hasValue>

</owl:Restriction>

</rdfs:subClassOf>

<rdfs:comment rdf:datatype=»http://www.w3.org/2001/XMLSchema#string»

>класс редакторов онтологий</rdfs:comment>

<rdfs:subClassOf rdf:resource=»#Editor»/>

</owl:Class>

<owl:ObjectProperty rdf:about=»#MainPropertyOfEditor»>

<rdfs:domain rdf:resource=»#Editor»/>

<rdfs:range rdf:resource=»#RangeOfMainPropertyOfEditor»/>

<rdfs:comment rdf:datatype=»http://www.w3.org/2001/XMLSchema#string»

>характерное свойство редактора (редактирует)</rdfs:comment>

</owl:ObjectProperty>

2. «Предмет с определением» или «adjective + subject», например словосочетание «abstract syntax». Для записи соответствующего OWL кода необходимо провести рассуждения, аналогичные приведенным в предыдущем примере.

3. Простое предложение, subject1 + verb + preposition + subject2 (подлежащее, сказуемое, предлог, дополнение), например «Ontology’s incorporate information about

4. subject1 + are + subject2 + that + verb + preposition + subject3 (подлежащее, are/is, дополнение, that, сказуемое, предлог, дополнение), например предложение «Decision Engineering is an emerging discipline that focuses on developing tools».

Отдельно выделяются правила, которые сами не строят семантическую конструкцию, но определяют, каким образом (к каким словам) применять правила, непосредственно выявляющие семантические конструкции. Например, правило «Если сложный предмет состоит из трех и более простых, то нужно применять правило «noun1 + noun2» начиная с конца».

Рассмотрим правило из примера 2, в котором по аналогии с примером 1 были бы введены свойство mainPropertyOfAbstract и класс RangeOfMainPropertyOfAbstract. Данные конструкции введены чисто формально, используя некие законы языка, однако данное свойство и класс имеют определенную семантику. Так определение Abstract характеризует некую особенность предмета Syntax. В данном случае эту особенность можно назвать, например как «степень детализации».

Если же подходить к анализу данного словосочетания с учетом семантики, указанные свойство и класс назывались бы «имеетСтепеньДетализации» и «СтепеньДетализации» соответственно.

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

Слово Характерное свойство
Abstract Степень детализации
Editor Редактирует

Предполагается представить данный источник знаний в виде RDF представления WordNet подобного ресурса [9] компьютерной лингвистики.

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

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

Онтология «Semantic Web»

Для оценки метода автоматического построения онтологии авторы создают онтологию предметной области «Semantic Web» без средств автоматизации. Онтология создается на основе того же корпуса англоязычных  тестов, из которого выявляются правила построения семантической карты ресурса. Тексты корпуса исследовались следующим образом:

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

- каждое понятие дополнялось экспертным определением;

- выявлялись триплеты, содержащие найденные понятия;

- для каждого понятия и триплета фиксировался ресурс-источник.

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

Семантическая разметка,  RDF/A, GRDDL

RDF графы и онтологии на их основе могут размещаться в отдельных Веб ресурсах, например файлах или RDF хранилищах, доступ к которым осуществляется через RDF сервера. Также  RDF графы могут встраиваться в другие XML документы, например в XHTML. Встраивание RDF данных в XHTML используется для спецификации семантики (семантической разметки) контента.

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

Рабочая группа развертывания Семантического Веба W3 консорциума разработала технологию RDF/A [10], которая позволяет встраивать RDF данные в XHTML. RDF/A является одним из множества микроформатов [11] или диалектов языков, расширений языка HTML, в котором определяется, каким образом использовать конструкции языка HTML, чтобы интерпретировать записанный таким образом HTML код, как RDF данные.

Существуют микроформаты для записи таких словарей, как vCard, DC, RDF Calendar, RSS, GeoInfo. Все указанные словари записываются в виде RDF графов, RDF/A является микроформатом для записи непосредственно RDF синтаксиса, и может быть использован для записи терминов любых RDF словарей, например тех же vCard, DC, RDF Calendar, RSS, GeoInfo.

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

<head profile=»http://www.w3.org/2003/g/data-view»>

<link rel=»schema.DC» href=»http://purl.org/dc»/>

<meta name=»DC.Title» xml:lang=»en» lang=»en» content=»Использование терминов словаря DC в XHTML коде» />

</head>

Данный XHTML соответствует триплету субъектом которого является URI самого ресурса, предикатом – свойство Title, описанное в словаре DC по адресу http://purl.org/dc, объектом – строка «Использование терминов словаря DC в XHTML коде». Вставка такого RDF триплета в заголовок HTML страницы позволит соответствующим приложениям понять, что название документа – «Использование терминов словаря DC в XHTML коде». При этом это название может отличаться от того, которое представлено пользователю с помощью тега <title>. Таким образом, в XHTML можно вставлять любые RDF графы. Использование профиля profile= необходимо для возможности указания значения «transformation» у тега rel, что необходимо для указания ссылки на механизм GRDDL извлечения (см. следующий абзац).

Для извлечения RDF данных из различных микроформатов W3 консорциум разработал технологию GRDDL [12] (Gleaning Resource Descriptions from Dialects of Languages – Извлечение Описания Ресурса из Диалектов Языков). Для работы GRDDL-скреперов (программ, извлекающих RDF данные из XHTML) в XHTML коде необходимо указать ссылку на механизм извлечения:

<link rel=»transformation» href=/>

Механизм извлечения основан на технологии преобразования XML документов XSLT[18], в данном случае XHTML преобразуется в RDF.

Литература

1. Tim Berners-Lee, World Wide Web: Proposal for HyperText Project. 1990. //http://www.w3.org/Proposal.html

2. Сообщество Semantic Web // http://www.w3.org/2001/sw

3.Gruber, T.R. (1993) A translation approach to portable ontology specifications. Knowledge Acquisition. Vol. 5.

4. Swoogle – Semantic Web Search Engine. // http://swoogle.umbc.edu/

5.Е.М. Бениаминов  «Алгебраические методы в теории баз данных и представлении знаний». М.: Научный мир, 2003.

6.Реестр товаров и услуг ООН. // http://www.unspsc.org/.

7.RDF Schema 1.0, Язык описания RDF словарей. Рекомендация W3C 10 Февраля 2004. // http://www.w3.org/TR/rdf-schema/

8. Язык OWL. // http://www.w3.org/2004/OWL/

9. RDF/OWL представление WordNet, Рабочий документ W3C 19 Июня 2006 http://www.w3.org/TR/wordnet-rdf/

10. Встраивание RDF в XHTML RDFa. Рабочий документ W3C 12 марта 2007. //http://www.w3.org/TR/xhtml-rdfa-primer

11. Сообщество пользователей микроформатов. http://microformats.org/

12. Рабочая группа GRDDL http://www.w3.org/2001/sw/grddl-wg/

JADE и Semantic Web

Направление мультиагентных систем (МАС) возникло на стыке различных направлений, таких как искусственный интеллект, параллельное программирование, Интернет коммуникации, и в настоящее время стремительно развивается. МАС строятся из множества взаимодействующих агентов (зачастую представляющих собой полноценные интеллектуальные системы), совместно решающих поставленную задачу в распределенных средах.
Основным элементом программного агента системы, дающим ему возможность принимать решения, планировать действия, взаимодействовать с другими агентами, является онтологическая база знаний, содержащая модели концептуальных понятий, отношений предметной области и правила для анализа и ситуативной ориентации.
Программные агенты должны сыграть ведущую роль в Semantic Web. Однако пока большинство проектов посвященных МАС находятся на исследовательской стадии.
Можно найти и проекты, которые объявляют о готовности использования агентов в коммерческих целях. Такой пример можно посмотреть на сайте проекта Magenta.
«Magenta Toolkit многократно применялся для решения широкого спектра задач планирования и распределения ресурсов, а также для разработки Интернет-приложений, основанных на концепциях Web 3.0 и Semantic Web.»
Там же можно попросить Magenta Toolkit «в академических научно-исследовательских и образовательных целях». Кстати, планирую это сделать=))) Интересно посмотреть.
Среди других проектов можно выделить  наиболее популряный – JADE. Проект JADE идет по пути разработки фреймворка для построения МАС.
Основной упор делается на специфические аспекты взаимодействия агентов, такие как обмен сообщениями, кодировка и парсинг, жизненный цикл агентов и т.д.
А как же Semantic Web?
Semantic Web для агента – отличнейшее поле для деятельности.
А вот если проект SW? Нужны ли ему на данном этапе агенты(вообще агенты и агенты jade в частности)? Тут, конечно, все зависит от специфики приложения. Выбор агентного подхода должен быть четко обоснован при рассмотрении других альтернатив.

Что говорит википедия:

«Multi-agent systems are applied in the real world to graphical applications such as computer games. Agent systems have been used in films.They are also used for coordinated defence systems. Other applications include transportation, logistics, graphics, GIS as well as in many other fields. It is widely being advocated for use in networking and mobile technologies, to achieve automatic and dynamic load balancing, high scalability, and self-healing networks.»

Т.е. последнее замечание в некоторой степени касается и SW.  И я бы сказала, есть некоторый акцент на слове «advocated».

Что же предосталяет JADE(конкретно из того что могло бы быть полезно для приложений SW):

1)поддержка онтологий(jade.content package), которые агенты могут использовать для обмена сообщениями. Можно создать онтологию в Protégé а потом Beangenerator автоматически создаст «ontology definition class and the predicates, agent actions and concepts classes».

Beangenerator здесь. Написано что работает для protege 3.2.1 и след версий. Для OWL-онтологий с багами:). Для Protege 4 вроде не работает(по крайней мере у меня), а хотелось бы

2)есть интеграция с Jess – агенту можно прикрутить логический вывод

3) есть RDFCodec и AgentOWL

4) Простой пример использование jade  для выполнения простых SPARQL-запросов к http://dbpedia.org/sparql можно посмотреть тут.

Из примера видно, что jade по сути ничего для SPARQL и не предоставляет. А может, это и не надо? Для этого есть Jena к примеру.

5) JADE-агента достаточно легко развернуть как web-service(WSIG add-on)

6) Отдельным плюсом jade является интеграция с jsp(лучше бы конечно jsf:) При этом агент контролирует все запросы к странице.

Что еще хотелось бы, так это веб-интерфейс мониторинга и управления агентами.


надеюсь, эта информация будет вам полезной=)

немного об авторе review здесь

1 2 3 4   Следующая »