是否可以在RDF中指定Type to collection属性

时间:2017-01-17 16:35:01

标签: rdf owl

在RDF中指定架构时,如何指定集合的​​类型?例如,我有一个名为hobbies的财产。可以有多个hobbies。还要求列表中的每个成员必须是类Hobby的实例。虽然我可以指定类似的东西 -

myschema:hobbies 
  a            rdf:Property;
  rdfs:domain  myschema:Student;
  rdfs:range   rdf:bag 
  .

如何指定此集合中的每个成员必须是myschema:Hobby类型的成员?

提前致谢!

1 个答案:

答案 0 :(得分:5)

  

如何指定此集合中的每个成员必须是myschema类型:Hobby?

仅使用RDF / RDFS,您就无法做到。例如,您可以使用OWL执行此操作:

myschema:hobbies
  a  rdf:Property;
  rdfs:range  rdf:Bag, [
     a  owl:Restriction;
     owl:onProperty  rdfs:member;
     owl:allValuesFrom  myschema:Hobby
  ] .

然而,这不在OWL DL中。为什么您需要hobbiesrdf:Bag相关联?除了非常特殊和罕见的情况之外,简单地拥有一个与成员直接相关的属性几乎总是更好:

myschema:hobby
  a  rdf:Property;
  rdfs:range  myschema:Hobby .

然后你仍然可以把事情与这样的一系列爱好联系起来:

_:something  myschema:hobby  :hobby1, :hobby2, :hobby3 .

事实上,您所询问的问题可能只是您选择错误设计时遇到的新问题。你想要达到什么目标?