Посмотреть поток сообщений | Ответить | Вернуться на главную страницу | Прочитать предыдущее сообщение | На главную

Упражнения 18-19

Сообщение послал(а): Владимир (95-24-150-74.broadband.corbina.ru)
Дата: Понедельник, 23 Января 2012, at 11:41 p.m.

== Упражнение 18. Перемещение ресурсов между онтологиями. ==
18.1. При перемещении ресурсов возможна потеря данных. Зарезервируйте директорию tutorial.topbraid.com (например упаковав эту директорию с присвоением номера: tutorial.topbraid_1.zip.) Восстановление данных/перенесение на другой компьютер: удалить испорченную директории и распаковать резервную.
18.2. Выбрать значок навигатора в левом нижнем углу (Window -> Show View -> Navigator). Создать файл в навигаторе в проекте tutorial.topbraid.com: левая клавиша -> New -> File -> RDF/OWL file -> shakespeare.ttl. После замены на обновите навигатор (F5 - refresh)
Смотрим в поле/виде (View) классы - это исходная онтология.
18.3. Придумать имя URI для этой онтологии (например http://example.org/shakespeare#) (см. упражнение 12).
18.4. Резервируем проект.
18.5. Импортируем person.ttl в shakespeare.ttl перетаскивая person.ttl из Navigator в поле Import онтологии Shakespeare.ttl.
18.6. File -> Save All (звездочки возле имен файлов исчезают).
18.7. Перейти в person.ttl -> MalePerson -> Instances -> перетащите William_Shakespeare и Hamnet_Shakespeare в корзину.
Выбрать класс FemalePerson перетащить JudithShakespeare, Susanna_Shakespeare в корзину.
18.8. Выберите все экземпляры в корзине (Ctr-A)
!!! Не удается повторить при выделении экземпляров исчезает поле навигатора.
18.9. Потвердите перемещение ресурса - Yes.
18.10. Убедитесь, что класс Person не имеет больше экземпляров (связанных с ним).
При перенесении всех экземпляров вместе сохраняются отношения между ними.
Если невозможно перенести все экземпляры вместе, на запрос настройки пространства имен (adjusting namespace) отрицательный ответ - no.
Как было указано в Упр. 17, если изменяется URI, изменение распространяется на другие онтологии, при этом делается запрос.
Для более подробного просмотра триплетов выберите Window -> Show View -> Triples.

== Упражнение 18-Б(роузинг) ==
Небольшое отступление, подготовка к работе в свободной конфигурации ТБК.

18-Б.1 TopBraid Live (в Интернете)
TopBraid Live (TBL) - SOA платформа для семантической сети.
http://www.topquadrant.com/topbraid/live
Требует пароль.

18-Б.2. TopBraid Live Personal Server (на локальной машине)
В ТБК Маэстро даже после окончания ознакомительного использования работает TopBraid Live Personal Server. Довольно

содержательный, с контентом с редакторами онтологии - надо изучить. Похож на сервер AllegroGraph.
http://localhost:8083/tbl
Содержит файл SDK.zip - шаблон проекта для разработки в среде Adobe Flex SDK.
http://localhost:8083/evn (Enterprise Vocelbury Net - сеть словарей предприятия)
EVN - средство для управления таксономией и бизнес-словарями для поддержки контента, поиска, навигации, интеграции данных, разрешения противоречий.
http://localhost:8083/tbl/lib/evndoc/gettingstarted.html#evngettingstarted - руководство по началу работы.

18-Б.3. Подключение к ТБК AllegroGraph (неудача)
http://www.franz.com/agraph/support/documentation/v4/TBCplugin.html
Help -> Install New Software -> Add -> Name: AllegroGraph Plugin, Location:

http://www.franz.com/ftp/pub/agraph/eclipse/tbc/3.5 -> Ok -> Select All -> Next -> Next -> Finish

18-Б.3 Ключ ТБК
Поиски ключа (серийного номера) в Интернете ничего не дали.
Постоянно выходит на страницы с оплатой через карт MasterCard и Visa стоимость 2$ на 3 дня. Нет карты - невозможно проверить.

= Restriction (Ограничения) Упр. 19 - 20 =
Определение классов используя OWL.
Все декларации свойст в RDFS глобальные. Если установлено, что класс Person находитсяв домене свойства hasChild эта декларация сохраняет силу везде где используется свойство hasChild Другим словами определяется свойство hasChild, а не класс Person.

Расмотрим пример:
уже было определено, что класс Person свойстве Activity имеет подсвойство hasFavoriteActivity используя утверждение rdfs:domain.
Затем мы хотим определить специальный класс людей с названием "adventurers" и определить,что по крайней мере одна из из активностей имеет свойство приключение (adventures).
Мы хотим повторно использовать свойство и сделать утверждение, что Adventurer (приключенец) имеет знtчение Adventure свойства hasFavoriteActivity.
В этом случае надо использовать ограничивающую конструкцимю OWL. В отличии от domain, ranges конструкция restriction

(ограничение) определяет класс. Ограничение используется при определении экземляров принадлежащих классу. ддерживает следующие ограничения:
- Quantifiee Restriction (числовое ограничение) - AllValuesFrom (все значения из, также называется универсальный квантифер), и someValuesFrom (некоторые значения из,Ю также назвается экзистенциональный квантифер)
- Cardinal Restriction (Кардиальный, т.е. по классам множеств?): minCardinality, cardinality, maxCardinality;
- hasValue ограничитель.
Ограничитель может быть объявлен используя конструкции subClassOf или утверждение owl:equivalent. Эти утвержения различаются в процедуре вывода. Например:
А. Определим,что граждане США подкласс всех объектов, для которых свойство "национальность" имеет значение (hasValue), это значит если индивидуал является гражданимном США, то из этого следует, что национальность "США".
Б. Определим,что гражданин США, означает, что: если известно, что индивидуал является гражданином США, то из того следует, что национальность "США", И если известно, что национальность "США", из этого слудует гражданин США.

== Упражнение 19. Создание граничений someValues с помощью диалога Edit Restriction. ==
19.1. СОздайте класс person:Adventure, как подкласс owl:Thing
19.2. Откройте онтологию geotravel выберите этот новый класс Adventure, который появляется,т.к. geotravel импортировал онтологию person.
19.3. В Class Form person:Adventurer, около виджета (строки) owl:equivalentClass нажать меню (треугольник) и выбрать создать ограничение (create restriction), появляется диалог редактирования Restriction (типы ограничений - Restriction type).
19.4. Выберите свойство hasFavoriteActivity из дерева свойств travel -> travel:hasFavoriteActivity -> someValueFrom (значок логического существования) -> поле Filler введите значение Adventure, этим определяется что значения должны быть из этого

класса -> Ok.
Альтернативный способ ввести ограничение добавить пустую строку в owl:equivalentClass или rdfs:subClassOf и непосредственно ввести ограничение в манчестерском синтаксисе (т.е. строку travel:hasFovoriteActivity some travel:Adventure).
Для дальнейшего описания Adventure будет указано, что приключенец человек, который любит приключения.
Можно сделать приключенца подклассом персон. Однако при этом появится неожиданное логическое следствие: всякий раз когда в SPARQL запросе x hasFavoriteActivity y и y rdf:tyleAdventure удет выводится, что x rdf:type Person даже если x является например собакой