Что такое RDF-тройка?

С точки зрения непрофессионала, что такое RDF-тройка?

14 ответов

Я думаю, что вопрос нужно разделить на две части - что такое тройка и что делает "тройку RDF" такой особенной?

Во-первых, тройка - это, как уже указывало большинство других комментаторов, оператор в форме "субъект / предикат / объект", т. Е. Оператор, связывающий один объект (субъект) с другим объектом (объектом) или литералом через предикат. Мы все знакомы с тройками: тройка является наименьшим неприводимым представлением для бинарных отношений. Простым английским языком: электронная таблица - это набор троек, например, если столбец в вашей электронной таблице имеет заголовок "Paul", а строка имеет заголовок "has Sister", а значение в ячейке - "Lisa". Здесь у вас есть тройка: у Пола (субъекта) есть Сестра (предикат) Лиза (буквально / объект).

Что делает RDF-тройки особенными, так это то, что КАЖДАЯ ЧАСТЬ тройки имеет URI, связанный с ним, поэтому повседневное утверждение "Майк Смит знает Джона Доу" может быть представлено в RDF как:

uri://people#MikeSmith12 http://xmlns.com/foaf/0.1/knows uri://people#JohnDoe45

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

Редактировать: этот раздел официальной документации касается исходного вопроса.

RDF Triple - это оператор, который связывает один объект с другим. Например:

"gcc" "Compiles" "c" .
"gcc" "compiles" "Java" . 
"gcc" "compiles" "fortran" .
"gcc" "has a website at" <http://gcc.gnu.org/> .
"gcc" "has a mailing list at" <mailto:gcc-help@gcc.gnu.org> .
"c" "is a" "programming language" .
"c" "is documented in" <http://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1226085111&sr=8-1> .

Файл RDF должен анализироваться до списка троек.

Тройка состоит из субъекта, предиката и объекта. Но что это на самом деле означает?

Предмет, ну, в общем, предмет. Он определяет, какой объект описывает тройка.

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

Объект является фактической стоимостью.

От: http://www.robertprice.co.uk/robblog/archive/2004/10/What_Is_An_RDF_Triple_.shtml

Что касается ответа Адама Н. Я полагаю, что ФП задал предыдущий вопрос, касающийся данных для социальной сети, поэтому, хотя ответ отличный, я просто уточню в отношении "оригинального оригинального" вопроса. (Как я чувствую ответственность).

    Джон | Друг | Джеймс
    Джеймс | Друг | Джил
    Джилл | Любит | Катание на сноуборде
    Сноуборд | Это | спорт

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

Посмотрите на друга друга (FOAF), возможно, для лучшего примера.

RDF - это язык, т. Е. Система знаков, синтаксиса и семантики для кодирования и декодирования информации (данные в некотором контексте).

В RDF единица наблюдения (Данные) представлена ​​предложением, которое состоит из трех частей: субъект, предикат, объект. По сути, это фундаментальная структура естественной языковой речи.

Знак, используемый для обозначения сущностей (вещей), участвующих в отношениях сущностей, представленных RDF, является IRI (который включает в себя HTTP URI). Каждый субъект и предикат (и, необязательно, объект) компонента предложения RDF обозначается IRI.

Синтаксис (грамматика) является абстрактным (то есть он может быть представлен с использованием различных обозначений) в форме субъекта, предиката и порядка расположения объектов.

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

Когда вы используете HTTP URI для обозначения субъекта оператора RDF, предикатов и (необязательно) объектов, вы в конечном итоге получаете структурированные данные (коллекции типов отношений сущностей), которые образуют сеть - так же, как вы это делаете сегодня в World Wide Web.

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

Вот примеры простых операторов RDF:

{
    <#this>             a  schema:WebPage                          .
    <#this>  schema:about  dbpedia:Resource_Description_Framework  .
    <#this>  skos:related  <https://stackru.com/questions/30742747/convert-a-statement-with-adjective-in-rdf-triple/30836089#30836089>   . 
}

Я использовал фигурные скобки, чтобы заключить примеры, чтобы этот пост превратился в живую демонстрацию связанных данных на основе RDF, благодаря относительным HTTP-URI и # основанный идентификатор фрагмента (индексный).

Результаты операторов RDF, встроенных в этот пост, любезно предоставлены nanotation (встраивание операторов RDF везде, где принят текст):

  1. Страница описания базового объекта - каждый оператор идентифицируется гиперссылкой, которая разрешается в его описании (субъект, предикат, части объекта)
  2. Страница с более глубоким граненым просмотром - альтернативное представление, которое позволяет глубже исследовать и обнаруживать, следуя по гиперссылкам, которые составляют сеть данных или сеть связанных данных.
  3. Описание встроенного оператора - О конкретном операторе RDF.

Вот визуализация, сгенерированная из троек, встроенных в этот пост (с использованием нашего расширения браузера для структурированных данных с использованием RDF-Turtle Notation:

Обратите внимание, что это может быть немного сложнее. RDF-тройки также могут рассматриваться как Субъекты или Объекты, поэтому у вас может быть что-то вроде: Барт -> сказал -> (тройки -> может быть -> объекты)

Я собираюсь согласиться с A Pa частично, даже если за него проголосовали.

Фон: я лингвист, со степенью доктора наук в этой области, и я работаю в компьютерной лингвистике.

Утверждение, что "... предложение, состоящее из трех частей: субъект, предикат, объект. По сути, это фундаментальная структура речи на естественном языке" (которую А Па цитирует из ответа Кингсли Уи Идейена), просто неверно. И это не только то, что Кингсли говорит это, я слышал это от многих сторонников троек RDF.

Это неправильно по многим причинам, например: Предикаты (возможно, в английском и во многих других естественных языках) состоят из глагола (или глаголоподобной вещи) + объекта (и, возможно, других дополнений). Это определенно НЕ тот случай, когда синтаксическая структура английского языка является Subj-Pred-Obj.

Кроме того, не все предложения на естественном языке в английском языке имеют объект; В непереходные глаголы, в частности, по определению не берут объекты. И глаголы погоды (между прочим) даже не берут "реальный" предмет (у "этого" из "идет дождь" нет благоговения). А с другой стороны, дитранзитивные глаголы типа "дать" принимают как прямой, так и косвенный объект. Кроме того, существуют глаголы типа "положить", которые в дополнение к прямому объекту принимают локатор, или "сказать", которые принимают объект и предложение. Не говоря уже о дополнениях, таких как время и манера наречий.

Да, конечно, вы можете представлять встроенные предложения как встроенные тройки (в той степени, в которой вы можете представлять любое утверждение как тройки, что, как я надеюсь, вы пояснили, вы не можете), но я не думаю, что вы можете сделать в RDF (по крайней мере, я никогда не видел, чтобы это было сделано, и кажется, что потребуется четыре) это иметь как объект, так и вложенное предложение. Точно так же как прямой и косвенный объект, или дополнения.

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

RDF Triple - это фактическое выражение, которое определяет способ представления отношений между объектами. Тройка состоит из трех частей: субъект, предикат и объект (обычно написанные в одном и том же порядке). Предикат относится к субъекту объекта.

Тема ---- Предикат ---> Объект

Более полезную информацию можно найти по адресу:

http://www.w3.org/TR/rdf-concepts/

Простой ответ может состоять в том, что тройка RDF - это представление некоторых знаний с использованием модели данных RDF. Эта модель основана на идее создания заявлений о ресурсах (в частности, URI веб-ресурсов) в форме выражений субъект-предикат-объект. RDF - это стандартная модель для обмена данными в сети. RDF имеет функции, которые облегчают объединение данных, даже если базовые схемы различаются, и он, в частности, поддерживает эволюцию схем с течением времени, не требуя изменения всех потребителей данных. Я рекомендую эту статью, чтобы узнать как: https://www.w3.org/DesignIssues/RDF-XML.html

Прошло некоторое время с тех пор, как я работал с RDF, но здесь это идет:D

Тройка - это субъект, предикат и объект.

Субъект - это URI, который однозначно идентифицирует что-то. Например, ваш openid однозначно идентифицирует вас.

Объект определяет, как субъект и объект связаны между собой.

Предикат является некоторым атрибутом субъекта. Например имя.

Учитывая это, тройки образуют граф S->P. Учитывая больше триплетов, график растет. Например, вы можете идентифицировать того же человека в качестве субъекта группы троек, затем вы можете соединить все предикаты с помощью этого уникального субъекта.

Тройной объяснил пример

Будь там таблица, которая связывает пользователей и вопросы.

ТАБЛИЦА dc: создатель
-------------------------
| Вопрос | Пользователь |
-------------------------
|    45    |   485527   |
|    44    |   485527   |
|    40    |   485528 ​​|

Концептуально это можно выразить в трех тройках RDF, таких как...

<question:45> <dc:creator> <user:485527>
<question:44> <dc:creator> <user:485527>
<question:40> <dc:creator> <user:485528>

... чтобы каждая строка была преобразована в одну triple это относится пользователя к вопросу. Общая форма каждой тройки может быть описана как:

<Subject> <Predicate> <Object>

Одна из особенностей RDF заключается в том, что вы можете (или должны) использовать URI/ IRI для идентификации объектов, а также отношений. Узнайте больше здесь. Это позволяет каждому повторно использовать уже существующие отношения (предикаты) и публиковать утверждения о произвольных объектах в www.

Пример, относящийся к SO-ответу его создателя:

<https://stackru.com/a/49066324/1485527>   
<http://purl.org/dc/terms/creator> 
<https://stackru.com/users/1485527>

Можно рассматривать тройку как тип предложения, в котором говорится об одном "факте" о ресурсе. Прежде всего, чтобы понять RDF Triple, вы должны знать, что каждая вещь в RDF определяется с точки зрения URI http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-referenceили пустой узел http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node,

RDF Triple состоит из трех компонентов:- 1) субъект 2) предикат 3) объект Например:- Pranay hasCar Ferrari Здесь субъект - Pranay, hasCar - предикат, а Ferrari - объект. Каждый из них определяется с помощью RDF-URI. Для получения дополнительной информации вы можете посетить: - http://www.w3.org/TR/owl-ref/

Как разработчик, я некоторое время боролся, пока, наконец, не понял, что такое RDF и его шутки, в основном потому, что я всегда видел мир через код, а не через данные.

Учитывая, что это опубликовано в Stackru, вот аналогия с Java, которая в итоге заставила меня щелкнуть: тройка RDF - это данные, которые метод / параметр класса должен кодировать.

Так:

  • Класс с именем пакета - это субъект
  • Метод этого класса - Предикат
  • Параметром (-ами) в методе является Object, которые сами представлены классами
  • Контексты являются операторами импорта, чтобы избежать написания полного канонического имени классов

Единственный момент, когда эта аналогия немного нарушается, это то, что предикаты также имеют пространства имен, а методы - нет. Но общие отношения, созданные между экземплярами класса как Subject и Object при использовании Predicate, отражают идею вызова метода для выполнения чего-либо.

По сути, RDF - это данные, а OO - код.

См.: http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/

RDF-тройка содержит три компонента:

  • субъект, который является ссылкой UD RDF или пустым узлом
  • предикат, который является ссылкой RDF URI
  • объект, который является ссылкой URI RDF, литералом или пустым узлом

где литералы - это по существу строки с необязательными языковыми тегами, а пустые узлы также являются строками. URI, литералы и пустые узлы должны быть из попарно непересекающихся множеств.

Другие вопросы по тегам