Семантический триплет
Семантический триплет (англ. RDF triple) — минимальная единица описания ресурсов в модели RDF (структуры описания ресурсов). Является утверждением или декларацией о ресурсе[1][2]. Такая декларация в стандарте RDF называется триплетом, поскольку она соответствует структуре: «Субъект — предикат — объект»[3].
Пример RDF-декларации: «Мона Лиза имеет создателя Леонардо да Винчи» — это следующий триплет:
| Субъект | Предикат | Объект |
|---|---|---|
| Мона Лиза | имеет создателя | Леонардо да Винчи |
Описание: субъект, предикат, объект
Семантическое триплет включает три компонента: субъект, предикат и объект, традиционно записываемые именно в таком порядке[4].
Субъект и объект триплета RDF
- Субъект описывает ресурс или идентификатор ресурса для описания[5]. Ресурсом может быть что угодно: документ, человек, физический объект или даже абстрактное понятие[6]. Субъект и объект, если они являются ресурсами, идентифицируются через URI или анонимные узлы.
- Объект отражает значение свойства: это может быть ресурс или литерал (например, строка, число, дата и т. п.)[7]. Существуют два типа литералов: обычные (нетипизированные строки) и типизированные, когда пара строка + URI определяет тип данных[8]. Для указания типа литерала используется URI, например, чтобы обозначить целое число — xsd: integer или http://www.w3.org/2001/XMLSchema#integer[9].
Предикат триплета RDF
URI, префиксы и RDF-вокабуляры
В RDF все ресурсы идентифицируются уникально и однозначно посредством URI (универсальных идентификаторов ресурсов).
Рассмотрим примеры триплетов — «Мона Лиза имеет создателя Леонардо да Винчи» и «Мона Лиза находится в Музее Лувра» — где ресурсы обозначаются URI из реестра Wikidata.
| Субъект | Предикат | Объект |
|---|---|---|
| Мона Лиза | имеет создателя | Леонардо да Винчи |
| < | < | < |
| Мона Лиза | находится в | Музей Лувра |
| < | < | < |
Префиксы и RDF-вокабуляры
URI для сокращения обычно оформляются через префиксы, определяющие пространство имён и указывающие на набор терминов одной RDF-онтологии или словаря (например, OWL, RDFS). RDF-вокабуляры задают URI для идентификации триплетных свойств и классов ресурсов.
В Wikidata префикс <wd:> соотнесён с < (для идентификации ресурса-объекта или субъекта), а <wdt:> — с < (для предикатов).
Упрощённое обозначение URI для рассмотренных выше триплетов:
| Субъект | Предикат | Объект |
|---|---|---|
| Мона Лиза | имеет создателя | Леонардо да Винчи |
| <wd:Q12418> | <wdt:P170> | <wd:Q762> |
| Мона Лиза | находится в | Музей Лувра |
| <wd:Q12418> | <wdt:P276> | <wd:Q19675> |
Два триплета с общим субъектом («Мона Лиза», <wd:Q12418>) образуют граф.
Триплеты в виде графа
В RDF триплеты традиционно изображаются в виде графа:
- Эллипс (овал) символизирует ресурс (внутри — URI ресурса).
- Ориентированная дуга (стрелка) отображает предикат (его название указано на дуге).
- Прямоугольник соответствует значению (литералу)[13].
Соответственно, единичный RDF-триплет — это направленный граф[14].
На рисунке 1 представлен граф RDF с заявлением: «Ресурс http://example.org/123 имеет заголовок „Learning Biology“ на английском». Данный граф опирается на онтологию Dublin Core и рекомендации соответствующей инициативы[15].
На рисунке 2 показан граф, состоящий из двух триплетов с единым субъектом «Мона Лиза» (<wd:Q12418>).
Рисунок 3 — это граф трёх триплетов, где объект одного из них — ресурс, а двух других — литералы. Все три триплета соединены через узел On the Origin of Species (<wd:Q20124>), который выступает их субъектом.
| Субъект | Предикат | Объект |
|---|---|---|
| О происхождении видов | имеет автора | Чарльз Дарвин |
| <wd:Q20124> | <wdt:P50> | <wd:Q1035> |
| О происхождении видов | имеет заголовок | On the Origin of Species by Means of Natural Selection, … (англ.) |
| <wd:Q20124> | <wdt:P1476> | «On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life» |
| О происхождении видов | имеет дату публикации | 24 ноября 1859 |
| <wd:Q20124> | <wdt:P577> | «1859-11-24» |
Таким образом, любой ресурс может выступать субъектом, предикатом или объектом для множества триплетов. Совокупность связанных триплетов формирует граф.
Несколько графов могут быть объединены посредством общих URI, позволяя связывать различные наборы данных. В ноябре 2007 года Тим Бернерс-Ли ввёл термин «Гигантский глобальный граф» для характеристики совокупности всех RDF-триплетов в глобальной сети[16].
Синтаксисы сериализации триплетов
Граф — это абстрактная модель, которой для представления на машине необходим конкретный синтаксис (сериализация, формат, язык).
Существуют разные синтаксисы сериализации RDF-графов: RDF/XML, N-Triples, Turtle и N3, JSON-LD, RDFa. Все они являются текстовыми, различаясь удобочитаемостью.
Первая группа синтаксисов: N3, N-Triples и Turtle
Язык Turtle (Terse RDF Triple Language), стандартизованный W3C для RDF 1.1[17], наиболее понятен для человека. В этих синтаксисах триплет представлен как строка, заканчивающаяся точкой, а субъект, предикат и объект разделяются пробелами — каждое из значений может быть URI либо литералом.
- URI заключаются в <angle brackets>;
- Литералы — в двойные кавычки (с опциональным суффиксом ^^ и явным URI типа либо @ и языковым тегом);
- Повторяющийся субъект можно не дублировать — используется точка с запятой (;);
- Если одинаковы субъект и предикат — объекты разделяются запятой;
- URI сокращаются с помощью префиксов (namespace);
- Когда in-переменные состоят только из префикса и идентификатора — угловые скобки можно опустить.
Файл на Turtle обычно содержит две части:
- объявление префиксов и пространств имён (@prefix),
- последовательно — триплеты данных.
Пример Turtle-триплетов по объекту < («О происхождении видов»), где префиксы указываются сначала, а дальше — RDF-триплеты. Триплеты 1, 6 и 7 соответствуют ранее приведённым табличным примерам.
@prefix wd: < .
@prefix wdt: < .
wd:Q20124 wdt:P50 wd:Q1035 ;
wdtn:P214 <http://viaf.org/viaf/313683363> ;
wdtn:P227 <https://d-nb.info/gnd/4303201-1> ;
wdtn:P244 <https://id.loc.gov/authorities/names/n81105854> ;
wdtn:P268 <http://data.bnf.fr/ark:/12148/cb122870840#about> ;
wdt:P577 "1859-11-24T00:00:00Z"^^xsd:dateTime ;
wdt:P1476 "On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life"@en ;
wdtn:P269 <http://www.idref.fr/031705685/id> ;
wdtn:P5331 <http://worldcat.org/entity/work/id/3901191602> .
Вторая наиболее употребимая сериализация — RDF/XML
Документ RDF/XML обязательно начинается с корневого элемента <rdf:RDF>, объявляющего его как RDF-документ XML[18]. Через псевдо-атрибуты xmlns: объявляются пространства имён для RDF, предикатов, объектов.
Главная XML-метка — <rdf:Description>: она отображает набор триплетов с URI ресурса в атрибуте rdf: about.
- Если объект триплета — URI, он указывается через rdf: resource,
- Если объект — литерал, его пишут между открывающей и закрывающей меткой предиката, тип задаётся атрибутом rdf: datatype[19].
Пример RDF/XML для субъекта <
<rdf:RDF
xmlns:rdf="..."
xmlns:wd="
xmlns:wdt="
>
<rdf:Description rdf:about="
<wdt:P50 rdf:resource="
<wdtn:P214 rdf:resource="http://viaf.org/viaf/313683363"/>
<wdtn:P227 rdf:resource="https://d-nb.info/gnd/4303201-1"/>
<wdtn:P244 rdf:resource="https://id.loc.gov/authorities/names/n81105854"/>
<wdtn:P268 rdf:resource="http://data.bnf.fr/ark:/12148/cb122870840#about"/>
<wdt:P577 rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">1859-11-24T00:00:00Z</wdt:P577>
<wdt:P1476 xml:lang="en">On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life</wdt:P1476>
<wdtn:P269 rdf:resource="http://www.idref.fr/031705685/id"/>
<wdtn:P5331 rdf:resource="http://worldcat.org/entity/work/id/3901191602"/>
</rdf:Description>
</rdf:RDF>
Триплеты RDF и библиотечные данные
Задача (библиографического перехода) — представить каталожные данные библиотек в контексте Linked Data. Для этого библиотеки:
- присваивают своим данным однозначные URI;
- описывают данные по модели RDF (то есть триплетами).
Каталожные сущности в триплетах RDF соответствуют категориям IFLA LRM (ресурс, произведение, выражение, проявление, экземпляр, агент, человек, группа, место, временной интервал, номена)[21].
Это создаёт условия интероперабельности библиографических каталогов в глобальном информационном графе на основе общих референциальных наборов.
В 2010 году W3C создал рабочую группу Incubator Group[22] по библиотечным данным для анализа и стандартизации подходов, выделяя три типа референциальных наборов:
- RDF-онтологии/словари описания метаданных (например, Dublin Core, SKOS, FOAF, RDA, FRBR)
- контролируемые словари, реестры авторитетных данных (Rameau, LCSH, VIAF, Дьюи)
- референтные наборы данных (Wikidata, DBpedia, data.bnf.fr, data.idref.fr, Europeana)
RDF-онтологии для библиотечных данных
- SKOS (Simple Knowledge Organization System) — для описания тезаурусов и контролируемых списков. Используется для представления Rameau или LCSH, описания иерархии, ссылок и примечаний.
- FOAF — описание людей и организаций,
- Dublin Core — описание документов,
- RDA и IFLA LRM — правила каталогизации и описание структур.
SKOS для описания тезаурусов и терминологических словарей
SKOS обеспечивает общую модель описания тезаурусов, классификаций, связей между референциальными наборами. RDF-триплеты соединяют термины Rameau с внешними базами (Wikidata, LCSH и др.), описывают иерархии и примечания через skos: closeMatch, skos: exactMatch, skos: narrower и skos: scopeNote.
Данные реестра RAMEAU в формате SKOS доступны на data.bnf.fr с 2012 года[23]. Пример фрагмента:
| Субъект | Предикат | Объект |
|---|---|---|
| <https://data.bnf.fr/ark:/12148/cb11931827z> | skos: closeMatch | <http://d-nb.info/gnd/4125698-0> |
| <https://data.bnf.fr/ark:/12148/cb11931827z> | skos: closeMatch | <http://id.loc.gov/authorities/subjects/sh85034755> |
Иерархия (skos: narrower) и примечания (skos: scopeNote):
| Субъект | Предикат | Объект |
|---|---|---|
| <https://data.bnf.fr/ark:/12148/cb11931827z> | skos: narrower | <https://data.bnf.fr/ark:/12148/cb11965560j> |
| <https://data.bnf.fr/ark:/12148/cb11931827z> | skos: scopeNote | «Под этой записью приводятся документы об общности ценностей, способов быта и мышления, приобретаемых, усваиваемых и транслируемых, определяющих группу/общество относительно другой…» |
SKOS — общий стандарт, однако для специального описания (разделы, составные заголовки) могут использоваться иные онтологии: MADS/RDF, FRAD, FRSAD.
Авторитетные реестры и интероперабельность
Для связывания национальных и международных реестров существуют модели «pivot» и «пары»[24][25].
В VIAF реализована «hub and spoke» модель: централизованный идентификатор связывает данные реестров (hub) и различные авторитетные записи (spokes)[26].
VIAF и другие международные репозитории используют онтологии типа schema.org для сквозных связей (schema: sameAs):
| Субъект | Предикат | Объект |
|---|---|---|
| <http://viaf.org/viaf/9847974> | schema: sameAs | <http://isni.org/isni/0000000121200982> |
В национальных базах часто применяется эквивалент на основе OWL (owl: sameAs):
| Субъект | Предикат | Объект |
|---|---|---|
| <https://data.bnf.fr/ark:/12148/cb11907966z#about> | owl: sameAs | <http://viaf.org/viaf/9847974> |
| Субъект | Предикат | Объект |
|---|---|---|
| <http://www.idref.fr/026927608/id> | owl: sameAs | <http://viaf.org/viaf/9847974> |
Профиль приложения онтологии RDA-FR
С 2024 года для французского стандарта каталогизации RDA-FR опубликован профиль приложения, определяющий правила производства и проверки RDF-данных согласно онтологии RDA-FR[27].
Data.bnf.fr
База создана Национальной библиотекой Франции (BnF) в 2011 году для представления своих данных в RDF, что повышает их видимость в Интернете[28]. Вся ключевая информация связана RDF-триплетами, идентификаторы — в формате ARK. Часть данных выравнена по внешним источникам: VIAF, IdRef, Wikidata. Модель визуализирована на официальной схеме[29].
Пример триплета:
| Субъект | Предикат | Объект |
|---|---|---|
| <https://data.bnf.fr/ark:/12148/cb122870840#about> | dcterms: creator | <https://data.bnf.fr/ark:/12148/cb11898689q#about> |
Sudoc в RDF
С 2010 года авторитетные записи IdRef доступны в формате RDF[30].
Пример извлечённых триплетов IdRef (http://www.idref.fr/026927608.rdf):
| Субъект | Предикат | Объект |
|---|---|---|
| <http://www.idref.fr/026927608/id> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | <http://xmlns.com/foaf/0.1/Person> |
| <http://www.idref.fr/026927608/id> | <http://xmlns.com/foaf/0.1/name> | «Hugo, Victor» |
Библиографические записи Sudoc с 2011 года доступны также в формате RDF[31]. Пример:
| Субъект | Предикат | Объект |
|---|---|---|
| <http://www.sudoc.fr/139579370/id> | <http://purl.org/dc/elements/1.1/title> | «Le roman de la rose Tome I / Guillaume de Lorris et Jean de Meun; publié par Félix Lecoy» |
| <http://www.sudoc.fr/139579370/id> | <http://www.loc.gov/loc.terms/relators/aut> | <http://www.idref.fr/02665976X/id> |
Ещё один триплет (автор):
| Субъект | Предикат | Объект |
|---|---|---|
| <http://www.idref.fr/02665976X/id> | <http://xmlns.com/foaf/0.1/name> | «Jean de Meung (124.?-1304?)» |
Triplestore data.idref.fr
Триплет представляет собой минимальную атомарную единицу в структуре RDF, которая хранится в специализированных триплесторах.
С 2019 года в рамках ABES действует сервис data.idref.fr, обеспечивающий доступ к RDF-данным IdRef и связанных с ними библиографических ссылок Sudoc в виде триплетов. В 2020 году объём триплетов достигал 165 млн, охватывая многочисленные типы авторитетных записей и библиографические данные[32].
Триплеты формируются на уровне библиографических URIs Sudoc (субъект), связанных через ссылки marcrel с идентификаторами IdRef (объект). Пример[33]:
| Субъект | Прeдикат | Объект |
|---|---|---|
| <https://www.sudoc.fr/237242338/id > | marcrel: aut | <http://www.idref.fr/026812304/id> |
| <https://www.sudoc.fr/237242338/id > | dc: date | «1859» |
| <https://www.sudoc.fr/237242338/id > | dc: title | «On the Origin of species by means of natural selection, or the preservation of favoured races in the struggle for life / by Charles Darwin,…» |
Преобразование (mapping)
Существуют формализованные правила (mapping) преобразования MARC-каталогов в RDF — табличные соответствия между MARC-полями и RDF-свойствами. Соответствия для Sudoc отражены в таблицах унификации Unimarc-RDF.