在RDF中指定架构时,如何指定集合的类型?例如,我有一个名为hobbies
的财产。可以有多个hobbies
。还要求列表中的每个成员必须是类Hobby
的实例。虽然我可以指定类似的东西 -
myschema:hobbies
a rdf:Property;
rdfs:domain myschema:Student;
rdfs:range rdf:bag
.
如何指定此集合中的每个成员必须是myschema:Hobby
类型的成员?
提前致谢!
答案 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中。为什么您需要hobbies
与rdf:Bag
相关联?除了非常特殊和罕见的情况之外,简单地拥有一个与成员直接相关的属性几乎总是更好:
myschema:hobby
a rdf:Property;
rdfs:range myschema:Hobby .
然后你仍然可以把事情与这样的一系列爱好联系起来:
_:something myschema:hobby :hobby1, :hobby2, :hobby3 .
事实上,您所询问的问题可能只是您选择错误设计时遇到的新问题。你想要达到什么目标?