OWL:如何参考物业持有人的财产?

时间:2016-09-08 16:26:50

标签: owl

这是关于OWL(Web Ontology Language)的问题。由于我是初学者,因此可能存在一些术语错误。

我想将绘画活动表示为绘画类。

  • 绘画的属性为 TargetSurface ,其范围为 Surface 类:
    • 表面具有 SurfaceColor (范围:颜色)等属性
  • 绘画的属性为 TargetColor ,其范围为颜色类。

现在我想将绘画的目标表现为绘画的属性。它将类似于:一个属性绘画。目标的范围是更改类的一个实例(让我们说, 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 不是一个好主意。

非常感谢!

2 个答案:

答案 0 :(得分:0)

你可以在OWL2中使用“punning”来做到这一点。 Punning利用了属性也是对象的事实。我们在建模属性属性时做了类似的事情。我们可以在指定域属性时使用三元组的主题位置中的属性,例如, TargetSurface rdfs:range Surface。您可以类似地在rdf:Property属性的rdfs:range断言的对象位置指定What。一个示例断言可以是Change1 What TargetColor,其中Change1是您对绘画的个别更改,What是属性,TargetColor是更改的属性(在此处用作三联的对象。

答案 1 :(得分:0)

从@Jess的回答中,我想到了一个解决方案。

我们准备两个普通班。 Holder类(属性ContextHeldVia)是指将类Context保存为属性HeldVia的类。 Ref类(属性AB)指的是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,因为PaintingChange1作为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