Семантическая сеть

“Распределение полномочий и обязанностей между менеджерами различного уровня” 1.Постановка задачи. Управление осуществляется аппаратом, включающим менеджеров различного уровня управления. Высшее звено управления включает: генерального директора и главных специалистов(гл. конструктор, гл. технолог). Среднее звено управления включает: начальников цехов и отделов. Низшее звено: мастера, бригадиры и т.д. Распределение полномочий, ответственности и обязанностей между менеджерами различного уровня может быть следующим: Высшие менеджеры: определение цели; формирование организационной структуры; подбор кадров среднего уровня; распределение прибыли. Менеджеры среднего уровня: планирование работ; подбор кадров низшего уровня. Менеджеры низшего уровня: организация работ; распределение производственных заданий. Рабочие выполняют работу, за что им выплачивается премия из прибыли. 2.Описание предметной области. Менеджер имеет табельный номер, фамилию, имя, отчество. Менеджер высшего уровня является менеджером и имеет высокий уровень управления. Менеджер среднего уровня является менеджером и имеет средний уровень управления. Менеджер низшего уровня является менеджером и имеет низший уровень управления. Генеральный директор имеет личный счет и является менеджером высшего уровня. Главный конструктор имеет конструкторское бюро и является менеджером высшего уровня. Главный технолог имеет технический отдел и является менеджером высшего уровня. Начальник цеха имеет цех и является менеджером среднего уровня. Начальник отдела имеет отдел и является менеджером среднего уровня. Мастер имеет участок и является менеджером низшего уровня. Бригадир имеет бригаду и является менеджером низшего уровня. Менеджер высшего уровня подбирает менеджера среднего уровня. Менеджер среднего уровня подбирает менеджера низшего уровня. Менеджер высшего уровня: -распределяет прибыль -определяет цель Менеджер низшего уровня планирует работу. Менеджер низшего уровня: -организует работу; -распределяет производственное задание. Рабочий имеет Ф.И.О. Рабочий имеет номер цеха Рабочий: -получает премию; -выполняет работу. Премия выплачивается из прибыли. Производственное задание обуславливает работу. 3. Переход от описания предметной области к семантической сети Вершины в семантической сети показывают объект предметной области, концепт, ситуацию, а дуги – это отношение между ними. Предложение из предметной области: Менеджер низшего уровня: -организует работу; -распределяет производственное задание, В данном случае Менеджер низшего уровня является агентом (инициатор действия), а работа и производственное задание – объектом (подвергающимся действию). Семантическая сеть может быть реализована программными средствами (языком Пролог). Данная часть сети будет иметь следующий вид: have(manager,fio). have(manager,tab_nomer). is(h_manager,manager). have(X,Y):-is(X,Y),have(X,Y). have(h_manager,h_level). raspred(h-manager,profit). opredel(h_manager,target). Объекты, понятия и события, определенные в предметной области в пролог – программе будут иметь следующее обозначение: Manager- менеджер. H_manager- менеджер высшего уровня. M_manager- менеджер среднего уровня. L-manager- менеджер низшего уровня. Dir- генеральный директор. Tech- главный технолог. Cons- главный конструктор. Nach_ceh- начальник цеха. Nach_otd- начальник отдела. Master- мастер. Brig- бригадир. Worker- рабочий. Fio- ФИО. Ceh- цех. Tab_nomer- табельный номер. High_level- высокий уровень управления. Mid_level- средний уровень управления. Low_level- низкий уровень управления. Account- личный счет. N_office- номер офиса. N_cons_buro- номер конструкторского бюро. N_ceha- номер цеха. N_otdela- номер отдела. N_uchastka- номер участка. N-brigada- номер бригады. Profit- прибыль. Target- цель. Premia- премия. Work- работа. Proiz_zad- производственное задание. Is- является. Raspred- распределяет. Opredel- определяет. Podbir- подбирает. Planir- планирует. Organiz- организует. Have- имеет. Vypol- выплоняет. Obysl- обуславливает. Polych- получает. Vypl_is- выплачивается из. 6. Пролог-программа predicates is(string,string) raspred(string,string) opredel(string,string) podbir(string,string) planir(string,string) organiz(string,string) have(string,string) vypol(string,string) obysl(string,string) polych(string,string) vypl_is(string,string) clauses is(l_manager,manager). is(m_manager,manager). is(h_manager,manager). is(dir,h_manager). is(tech,h_manager). is(cons,h_manager). is(nach_ceh,m_manager). is(nach_otd,m_manager). is(master,l_manager). is(brig,l_manager). have(worker,fio). have(worker,ceh). have(manager,fio). have(manager,tab_nomer). have(h_manager,high_level). have(m_manager,mid_level). have(l_manager,low_level). have(dir,account). have(cons,n_cons_byro). have(tech,n_office). have(nach_ceh,n_ceha). have(nach_otd,n_otdela). have(master,n_uchastka). have(brig,n_brigada). have(X,Y):- is(X,Q), have(Q,Y). raspred(h_manager,profit). raspred(X,proiz_zad):- podbir(m_manager,X), is(X,manager). raspred(X,Y):- is(X,Z),raspred(Z,Y). opredel(h_manager,target). opredel(X,Y):- is(X,Z),opredel(Z,Y). podbir(h_manager,m_manager). podbir(X,l_manager):- podbir(h_manager,X), is(X,manager). podbir(X,Y):- is(X,Z),podbir(Z,Y). podbir(X,Y):- is(Y,Z),podbir(X,Z). planir(X,work):- opredel(Z,target), podbir(Z,X),Z=h_manager. organiz(X,Y):- planir(Z,Y), podbir(Z,X),Z=m_manager. vypol(X,Y):- have(X,ceh), planir(m_manager,Y), organiz(l_manager,Y). polych(X,premia):- vypol(X,work). vypl_is(X,Y):- polych(worker,Y), raspred(h_manager,X). obysl(X,Y):- raspred(l_manager,X), planir(m_manager,Y), organiz(l_manager,Y). Возможные запросы к БЗ Запрос: Что имеет Генеральный директор? Goal: have (dir, X). Ответ: – личный счет (X= account). высокий уровень управления (X= high_level). Фамилию, имя, отчество (X=fio). Табельный номер (X=tab_nomer). Запрос: Кто является менеджером низшего уровня? Goal:is(X,l_manager). Ответ: – мастер(X=master). – бригадир (X=brig). Запрос: Планирует кто, что? Goal:planir(X,Y). Ответ: менеджер среднего уровня, работу (X=m_manager,Y=work). начальник цеха, работу (X=nach_ceh,Y=work). начальник отдела, работу (X=nach_otd,Y=work). Запрос: Кто организует работу? Goal:organiz(X,work). Ответ: менеджер низшего уровня (X=m_manager). мастер (X=master). бригадир (X=brig). Запрос: кто распределяет что? Goal:raspred(X,Y). Ответ: менеджеры высшего уровня, прибыль (X=h_manager,Y=profit). менеджеры низшего уровня, производственное задание (X=l_manager,Y=proiz_zad). директор, прибыль (X=dir,Y=profit). главный технолог, прибыль (X=tech,Y=profit). главный конструктор, прибыль (X=cons,Y=profit). мастер, производственное задание (X=master,Y=proiz_zad). бригадир, производственное задание (X=brig,Y=proiz_zad).