Советы от читателей форума Semantic Web User Group (Выпуск 2)

, | Shcherbak Sergey | 31.05.2011 | 1 комментарий


Нижеследующий материал в формате вопрос/ответ  в основном базируется на размышлениях Натальи Кеберле…

… не могу философию Jena понять

Кеберле Н. (Очень вкратце и очень неполно…)

Во-первых, Jena парсит входные данные, цепочка:
Model(URI)->ModelReader.

Во-вторых, по наборам правил, хранящихся в каталогах com\hp\hpl\jena\reasoner\rulesys, выполняет логический вывод. Выберем OWLMicro — получим какой-то минимальный набор действий, связанных с подклассами, и.т.д.
SymmetricPropertyImpl из пакета com.hp.hpl.jena.ontology.impl поборет симметричные свойства из OWL.

В-третьих, Jena предоставляет интерфейс для графа, созданного из ModelReader, цепочка:
ModelReader->InfGraph, com.hp.hpl.jena.reasoner.InfGraph.
Можно проимплементить этот граф по-своему, либо, смотря по задаче (насколько стандартна), использовать готовую имплементацию (Пеллет).

2)  А есть ли какой-то способ делать полный вывод по достаточно большой онтологии? Например выбрать некоторые аксиомы (необходимые для вывода) из хранилища, загрузить из в память и сделать по ним вывод, например Pelletом.

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

3) Что поддерживает OWL DLP?
Кеберле Н. DLP — хорновский фрагмент OWL, соответственно не разрешается в общем случае unionOf (хотя можно выкрутиться), не разрешается DisjointClasses, DisjointProperties, номиналы — oneOf

4) Но никак не могу разобраться для разметки чего созданы DCTERMS, CP и DCMITYPE?

Кеберле Н. DCTERMS — то же самое что и purl.org/dc/elements/1.1, только новее лет на 10, и обширнее. DCMITYPE — Нужны для описания типа ресурса, выложенного в Сеть — музыка, событие, графический образ, видео…

5) Как подгрузить модульную онтологию посредством OWLapi?

Кеберле Н. В OWLAPI есть для этого OWLOntologyManager, ему можно сказать «загрузка онтологий с учетом импортов» (там вообще семейство manager-ов есть для всего) и использовать SimpleURIMapper для маппинга «настоящий URI» — «local URI»

6) OWL, SKOS, RDF — языки или модели данных?

Кеберле Н. Я себе объясняю так (наверняка есть более правильные определения из других школ/дисциплин):
Как только кто-то строит модель, он использует некий язык для задания результата (возможно, метаязык(-и) для описания получения результата), т.е. «формализация» модели требует язык.

OWL — это формальный язык, предназначенный для создания формальных теорий (онтология = формальная теория, даже если в этой онтологии всего только названия концептов, даже без аксиом, без экземпляров). У формальной теории есть понятие «модель» — т.е. некая область, в которой все постулаты этой теории (ну, теоремы, выводимые утверждения), выполняются.

Получается, если использовать OWL, то вот так вот, через формальную теорию, получим те модели, которые соответствуют сказанным на OWL фразам.

7) Есть ли общепринятый подход к формированию имен в OWL?

Кеберле Н. Вот если использовать подход с rdf:label «Евгений Онегин» @ru, то тогда может возникнуть интересный момент при формировании SPARQL запроса для выбора тех rdf:label, которые содержат название книги. Ведь у каждого концепта может быть несколько rdf:label с разным содержимым, и даже на разных языках.

Если используются AutoID в именах классов/индивидуалов (т.е. нечитаемые имена с автоинкрементом), то задача будет правильно визуализировать иерархию, т.е. обязательно будет программное решение, с тем же OWL API 3.

Если завести functional dataproperty Definition range string для полного определения названия класса, то мы можем оставлять для себя и имена классов по-русски (но уж с пробелами в виде подчеркиваний), и иметь нормальную возможность в SPARQL запросе отобрать по значению Definition нужные триплы.

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

Есть ещё такой вариант (например, используется в больших тезаурусах, типа NCI): называть классы какими-то отвлеченными идентификаторами (CUI####), и использовать специальное свойство (dataProperty Definition range string), в котором хранить на нужном языке нужное полное название класса

Class CUI####
:Definition «Книга»

или же пользоваться rdfs:label, rdfs:comment в паре с xml:lang

8) Можно ли делать логический вывод с помощью Sparql (выявлять неявные связи например)?

Кеберле Н. Sparql — язык для поиска запросов по RDF графам (поиск подграфа в графе, форматирование результата и дополнительно — фильтры). Конструкция CONSTRUCT позволяет добавлять в граф значения — это больше похоже на вывод.

9) Чем подтверждается адекватность модели? Какие доводы можно привести в случае онтологической модели?

Кеберле Н.

1) Как минимум те же, что и для объектно-ориентированной модели. (ИМХО)

2) Если считать разработку онтологий разновидностью семиотического моделирования (могу ошибиться, но в учебнике Гавриловой и Хорошевского поточнее), то можно пройтись по критериям адекватности: отдельно для семантики (например, иерархия «в жизни» соответствует иерархии в онтологии, и т.п.), для синтаксиса (т.е. корректно закодировали онтологию, ризонер подтвердил, что всё ОК), и для прагматики — те самые «end-users» выдали кучу экспертной информации, в процессе разработки сами подтвердили необходимость тех или иных концепций, попользовались базой знаний на базе онтологии, и как минимум всё сошлось (=все согласны, всем удобно, все свои задачи могут решать), как максимум — получили плюс (или ПЛЮС), к тому, что ожидали от своих знаний.

10) Как использовать и в каком формате rrule в микроформате hCalendar? И как генерировать uid?

Щербак С. в iCalendar UID просто становится URL, где обозначено событие hCalendar. Пример UID:guid-1.example.com

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


Понравилась статья? Поделитесь с друзьями!


One Response to Советы от читателей форума Semantic Web User Group (Выпуск 2)

  1. Немножечко хочу докинуть мыслей про SPARQL и логический вывод. В стандарте 1.1 уже есть т.н. entailment regimes [1,2,3], позволяющее выйти за пределы простого выделения подграфа.
    Так например, при использовании RDFS entailment regime ответом на вопрос «вывести всех родственников Маши» будет учтена иерархия свойств: ответом будут не только все объекты, связанные с Машей отношением «родственник», но и те, что связаны отношением «папа», «мама», «бабушка» и «дедушка».

    OWL-entailment активно разрабатывается прямо сейчас, а вот RDFS уже реализован и его можно попробовать, например, вот тут [4].

    [1] http://www.w3.org/TR/sparql11-entailment/
    [2] http://www.springerlink.com/content/j437x76h32321057/
    [3] http://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.090/Publikationen/2011/Glim11a.pdf
    [4] http://dbtune.org/jamendo/store/user/query

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Ответить с помощью ВКонтакте: