Существует много статей по Description Logics. Начнем с примеров из статьи:"Description Logics as Ontology Languages for the Semantic Web"В DL-языке высказывания записываются в виде логических выражений с использованием общеизвестных и изобретенных операций (конструкторов) над унарными и бинарными предикатами и предметными константами. Унарные предикаты, т.е. имеющие один аргумент называются понятиями, а бинарные (имеющие два аргумента) - ролями. А предикат есть функция возвращающая true или false.
Предметные константы считаются идентифицирующими (именующими) конкретные объекты (individual) предметной области.
С точки зрения лексики языка понятия, роли, предметы обозначаются идентификаторами. При этом можно придерживаться специальных соглашений - как по виду идентификатора понять что он представляет.
Например в упомянутой статье:
- идентификатор из заглавных букв представляет предмет (BOB, MARY);
- идентификатор, в котором первая буква заглавная, а остальные строчные - понятие (Human, Female, Doctor, Professor);
- идентификатор, в котором первая буква строчная, а остальные строчные или заглавные - роль (married, hasChild);
Предикаты используются для записи высказываний о конкретных предметах. Например:
Female(MARY). - "Mary - женщина."
hasChild(BOB,MARY). - "У Bob'а есть ребёнок Mary."
При помощи конструкторов из предикатов можно формировать концептуальные выражения, которые можно применять к предметным идентификаторам.
Например,
-Female(BOB). - "Bob не женщина."
Здесь "-" это конструктор отрицания.
Вот пример "концептуального выражения" из статьи:
Human⊓-Female⊓ ∃married.Doctor⊓(≥5 hasChild)⊓∀hasChild.Professor
Если предметная область задана, то понятию соответствует множество предметов, а роли множество пар предметов. Соответственно конструкторы порождают новые множества из уже имеющихся.
Здесь конструкторы таковы:
C1 ⊓ C2 - логическое И - предметы подпадающие и под первое и под второе понятие,
-C - логическое отрицание - предметы не удовлетворяющие понятию C,
∃r.C (от Exist) - предметы (например, П1), для которых существует другой предмет (П2) такой что r(П1,П2) И C(П2).
∀r.C (от Any) - предметы (например, П1), для которых любой другой предмет (П2) такой что r(П1,П2) будет удовлетворять C(П2).
Замечание: если для П1 нет П2 таких, что r(П1,П2), то он попадает в ∀r.C.
≥ n r - предметы (например, П1), для которых существует n или более других (разных) предметов (например, П2) таких что r(П1,П2).
возможны и другие лексемы для конструкторов:
Human И (НЕ Female)И(СУЩ married.Doctor)И(>4 hasChild)И(ВСЕ hasChild.Professor)
а вот его описание:
Assume that we want to define the concept of "A man that is married to a doctor and has at least five children, all of whom are professors."
Из двух концептуальных выражений можно организовать высказывание:
C1 ⊑ C2 - всякий предмет являющийся C1 является и C2.
Например
∃ hasChild.Human ⊑ Human.
Что в переводе с DL-ного значит, что "тот у кого есть дети - люди, сам - человек".