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