RDF Schema ( Resource Description Framework Schema , сокращенно RDFS , RDF(S) , RDF-S или RDF/S ) — это набор классов с определенными свойствами, использующий расширяемую модель представления знаний RDF , предоставляющую базовые элементы для описания онтологий . Она использует различные формы словарей RDF, предназначенных для структурирования ресурсов RDF . RDF и RDFS можно сохранять в хранилище триплетов , а затем извлекать из них некоторые знания с помощью языка запросов, например SPARQL .
Первая версия [1] [4] была опубликована Консорциумом Всемирной паутины (W3C) в апреле 1998 года, а окончательная рекомендация W3C была выпущена в феврале 2014 года. [3] Многие компоненты RDFS включены в более выразительный язык веб-онтологии (OWL).
Конструкции RDFS — это классы RDFS, связанные с ними свойства и служебные свойства, построенные на словаре RDF . [5] [6] [7]
rdfs:Resource
rdfs:Class
Типичный пример rdfs:Class находится foaf:Person
в словаре Friend of a Friend ( FOAF ). [8] Экземпляр foaf:Person
— это ресурс, который связан с классом foaf:Person
с помощью rdf:type
свойства, например, в следующем формальном выражении предложения на естественном языке : «Джон — человек».
ex:Джон rdf:тип foaf:Персона
Определение rdfs:Class
рекурсивно: rdfs:Class
это класс классов, и поэтому он является экземпляром самого себя.
rdfs:Класс rdf:тип rdfs:Класс
Другие классы, описанные спецификациями RDF и RDFS:
rdfs:Literal
rdfs:Datatype
rdfs:Datatype
является как экземпляром, так и подклассом rdfs:Class
. Каждый экземпляр rdfs:Datatype
является подклассом rdfs:Literal
.rdf:XMLLiteral
rdf:XMLLiteral
является экземпляром rdfs:Datatype
(и, следовательно, подклассом rdfs:Literal
).rdf:Property
Свойства являются экземплярами класса rdf:Property
и описывают отношение между ресурсами субъекта и ресурсами объекта. При использовании в качестве такового свойство является предикатом (см. также RDF: овеществление ).
rdfs:domain
rdf:Property
класс субъекта в триплете , предикатом которого является это свойство.rdfs:range
rdf:Property
класс или тип данных объекта в тройке, предикатом которой является это свойство.Например, следующие объявления используются для выражения того, что свойство ex:employer
связывает субъект, который имеет тип foaf:Person
, с объектом, который имеет тип foaf:Organization
:
ex:работодатель rdfs:домен foaf:Персонаex:работодатель rdfs:диапазон foaf:Организация
Учитывая предыдущие два заявления, из тройки:
ex:Джон ex:работодатель ex:КомпанияX
можно сделать вывод (соответственно, следует), что ex:John
это foaf:Person
, и ex:CompanyX
это foaf:Organization
.
rdf:type
rdfs:subClassOf
Например, в следующем тексте утверждается, что «Каждый человек является агентом»:
foaf:Персона rdfs:подкласс foaf:Агент
Иерархии классов поддерживают наследование домена и диапазона свойств (см. определения в следующем разделе) от класса к его подклассам.
rdfs:subPropertyOf
rdf:Property
этого используется для утверждения, что все ресурсы, связанные одним свойством, связаны также и другим.rdfs:label
rdf:Property
этого может использоваться для предоставления удобочитаемой версии имени ресурса.rdfs:comment
rdf:Property
этого может быть использован для предоставления понятного человеку описания ресурса.rdfs:seeAlso
rdf:Property
используется для указания ресурса, который может предоставить дополнительную информацию о ресурсе-предмете.rdfs:isDefinedBy
rdf:Property
который используется для указания ресурса, определяющего ресурс субъекта. Это свойство может использоваться для указания словаря RDF, в котором описан ресурс.Режим вывода определяет, являются ли тройки в графе логически противоречивыми или нет. Вывод RDFS [11] не очень ограничителен, т. е. он не содержит большого количества правил (по сравнению, например, с OWL ), ограничивающих, какие типы утверждений допустимы в графе. С другой стороны, он также не очень выразителен, что означает, что семантика, которая может быть представлена машинно-интерпретируемым способом с помощью графа, весьма ограничена.
Ниже в простом примере возможностей и ограничений вывода RDFS мы начнем с графа, содержащего следующие явные тройки:
foo:SomeGiraffe rdf:type bar:Животное.foo:SomeElephant rdf:type bar:Слон.foo:SomeZoo rdf:type bar:Zoo.bar:livesInZoo rdfs:domain bar:Animal.bar:livesInZoo rdfs:range bar:Zoo.foo:SomeElephant bar:livesInZoo foo:SomeZoo.
Без включения вывода с выводом RDFS имеющиеся у нас данные не говорят нам, является ли foo:SomeElephant
. bar:Animal
Когда мы делаем вывод на основе RDFS, мы получим следующую дополнительную тройку:
foo:SomeElephant rdf:type bar:Животное.
Утверждение rdfs:domain
гласит, что любой субъект в тройках, где bar:livesInZoo
есть предикат, имеет тип bar:Animal
. То, что RDFS-вывод не может нам сказать, так это связь между bar:Animal
и bar:Elephant
. Благодаря выводу мы теперь знаем, что foo:SomeElephant
есть оба bar:Animal
, и bar:Elephant
поэтому эти классы пересекаются, но нет никакой информации, чтобы сделать вывод, пересекаются ли они просто, равны или имеют связь подкласса.
В RDFS 1.1 операторы domain и range не несут никакого формального смысла, и их интерпретация остается на усмотрение разработчика. С другой стороны, в рабочем проекте 1.2 они используются как правила вывода для вывода типов индивидов. Тем не менее, в обеих версиях очень четко указано, что ожидаемая функциональность range — «значения свойства являются экземплярами одного или нескольких классов», а domain — «любой ресурс, имеющий заданное свойство, является экземпляром одного или нескольких классов».
Приведенный выше пример продемонстрировал некоторые ограничения и возможности вывода RDFS, но не показал пример логической несогласованности (которая в непрофессиональных терминах может быть интерпретирована как «ошибка проверки»), означающая, что утверждения, которые делают триплеты, находятся в конфликте и пытаются выразить противоречивые состояния дел. Примером этого в RDFS было бы наличие конфликтующих типов данных для объектов (например, объявление ресурса как типа xsd:integer
и его также объявление как типа xsd:boolean
при включенном выводе).
Словари RDF, представленные в RDFS, включают: [10]
madsrdf:prominentFamilyMember
. [16]{{cite web}}
: Отсутствует или пусто |title=
( помощь ){{cite web}}
: CS1 maint: неподходящий URL ( ссылка )