RDF / OWL / Protege: пусть подкласс будет объединением некоторых непересекающихся суперклассов? - PullRequest
2 голосов
/ 09 сентября 2010

У меня есть следующие классы: классы B, C и D являются подклассами A.

A ----+----------> B
      |
      +----------> C
      |
      +----------> D

Кроме того, у меня есть свойство объекта, hasObjectProperty и некоторые другие классы X, Y, Z, где X, Y, Z - непересекающиеся классы .

Затем я установил ограничения для классов B, C и D следующим образом: (Здесь я также использую синтаксис Manchester OWL, используемый в Protege * http://www.co -ode.org / resources / reference / manchester_syntax / )

B: (hasObjectProperty only X) and (hasObjectProperty some X)
C: (hasObjectProperty only Y) and (hasObjectProperty some Y)
D: (hasObjectProperty only Z) and (hasObjectProperty some Z)

Теперь вопрос в том, как я могу описать класс E, который должен быть объединением только классов B и C? Как я могу описать класс, который может быть как классом B, так и классом C (но не классом D)?

A ----+----------> B ------> E
      |
      +----------> C ------> E
      |
      +----------> D

это возможно?

Я пытался определить ограничение класса E следующим образом. Но Разумник определит его как недействительный.

E: ((hasObjectProperty only X) and (hasObjectProperty some X)) or ((hasObjectProperty only Y) and (hasObjectProperty some Y))

спасибо большое!

1 Ответ

3 голосов
/ 10 сентября 2010

Чтобы ограничить E точным объединением B и C, вы можете указать:

E ≡ (B или C)

т. Е. Все, что принадлежит union из B и C, находится в E, и наоборот (кодирование отношения подчинения в обоих направлениях).

Обратите внимание, что это обязательно делает E суперклассом для B и C, поскольку он содержит их обоих, поэтому вместо этого вы получите:

A --+---> E --+---> B
    |         | 
    +---> D   +---> C
...