Автор работы: Пользователь скрыл имя, 06 Ноября 2012 в 18:59, дипломная работа
В образовательных бизнес-процессах создается и используется множество разнообразных информационных ресурсов, отличающихся по содержанию, характеру информации, ее знаковой природе и способу представления, объему, структуре, типу носителя, функциональности, исходному целевому назначению и другим атрибутам. Информационные ресурсы являются неотъемлемой составляющей любой информационно-образовательной среды.
Оглавление
1 Введение 4
1.1 Актуальность темы 4
1.2 Постановка задачи 5
2 Обзорно-аналитическая часть 6
2.1 Источники формирования структуры метаданных 6
2.2 Ссылочная модель совместно используемых объектов контента (SCORM) 6
2.3 Метаданные для информационных ресурсов сферы образования 10
2.3.1 Роль метаданных в систематизации информационных ресурсов 10
2.3.2 Развитие системы метаданных RUS_LOM 21
2.3.3 Структура информационной модели RUS_LOM 24
2.3.4 3.5. Словари и классификаторы 29
2.4 Формирование глобальных уникальных идентификаторов информационных ресурсов 31
2.4.1 Унифицированный идентификатор ресурса 32
2.4.2 Локализуемый идентификатор ресурса 33
2.4.3 Формат и алгоритмы генерации уникальных идентификаторов 34
2.5 Анализ роли метаданных в систематизации информационных ресурсов. 35
2.6 Анализ совместимости международных и российских моделей метаданных. 41
2.7 Профили метаданных 48
2.8 Дистрибутивные пакеты электронных информационных ресурсов 53
2.8.1 Потребность в унификации способов представления информационных ресурсов 53
2.8.2 Модель дистрибутивного пакета 58
2.8.3 Метаданные и манифест 59
2.8.4 Манифест дистрибутивного пакета, информационная модель 65
2.9 Средства автоматизации 68
2.9.1 Рубрикатор 68
2.9.2 Автоматизация заполнения свойств модулей 69
2.9.3 Использование справочников 71
2.9.4 Пакетная обработка модулей. 71
3 Охрана труда 72
3.1 Исследование возможных опасных и вредных факторов при эксплуатации ЭВМ и их влияния на пользователей 72
3.1.1 Введение 72
3.1.2 Выводы: 74
3.2 Анализ влияния опасных и вредных факторов на пользователя 74
3.2.1 Влияние электрического тока 74
3.2.2 Влияние статического электричества 75
3.2.3 Влияние электромагнитных излучений НЧ 75
3.2.4 Влияние ультрафиолетового излучения 76
3.2.5 Выводы 76
3.3 Методы и средства защиты пользователей от воздействия на них опасных и вредных факторов 77
3.3.1 Методы и средства защиты от ультрафиолетового излучения 77
3.3.2 Методы и средства защиты от электромагнитных полей низкой частоты 77
3.3.3 Методы и средства защиты от статического электричества 77
3.3.4 Общие рекомендации при работе с вычислительной техникой 78
3.3.5 Требования к помещениям и организации рабочих мест 78
3.3.6 Требования к организации работы 80
3.3.7 Выводы 81
4 Специальная часть 82
4.1 Инструментальные средства для формирования метаданных 82
4.2 Интерактивная панорама 84
5 Экспериментальная часть 85
5.1. Проверка работоспособности. 85
5.2.Устранение выявленных недостатков. 85
7 Выводы 86
8 Список литературы: 87
9 Приложения 93
9.1 Приложение 1. 93
9.2 Приложение 2. 116
В данной работе были решены следующие задачи:
- Разработана, протестирована и
внедрена система
- Собранна виртуальная
public static function Upload($dir, $local = 0, $from_temp = 1)
{
global $root;
if ($from_temp)
$dir = $root."temp/".$dir;
else
$dir = $root.$dir;
$manifest = new DOMDocument("1.0","utf-8");
if (@$manifest->load($dir."/META-
{
$xpath = new DOMXPath($manifest);
$xpath->registerNamespace("
//guid
$guid = "";
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$guid = iconv('UTF-8','CP1251',$node->
$sql = "SELECT id, folder, published, version FROM tbmodule WHERE guid = '%s'";
try
{
$db = new DataBase();
$rec = $db->query($sql, array($guid));
if ($rec->num_rows() == 1)
{
if (self::Validate($dir))
{
$id = $rec->record['id'];
$folder = $root."db/".$rec->record['
$isstd = self::isStdFolder($dir);
$catopenid = self::$dfv['catopenid'];
$levelid = self::$dfv['interactlevelid'];
if ($isstd)
{
#@_DelDir($folder."/MODELERS")
@_DelDir($folder."/DATA/scene"
@_DelDir($folder."/DATA/
@_CopyDir($dir."/DATA/scene", $folder."/DATA/scene");
@_CopyDir($dir."/DATA/
#@_CopyDir($dir."/MODELERS", $folder."/MODELERS");
//??!!!
//@copy($dir."/DATA/skin/
$levelid = self::calcInterLevel($folder, $catopenid);
}
else
{
@_DelDir($folder);
@_CopyDir($dir, $folder);
}
$datatypes = self::skanDataTypes($folder);
$version = "";
if ($rec->record['published'])
{
$v_arr = explode(".",$rec->record['
$v_arr[count($v_arr)-1] = (int)$v_arr[count($v_arr)-1] + 1;
$version = ", version = '".implode(".",$v_arr)."'";
}
if ($isstd)
{
$db->exec_query("UPDATE tbmodule SET isstd = '1', datatypes = '{$datatypes}', interactlevelid='{$levelid}', catopenid='{$catopenid}' {$version}
WHERE id = '{$id}'");
}
else
{
$db->exec_query("UPDATE tbmodule SET isstd = '0', datatypes = '{$datatypes}' {$version} WHERE id = '{$id}'");
}
if ($local != 1) _SetMessage("Модуль успешно загружен", 'message');
CLLog::log('module upload OK: '.$id);
return $id;
}
else
{
if ($local != 1) _SetMessage("Ошибка! Модуль не прошёл верификацию");
return false;
}
}
else
{
//module not registered what's next?
CLLog::log('module upload not registered: '.$dir);
if ($local != 1) _SetMessage("Ошибка! Модуль не зарегистрирован в системе");
return false;
}
}
catch (Exception $e)
{
CLLog::error('module upload db error: '.$e->getMessage());
if ($local != 1) _SetMessage("Ошибка доступа к БД");
return false;
}
}
else
{
CLLog::error('module upload manifest load failed: '.$dir);
if ($local != 1) _SetMessage("Ошибка! Не найден файл с метаданными");
return false;
}
}
private function metaGenerate($root, $tmpl, $dst)
{
/*
$guid
$fname
$name
$description
$keywords_str
$version
$date
$authors_str
$metalastupdate
$datatypes_str
$size
$cat_open
$type
$interact_level
$com_edu_level
$contact_time
$edu_level_id
$edu_level
$class
$discipline_str
$edu_purpose_str
$lcharacter*/
$manifest = new DOMDocument("1.0","utf-8");
if (@$manifest->load($root.$tmpl)
{
$xpath = new DOMXPath($manifest);
$xpath->registerNamespace("
//guid
$temp = $this->fields['guid']->
$value = iconv('CP1251','UTF-8',$temp);
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $value;
//catalogid
$this->mfolder = $this->makeFolderName();
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $this->mfolder;
//title
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
{
$node->nodeValue = iconv('CP1251','UTF-8',$this->
}
//description
$description = $this->fields['description']->
if (!$this->fields['description']
{
$title = $this->fields['name']->
$s = str_replace("\$title","{$
$description = $s;
}
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = iconv('CP1251','UTF-8',$
//keywords
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
{
$keywords = explode("\r\n",$this->fields['
foreach ($keywords as $keyword)
{
$key = $manifest->createElement("
$tmp = $manifest->createElement("
$tmp->nodeValue = iconv('CP1251','UTF-8',$
$atr = $manifest->createAttribute("
$atr->nodeValue = "ru";
$tmp->appendChild($atr);
$key->appendChild($tmp);
$node->appendChild($key);
}
}
//version
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $this->fields['version']->
//pubdate
$date = $this->fields['pubdate']->
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $date;
//author
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
{
$authors = $this->fields['author']->
foreach ($authors as $author)
{
#$sql = "select vCard from tbauthors where id = ".$author;
$sql = "select vCard from tboandp where id = ".$author;
$rec = $this->db->query($sql);
if ($rec->num_rows()==1)
{
$xml = "<contribute><role><source>
$xml .= iconv('CP1251','UTF-8',$rec->
$xml .= "</entity></contribute>";
$tmp = $manifest->
$tmp->appendXML($xml);
$node->parentNode->
}
}
$roles = $this->fields['roles']->
foreach ($roles as $r_id => $v_arr)
{
foreach ($v_arr as $v_id)
{
$sql = "select v.vCard, r.name, r.source from tboandp v, tblomroles r where v.id = '".$v_id."' AND r.id = '".$r_id."'";
$rec = $this->db->query($sql);
if ($rec->num_rows()==1)
{
$xml = "<contribute><role><source>".$
$xml .= iconv('CP1251','UTF-8',$rec->
$xml .= "</entity></contribute>";
$tmp = $manifest->
$tmp->appendXML($xml);
$node->parentNode->
}
}
}
}
//update
$date = $this->fields['update']->
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $date;
//metaupdate
$date = date('Y-m-d');
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $date;
//format
$list = $xpath->query("//lom:lom/lom:
$pnode = $list->item(0);
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
{
$formats = $this->fields['datatypes']->
$sql = "select id, mime from tbdatatypes";
try
{
$rec = $this->db->query($sql);
}
catch (Exception $e)
{
}
$n = $rec->num_rows();
for ($i=0; $i < $n; $i++)
{
if (array_search($rec->record['
{
$tmp = $manifest->createElement("
$tmp->nodeValue = $rec->record['mime'];
$pnode->insertBefore($tmp,$
}
$rec->next_record();
}
}
//fcior:opennesCategory
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
{
$sql = "select category from tbcatopen where id = ".$this->fields['catopenid']->
$rec = $this->db->query($sql);
$node->nodeValue = $rec->record[0];
}
//type
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
{
$sql = "select ltype from tbtypes where id = ".$this->fields['typeid']->
$rec = $this->db->query($sql);
$node->nodeValue = $rec->record[0];
}
//interactivitylevel
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
{
$sql = "select level from tbilevels where id = ".$this->fields['
$rec = $this->db->query($sql);
$node->nodeValue = $rec->record[0];
}
//education level
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
$lid = 0;
$level = "";
$clevel = "";
if ($node != null)
{
$sql = "select lid,level,clevel from tbedulevels where
id = ".$this->fields['edulevelid']-
try
{
$rec = $this->db->query($sql);
$clevel = $rec->record[2];
$lid = $rec->record[0];
$level = $rec->record[1];
}
catch (Exception $e)
{
}
$node->nodeValue = $clevel;
}
//contact_time
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
{
$node->nodeValue = "PT".$this->fields['
}
//edu_level_id
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $lid;
//edu_level
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = iconv('CP1251','UTF-8',$level)
//discipline
$discipline =iconv('CP1251','UTF-8',$this-
$fragment = $manifest->
$fragment->appendXML($
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->appendChild($fragment);
//class
if ($clevel == 'school')
{
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $this->fields['class']->
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $this->fields['class']->
}
else
{
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->parentNode->
}
//edu_purpose_str
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
$eid = "";
if ($node != null)
{
try
{
$sql = "select purpose,code from tbedupurpose where id = ".$this->fields['edupurposeid'
$rec = $this->db->query($sql);
$node->nodeValue = iconv('CP1251','UTF-8',$rec->
$eid = $rec->record[1];
}
catch (Exception $e)
{
}
}
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
$node->nodeValue = $eid;
//lcharacter
if (($this->fields['edulevelid']-
{
$list = $xpath->query("//lom:lom/lom:
$node = $list->item(0);
if ($node != null)
{
try
{
$sql = "select lcharacter from tblcharacter where id = ".$this->fields['
$rec = $this->db->query($sql);
$node->nodeValue = iconv('CP1251','UTF-8',$rec->
}
catch (Exception $e)
{
}
}
$list = $xpath->query("//lom:lom/lom: