Вопросы? {FAQ}

Вопросы? {FAQ}

Здесь вы можете задавать  вопросы по  Semantic Web и связанным технологиям и средствам.

Мы по мере возможности будем на них отвечать ))

Рекомендации по составлению вопросов здесь!

Наиболее интересные вопросы будут рассмотрены и ответы на них будут опубликованы в виде заметок на сайте ))

Вопрос 1:

Где взять онтологии для использования в своих проектах?

Ответ:

Вы можете использовать открытую онтологию OpenCyc (весьма легко интегрируется с Jade).

Кроме того, доступны для скачивания онтологии на DBpedia и protege.stanford.edu.


Вопрос 2:

каким образом можно использовать настраиваемый интерфейс Protege для графовой модели памяти? т.е. как бы подменить используемую в Protege фреймовую модель на графовую.
где можно об этом почитать?

Ответ:

Подменять не нужно, просто надо выбрать какую использовать версию редактора Protege — Protege-Frames или Protege-OWL.

Графовый (Protege-OWL) описан здесь

Protege-Frames описан здесь. Этот Protege использует протокол Open Knowledge Base Connectivity. что это почитать можно на ontolib.com в глоссарии и ссылки получить можно там же.


Вопрос 3:

В каких больших коммерческих проектах технологии SW применены? Хотелось бы увидеть архитектуру этих приложений и по-возможности экономический эффект от применения semantic web по сравнению скажем с WEB 2.0.

Ответ:

Один из наиболее интересных коммерческих проектов Semantic Web это проект DBin.

Проект весьма неоднозначный, с одной стороны в нем есть черты rdf store, с другой — социальной сети. О нем немного можно почитать здесь.

В качестве основы для приложения Dbin используется среда Eclipse и новая парадигма Semantic Web Communities.

Анализом экономического эффекта от внедрения SW я не занимался, но при прочих равных разработку программного обеспечения в парадигме Semantic Web выполнить проще, а значит и дешевле. А возможности при этом будут выше. Как минимум синтаксическая и семантическая интероперабельность приложения SW будет гораздо выше, чем у любого другого приложения, построенного на классических технологиях.

К слову, интероперабельность — это способность к взаимодействию!

Вопрос 4:

Что полезного дает использование RDF для описания структуры сайта и для “сайтоделания” вообще?
Разве недостаточно “голого” XML? Насколько существенно использование в проекте именно RDF-графов?

Ответ:

RDF — это средство Semantic Web, которое сделает когда-то возможной автоматическую обработку информации агентами!

RDF — это семантическая разметка данных. Анализ такой разметки позволяет агенту делать логический вывод.

XML ориентировался на отделение структуры данных от их визуального представления, а RDF позволил внести в структуру данных XML понятие семантики. Т.е. позволил данные на веб-страницах представлять в виде наборов связанных отношениями объектов.

Анализ отношений между объектами и есть основа логического вывода.

В своих проектах более целесообразно использовать OWL (как более развитую альтернатива RDF).

Если Вы все-таки останавливаете свой выбор на RDF, то более эффективным будет использование RDF в синтаксисе n3.

RDF в XML/RDF синтаксисе весьма «тяжёлое» решение.

Конкретно, на сайте ontolib.com были доступны два вида информации, первый — html, второй — rdf со схемой данных rdfs. Внешняя программа анализируя содержимое сайта могла выделить ссылку на RDF+RDFS, а уже по ним эта программа должна (в идеале) осуществлять более точный и «осмысленный» анализ содержимого сайта.


Вопрос 5:

Где можно скачать руководство пользователя для Protégé? русскоязычный вариант предпочтительнее, но и на английском дока не помешала бы…

Ответ:

Руководства пользователя, программиста и другая документация по Protege на английском здесь.

Переводы руководств (и многое другое) можно скачать здесь!


Вопрос 6:

Можно ли визуализировать RDF с помощью CSS?

Ответ:

Нет, но можно с помощью XSL.


Вопрос 7:

Допустим документы со связанными с ними RDF-файлами. Если ставить задачу написания поисковика по метаданным, то существует ил язык запросов к такому поисковику? Что уже сделано в этом плане вообще? Спасибо.

Ответ:

Задачу поисковика по метаданным решать не целесообразно. Уже теоретически и практически эту задачу решили, причем давно! Вот решать задачу поиска документов с учетом метаданных — это другое дело! Задача из серии неподъемных, но решив ее, Вы будете на высоте. Суть проблемы в том, что есть документ и соответсвующая ему онтология (или метаданные), надо провести поиск по содержимому документа на основе метаданных описывающих структуру и семантику этого содержимого. В случае, если вы все таки хотите только по метаданным искать, тогда SPARQL+OWL (или SWRL) может решить вашу задачу!

Вопрос 7.1:

Говоря о задаче поиска документов с учетом метаданных, что конкретно вы имеете в виду? Как перейти от ЕЯ запроса к SPARQL, или что? Непонятно.

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

В комментариях можно обсудить вопросы и ответы!


Задать вопрос можно на форуме

40 Responses to Вопросы? {FAQ}

  1. Alex:

    может вы мне подскажете какая прога просто построит схему по онтологии? по этой онтоло гии An OWL Ontology of Time (OWL-Time)

  2. 15 мин и нет проблем с OWLViz 😉
    Читайте о визуализаторах здесь

    Может после сдачи поделитесь информацией о Jade c окружающими,
    думаю им будет интересно 😉

  3. Alex:

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

  4. Alex:

    кстате кстати теми плагинами которые у вас перечислены я тоже все визуализировал без проблем подключил и работает. Потому склоняюсь к мнению что проблема не в моих руках ))))

  5. Ваш максимум в виде краткого руководства с примерами думаю будет окружающим полезен ❗
    А редакторскую работу по адаптации вашего материала могу сделать 😆

    Проблема иногда не в руках, а в желании почитать READMY файл… а OWLViz сразу и по умолчанию ни у кого не устанавливается… нужно до ума доводить… :)

  6. Alex:

    У вас на примете нету сравнения owl с реляционными бд?

  7. OWL нельзя сравнивать с реляционными бд (РБД).

    Реляционные БД можно сравнивать,например, с RDF Store.

    Тогда получается сравнение двух различных инструментов )

    Можно сравнивать реляционные подход (РБД) и логический подход (OWL DL) к структурированию информации…

    С допущениями можно сравнить реляционную алгебру с LBASE (OWL).

    Если сравнивать РБД и OWL (RDF) Store, то проще всего за основу взять сравнение РБД с объектными БД…А материалы с таким сравнением есть на citforum.

    Идея такого подхода к сравнению основана на следующем принципе — если распределенное по WEB описание объекта RDF собрать в единицу времени, например в конкретном RDF store, то такой объект RDF практически ничем не будет отличаться от объекта (объектной) БД. И как результат — OWL Store будет подобна объектной БД. А значит можно принять с допущениями сравнение объектных с реляционными БД, как сравнение OWL (RDF) Store с реляционными БД.

    Главное не забывать о распреденной природе хранения объектов RDF (OWL).
    Что значит распределенная природа хранения объектов RDF (OWL)?

    Это значит, что объекты RDF хранящиеся в RDF Store могут иметь компоненты, например, описания свойств или их значений, которые физически располагаются в других rdf store или на других web серверах.

  8. Nicholass:

    СТРАННО, почему нельзя с помощью CSS? У меня получалось XML отображать через CSS? хотя через XSL в сто раз лучше.

  9. Элементы XML визуализировать через СSS легко — написал селектор с правилами отображения (элемента) и все…
    Сложнее, если в xml начать использовать пространства имен… конструкции вида —
    < ns : my_element >
    плохо совместимы с CSS (не работают с СSS вообще).

    Можно использовать атрибуты «id» и «class» и тогда, конечно, можно получить приемлемый результат через классы и псевдоклассы CSS.

    Но в RDF ввод лишних атрибутов, типа «id» и «class» это не очень разумно. Тем более, острой является проблема адресации атрибутов. атрибут элемента XML с помощью CSS еще нужно обработать (!!!), а о составных атрибутах вида ns:name я вообще молчу.

    ИМХО. CSS и RDF не совместимы.

    Я не гуру CSS, но мне кажется, что мои слова очень близки к истине. Google тому подтверждение… Пересмотрел массу статей на тему… но результат, даже не ноль… Хотя заметки на тему есть ))

  10. Nicholass:

    Странно, CSS может работать с пространствами имен, не знаю, правда, как поддержка этого на практике в бразуерах, но http://www.w3.org/TR/css3-namespace/

    Ой, только сейчас увидел, что это CSS3, но все равно.

  11. ))
    Не очень свежий, но интересный тест браузеров на поддержку CSS 3 — css 3 селекторы.

  12. Alex:

    логический подход (OWL DL) — гуглю и гуглю а не чего нормального не нашол можь подскажете?

  13. DL — Description logic (описательные логики)
    Информации по Description logic столько на eng, что лет 5 можно читать не отрываясь 😉
    OWL DL — это реализация дескриптивной логики в OWL.

    А если интересует конкретно логический подход в OWL,
    то надо читать LBASE (Semantics for Languages of the Semantic Web )

    Мне честно говоря не нравятся ни дескриптивные логики ни OWL DL ))

  14. alex_kart:

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

  15. >>Однако в отличие от ООП онтологии только описывают термины и связи между ними, но не описывают методы работы с терминами.

    Да, примерно так. Методы неважны, главное, чтобы выводы были корректными (sound) с точки зрения семантики языка.

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

    Это очень хороший вопрос! На эту тему в настоящий момент идут жаркие дискуссии. Тема называется «n-ary datatypes». Если по-русски, то n-арные предикаты данных (или конкретные свойства). OWL поддерживает бинарные объектно-конкретные свойства, например, можно сказать, что «рост Анны — 180» (hasHeight(Anna, 180)), причем поддерживаются типы данных XSD. n-арные предикаты пока не поддерживаются, т.е. в частности, нельзя сказать, например, «рост Анны равен ее весу + 120».
    На 90% n-ary datatypes *не* будут включены в OWL 2. Пока у нас нет уверенности в возможности эффективной реализации, хотя работа идет.

    >>Не совсем ясно также что представляют собой эти самые блоки рассуждений, о которых упоминается в руководстве по OWL2, есть ли какие либо программные продукты, реализующие соответствующие возможности?

    Pellet, FaCT++, RACER, HermiT, KAON2. На данный момент Pellet наиболее близко реализует OWL 2.

  16. alex_kart:

    Спасибо за ответ, жаль что такие конструкции не поддерживаются.
    Не посоветуете ли где можно почитать про Pellet (желательно русскоязычнй ресурс :)) На сайте разработчика документации не очень много)
    Вообще мне кажется несколько странным что такое большое внимание уделено вопросам построению онтологий (в сети есть множество готовых разработанных онтологий, статей по разработке и т.д.) однако информации об инструментах обработки онтологий, примеров реальных проектов, использующих онтологии значительно меньше. Хотя имхо любой способ представления знаний не имеет смысла, если нет инструментов для обработки знаний.

  17. Не, боюсь, что русскоязычной информации о Pellet попросту нет. Лучшие ресурсы — это mailing list, на который можно подписаться на сайте разработчика (clarkparsia.com) и описание, данное в статье «Pellet System Description» [1].
    Насчет недостатка информации на тему средств обработки знаний — тут Вы правы. Если дойдут руки, то я напишу пару заметок о лог. процессорах и принципах их работы.
    Что касается реальных проектов, то их много в медицине и биоинформатике. Они хорошо известны, но, к сожалению, в узких кругах :) Немало информации есть, в частности, на сайте OpenClinical [2] (в частности, см. систему ASEMR [3]).

    [1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.86.77»
    [2] http://www.openclinical.org/home.html
    [3] http://www.openclinical.org/dm_asemr.html

  18. alex_kart:

    Такой еще вопросик по OWL.
    Допустим у меня есть класс «Человек» Индивид этого класса некий «Вася пупкин»
    У человека есть объектное свойство «друг».
    Хотелось бы создать класс «Друзья Васи пупкина». т. е написать что то вроде
    class: Friends_Pupkin EquivalentClass: People and hasFriend some
    но вот синтаксис для такого определения я не нашел 😥
    Подскажите как описать правильно класс в таком случае?

  19. Ну например в функциональном синтаксисе (см. [1]) будет так:
    EquivalentClasses( FriendsOfVasya IntersectionOf( People SomeValuesFrom( hasFriend OneOf( Vasya) )) )
    Т.е. объект Vasya выступает здесь в роли класса (в DL эта конструкция называется «номиналы» — nominals).
    Если интересует другой синтаксис, то проще всего запустить Protege, создать класс и сохранить онтологию.

    [1] http://www.w3.org/TR/owl2-syntax/

  20. inna.komisarchuk:

    Здравствуйте, все! У меня такая-вот проблема: мне нужно разработать онтологию дисциплины в форме словаря и чтобы можно было осуществлять поиск по этой дисциплине на веб-страничке. Это все нужно для дистанционного обучения. Может вы могли бы подсказать мне, куда дальше двигаться? Я просто не могу понять, где будет храниться эта онтология? С помощью чего это все запрограммировать, подойдет ли сюда php? C онтологиями не очень-то знакома, но ето задание надо выполнить… Не могли бы вы мне дать пару напутствующих советов, может подскажете, что почитать, я была бы вам очень признательна! Буду благодарна за любые советы!

  21. Для начала думаю стоит почитать http://shcherbak.net/dist/
    Потом ARQ+PHP+MYSQL можно попытаться увязать в одну систему.
    Онтология будет храниться на сервере в базе данных или в виде файла. или посмотрите на triple store. Кстати говоря, есть материалы на сайте, которые могут Вам помочь. Смотрите Архивы или используйте поиск по тегам.

  22. inna.komisarchuk:

    Здравствуйте! Спасибо за ответ, а вот еще текущий вопросик: Можно ли как-то сделать так, чтобы свойством класса была ссылка на место в тексте, где встречается нужный нам экземпляр класса?

  23. некоторое значение свойства(в тексте) можно связать с свойством онтологии. Но трудно связать полученное свойство с некоторым объектом. Так как получается, что некоторый выделенный фрагмент текста нужно проинтерпретировать как совокупность пар атрибут-значение с символьным именем объекта. Если сможете это сделать, то нет проблемы!
    Вообще решение вашей проблемы лежит в правильном использовании идеи RDFa

    http://shcherbak.net/translations/ru_rdfa_primer_shcherbak_net.html

    Думал ответить вам сложно, но передумал.
    Фрагмент мысли — Пусть < a href="fff.html" > bbb < /a >, где href ссылка, а bbb значение (Value), тогда
    Свойство класса мы должны интерпретировать как ссылку (href) на место в документе, где Value соответствует экземпляру?
    Если так, то 1) экземпляр это (грубо) набор свойств со значениями, то есть вероятность того, что в тексте будет такая структурированная информация, стремится к нулю. Значит речь идет о символьном представлении имени класса в тексте, но имя класса это еще не экземпляр…

  24. alex_kart:

    Такой вопрос. В документации по OWL есть такой простой пример с описанием человека с ребенком вроде
    Individual: f:Vasya
    f:hasChild f:Petya
    Как быть если у васи есть 2 сына пети? Написать 2 раза f:hasChild f:Petya протеже не разрешает, и создать второго индивида петю тоже. Как быть в этом случае?

  25. alex_kart:

    Отвечу сам себе, что можно выкрутится создав 2 индивида вроде
    Individual: f:childer999 hasName: Petya
    Individual: f:childer1000 hasName: Petya

    Но как быть, если сущности должны на самом деле быть одним и тем же? Например у меня есть класс молекула, атом и свойство атом_молекулы. Как описать молекулу воды, ведь нужно зафиксировать что в нее входит 2 атома водорода

  26. Если у Васи два сына Пети, то это два *разных* объекта с разными URI, оба имеющих одно значение data property hasName (так что я с тобой согласен). Молекулу воды я бы моделировал как класс:
    H2O subclassOf Molecule and (=1 hasAtom.O) and (=2 hasAtom.H)
    В общем-то тут атомы водорода также физически различные объекты.
    Кстати, моделирование химических соединений — это очень актуальная головная боль. В частности, есть попытки транслировать идентификаторы InChi [1] в OWL. Там основная проблема с циклическими структурами, типа бензола и т.д.

    [1] http://en.wikipedia.org/wiki/International_Chemical_Identifier

  27. alex_kart, просьба вопросы связанные с OWL, обсуждать в уголке OWL. Заранее спасибо.

  28. Sergiy Tytenko:

    💡 В облаке тегов явно не хватает метки «Логический вывод», или я чего-то не заметил?

  29. и да и нет — в облаке тегов выводятся только наиболее часто испольуемые теги — но конкретно такого тега нет — добавим…

  30. dio:

    Я недавно начал знакомиться с инструментарием 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) Насколько эффективна будет процедура вывода в онтологии, состоящей из нескольких десятков тысяч классов и нескольких миллионов индивидуалов. Можно ли рассчитывать на то, что при автоматическом пополнении онтологии с таким характерным размером процедура классификации сможет отрабатывать если и не после каждой вставки, то хотя бы раз в час. Ожидающийся темп пополнения – десятки/сотни вставок в час.

  31. Nata_Ke:

    Здравствуйте, dio!
    Ответ 1:
    Это не ошибки — это подсказки тому, кто кодирует онтологию, что если он решит проверить выполнимость онтологии,
    то ответ может быть неверен, т.к. …
    Без дополнительных усилий получать список невведенных значений в Protege не получится.
    Просто потому, что это редактор, а работа со списком ошибок — это debugging.
    Пишется скрипт разбора онтологии по классам, свойствам с доменами и областями значений, ограничениями,
    и анализируется соответствие значений «по определению» и «фактически».
    Ответ 2: пропускаю, наверно, нужно больше деталей
    Ответ 3: Да, реально. Промышленно реализуемо. Попробуйте посмотреть сюда для начала (http://ermolayev.com/eva_personal/PS/IEDI-Ref-Arch-DR-10.pdf).
    и сюда (http://ermolayev.com/eva_personal/PS/EKSV-ISTA-04-cr.pdf).
    Средства реализации триплсторов зависят безусловно от объема.
    Ответ 4: для больших онтологий можно пользоваться напрямую уже не Protege, а машинами вывода. Все-таки Protege — это больше редактор.
    Задачи, которые Вам придется решать (если это не визуализация) — проверка выполнимости концепта, проверка непротиворечивости онтологии — задачи машин вывода.
    Кроме того, если стоит вопрос о «закладывании» всей БД в онтологию, то может проще выполнить «перезакладку» в триплстор, и оттуда брать — в том числе и машиной вывода.
    Ответ 5: Вам действительно нужно всё из WordNet? Тогда Вам сюда — http://www.w3.org/TR/wordnet-rdf/
    Ответ 6: это ОЧЕНЬ сильно зависит от типа вставок (индивидуалы или концепты) и от машины вывода.
    Надеюсь, ответы помогут :)

  32. […] на Вероятностные онтологии Xasima на RDFa под угрозой? dio на Вопросы? {FAQ} Василий Фаронов на RDFa под угрозой? progg.ru на RDFa под […]

  33. Ответы для dio:
    1) Это вообще не ошибка. Онтология — это не база данных и в OWL принято т.н. OWA — open world assumption. Это значит, что если какого-то факта в онтологии явно нет, то это еще не значит, что его нет в природе (в отличие от принципа negation as failure в БД). Просто считается, что он нам пока неизвестен. Есть расширение Pellet’a для моделирования integrity constraints в OWL, возможно это то — что Вам нужно.
    2) Присоединяюсь к Наталье — сложно понять вопрос.
    3) Реальна, но «серебряных пуль» нет, увы. Есть решения для универсального интерфейса запросов (т.е. запросы пишутся в терминах онтологии, а затем отображаются на конкретные схемы данных). Сходу не вспомню, надо смотреть. Если у вас реально стоит такая задача — то ее можно было б отдельно рассмотреть — это очень интересная тема.
    4) Это примерно то же, что спросить «а как сейчас решаются проблемы искусственного интеллекта?». Шутка. Но по обширности примерно так. К сожалению, подгрузка онтологии в Protege по частям не работаем (т.к. не поддерживается OWL API) и видимо не будет, т.к. онтологии как правило описаны в RDF, в котором понятия «локальности» отсутствует по определению (большой привет создателям RDF и Пэту Хайесу в частности!). В качестве простого решения предложу увеличить объем памяти для Protege (по умолчанию там в скрипте очень мало, чуть ли не 256 мег, вот все и своппится).
    5) Нужен пример того, что нужно описать в OWL. А после этого выберем нужный профиль и т.д.
    6) Неизвестно. Серьезно. Скорость зависит не только от размера, а еще от миллиона разных факторов, в частности, от используемых конструкций. Ну и от ризонера.
    А вообще, Вам похоже при таких масштабах надо смотреть на module extractors. Выделение модулей и работа с ними по отдельности — один из лучших способов достижения масштабируемости. В моей группе Томас Шнайдер (Thomas Schneider) серьезно этим занимается, есть работающие прототипы, если заинтересуетесь — можем попробовать.
    HTH

  34. dio:

    Наталья и Павел, спасибо за подробные ответы, они дают надежду, что я двигаюсь в правильном направлении.
    Во втором вопросе я перепутал порядок обозначений, так что неудивительно, что понять его было трудно. Я уже обнаружил, что то, что меня интересовало, делается при помощи команды SWRL вида Birth(?x1) ^ hasDate(?x1, ?x2) ^ hasPerson(?x1, ?x3) → hasBirthDate(?x3, ?x2). Все же интересно, можно ли выразить то же самое на чистом OWL.

    WordNet целиком не нужен, нужен какой-то его срез, точный размер которого я сейчас определить не берусь. То, что сделано на http://www.w3.org/TR/wordnet-rdf/ , мне не подходит: их онтология определяет внутреннюю структуру WordNet (т.е., классами являются части речи и т.п., а WordNet-овские синсеты являются индивидуалами), а мне хотелось бы, чтобы WordNet служил «моделью мира» для системы, т.е., чтобы его синсеты представлялись классами, к которым можно было бы приписывать индивидуалов. Впрочем, когда я записал прошлые вопросы, я понял, что мои требования были завышенными для такого использования: например, из того, что синсет «колесо» связан отношением isPartOf с «машиной», не следует, что любой экземпляр колеса должен быть связан со всеми машинами.

    Я постараюсь кратко описать свой «use case», возможно, вы сможете меня просветить насчет его типичности. Система, с которой я работаю, используется для индексирования новостного потока и поиска по нему. Перед индексированием тексты прогоняются через лингвистический модуль, который выделяет именные группы и пытается их нормализовать и отождествить по каталогу объектов (его размеры и темп поступления данных я оценил в прошлом сообщении с большим запасом). Если это удается, соответствующие группы помещаются в метаинформацию документа и в отдельную колонку индекса. На данный момент каталог объектов пополняется операторами вручную и лингвистический модуль по отношению к нему выполняет только клиентские функции. Хочется преобразовать каталог в онтологию и обеспечить автоматическое или полуавтоматическое пополнение этой онтологии лингвистическим модулем. На этой операции хочется получить следующие бонусы:
    — Развести выделение «факта» и логику его обработки, поместив последнюю в онтологию. Например, если «в момент T директором X назначили A», то «полномочия B, бывшего директора X, истекли в момент T» и подобное. Кстати, большая часть интересующих систему фактов относится к какому-то временному интервалу.
    — Использовать автоматический вывод следствий для расширения системы запросов, например, в следующем роде: «А является директором X; Х располагается в Москве, следовательно, A живет в Москве» или «A закончил физический факультет университета, следовательно, A – физик».
    — Загнать в онтологию, опять же в видах расширения системы запросов, биографические данные, которые на данный момент используются только для выдачи справочной информации конечному пользователю. При этом было бы здорово, если бы по онтологическому описанию можно было синтезировать описание на естественном языке.

    Да, еще мне не совсем понятен пока что момент, связанный с языками запросов: насколько я понимаю, операции над онтологией – графовые операции, реляционные хранилища должны быть в этом плане довольно неэффективны, между тем широко применяются именно шлюзы типа SPARQL -> SQL, да к тому же, судя по комментариям, которые я видел, с потерей семантики. В чем здесь выигрыш?

  35. Nata_Ke:

    (напоследок, пока сайт работает) и извините, dio, отвечаю только сейчас:
    Для Вашего use case — если предметная область — стабильна (вероятность появления в анализируемых текстах по управленческим решениям текстов по физике или по химии мала) возможно, Вам интересно будет посмотреть на «более-менее» стандартное решение text2onto (NLDB2005, Cimiano & Volker).
    Еще есть ontos api (http://www.ontos.com/o_eng/index.php?cs=4-2), и там такой стабильности онтологии не требуется. Первое решение точно использует WordNet.

  36. Shante:

    Здравствуйте. Отличный ресурс по Semantic Web – много интересной информации как теоретической так и практической направленности. Мне бы хотелось бы обсудить проект NEPOMUK –пожалуй самый крупный и «живой» проект в этой области, но тут про него ничего не сказано. Может кто-нибудь уже работал с ним? http://nepomuk.kde.org/

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

  38. Тоха:

    Здравствуйте. Хотел задать вопрос так как не нашел на сайте ответа.
    Как вставить код онтологии (он в текстовом файле) в редактор Protege?
    Я перечитал немного литературы но не наше ответ.
    Спасибо

  39. Для вопросов у нас есть форум. Что касается вопроса: он мне не понятен. Если онтология в OWL берете через меню протеже File->Open и открываете. аналогично со всем остальным

  40. Gara:

    Нормальный фак! :roll: Меня на блоге больше RDF интересовал. Но типа Calais для русского языка не подходят,жаль

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

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


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