Почему предикат и класс различаются в rdf? - PullRequest
2 голосов
/ 23 сентября 2011

В RDF класс отличается от предиката или атрибута.Какая польза от этого по сравнению с наличием одной вещи, класса, который может выступать в качестве субъекта, предиката или объекта в любой тройке?

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

1 book has chapters
2 book1 is book
3 chapter1 is chapter
4a book1 chapter chapter1

ВВ этом примере глава является одновременно объектом (в утверждении 3) и предикатом (в утверждении 4a).Некоторые люди утверждают, что это не очень хорошая идея.

Смысл этих утверждений совершенно очевиден - книга имеет главы, книга1 - это книга, глава1 - это глава, книга1 - это глава, называемая глава1.В качестве альтернативы предлагается заменить 4 выше на 4b:

4b book1 has chapter1

Однако это требует больше усилий для анализа / рассуждения: если у книги есть глава, у книги есть автор, у книги есть издатель, а затем утверждение типа book1 имеетfoo требует гораздо больше работы, чтобы выяснить (мы должны выяснить, что foo, скажем, автор, чтобы выяснить, что автором book1 является foo).Более того, я могу избежать утверждения 3 выше, поскольку утверждение 4 говорит мне, что chapter1 - это глава.

Этот шаблон обычно отображается на графиках, содержащих как данные, так и метаданные.Есть ли недостатки в использовании 1,2,4а против 1,2,3,4б?Единственная проблема, которую я вижу, состоит в том, что это нарушает различие между свойством и классом (субъект / объект), но как это влияет на нас практически?

Ответы [ 2 ]

3 голосов
/ 26 сентября 2011

Ваш пример (книги и главы), кажется, имеет смысл только из-за свободного и гибкого способа, которым мы используем язык, и нашего человеческого толкования (и вашего использования притяжательного в качестве примера)

Так что, если ясказал

Book - Chapter - Chapter1

тогда, что только появляется , чтобы иметь смысл, потому что мысленно мы сопоставляем существительное Глава с глагольной фразой "имеет Главу", потому что мы понимаем, как работают книги и главы.Машины, потребляющие RDF, не понимают этого!

Но если бы я сказал Книга - Человек - Джон, что мы должны сделать из этого?Джон - автор, читатель, один из персонажей или как?Вот почему нам нужно указать однозначный предикат, например

Book - hasAuthor - John

Book - readBy - John
3 голосов
/ 23 сентября 2011

Я не совсем понимаю ваш вопрос здесь.Модель данных RDF основана на трех видах терминов:

  1. URI (иначе именованные ресурсы) - они могут появляться в любой позиции в тройных пустых узлах
  2. (анонимные ресурсы)- Они могут появляться как Предмет / Объект Тройки
  3. Литералы - Они могут появляться только как Объект Тройки

Когда вы начинаете говорить о классах, вы больше не говоритечистый RDF, как вы используете в языке схем, таких как RDFS или OWL, которые определяют понятие классов.Основная причина использования этих языков схем более высокого уровня заключается в том, что он позволяет более четко определять ограничения и отношения и, возможно, использовать некоторые аргументы над ними.

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

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex: <http://example.org/> . 

ex:Thing a rdfs:Class .
ex:this ex:Thing ex:that .

Это вполне законный RDF, просто он не обязательно на самом деле выражает данные, которые имеют какой-либо смысл для кого-либо!

...