Почему RDF считается без схемы?
Люди рассматривают структуру описания ресурсов (RDF) как модель данных без схемы. Однако есть нечто, называемое RDF-схемой (RDFS). Итак, почему RDF является моделью данных без схемы?
3 ответа
Схема RDF несколько неправильно названа. Это не настоящий язык схем, по крайней мере, в том смысле, в котором схемы XML или ER модели являются схемами.
Основное различие заключается в следующем: схемы носят предписывающий характер: они предписывают точную форму, которую должны принимать данные: этот столбец должен присутствовать, его можно опустить, это должно иметь это конкретное отношение к чему-то другому и т. Д. И т. Д. Любые данные, которые делают не полностью соответствует схеме (либо из-за отсутствия чего-либо, либо из-за наличия какого-либо дополнительного столбца / элемента / атрибута, которого нет в схеме), автоматически считается недействительным (реляционные базы данных выдают ошибки, когда вы пытаетесь вставить данные, которые не имеют правильное количество столбцов для таблицы, в которую вы хотите вставить ее, и т. д.).
Схема RDF, с другой стороны, должна быть более точно названа "Языком описания словаря": она носит описательный характер. Другими словами, это дает вам возможность определить словарь для ваших данных ("эти классы и отношения существуют, и именно так они соединяются"), но это не заставляет ваши данные соответствовать этой схеме: это прекрасно иметь набор данных RDF, который использует некоторые части конкретной схемы RDF, но не другие, или который дополнительно использует другой словарь из некоторой другой схемы (или даже словарь, который явно не определен ни в одной схеме RDF).
Подумайте об этом таким образом; С реляционными базами данных вот типичный упрощенный рабочий процесс:
- Создать таблицы (схемы)
- Вставьте несколько строк
С RDF, как и в случае с другими (не только t)SQL-решениями, вы можете сделать это наоборот. Вы просто начинаете создавать некоторые данные, и схема, таким образом, создается на лету.
В конце концов, если у вас есть, скажем, база данных документов и вставить какой-то объект JSON
{
"type": "User",
"id:" "123",
"name": "John Doe"
}
можно утверждать, что type
, id
а также name
ключи образуют некую схему, на которую, вероятно, опирается ваше приложение. Единственное отличие состоит в том, что я написал выше, что схему не нужно объявлять заранее.
RDF идет только на один шаг дальше, внедряя URI везде, но в остальном работает аналогично. При выборе используемых вами терминов (свойств и классов) RDF вы фактически строите или повторно используете схемы по ходу работы.
Говоря, что единственным преимуществом RDF является отсутствие схемы, я говорю о RDF как о моделирующей среде; многие словари, онтологии и инструменты, составляющие стек связанных данных, не являются "RDF", но им это облегчает. Они незаменимы при работе с данными в Интернете распределенным, похожим на Интернет способом, но им не нужен RDF для работы.
С другой стороны, RDF Schema предоставляет словарь для RDF.
Мне кажется, что, как только вы используете определенные словари для проверки своего RDF, он больше не является схемой. В этом отношении это похоже на XML: вы можете использовать его без схем, но большинство людей этого не делают.