Схема RDF - как создавать экземпляры?
Я хочу, чтобы в моем файле RDFS были экземпляры классов, но я не знаю, как это сделать.
Мои занятия:
<rdfs:Class rdf:ID="Turns">
<rdfs:range rdf:resource="Literal"/>
</rdfs:Class>
Моя собственность:
<rdf:Property rdf:ID="has_Turns">
<rdfs:domain rdf:resource="#Device"/>
<rdfs:range rdf:resource="#Turns_Frequency"/>
</rdf:Property>
Я хочу получить экземпляр класса "Turns" со свойством has_Turns. Я попробовал что-то вроде этого:
<Turns_Instance rdf:ID="Turns">…</Turns_Instance>
… Но требуется, чтобы основным классом был "Turns_Instance", наоборот, он не работает. Более того, я не знаю, где поставить имущество. Все экземпляры должны быть в файле RDFS.
1 ответ
Экземпляр может быть определен в определении класса как:
<ex:Turns rdf:about="http://example.org/ex1#Turns_Instance">
<ex:hasTurns>
<ex:Turns_Frequency rdf:about="http://example.org/ex1#Turns_Frequency_Instance"/>
</ex:hasTurns>
</ex:Turns>
Также обратите внимание, что определения диапазона принадлежат определениям свойств, а не определениям классов. Таким образом, настоящая ошибка может заключаться в использовании сериализации текста RDF/XML. Любой редактор RDF должен иметь возможность использовать и генерировать Turtle, который удобочитаем для человека. В этом случае определение класса и экземпляра выглядит следующим образом:
@prefix ex: <http://example.org/ex1#> .
ex:Turns
rdf:type owl:Class .
ex:Turns_Instance
rdf:type ex:Turns ;
ex:hasTurns ex:Turns_Frequency_instance .
ex:Device
rdf:type owl:Class .
ex:Turns_Frequency
rdf:type owl:Class .
ex:hasTurns
rdf:type owl:ObjectProperty ;
rdfs:domain ex:Turns ;
rdfs:range ex:Turns_Frequency .
В дополнение к возможности легко "видеть" тройки, RDF как представление объекта становится намного более четким, что является огромным преимуществом для понимания того, как работает RDF.