4.1.2 Список используемых ip-компонентов пользовательского интерфейса
Для разработки данной интеллектуальной справочной системы были использованы следующие ip-компоненты:
Окна scs-интерфейса
диалоговые scs-окна
Окно раздела справочной информации SRS
это srs-окно,
класс sheet
класс shell
атомарные системные интерфейсные команды:
main_menu
update_menu
reduce_menu
load_folder
load_scg
save_scg
build_srs
erase_set
open_gwf
change_colour
reduction
increase
select_all
modify_scg_el_content
modify_scg_el_type
modify_scg_el_name
erase_scg_countur
erase_scg_el
paste
copy
gen_srswindow
child_command
4.2 Проектирование интерфейсных подсистем
Интерфейсная подсистема является интеллектуальной системой, построенной по семантическим технологиям. Поэтому для каждой интерфейсной подсистемы проектируется своя база знаний и машина обработки знаний.
База знаний пользовательского интерфейса интеллектуальной справочной системы по МП включает в себя ключевые узлы интерфейсных команд (файл em_keynode), описание обработчиков интерфейсных команд(event.scsy), дерево событий(event.scsy).
Машина обработка знаний пользовательского интерфейса включает в себя следующие классы интерфейсных операций:
• рецепторные операции(пользователь-память)
• системные эффекторные операции(память-память)
• пользовательские эффекторные операции (память-пользователь)
Примером рецепторной операции является функция обработки нажатия кнопки, она осуществляет генерацию множества выходных параметров:
void pluginView::OnBnClickedButton2()
{
CComboBox *combo = new CComboBox();
combo = (CComboBox*)GetDlgItem(IDC_COMBO1);
CString str;
int index = combo->GetCurSel();
combo->GetLBText(index, str);
m_pSheet->sendMyEv("323322222222222221", str);//получить композиции с таким рейтингом
}
Примером системных эффекторных операций является операция ui_io_exec_command, которая генерирует результирующую sc-конструкцию интерфейсной операции для последующей её обработки:
///////////////////////////////////////////////////////////////////////////////
//
//
#include "scp_keynodes.scsy"
#include "../seb/planimetry.scsy"
#include "im_keynodes.scsy"
procedure(exec_command,
[[
"main window"= "/etc/im_keynode/main window";
ch_comm = "/etc/im_keynode/child_command";
$errors_found = /"Неверно заданы аргументы."/;
sheet_type = "/proc/agents/shell/keynode/SCgSheet";
layout =c= /"logical"/;
p_sheet_title =c= /"Результаты верификации"/;
1_, 2_;
]],
[{
notfound,main_wnd,show_set,comm,p2,s,cmd,
arc,a,arc2,
resultall,
command,
segment,scg_el,wnd,sheet,set_scg_el
}],
{[
1_: in_: set_scg_el,
2_: in_: sheet,
3_: in_: cmd
]}
)
genEl([
1_: assign_: node_:const_:resultall
])
searchElStr3([1_: fixed_: "main window",
2_: assign_: a,
3_: assign_: main_wnd],,notfound)
sys_get_location([1_: fixed_: main_wnd, 2_: assign_: segment])
sys_set_default_segment([1_: fixed_: segment])
genEl([
1_: assign_: node_:const_:command
])
genElStr3([
1_: fixed_: ch_comm,
2_: assign_: arc_:const_: pos_: arc,
3_: fixed_: command
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_:const_: pos_: a,
3_: fixed_: ch_comm
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_:const_: pos_: a,
3_: fixed_: command
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_:const_: pos_: a,
3_: fixed_: arc
])
///////////////////////////////////////////////
// создание параметров команды
//
// первый параметр
genElStr5([1_: fixed_: command,
2_: assign_: const_: actual_: pos_: temporary_: arc,
3_: fixed_: sheet,
4_: assign_: const_: actual_: pos_: temporary_: arc2,
5_: fixed_: 1_
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_:const_: pos_: a,
3_: fixed_: sheet
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_:const_: pos_: a,
3_: fixed_: 1_
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_:const_: pos_: a,
3_: fixed_: arc
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_:const_: pos_: a,
3_: fixed_: arc2
])
// генерация узла связки второго параметра команды
genElStr5([1_: fixed_: command,
2_: assign_: const_: actual_: pos_: temporary_: arc,
3_: assign_: const_: node_: p2,
4_: assign_: const_: actual_: pos_: temporary_: arc2,
5_: fixed_: 2_
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: p2
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: 2_
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: arc
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: arc2
])
// генерация второго параметра
genElStr5([1_: fixed_: p2,
2_: assign_: const_: actual_: pos_: temporary_: arc,
3_: assign_: const_: node_: s,
4_: assign_: const_: actual_: pos_: temporary_: arc2,
5_: fixed_: 1_
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: s
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: arc
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: arc2
])
// формируем дочернюю команду
genElStr5([1_: fixed_: cmd,
2_: assign_: const_: actual_: pos_: temporary_: arc,
3_: assign_: const_: node_: comm,
4_: assign_: const_: actual_: pos_: temporary_: arc2,
5_: fixed_: s
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: comm
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: arc
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: arc2
])
genElStr3([
1_: fixed_: s,
2_: assign_: arc_: const_: pos_: arc,
3_: fixed_: comm
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: arc
])
genElStr3([
1_: fixed_: s,
2_: assign_: arc_: const_: pos_: arc,
3_: fixed_: cmd
])
genElStr3([
1_: fixed_: resultall,
2_: assign_: arc_: const_: pos_: a,
3_: fixed_: arc
])
varAssign([1_:assign_:wnd,2_:fixed_:main_wnd],ok_msg,ok_msg)
// если произошла ошибочная ситуация
label(err_msg)
genElStr3([1_: fixed_:resultall,
2_: assign_: const_: temporary_: actual_: pos_: a,
3_: fixed_: $errors_found])
ui_sheet_create([ 1_: assign_: const_: node_: wnd,
2_: fixed_: sheet_type,
3_: fixed_: p_sheet_title,
4_: fixed_: layout])
printEl([1_: resultall])
// вывод результата
label(ok_msg)
ui_send([1_: fixed_: wnd, 2_: fixed_: resultall])
eraseEl([1_:fixed_: f_: resultall])
return()
end
Примером пользовательской эффекторной операции (память-пользователь) является функция setAlbumList, которая обрабатывает ключевой узел интерфейсной команды для отображения идентификаторов выходных параметров в элемент управления:
void pluginSheet::setAlbumList(sc_addr addr)
{
CArray<sc_string, sc_string&> albumList;
albumList.FreeExtra();
Shell* shell = Shell::getInstance();
sc_session* s = shell->getSession();
sc_iterator* it = s->create_iterator(sc_constraint_new(CONSTR_3_f_a_a, addr, 0, 0),true);
for(; !it->is_over(); it->next())
{
sc_addr album_addr = it->value(2);
sc_string str = s->get_idtf(album_addr);
albumList.Add(str);
}
m_pView->UpdateListBox2(albumList);
}
4.3 Верификация и отладка пользовательского интерфейса
Для реализации и тестирования базы данных использовался SRS Studio. Для написания кода операций использовал Notepad++, интерфейс реализован по средствам библиотек MFC на языке программирования С++, верификация и тестирование с помощью SRS Studio, Microsoft Visual Studio .NET 2003 и лога pm в командной строке.
... учащихся в музыкальной деятельности будет посвящен следующий раздел нашего исследования. Глава II. Теоретические и практические аспекты педагогических условий самореализации учащихся в музыкальной деятельности II.1 Педагогические условия самореализации учащихся в музыкальной деятельности Принимая во внимание факт значимости роли самого субъекта в протекании процессов "само" считаем ...
... : регуляции внимания, динамической организации движения, моторной активности, общего эмоционального фона организации деятельности и т.д. 3. Разработка МОДЕЛИ вариативной системы дошкольного образования в условиях города 3.1 Эффективность типа дошкольных образовательных учреждений Современное общество предъявляет новые требования к системе образования подрастающего поколения и, в том ...
... ". Принятый вскоре Закон РСФСР "О собственности в РСФСР" от 24 декабря 1990 г.4 наряду с повторением в п. 4 ст. 1, в сущности, той же мысли, в ч. 2 п. 4 ст. 2 дополнительно разъяснял, что "объектами интеллектуальной собственности являются произведения науки, литературы, искусства и других видов творческой деятельности в сфере производства, в том числе открытия, изобретения, рационализаторские ...
... : 05.01.06 г. – 15.01.06 г. - 22 - 1.2. Результаты оценки Ниже представлены результаты расчета рыночной стоимости оцениваемых объектов, полученные с применением двух основных методов оценки интеллектуальной собственности: по методу учета чистого дохода. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8300 долл. по методу освобождения от роялти. . . . . . . . . . . . . . . ...
0 комментариев