Разработка системы автоматизации функций формирования SCORM совместимых метаданных для информационных ресурсов

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

Пояснительная записка к дипломной работе На тему- «Разработка си.doc

— 1.38 Мб (Скачать файл)

$node = $list->item(0);

if ($node != null)

$node->nodeValue = $this->fields['learningcharid']->getValue();

}

else

{

$list = $xpath->query("//lom:lom/lom:classification[lom:purpose[lom:value=\"learning character\"]]");

$node = $list->item(0);

if ($node != null)

$node->parentNode->removeChild($node);

}

 

//restrictions

$ograns = $this->fields['ogranid']->getValue();

if ($ograns !== '0')

{

$list = $xpath->query("//lom:lom/lom:classification[lom:purpose[lom:value=\"accessibility restrictions\"]]/lom:taxonPath");

$node = $list->item(0);

if ($node != null)

{

try

{

foreach ($ograns as $ogran)

{

$sql = "select name from tbogran where id = ".$ogran;

$rec = $this->db->query($sql);

if ($rec->num_rows()==1)

{

$xml = "<taxon><id>".$ogran."</id><entry><string language=\"ru\">";

$xml .= iconv('CP1251','UTF-8',$rec->record[0]);

$xml .= "</string></entry></taxon>";

$tmp = $manifest->createDocumentFragment();

$tmp->appendXML($xml);

$node->appendChild($tmp);

}

}

}

catch (Exception $e)

{

}

}

}

else

{

$list = $xpath->query("//lom:lom/lom:classification[lom:purpose[lom:value=\"accessibility restrictions\"]]");

$node = $list->item(0);

if ($node != null)

$node->parentNode->removeChild($node);

}

 

$folder = $dst;

 

$mname = $folder."/META-INF/manifest.xml";

$manifest->save($mname);

 

//size

$size = _ScanDir($folder,'size');

 

$slen = strlen($size);

$nsize = $size + $slen;

$nslen = strlen($nsize);

$size = $nsize + ($nslen - $slen) + 6;

 

$list = $xpath->query("//lom:lom/lom:technical/lom:size");

$node = $list->item(0);

if ($node != null)

$node->nodeValue = $size;

 

$manifest->save($mname);

}

else

{

CLLog::error('module manifest file load error' + $this->fields['id']->getValue());

}

}

 

private static function skanDataTypes($folder)

{

$def_mime = array("application/xml","image/jpeg","image/png","text/xml","text/javascript");

 

$types = array();

$allowed_ext = array();

try

{

$db = new DataBase();

$rec = $db->query("SELECT extension, mime, id FROM tbdatatypes");

for ($i = 0; $i<$rec->num_rows(); $i++)

{

$types[$rec->record[2]] = array();

$types[$rec->record[2]][0]=$rec->record[0];

$types[$rec->record[2]][1]=$rec->record[1];

$allowed_ext[] = $rec->record[0];

$rec->next_record();

}

}

catch (Exception $e)

{

return null;

}

 

$ret = @_ScanDir($folder,'mime',$allowed_ext);

 

foreach ($ret as $value)

{

foreach ($types as $mime)

{

if ($mime[0] == $value)

{

array_push($def_mime,$mime[1]);

break;

}

}

}

 

$def_mime = array_unique($def_mime);

 

    $s = "";

    foreach ($def_mime as $value)

    {

           foreach ($types as $_id => $mime)

           {

             if ($mime[1] == $value)

{

              if ($s != "")

               $s .= ";".$_id;

              else

              $s = $_id;

break;

}

           }

    }

 

    return $s;

}

 

private static function checkFileName(&$node, $fld)

{

$src = iconv('UTF-8','CP1251',$node->nodeValue); #src в формате \DATA\...

$src = str_replace("\\","/",$src);

$path_info = pathinfo($src);

$old_name = $fld.$src;

if (_Translit($path_info['basename'],$fname))

{

$new_name_to_xml = $path_info['dirname']."/".$fname;

$new_name_to_xml = str_replace("/","\\",$new_name_to_xml);

$new_name = $fld.$path_info['dirname']."/".$fname;

if (@rename($old_name,$new_name))

{

$node->nodeValue = $new_name_to_xml;

return true;

}

}

return false;

}

 

private static function stepsAnylyze($m_folder, $step_list)

{

$ret = array(1,1); //0 - interactlevel, 1 - catopenid

 

$db = new DataBase();

$db->exec_query("SET NAMES 'UTF8'");

 

try

{

$level_rec = $db->query("SELECT xpath, value FROM tbxpath WHERE type = '1'");

$copen_rec = $db->query("SELECT xpath, value FROM tbxpath WHERE type = '2'");

$src_rec = $db->query("SELECT xpath FROM tbxpath WHERE type = '3'");

}

catch (Exception $e)

{

return $ret;

}

 

$scene_folder = $m_folder."/DATA/scene/";

$comp_folder = $m_folder."/DATA/components/pict/";

$levels = array("II.1");

$catopenid = 1;

$files = array();

 

for ($i = 0; $i < $step_list->length; $i++)

{

$src = $step_list->item($i)->attributes->getNamedItem("src")->value;

$src = $scene_folder.$src;

 

if (($src != $scene_folder) && (file_exists($src)))

{

$need_save = false;

$step = @DOMDocument::load($src);

if ($step !== false)

{

$sxpath = new DOMXPath($step);

 

//interact level

$level_rec->_reset();

for ($j = 0; $j < $level_rec->num_rows(); $j++)

{

$list = @$sxpath->query($level_rec->record[0]);

if ($list->length !== 0)

{

$levels[] = $level_rec->record[1];

}

$level_rec->next_record();

}

//list of files

$src_rec->_reset();

for ($j = 0; $j < $src_rec->num_rows(); $j++)

{

$list = $sxpath->query($src_rec->record[0]);

for ($k = 0; $k < $list->length; $k++)

{

if ($list->item($k)->nodeValue != "")

{

$need_save = $need_save | self::checkFileName($list->item($k), $m_folder);

$files[] = mb_strtolower(str_replace("\\","/",$m_folder.$list->item($k)->nodeValue));

}

}

$src_rec->next_record();

}

//catopenid

if ($catopenid != 2)

{

$copen_rec->_reset();

for ($j = 0; $j < $copen_rec->num_rows(); $j++)

{

$list = @$sxpath->query($copen_rec->record[0]);

if ($list->length !== 0)

{

$catopenid = (int)$copen_rec->record[1];

if ($catopenid == 2) break;

}

$copen_rec->next_record();

}

}

if ($need_save)

{

$step->save($src);

}

}

}

}

//remove unhandled files

$all_files = @_ScanDir($comp_folder,'files');

$files_to_delete = array_diff($all_files,$files);

foreach ($files_to_delete as $file)

{

//TODO think about

//@unlink($file);

//_WriteLog("scaner: file to delete {$file}");

}

//calc interactivity level

$levels = array_unique($levels);

        $l2 = 0;

        $l3 = 0;

        foreach ($levels as $level)

        {

         if (strpos($level,"III.") !== false)

          $l3++;

         else if (strpos($level,"II.") !== false)

          $l2++;

        }

        if ($l3 >= 2)

         $ret[0] = 3;

        else if (($l2 >= 3) || (($l2 == 2) && ($l3 == 1)))

         $ret[0] = 2;

        else

         $ret[0] = 1;

 

$ret[1] = $catopenid;

 

return $ret;

}

 

    1. Приложение 2.

<?xml version = '1.0'?>

 

<lucid>

<viewer mouse="" bar="" tooltips="" toolpanel="" framerate="" quality="" keyboard=""/>

 

 

<scene file="kafedra_new.jpg" name="Аудитория  504" bar="false"  mouse="drag" adjust="0,-110,0" limits="90,-90" camera="0,0,3" play="false" next="false" loop="false" popup="" info="Аудитория 504 кафедры Информационно-коммуникационных технологий

главного здания Московского Государственного Института Электроники и Математики

Сайт кафедры: http://www.auditory.ru">

 

<object file="board.png" pan="-15" tilt="3" scale="0.45" text="Перейти  на сайт кафедры ИКТ" drag="false" glow="" blend="normal" stop="false,false,false" focus="false,false,false" scene="" link="http://auditory.ru,_blank" popover="" popclick="" camover="" camout="" camclick="" audio="" video="false,false,false" tween="" project="" fetch="false" video_action="" scene_action="" jump="" float="" panel=""/>

<object file="doska.png" fileover="" pan="9" tilt="2" alpha="1" scale="0.4" axis="0,0,345" rot="0,0,0" time="" text="Доска,13421772"/>

<object file="proektor2.png" fileover="" pan="-49" tilt="47" alpha="1" scale="1" axis="0,0,1023.5" rot="0,38.5,0" time="" text="Проектор,13421772"/>

<object file="60x40.png" fileover="" pan="-174" tilt="25" alpha="1" scale="0.5" axis="1,-2.5,345" rot="0,0,0" time="" text="Камера,13421772"/>

 

</scene>

 

</lucid>

 


Информация о работе Разработка системы автоматизации функций формирования SCORM совместимых метаданных для информационных ресурсов