2015-04-07 4 views
0

Давайте иметь OWL-DL онтология рассматривает только TBox (без физических лиц) и РассмотримDL; возвращение классов с максимальной 1 и не совсем 0

Chinesefamily hasChilren max 1 
SterileChinesefamily subClassOf Chinesefamily 
SterileChinesefamily hasChilren exactly 0 

Выражение

hasChilren max 1 

вернется Chinesefamily и SterileChinesefamily в качестве подкатегорий

Ну, как указать классы, которые могут иметь 0 или 1 детей (Chinesefamily), но не должны иметь ровно 0 детей (SterileChinesefamily)

Я попытался

hasChilren max 1 and not hasChilren exactly 0 

Он ничего не возвращает!

============= ============= UPDATE

Обратите внимание

hasChilren exactly 1 

не то, что я намерены. Вместо того, что я имею в виду классы, подклассы:

  1. Классы, их лица, которым разрешено иметь либо 1 или 0 детей (Chinesefamily).
  2. AND
  3. NOT Классы, их лица должны иметь ровно ноль детей (SterileChinesefamily).

(На самом деле, я рассматриваю только TBox (никаких лиц), но это обновление только для уточнения).

+0

«hasChilren max 1 и not hasChilren точно 0» эквивалентно «hasChildren ровно 1». Вы можете просто найти примеры этого. –

ответ

1

Ну, как указать классы, которые могут иметь 0 или 1 детей (Chinesefamily), но не должны иметь точно 0 детей (SterileChinesefamily)

Вы правы, что HasChildren точно 0 является подкласс hasChildren max 1, потому что семья с 0 детьми, безусловно, имеет не более одного ребенка.Если вы просите семьи только с одним ребенком, просто попросить лицо типа

                HasChildren точно 1

, что я имею в виду классы, подклассы of

  • Классы, в которых их физическим лицам разрешено иметь либо 1, либо 0 ребенка ren (Chinesefamily) И
  • NOT Классы, в которых их люди должны иметь ровно нулевых детей (SterileChineseсемейство).

Выражение класса как HasChildren максимум 1 не имеет ничего общего с разрешением, или быть «разрешено», чтобы иметь значение. Это просто класс людей, которые имеют 0 или 1 значения для hasChildren. То, что вы просите за это классы, которые являются подклассами как:

  • HasChildren макс 1
  • дополнение из HasChildren макс 0

дополнению HasChildren макс 0 - это класс лиц, имеющих хотя бы одного ребенка. То есть, это класс hasChildren min 1. Таким образом, вы просите классы, подклассы и:

  • HasChildren не более 1
  • HasChildren мин 1

Это означает, что вы просите подклассы

  • (hasChildren max 1) and (hasChildren min 1)

Теперь, что пересечение эквивалентно

  • HasChildren точно 1

Это имеет смысл. То, что может иметь 0 или 1 ребенок, но не имеет 0 детей, - это вещи, в которых есть 1 ребенок.

+0

Ну, это немного другое. Проблема в том, что я работаю только с TBox (т. Е. Без экземпляров), и мне нужно выражение DL, достаточное для извлечения только Chinesefamily, когда я уточню в вопросе. Если дело доходит до людей, это будет проще и может быть решено, как вы предлагаете. Однако меня не интересуют индивидуумы. –

+0

отредактировал вопрос. –

+0

@MedianHilal Я обновил свой ответ, но конечный результат все тот же. Вы запрашиваете вещи, которые имеют 0 или 1 значения, но не имеют 0 значений. Это то же самое, что просить вещи, которые имеют 1 ценность. –

1

Синтаксис вы используете в начале вашего вопроса не является стандартным:

Chinesefamily hasChilren max 1 

Это выглядит как синтаксис Манчестер, потому что hasChildren max 1 это выражение класса в этом синтаксисе, но если вы вставляете имя прежде, это не дольше Манчестер. Из чего следует, что, кажется, что ваше намерение состоит в том, чтобы означать:

Class: Chinesefamily 
    EquivalentClass: hasChildren max 1 

(В качестве примечания, странно сказать, что все китайские семьи имеют только ноль или один ребенок хорошо известно, что есть китайцы. семьи, которые имеют больше детей ... просто говорят)

семья с ровно 1 детьми могут быть определены следующим образом:

Class: FamilyWithOneChildren 
    SubClassOf: hasChildren exactly 1 

Easy.

+0

Во-первых, я работаю с TBox (нет людей). Если дело касается людей, это будет легко. Однако, как я уже упоминал в этом вопросе, проблема не в том, чтобы найти семьи с ровно 1 ребенком, это проблема поиска классов с максимальным количеством детей (т.е. у индивидуумов класса могут быть 1 или ноль детей), но не ровно нулевых детей (т.е. все люди класса имеют ровно нулевых детей). –

+0

отредактировал вопрос. –