Определение того, какой логический набор содержит конкретный оператор: DL, FOL, Second-Order

Я работаю над онтологией для представления информации в Starcraft, и у меня возникли проблемы с определением того, может ли следующая общая аксиома класса быть представлена ​​в 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)

Кроме того, я не уверен, что синтаксис, который я использую, правильный, пожалуйста, посоветуйте, как правильно его представить.

Спасибо, любой отзыв ценен!


person Dustin    schedule 01.07.2013    source источник


Ответы (2)


Возможно, вы не сможете смоделировать это в целом с помощью 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, с которым, я боюсь, никакие рассуждающие не смогут справиться полностью.

person Antoine Zimmermann    schedule 05.07.2013
comment
Спасибо! Я проголосую за это, как только наберу достаточно репутации - это полезно - person Dustin; 17.07.2013

В зависимости от того, как вы представляете остальную часть игры, я думаю, вы действительно можете представить это в OWL DL, по крайней мере, для каждого игрока. Например, вы можете сказать, что

=controlsRegion-1.player (inRegion-1 принадлежит).{player}

В логике первого порядка это будет:

r.[controlsRegion(player,r) p' [(inRegion-1принадлежит)(r,p') player = p']]

Это говорит о том, что регионы, контролируемые игроком, являются подмножеством регионов, все регионы которых принадлежат первому игроку. Конечно, это означает, что вам нужно будет сделать вывод, что все в регионе может только принадлежать игроку. Это может быть проблемой в OWL, которая делает предположение об открытом мире. Может потребоваться некоторая работа, чтобы доказать, что в регионе не может быть ничего, что могло бы принадлежать кому-то другому. Это также дает вам выражение только для одного игрока за раз. Вам все равно понадобится одна такая аксиома для каждого игрока.

person Joshua Taylor    schedule 26.11.2013