МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Отчёт по лабораторной работе №3,4
Факультет бизнеса
Группа ФБИ-11
Студенты: Колун А.Ю., Перов Н.А.
Преподаватель: Бакаев М.А.
Новосибирск
2014
Цель работы:
-
Освоение основ проектирования ИС. Реализация структуры прототипа ИС в среде CLIPS.
-
Освоить принципы проектирования онтологий и их разработки с использованием инструментальных средств.
-
Понять содержание гибридной модели представления знаний, сочетающей фреймы и правила вывода.
-
Получить навыки разработки интеллектуальной системы на основе гибридной модели.
Предметная область.
Рассматриваемой областью является диагностика ПК. Целью является определение неисправности и вывод советов по устранению.
Исходными данными буду ответы пользователя на вопросы, тем самым будет определен неисправный элемент в ПК пользователя и вывод совета по устранению. Классы, свойства, правила, были определены с учетом данной области.
Иис По диагностики пк Массив вопросов Неисправность
Ответы пользователя
Советы по устранению
Рисунок 1 – Информационная модель
2) Реализация онтологий в protégé
Рисунок 2 – Иерархия классов
Рисунок 3 – Свойства классов
Рисунок 4 - Визуализация иерархическое древо классов
Рисунок 5 – связь между классами
В листинге -1 представлена структура классов сгенерированных в protégé с помощью плагина CLIPSTAB.
Листинг 1 программы:
(defclass PRODUCER
(is-a USER)
(role concrete)
(pattern-match reactive)
(single-slot name_producer
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass LOCATION
(is-a PRODUCER)
(role concrete)
(pattern-match reactive)
(single-slot street
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot city
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass COMPUTER
(is-a USER)
(role concrete)
(pattern-match reactive)
(single-slot name_manufacturer
(type INSTANCE)
;+ (allowed-classes PRODUCER)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot name_computer
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot type_computer
(type INSTANCE)
;+ (allowed-classes TYPE_COMPUTER)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot defect_pc
(type INSTANCE)
;+ (allowed-classes APPLICATION HARDWARE SYSTEM)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass DEFECTS
(is-a USER)
(role concrete)
(pattern-match reactive))
(defclass SYSTEM
(is-a DEFECTS)
(role concrete)
(pattern-match reactive)
(single-slot defect_system
(type INSTANCE)
;+ (allowed-classes LINUX MAC_OS WINDOWS)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot cost_system_defect
(type INTEGER)
(range 0 15000)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass HARDWARE
(is-a DEFECTS)
(role concrete)
(pattern-match reactive)
(single-slot cost_hardware
(type INTEGER)
(range 0 25000)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot defect_hardware
(type INSTANCE)
;+ (allowed-classes CPU DISC_DRIVE HARD_DISC MOTHERBOARD RAM VIDEO_CARD)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass APPLICATION
(is-a DEFECTS)
(role concrete)
(pattern-match reactive))
(defclass TYPE_COMPUTER
(is-a USER)
(role concrete)
(pattern-match reactive)
(single-slot type
(type SYMBOL)
;+ (allowed-parents LEPTOP NETBOOK NOOTBOOK PC)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass NOOTBOOK
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass NETBOOK
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass LEPTOP
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass PC
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass STRUCTURA_PC
(is-a USER)
(role concrete)
(pattern-match reactive))
(defclass BLOK
(is-a STRUCTURA_PC)
(role concrete)
(pattern-match reactive))
(defclass MOTHERBOARD
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass CPU
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass VIDEO_CARD
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass HARD_DISC
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass RAM
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass DISC_DRIVE
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass OS
(is-a STRUCTURA_PC)
(role concrete)
(pattern-match reactive))
(defclass LINUX
(is-a OS)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot is_freezes
;+ (comment "Свойство класса булева типа которая отображает некорректную работу операционной системы, по умолчанию false")
(type SYMBOL)
(allowed-values FALSE TRUE)
(default FALSE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass MAC_OS
(is-a OS)
(role concrete)
(pattern-match reactive)
(single-slot is_freezes
;+ (comment "Свойство класса булева типа которая отображает некорректную работу операционной системы, по умолчанию false")
(type SYMBOL)
(allowed-values FALSE TRUE)
(default FALSE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass WINDOWS
(is-a OS)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot is_freezes
;+ (comment "Свойство класса булева типа которая отображает некорректную работу операционной системы, по умолчанию false")
(type SYMBOL)
(allowed-values FALSE TRUE)
(default FALSE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass PRODUCER
(is-a USER)
(role concrete)
(pattern-match reactive)
(single-slot name_producer
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass LOCATION
(is-a PRODUCER)
(role concrete)
(pattern-match reactive)
(single-slot street
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot city
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass COMPUTER
(is-a USER)
(role concrete)
(pattern-match reactive)
(single-slot name_manufacturer
(type INSTANCE)
;+ (allowed-classes PRODUCER)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot name_computer
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot type_computer
(type INSTANCE)
;+ (allowed-classes TYPE_COMPUTER)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot defect_pc
(type INSTANCE)
;+ (allowed-classes HARDWARE_DEFFECT SYSTEM_PO_DEFECT)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass DEFECTS
(is-a USER)
(role concrete)
(pattern-match reactive))
(defclass SYSTEM_PO_DEFECT
(is-a DEFECTS)
(role concrete)
(pattern-match reactive)
(single-slot defect_system
(type INSTANCE)
;+ (allowed-classes LINUX MAC_OS WINDOWS)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot cost_system_defect
(type INTEGER)
(range 0 15000)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass HARDWARE_DEFFECT
(is-a DEFECTS)
(role concrete)
(pattern-match reactive)
(single-slot cost_hardware
(type INTEGER)
(range 0 25000)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot defect_hardware
(type INSTANCE)
;+ (allowed-classes CPU DISC_DRIVE HARD_DISC MOTHERBOARD RAM VIDEO_CARD)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass TYPE_COMPUTER
(is-a USER)
(role concrete)
(pattern-match reactive)
(single-slot type
(type SYMBOL)
;+ (allowed-parents LEPTOP NETBOOK NOOTBOOK PC)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass NOOTBOOK
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass NETBOOK
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass LEPTOP
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass PC
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass STRUCTURA_PC
(is-a USER)
(role concrete)
(pattern-match reactive))
(defclass BLOK
(is-a STRUCTURA_PC)
(role concrete)
(pattern-match reactive))
(defclass MOTHERBOARD
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass CPU
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass VIDEO_CARD
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass HARD_DISC
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass RAM
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass DISC_DRIVE
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass PROGRAMM
(is-a USER)
(role concrete)
(pattern-match reactive))
(defclass OS
(is-a PROGRAMM)
(role concrete)
(pattern-match reactive))
(defclass LINUX
(is-a OS)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot is_freezes
;+ (comment "Свойство класса булева типа которая отображает некорректную работу операционной системы, по умолчанию false")
(type SYMBOL)
(allowed-values FALSE TRUE)
(default FALSE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass MAC_OS
(is-a OS)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot is_freezes
;+ (comment "Свойство класса булева типа которая отображает некорректную работу операционной системы, по умолчанию false")
(type SYMBOL)
(allowed-values FALSE TRUE)
(default FALSE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass WINDOWS
(is-a OS)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot is_freezes
;+ (comment "Свойство класса булева типа которая отображает некорректную работу операционной системы, по умолчанию false")
(type SYMBOL)
(allowed-values FALSE TRUE)
(default FALSE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass PRODUCER
(is-a USER)
(role concrete)
(pattern-match reactive)
(single-slot name_producer
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass LOCATION
(is-a PRODUCER)
(role concrete)
(pattern-match reactive)
(single-slot street
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot city
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass COMPUTER
(is-a USER)
(role concrete)
(pattern-match reactive)
(single-slot name_manufacturer
(type INSTANCE)
;+ (allowed-classes PRODUCER)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot name_computer
(type STRING)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot type_computer
(type INSTANCE)
;+ (allowed-classes TYPE_COMPUTER)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot defect_pc
(type INSTANCE)
;+ (allowed-classes HARDWARE_DEFFECT SYSTEM_PO_DEFECT)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass DEFECTS
(is-a USER)
(role concrete)
(pattern-match reactive))
(defclass SYSTEM_PO_DEFECT
(is-a DEFECTS)
(role concrete)
(pattern-match reactive)
(single-slot defect_system
(type INSTANCE)
;+ (allowed-classes LINUX MAC_OS WINDOWS)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot cost_system_defect
(type INTEGER)
(range 0 15000)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass HARDWARE_DEFFECT
(is-a DEFECTS)
(role concrete)
(pattern-match reactive)
(single-slot cost_hardware
(type INTEGER)
(range 0 25000)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot defect_hardware
(type INSTANCE)
;+ (allowed-classes CPU DISC_DRIVE HARD_DISC MOTHERBOARD RAM VIDEO_CARD)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass TYPE_COMPUTER
(is-a USER)
(role concrete)
(pattern-match reactive)
(single-slot type
(type SYMBOL)
;+ (allowed-parents LEPTOP NETBOOK NOOTBOOK PC)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass NOOTBOOK
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass NETBOOK
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass LEPTOP
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass PC
(is-a TYPE_COMPUTER)
(role concrete)
(pattern-match reactive))
(defclass STRUCTURA_PC
(is-a USER)
(role concrete)
(pattern-match reactive))
(defclass BLOK
(is-a STRUCTURA_PC)
(role concrete)
(pattern-match reactive))
(defclass MOTHERBOARD
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass CPU
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass VIDEO_CARD
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass HARD_DISC
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass RAM
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass DISC_DRIVE
(is-a BLOK)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass PROGRAMM
(is-a USER)
(role concrete)
(pattern-match reactive))
(defclass OS
(is-a PROGRAMM)
(role concrete)
(pattern-match reactive))
(defclass LINUX
(is-a OS)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot is_freezes
;+ (comment "Свойство класса булева типа которая отображает некорректную работу операционной системы, по умолчанию false")
(type SYMBOL)
(allowed-values FALSE TRUE)
(default FALSE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass MAC_OS
(is-a OS)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot is_freezes
;+ (comment "Свойство класса булева типа которая отображает некорректную работу операционной системы, по умолчанию false")
(type SYMBOL)
(allowed-values FALSE TRUE)
(default FALSE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))
(defclass WINDOWS
(is-a OS)
(role concrete)
(pattern-match reactive)
(single-slot is_work
(type SYMBOL)
(allowed-values FALSE TRUE)
(default TRUE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write))
(single-slot is_freezes
;+ (comment "Свойство класса булева типа которая отображает некорректную работу операционной системы, по умолчанию false")
(type SYMBOL)
(allowed-values FALSE TRUE)
(default FALSE)
;+ (cardinality 0 1)
(visibility public)
(create-accessor read-write)))