Объекты триплетов в форме ресурсов
Пусть требуется задать следующий триплет:
<http://www.xulplanet.com/rdf/people/Sandra> ® sibling ®
<http://www.xulplanet.com/rdf/people/Kevin>
Для утверждений такого типа нельзя использовать атрибуты, поскольку они могут использоваться только для значений литералов. Однако можно использовать модифицированную форму записи тегов – вместо помещения значения внутрь открывающего и закрывающего тегов предиката можно воспользоваться атрибутом resource.
Lt;rdf:Description
rdf:about="http://www.xulplanet.com/rdf/people/Sandra"
people:name="Sandra">
Lt;people:sibling
rdf:resource="http://www.xulplanet.com/rdf/people/Kevin"/>
</rdf:Description>
Здесь атрибут resource использован для указания того, что ресурс Sandra имеет свойство sibling(«родной брат»), значением которого является другой ресурс <http://www.xulplanet.com/rdf/people/Kevin>. Обратим внимание, что этот атрибут находится в пространстве имен RDF. Он используется для определения целевых ресурсов, тогда как текст, заключенный в тэг используется для определения литералов. Можно заметить схожесть этой формы записи с формой записи атрибута about. Атрибут about используется для субъектов – левой части триплетов, а атрибут resource используется для объектов (целей) – правых частей триплетов в случае их представления в формате URI.
В предыдущем примере имя Сандры было определено с помощью атрибута name. Это обычная практика для триплетов, субъект которых содержится в этом же файле. Если нам потребуется добавить какие-то отношения для Кевина, нам нужно будет воспользоваться еще одним, отдельным тегом Description:
Lt;rdf:Description
rdf:about="http://www.xulplanet.com/rdf/people/Sandra"
people:name="Sandra">
Lt;people:sibling
rdf:resource="http://www.xulplanet.com/rdf/people/Kevin"/>
</rdf:Description>
Lt;rdf:Description
rdf:about="http://www.xulplanet.com/rdf/people/Kevin"
people:name="Kevin"/>
Второй тег Description используется для объявления второго триплета с другим ресурсом субъекта, на который указывает свой атрибут about. Существует другая форма записи, которой можно воспользоваться, например, для описания отношения между двумя людьми в одном файле. Вместо записи второго тега Description отдельно, поместим его внутрь первого тега:
<rdf:Description
rdf:about="http://www.xulplanet.com/rdf/people/Sandra"
people:name="Sandra">
<people:sibling>
Lt;rdf:Description
rdf:about="http://www.xulplanet.com/rdf/people/Kevin"
people:name="Kevin"/>
</people:sibling>
</rdf:Description>
В результате будет определен тот же набор триплетов, но вместо указания свойства sibling на ресурс и описания его отдельно, в данном примере он реализован в виде отдельного тэга. При этом атрибут resource не используется, так как ресурс указан внутри атрибута about.
Хотя уровень вложенности информации при таком способе записи не ограничен, иногда может потребоваться описывать ресурсы раздельно. Поскольку порядок записи отношений не имеет значений, можно записывать их в любой удобной для имеющихся данных форме. Для рассматриваемого примера для улучшения читаемости можно описать Кевина отдельно, особенно если требуется записать много других отношений, описывающих его.
Дата добавления: 2015-12-08; просмотров: 565;