RDF Schema - 如何创建实例?

RDF Schema - how to create instances?

我想在我的 RDFS 文件中包含 classes 的实例,但我不知道该怎么做。

我的class:

<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>

我想获得 class "Turns" 的实例,其中包含 "has_Turns" 属性。 我试过这样的事情:

<Turns_Instance rdf:ID="Turns">…</Turns_Instance>

…但它需要主 class 是 "Turns_Instance",反之则不起作用。而且我不知道把属性放在哪里。所有实例都应在 RDFS 文件中。

实例可以在 class 定义中定义为:

<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>

另请注意,范围定义属于 属性 定义,而不是 class 定义。所以真正的错误可能是使用 RDF/XML 文本序列化。任何 RDF 编辑器都应该能够使用和生成人类可读的 Turtle。在这种情况下,class 和实例定义如下所示:

@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 .

除了能够轻松 "see" 三元组之外,RDF 作为对象表示形式变得更加清晰,这对于理解 RDF 的工作原理是一个巨大的优势。