<На страницу назад | На страницу вперед>
А.1.4 Предложения
Интуитивное определение: предложения - это выражения, которые могут быть истинными
или ложными. В языке детального описания предложения имеют три разновидности:
атомарные (atomic) предложения, булевы (Boolean) предложения и
связанные квантором (quantified) предложения. Атомарные предложения -
это простые предложения, состоящие из двух или более термов. Частные случаи
включают предложения равенства, например, (=Mark_Twain Samuel_Clemens) (=Марк_Твен
Сэмюэл_Клеменс) или неравенства (/=Shakespeare Roger_Bacon) (/= Шекспир Роджер_Бэкон).
Подобно функциям, любая последовательность термов, заключенная в круглые скобки,
представляет правомерное атомарное предложение. Однако, чтобы быть истинным,
такое предложение должно включать n-местное отношение, за которым следует
n термов. Все другие предложения считаются ложными в данной семантике.
Все неатомарные предложения создаются рекурсивно из атомарных предложений и логических операторов. Сложные предложения могут быть двух видов: стандартные булевы предложения, создаваемые при использовании булевых и других истинностных функциональных операторов, и связанные квантором предложения, создаваемые при использовании кванторов. Примеры булевых предложений, играющих роль описаний в термах, были приведены выше, например, (and (person ?x) (> (age-of ?x) 40)). Однако, все эти примеры включают свободные переменные. Если эти переменные заменить фактическими именами, они становятся замкнутыми (closed) предложениями, например, (and (person Bill) (> (age-of Bill) 40)), где говорится, что Билл, в отличие от некоторого неспецифицированного лица ?x, является лицом старше 40.
Существует два основных типа связанных квантором предложений: предложения, связанные квантором общности (всеобщности), и предложения, связанные квантором существования. Однако, эти основные типы делятся на несколько форм. Наиболее общая форма включает любой квантор, после которого следует одна переменная и предложение, например:
(forall ?x (=> (and (human ?x) (>= (age-of ?x) 21)
(adult ?x)))
где говорится, что все люди в возрасте 21 года и старше являются взрослыми, и
(exists ?x (and (person ?x) (> (age-of ?x) 100))
где говорится, что существует человек в возрасте старше 100 лет.
Вторая форма позволяет связать несколько переменных с одним квантором. Так, в предложении
(forall (?x ?y) (=> (and (B-52 ?x) (F-16 ?x))
(weighs-more-than ?x ?y)))
говорится, что каждый B-52 весит больше каждого F-16.
В языке детального описания используется опциональный способ выражения связанных кванторов высказываний посредством определения условий непосредственно для связанных переменных. Так, суждение, выражаемое приведенным выше предложением, можно выразить в более сжатой форме:
(forall (?x ?y : (and (B-52 ?x) (F-16 ?x))) (weighs-more-than ?x ?y)).
Если "простой" квантор существования утверждает существование как минимум одного предмета, удовлетворяющего определенному описанию, то числовые кванторы существования утверждают существование как минимум или только n предметов для некоторого конкретного числа n. Так, в США существует пятьдесят штатов, которые можно выразить просто следующим образом: "(exists-50 ?x (state-in ?x US))". Подобным образом, тот факт, что существует только один президент США, можно выразить следующим образом: "(exists!-1 ?x (US- president ?x))".
Следует отметить, что числовые кванторы, строго говоря, не обязательны. Иначе говоря, все, что выражает числовой квантор, в принципе можно выразить посредством простых кванторов и отношения тождества. Так, "exists!-1 ?x (US-president ?x))" эквивалентно предложению
(exists ?x (and (US-president ?x) (forall (?y : (US-president ?y)) (= ?x ?y)))),
т.е. существует как минимум один президент США и, кроме того, каждый президент США должен быть равен данному президенту. Однако, числовые кванторы чрезвычайно удобны, поскольку для выражения факта, что некоторое число n предметов удовлетворяет определенному описанию, требуется использовать n отдельных переменных вместо одной.