280 likes | 426 Views
Санкт-Петербургский Государственный Университет. Компонента “KIF Converter” проекта KNOWLEDGE . NET. Докладчик Сигалин Максим Владимирович. Научный руководитель Сафонов Владимир Олегович , проф., д.т.н. KIF (Knowledge Interchange Format). Обмен знаниями.
E N D
Санкт-Петербургский Государственный Университет Компонента “KIF Converter” проектаKNOWLEDGE.NET ДокладчикСигалин Максим Владимирович Научный руководительСафонов Владимир Олегович,проф., д.т.н.
KIF (Knowledge Interchange Format) • Обмен знаниями • Язык исчисления предикатов второго порядка • Не имеет конструкций для описания фреймов/онтологий • http://logic.stanford.edu/kif/dpans.html
Система Ontolingua • Надстройка над KIF • Имеет конструкции для описания фреймов/онтологий • Набор трансляторов в другие языки представления знаний • http://www.ksl.stanford.edu/software/ontolingua/
Конструкции Knowledge.NET • Фреймы • Онтологии
Фреймы Общий вид: frame FR_CATEGORY FR_IDEN { SLOTS}
Слоты SLOTS ::=own_slots [[SL_DESC] SL_NAME[=SL_VALUE];]+ [instance_slots [SL_DESC SL_NAME[=SL_VALUE];]+ ]
Слоты (расширенное описание) facets {typeTYPE; [valueVALUE;] [default_valueDEF_VALUE;]} SL_NAME;
Наследование фреймов own_slots is_a FR_IDEN1, | FR_IDEN2, FR_IDEN3, FR_IDEN4, …;
Онтологическая модель • Концепты • Подконцепты • Ais_subconcept_ofB,C; • А {is_subconcept_ofB,C;} • Thing
Определение через отношения • Пересечение concept A is_intersection_of B, C, D… • Объединение concept A is_union_of B, C, D… • Дополнение concept A is_complement_of B, C, D…
Свойства datatypepropertyPROP_NAME { domain A, B, C, …; range X, Y, Z, ...; }
Пример #ontology “Vehicles” #concepts Color is_subconcept_of Thing; Vehicle is_subconcept_of Thing; Plane is_subconcept_of Vehicle; Submarine is_subconcept_of Vehicle; disjoint Plane, Submarine; disjoint Color, Vehicle; #properties object property HasColor{ domain Vehicle; rangeColor; }
Подсвойства object property X is_subproperty_of Y{ domainA, B, C, …; rangeK, L, M, …; }
Пример #concepts concept Human{ is_subconcept_of { Thing; HasSibling some_values_from Sibling; IsChildOf cardinality 2; } } #properties object property IsChildOf{ domain Human; range Human; inverse HasChild; }
Экземпляры individualDmitry{ alias “Dima”; is_a Human; HasSibling = Nina; HasAncestor = {Victor, Ludmila, Grigory, Alena}; HasChild = {Egor, Maria}; }
Конструкции Ontolingua • DEFINE-CLASS • DEFINE-FRAME • DEFINE-INSTANCE
DEFINE-CLASS (DEFINE-CLASS<structure-name> (<argument-list>) {:def | :iff-def} <sent-with-arg-vars> [:constraints <sent-with-arg-vars>] [:class-slots (<slot-spec>*)] [:instance-slots (<extended-slot-spec>*)] [:default-slot-values (<slot-spec>*)] )
Пример (define-class female-person (?person) "female humans" :iff-def (and (human ?person) (= (gender ?person) female)) )
Слоты • (Name (SLOT-VALUE-TYPE string)) • Предопределенные собственные слоты: • INSTANCE-OF • SUBCLASS-OF • ALIAS • DOMAIN • RANGE • ...
DEFINE-INSTANCE (define-instance<instance-name> (<class-name>+) ... )
Реализация • Интерфейс IModelItem • Паттерн Composite • Методы: • ICollection<IModelItem> getChildren() • Write(StreamWriter writer) • Интерфейс IModel: IModelItem
Реализации IModelItem • Класс AbstractModelItem • реализация метода write(StreamWriter writer) – делегирует своим частям • Иерархия KIFObject: AbsractModelItem • Иерархия OntolinguaObject: KIFObject • Части-терминалы • паттерн Flyweight
Реализации IModel • KIFModel • OntolinguaModel
Создание моделей • Интерфейс IModelBuilder • паттерн Builder • методы • buildFrame(DataFrame frame) • buildSlot(Slot slot) ... • IModel getModel() • Реализации • KifModelBuilder • OntolinguaModelBuilder
Конвертация в KIF • Класс KifModelBuilder: OntolinguaModelBuilder • при создании делегирует методы предку • канонизирует • заменяет конструкции Ontolingua на конструкции KIF • вычисляет зависимости, меняя и пополняя модель