Схема 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.

Другие вопросы по тегам