Вопрос о рабочих процессах в RDF и OWL - PullRequest
3 голосов
/ 26 февраля 2011

Я смотрю и играю с OWL через Protege, и я хотел бы знать, правильно ли я понимаю «рабочий процесс» и идею его (для создания базы данных с нуля:

  1. Создание онтологии OWL для ваших данных с использованием Protege или эквивалентной
  2. Экспорт этой схемы в RDF
  3. Используйте классы, определенные как некоторые элементы в хранилище триплетов вместе с вашими целевыми данными
  4. Экспорт вашего тройного магазина в RDF
  5. Используйте openRDF / sesame или Jena для загрузки определенных данных и онтологии
  6. Проверьте ваш тройной склад RDF по онтологии OWL, чтобы убедиться, что все в порядке
  7. Используйте SPARQL для получения данных из вашего тройного хранилища RDF
  8. Используйте рассуждения OWL, чтобы что-то сделать (здесь не совсем понятно)

Я хотел бы получить представление о том, что делают другие и как они подходят к этому типу проблемы.

Кроме того, у меня есть конкретный вопрос:

Кажется, что сова-рассудитель используется для определения отношений подкласса суперкласса только для онтологий. Но с точки зрения данных, как вам запросить отношения подкласс - суперкласс в SPARQL. Например, если в моем тройном магазине определено (pizzaID1 is-a marghareta) и я запрашиваю вегетарианскую пиццу в SPARQL, как мне убедиться, что pizzaID1 возвращен.

Я думаю, что ответ как-то связан с генерацией «полного графа», в котором все отношения явно указаны. Sparql выполняет какие-либо автоматические рассуждения при запросах в триплетах или создает такой полный граф, необходимый?

1 Ответ

5 голосов
/ 26 февраля 2011

Существует множество возможных рабочих процессов, но на самом деле они не должны быть такими сложными.

  1. Генерировал вашу онтологию OWL в каком-то редакторе
  2. Экспорт онтологии как RDF
  3. Импорт онтологии в триплетное хранилище
  4. Импорт данных в триплетное хранилище
  5. Запрос данных с помощью SPARQL

Аргументация подкласса / суперкласса - это то, для чего используется этот аргумент. Если вы используете хранилище со встроенным аргументом, тогда SPARQL будет использовать его информацию, поэтому если вы сделаете:

SELECT ?pizza
WHERE {
  ?pizza a :VegitarianPizza .
}

Вы получите обратно все пиццы, принадлежащие к классу VegitarPizza, или любые его подклассы.

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

...