我实际上是在尝试创建一个RDFS模型,并想知道是否有办法声明一个类有一个实例。
设计的方案是针对某种图形而我想将单个节点设计为“根”。我应该使用子类还是属性?我知道OWL提供了更多的语义词汇,但我打算保持“基本”。
答案 0 :(得分:4)
不,你不能在RDFS中这样做。我也不确定这是否有用。只需定义您的类并将单个资源声明为将该类作为其类型。声称没有其他资源具有该类型的好处是什么?
答案 1 :(得分:3)
我的印象是,阅读您的“用例”,您更喜欢功能属性:hasRoot
,这样一个东西只能有一个根。正如cygri所说,这不能在纯RDFS中完成,但OWL的简单片段就足够了:
:hasRoot a owl:FunctionalProperty .
然后,对于给定的实体x
,只能存在单个实体y
,以便关系x :hasRoot y
成立。然后,如果您有以下数据:
:x :hasRoot :y .
:x :hasRoot :z .
你可以得出结论:
:y owl:sameAs :z .
然而,在大多数情况下,不需要这种推理,只要您的应用程序确保定义了单个根,cygri建议的内容就足够简单了。