这是关于OWL(Web Ontology Language)的问题。由于我是初学者,因此可能存在一些术语错误。
我想将绘画活动表示为绘画类。
现在我想将绘画的目标表现为绘画的属性。它将类似于:一个属性绘画。目标的范围是更改类的一个实例(让我们说, Change1 ),涉及属性 Change1.What = TargetSurface.SurfaceColor 和 Change1.ToWhat = TargetColor 。
我的问题是目标指的是绘画的属性(绘画是目标的持有者;引用的属性是 Painting.TargetSurface.SurfaceColor 和 Painting.TargetColor )。我们如何在OWL中代表这一点?一个丑陋的解决方案是将 Change1 的属性表示为xsd:string; Change1.What =" parent.TargetSurface.SurfaceColor"和 Change1.ToWhat =" parent.TargetColor"。有更好的解决方案吗?
请注意,绘图的其他属性中将引用 Painting.TargetSurface 和 Painting.TargetColor 。因此,制作直接引用 Painting.TargetSurface.SurfaceColor 和 Painting.TargetColor 的实例 Change2 不是一个好主意。
非常感谢!
答案 0 :(得分:0)
你可以在OWL2中使用“punning”来做到这一点。 Punning利用了属性也是对象的事实。我们在建模属性属性时做了类似的事情。我们可以在指定域属性时使用三元组的主题位置中的属性,例如, TargetSurface rdfs:range Surface
。您可以类似地在rdf:Property
属性的rdfs:range
断言的对象位置指定What
。一个示例断言可以是Change1 What TargetColor
,其中Change1
是您对绘画的个别更改,What
是属性,TargetColor
是更改的属性(在此处用作三联的对象。
答案 1 :(得分:0)
从@Jess的回答中,我想到了一个解决方案。
我们准备两个普通班。 Holder
类(属性Context
,HeldVia
)是指将类Context
保存为属性HeldVia
的类。 Ref
类(属性A
,B
)指的是A
作为属性B
持有的类(即A.B
操作者)。
然后我们可以如下表示Painting.Objective
。信息性表示将是:
Painting.Objective = Change1
Change1.What = Ref(Ref(Holder(Change1,Objective),TargetSurface),SurfaceColor)
Change1.ToWhat = Ref(Holder(Change1,Objective),TargetColor)
请注意Holder(Change1,Objective)
引用Painting
,因为Painting
将Change1
作为Objective
属性。
更正式地说,上述内容将表示为:
Painting.Objective = Change1
Holder1.Context = Change1
Holder1.HeldVia = Objective
Ref1.A = Holder1
Ref1.B = TargetSurface
Ref2.A = Ref1
Ref2.B = SurfaceColor
Ref3.A = Holder1
Ref3.B = TargetColor
Change1.What = Ref2
Change1.ToWhat = Ref3