430 likes | 659 Vues
4.2. Онтология CYC . Онтология CYC. Lenat D. Самый амбициозный проект Начат в 1984 1 млн. утверждений “common sense” Микротеории: пространство, время, причинность Онтология 6 тысяч понятий верхнего уровня – в открытом доступе www.cyc.com. Разработчики Cyc. Начало 80-х годов
E N D
Онтология CYC • Lenat D. • Самый амбициозный проект • Начат в 1984 • 1 млн. утверждений “common sense” • Микротеории: пространство, время, причинность • Онтология 6тысяч понятий верхнего уровня – в открытом доступе • www.cyc.com
Разработчики Cyc • Начало 80-х годов • Douglas Lenat и адмирал Inman • Microelectronics and Computer TechnologyCorporation • C 1995 Cycorp
Cyc и онтологии • In philosophy, ontology is the study of being. • In knowledge-based systems, an ontology is that part of the system which specifies what things exist what is true about them. Cyc’s ontology is essentially its whole knowledge base
Cyc: symbolic AI • Нет статистики • 400 000 утверждений (1995): факты, правила • Cyc is intended to provide a deep layer of understanding that can be used by other programs (such as domain-specific expert systems) to make them more flexible
Общие знания • Цель – не записать все энциклопедические сведения • Знание не о конкретных главах государств или столицах, а что значит быть столицей или главой государства • Не утверждают, что создают единую теорию времени, пространства, вселенной • Создается набор специализированных микротеорий, которые описывают наиболее частые случаи
Какие знания нужны: пример • “Napoleon died on St.Helena. Wellington was greatly suddened” • Мы знаем, что Веллингтон узнал о смерти Наполеона, Веллингтон пережил Наполеона и т.п.
Knowledge pump 1) Наполнить базу миллионами терминов, понятий, фактов, правил, которые необходимы для повседневной жизни 2) Научить общаться на естественном языке, чтобы увеличивать свою базу знаний 3) Самообучение
Представление знаний • Сначала предполагалось использовать фреймы • Но как представлять мнения, ожидания, противоречащие условия • Сейчас логика предикатов второго порядка: • P(a1, …an), S(P1,…, Pm)
CycL: константы • Словарь онтологии: сущности и понятия • #$Walking • #$Typewriter • Individuals: • #$InternalRevenueService • #$Walking 00036 • Имена предикатов: #$isa, #$likesAsFriend • Имена функций #$GovernmentFn: • #$GovernmentOf (#$Canada))
Имена констант • Уникальные имена • Правила написания • Должно отличать понятие от похожих понятий: • Bow • Bow-BoatPart • BowTheWeapon • Bowing-BodyMovement
Значимость имен - 1 • Понятие Зеленый цвет: #$Green, #$GreenColor, #$Verde, #$Gruen, #$EMRG • Смысл понятия задается утверждениями (assertions): • 1) (#$isa #$EMRG #$Color) • 2) (#$colorOfObject #$Grass37 #$EMRG) • 3) (#$forAll ?L (#$implies (#$ ?L #$Leaf) (#$colorOfObject ?L #$EMRG)))
Значимость имен - 2 • #$LittleRedHairedGirlLikedByCharlieBrown • #$FemaleChild • #$hairColor • #$RedHairColor • #$CharlieBrown • #$likesAsFriend
Предикаты • Число аргументов – predicate arity • Фиксированное число аргументов, кроме таких предикатов как #$different • Предикат имеет не больше 5 аргументов • Запись предиката в утверждениях Cyc должна иметь заявленное число аргументов
Предикаты: типы аргументов • Определяются в описании предиката • #$arg1Isa, #$arg2Isa • Предикат #$residesInDwelling • (#$isa #$residesInDwelling #$BinaryPredicate) • (#$arg1Isa #$residesInDwelling #$Animal) • (#$arg2Isa #$residesInDwelling #$ShelterConstruction)
Функции • В основном, фиксированное число аргументов (до 5) • Есть функции с произвольным числом аргументов: #$PlusFn • Типы аргументов • Если число аргументов не задано, то один тип для всех: #$argsIsa • Результат – тип результата - #$resultIsa
Пример описания функции: • (#$arity #$GovernmentFn 1) • (#$arg1Isa #$GovernmentFn#$GeopoliticalEntity) • (#$resultIsa #$GovernmentFn#$RegionalGovernment)
Переменные • Названия: ?FOO • Если в утверждении используется одна переменная, то обычно – это одна буква • Если несколько – то лучше использовать мнемонические имена
Формулы и термы • Термы (terms) – • константы • переменные • функции • Формула – это список в скобках • Простейшая формула (Atomic Formula) –предикат с заполненными аргументами • Сложная формула (ComplexFormula) включает логические связки и квантификаторы
Атомные формулы: примеры • (#$likesAsFriend #$DouglLenat #$KeithGoolsbey) • (#$skillCapableOf #$LinusVanPelt #$PlayingAMusicalInstrument ) • (#$colorOfObject ?CAR ?COLOR) • Первые две формулы – ground atomic formulas (GAF)
Логические операторы • #$not, #$and, #$or, #$implies • #$implies = правило if-then • #$implies • Первая часть антецедент • Вторая часть консеквент
Пример правила • (#$implies • (#$ownerOfObject #$Bike001 #$Fred) • (#$colorOfObject #$Bike001 #$RedColor)) • Утверждается, что или первый аргумент ложный, или второй аргумент истинный
CycL: квантификаторы • ForAll • thereExists, thereExistsAtLeast, thereExistsAtMost, thereExistsExactly • (#$forAll ?X • (#$implies • (#$owns #$Fred ?X) • (#$objectFoundLocation ?X #$FredsHouse)))
Пример с квантификаторами • (#$implies • (#$isa ?P #$Person) • (#$there ExistExactly 2 ?Leg) • (#$and • (#$isa ?Leg #$Leg) • (#$anatomical Parts ?P ?Leg))))
CycL: значение истинности • Microtheories • 5 значений истинности: • Default true • Monotonically true=true with no exceptions • Default false • Monotonically false • unknown
Утверждения (assertions) • Каждое утверждение включает: • Формулу • Микротеорию • Значение истинности • Направление • обоснование
Утверждение и значение истинности • При вводе утверждения “monotonically true”, происходит проверка на противоречивость с базой знаний • Если утверждение с переменными, то если находится объект, для которого утверждение не выполняется, то – ошибка • Если было утверждение об отрицании вводимой формулы для некоторого объекта - ошибка
Направление • Определяет, когда начинается вывод с использованием данного утверждения • Forward (вывод начинается в момент помещения утверждения в базу знаний) • Backward (включается при специальном запросе) • По умолчанию GAFs – forward, правила - backward
ASK операция • Запрос об истинности той или иной формулы. Включает: • Формулу • Микротеорию • Направление • Число ответов (bindings) • Ограничение по времени • Глубина вывода
Пример ASK • (#$and • (#$geographicalSubRegions #$ContinentOfEurope ?X) • (#$headOfStateOf ?X ?Y)) • Direction: backward • Number: 5 • Time: 10 • Inference depth: 3
Продукты компании • Cyc Knowledge Server (поставляется разработчикам по индивидуальным лицензиям) • CycSecure – исследование уязвимости программного обеспечения - продается • CycAnswers - разрабатывается
Cyc Knowledge Server • Cyc Knowledge Base • Cyc Inference Engine • CycL Representation Language • Natural Language Processing Subsystem • Cyc Semantic Integrated Bus – связь между традиционными структурами хранения (базы данных) и Knowledge base • Cyc Developer Toolsets
CycAnswers • Semantic Knowledge Source Integrator – генератор ответов, использующий базу знаний • Integrity Auditor – анализ соответствия содержимого баз данных и знаний на соответствие запросам • User Profiles – настройка на пользователя
Пример неоднозначной синтаксической интерпретации • John washed the dishes on the table • 1) John washed the dishes which are now on the table • 2) John did the dishwashing on the table • Правило: Cyc knows that dishwashing typically occurs in sinks or dishwashers, not on tables.
Разрешение референции • Fred went to the store, bought a candy bar with his credit card, walked to the park, and ate it. • It - "store", "candy bar", "credit card", and "park" ? • Правило: parks, stores, and credit cards aren't things which are normally eaten
OpenCyc • http://opencyc.sourceforge.net • 6 тысяч понятий - 60 тысяч суждений • Cyc Inference Engine • Cyc Knowldege Browser • Документация • Спецификация языка CycL • Трансляторы CycL-to-Lisp, CycL-to-C
Upper Cyc Ontology (UCO) • Основные структурирующие отношения • #$isa – отношение примера к коллекции или классу: (#$isa X Y) • #$genls – одна коллекция подмножество другой: (#$genls X Y)
Примеры и свойства - 1 • #$genls - транзитивно • (#$genls#$Dog #$Mammal) и • (#$genls#$Mammal#$Vertebrate) • Следует • (#$genls#$Dog #$Vertebrate)
Примеры и свойства - 2 • #$isa – нетранзитивно • (#$isa #$Pufy #$Dog) и • (#$isa #$Dog #$BiologicalClass) • Не следует • (#$isa #$Pufy #$BiologicalClass)
Свойства: isa+genls=isa • (#$isa #$Pufy #$Dog) и • (#$genls#$Dog #$Mammal) • Следует • (#$isa #$Pufy #$Mammal)
Организация top ontology • Для каждого понятия • Набор #$isa отношений • Набор #$genls • Multiple-inheritance • Комментарий на английском языке
Пример: skin • #$Skin • A (piece of) skin serves as outer protective and tactile sensory covering for (part of) an animal's body. This is the collection of all pieces of skin. Some examples include #$TheGoldenFleece (representing an entire skin of an animal) and (#$BodyPartFn #$YulBrynner #$Scalp) (representing a small portion of his skin). • isa: #$AnimalBodyPartType genls: #$BiologicalLivingObject #$AnimalBodyPart #$SheetOfSomeStuff #$VibrationThroughAMediumSensor #$TactileSensor