1

我正在研究一个本体来表示星际争霸中的信息,但我无法确定以下通用类公理是否可以在 DL 中表示。如果没有,我想知道表达它所需的最小逻辑集(FOL、二阶等)。

有了这个公理,我想表示一个玩家控制一个区域,如果(1)该区域存在一个单位,并且(2)该区域中的每个单位都归玩家所有。

我有3个角色:

A. controlsRegion(p,r) 其中 p 是玩家,r 是区域

B. isOwnedBy(u,p) 其中 u 是一个单位,p 是一个玩家

C. isInRegion(u,r) 其中 u 是一个单位,r 是一个区域

controlsRegion(p,r) \equiv \exists u.isInRegion(u,r) \sqcap 
                           \forall u.isInRegion(u,r) \circ isOwnedBy(u,p) 

没有足够的代表来发布图片,请参见此处的公式:http: //postimg.org/image/wve0h9m1z/

u、p 和 r 是变量(这就是为什么我不相信这可以在 DL 中表示)

另外,我不确定我使用的语法是否正确,请告知如何正确表示它。

谢谢,任何反馈表示赞赏!

4

2 回答 2

1

根据您代表游戏其余部分的方式,我认为您实际上可以在 OWL DL 中代表这一点,至少在逐个玩家的基础上。例如,你可以这样说

=controlsRegion -1 .player ⊑ ∀(inRegion -1 •ownedBy).{player}

在一阶逻辑中,这将是:

∀ r.[controlsRegion(player,r) ⇔ ∀ p' [(inRegion -1 •ownedBy)(r,p') ⇒ player = p']]

这表示玩家控制的区域是所有区域都由玩家一拥有的区域的子集当然,这意味着您需要能够推断出一个区域中的所有东西都只能player拥有。这可能是 OWL 中的一个挑战,它构成了开放世界假设。可能需要做一些工作才能证明一个地区不可能有任何东西可以归他人所有。这也一次只给你一个玩家的表达。对于每个玩家,你仍然需要一个这样的公理。

于 2013-11-26T05:47:53.270 回答
1

通常,您可能无法使用 OWL DL 对此进行建模,但您可以对 P 控制的区域进行建模。

:RegionControlledByP  a  owl:Class;
    rdfs:subClassOf  [
        a  owl:Restriction;
        owl:onProperty  [ owl:inverseOf  :isInRegion ];
        owl:someValuesFrom  :Unit
    ], [
        a  owl:Restriction;
        owl:onProperty  [ owl:inverseOf  :isInRegion ];
        owl:allValuesFrom  [
            a  owl:Restriction;
            owl:onProperty  :isOwnedBy;
            owl:hasValue  :p
        ]
    ];  owl:equivalentClass  [
        a  owl:Restriction;
        owl:onProperty  [ owl:inverseOf  :controlsRegion ];
        owl:hasValue  :p
    ] .

如果玩家都是已知的,您可以为每个玩家定义这样一个类。更一般的情况可能在 OWL Full 中可以表达,但如果是的话,它涉及复杂和非标准的 OWL 词汇使用,恐怕没有推理者可以完全处理。

于 2013-07-05T11:36:06.790 回答