Они вообще не связаны.У них просто есть общее имя, потому что они оба имеют отношение к ресурсам что-то .
Термин "ресурс" является центральным в модели данных RDF (это Ресурс Описание Framework, в конце концов).Ресурс в RDF - это, вообще говоря, все, что может быть идентифицировано с помощью URI (есть куча технических деталей относительно того, как такие вещи, как пустые узлы и литералы подпадают под это определение, но для простоты здесь мы проигнорируем это).
rdf:resource
- это просто элемент синтаксиса в синтаксисе RDF / XML, а именно атрибут для идентификации ресурса, который является значением свойства.Например, вот простая модель RDF (1 тройка) в RDF / XML:
<rdf:Description rdf:about="http://example.org/Bob">
<foaf:address rdf:resource="http://example.org/address1"/>
</rdf:Description>
Здесь http://example.org/Bob
- это ресурс субъекта, а foaf:address
- это свойство этого субъекта (используется длясвязать предметный ресурс со значением).Значение свойства в этом случае также является ресурсом (http://example.org/address1
), поэтому в синтаксисе RDF / XML мы используем атрибут rdf:resource
, чтобы связать его.Если бы вы написали одну и ту же модель RDF в другом синтаксисе (например, Turtle), вы бы вообще не увидели rdf:resource
:
<http://example.org/Bob> foaf:address <http://example.org/address1> .
В RDF-схеме класс rdfs:Resource
это класс всех ресурсов.Это концепция, а не синтаксический механизм.Поскольку в RDF практически все является ресурсом, это класс вещей «верхнего уровня».Все вещи являются ресурсами, поэтому, если вы введете новый класс, например «Person», он будет (автоматически) подклассом rdfs:Resource
.
<http://example.org/Bob> rdf:type <http://example.org/Person> .
<http://example.org/Bob> rdf:type rdfs:Resource .
Обратите внимание, что вторая тройка является логическим следствием первой тройки.Поэтому на практике тот факт, что bob является ресурсом, почти никогда явно не записывается в моделях RDF - при необходимости это можно сделать вывод.