Fundamental Learning Objects

advertisement
Design of Fundamental Learning Objects for Interoperability and
Maximum Portability
R. Gabrielle Reed
01/26/2002
Contents
Design of Fundamental Learning Objects for Interoperability and Maximum Portability ............ 1
Contents ...................................................................................................................................... 1
Introduction ................................................................................................................................. 1
Scenario of a Teacher's Use of the Application to Prepare a Lesson.......................................... 2
Scenario for A Student Using A Constructed Capsule ............................................................... 2
Description of the Fundamental Learning Objects ..................................................................... 3
Functional Description of an Application to Generate the Fundamental Learning Objects
(FLOs) ......................................................................................................................................... 3
Use Cases for the Learning Objects Tool ................................................................................... 4
Architecture of Adaptive Teaching Fundamental Learning Objects .......................................... 6
Java Technology ......................................................................................................................... 6
Cocoon ........................................................................................................................................ 6
Current Applications/ Projects Using Similar Technology ........................................................ 6
Application Benefits in Comparison with Existing Systems ...................................................... 8
The need for age sensitive mind-tools, applications and educational resources......................... 8
Fundamental Learning Object to Implement a Speech-Narration Interface ............................... 9
Default XML Tags for the Metadata for the Fundamental Learning Object ............................ 10
Format for an Informative Fundamental Learning Object ........................................................ 10
Format for an Illustrative Fundamental Learning Object ......................................................... 11
Format for an Inquisitive Fundamental Learning Objects ........................................................ 12
Format for a Cognitive Fundamental Learning Objects ........................................................... 12
Format for an Interactive Fundamental Learning Objects ........................................................ 12
Format for an Instructive Fundamental Learning Objects ........................................................ 12
Format for a Collaborative Fundamental Learning Objects ..................................................... 12
References ................................................................................................................................. 12
Resources .................................................................................................................................. 12
Reusability and Open Source ................................................................................................ 12
XML processing.................................................................................................................... 12
Learning Object Model ......................................................................................................... 12
Web Based Environments ..................................................................................................... 12
Appendix A: An example of ADL SCORM XML SCORM Conformant Content - Details . 13
Appendix B: An example of An Interface Agent Template in JavaScript- BellCraft
Technologies ............................................................................................................................. 15
Introduction
Instructional materials currently stored in Internet repositories have benefits of sharability, but
these, by their design does not minimize the problems associated with hypertext multimedia
Instructional environments. This is due to the granularity of the material. Each one has its own
navigation, use instructions, links to outside of the environment, format and style. I recommend a
repository by content entities, referred to as Fundamental Learning objects, supported with
information to allow each to stand on its own, and allow the presentation to be designed by the
instructor. It will minimize the cognitive load, maximize usability by many students, including
those needing accommodations, provide consistency in navigational and format, and allow
instructors more control. By using Web technology that separates the content from the style and
format of the final document, gives us an opportunity to prepare content once, and be able to
generate the result using Learning Centered Design in the form of printed documents, web pages,
or interactive environments. This paper discusses the design of a tool that will aid instructors in
developing the fundamental Learning Objects. Based on the current research in educational
technology, templates for each type of information are discussed, with discussion of common
problems associated with that type of information. Attributes are recommended that should be
incorporated into the content to provide an effective learner centered environment. These may
be used as an aid in developing useful and effective entities.
Scenario of a Teacher's Use of the Application to Prepare a Lesson
An elementary school teacher wants to prepare an interesting experience to give some students a
second chance to learn a subject, in which they failed to do well. She thought that they may need
additional time to understand the material, or different approach to a subject. She does a web
search for illustrations, or activities that may help. She has some ideas for an activity for them to
do. She comes across a web-based game that involves the subject and she saves the URL for
later. She opens the application and enters the topic for the experience. She selects the objective
by the type of knowledge she wants them to develop. She selects age group, her preferred
teaching strategy, and keeps the style preferences. The application returns a labeled tree with a
proposed lesson architecture with generated default templates for each of the Fundamental
Learning objects as nodes. She adds, or deletes any of the nodes to fit what she wants. She saves
the tree structure. She selects each of the Nodes and completes the required information, and
leaves the optional information as defaults. She selects the informative nodes for the
Introduction and Summary/Wrap up and types in her introduction and summaries to the material
tailored to this experience. She selects the illustrative node to insert an URL to an example of a
similar situation to the one she is preparing them to do. She selects a Cognitive node and
specifies the URL to the web game, along with an introduction and instructions on what they
need to do. She previously had made a FLO that was an inquisitive node for a testing session for
her students, with a number of questions, hints, and possible answers, with feedback on each
wrong answer. She adds this existing node to the tree after the activity but before the Wrap up.
She can save at any time. To check it she selects the node on the tree with the particular topic
name. She presses the display button, and runs through the experience and confirms everything is
as she wants. She presses generate, and it produces a web directory for her to copy on a floppy to
the computer her students will use.
Scenario for A Student Using A Constructed Capsule
A student is given the assignment to go to the computer, open a browser and select a particular
web page. The webpage starts the Lesson that the teacher had prepared for her. The student is
directed to the informational display in the Introduction. She is directed to the illustrative
presentation, describing the main points of the illustration. The system presents some questions
based on the information and illustration to assess the level of understanding and help to clarify
cognition. The student responds to the inquiries. The student is then given instructions of
performing a task that uses the information. The progress is tracked through the cognitive
process, as the student performs the exercise. Affective checking is performed, and additional
help is provided if necessary. The student is given direction through the experience, and the
instructive module tracks the performance. An interface agent assists during the process by the
collaborative exercises or as the assistant to the learning exercise. Inquisitive module checks the
learning, by providing questions, options, answers, examples, and clarifying statements as
requested by the student. Wrap up provides information for further study, review, and what is
coming up next.
Description of the Fundamental Learning Objects
This table provides the name associated with each type of Fundamental Learning Object, and a
description of its use.
Learning Object
Function
Informative
Illustrative
Inquisitive
Cognitive/
multimedia
Interactive
Instructive/Peda
gogical
Collaborative
Description of typical learning assets
Contains descriptive information, abstracts, introductions, summaries, definitions,
reference material
Contains pictures, illustrations, tables, graphs, figures, examples, diagrams
Contains questions, type of question, selections, prompts, hints, examples,
solutions, evaluation, point values, total value,
Contains structure and help to use mind-tools, activities using additional
technology that is available on the system, web or downloaded as needed. This
includes video, sound files, Java applets, Flash, Shockwave activities that require
players or runtime environments as well as using client based applications
Contains graduated help scheme, activity with monitored progress, completing a
task
Interface Agent assisted activities as mentor. This will incorporate a number of
other objects.
Contains interactive with peer through chat, instructor by chat or email, Interface
Agent as peer or instructor
Functional Description of an Application to Generate the Fundamental Learning
Objects (FLOs)
This is similar to the Instruction Architect1 that has 4 phases of construction. These 4 phases
may be implemented using a tabbed panel with tabs of Components, Layout, Display, Save. I
have added the configuration, style and adaptive choice selection in navigation and sequencing,
as well.
1. Selects age range, interface, and purpose of the Fundamental Learning Object.
2. Search through the XML storage for information and type of object by keyword or topic.
View and Select the components desired. On the Components page there would be the New
Topic, Open Topic, along with the Search options.
3. Arrange components in an organized lesson structure by using a select and move with up and
down arrows, or select and click where it should go. Drag and drop is discouraged due to
recent findings in Human Computer Interaction research[ author(?), IEEE, HCI November
1
http://ia.usu.edu/app_user "The Instruction Architect" using SMETE database
2001]. On the Layout page would be the lesson structure and the list of selected components.
Each node of the lesson structure and listed item is clickable to open with the detail
information on the FLO.
4. Display the constructed lesson information and then edit any changes. The Display page has
a button to display and edit the generated pages. There would be options of display of the
lesson structure and the link to the generated pages. Edit option would allow them to edit on
the pages directly.
5. Generate and store the content of the lesson environment, save changed FLOs and
encapsulate in a LOM. The Save tab would have options to update FLO's, create new FLOs,
encapsulate into LOM, store LOM, store FLOs and store the lesson structure.
Use Cases for the Learning Objects Tool
User
Teacher/
Instructional Planner
Function
Setup Author information
Attributes
Provides Name,
contact information
Setup the Style
Preferences
Set up Affective
responses
Details
Create Fundamental
Learning Object (FLO)
informative
illustrative
inquisitive
cognitive
interactive
instructive
collaborative
Use FLO editor (FLOE)
Create Capsule as LOM
Selects Teaching
Strategies
Constructivist
Instructional Methods
Humanistic /Artistic
Selects Types of
Knowledge
Descriptive
Skill/ Procedure based
Cognitive / analytical
Experience Expanding
Selects Age Range
Below 6 (pre K and K)
6-7 ( early Elementary)
User
Function
Attributes
Edit Capsule
Generate LOM Capsule
Display Capsule
Create Fundamental
Learning Object Tree
(FLOT)
Modify FLOT Nodes
Store FLOT
Send LOM to Repository
Age range, keyword,
topic, FLO type
Search Repository
Age range, keyword,
topic, FLO type
Select Default FLOT
User
Student
Function
Setup student information
Select Capsule
Display Capsule
Select item on the Tree
Display information
Display illustration
Answer questions
Perform exercise or activity
Administration
Sets up users
Provides data on usage
Logs teacher activity
Logs student activity
Repository
Receives LOM
Retrieves LOM
Back ups DataBase
Function members
Provides Name,
contact information
Setup the Style
Preferences
Details
8-10 (late Elementary)
11-13 (Middle/ Jr
High)
Over 13 (High)
Architecture of Adaptive Teaching Fundamental Learning Objects
Software languages are selected in the hope of producing maximum portability, and usability to
learning objects for web based learning environments.
The FLO Application or webpage, displays, edits and generates XML pages describing the
Fundamental Learning Objects (FLO), using Cocoon to run Java XML tranformers, SAX for
communication , and DOM Servlet or by soap commands, displayable in a browser.
The FLO Application or webpage collects, organizes, displays the FLOs and generates a learning
environment viewable in the browser, and stores the XML LOM Standard Model in a searchable
repository, with accessibility using XSL, soap, Java, Java Servlet and/ or Java Script
Java Technology
Java XML - Servlets are used to provide the administrative aspects, search and retrieval from the
repository, and the lesson generation.
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e_draft/anatomy20
.html and http://java.sun.com/blueprints/guidelines/WS_article.html. The tutorial on Servlets is
at http://java.sun.com/docs/books/tutorial/servlets/TOC.html.
These are used in constructing xml pages, parsing existing pages, and storing them as Documents
in a tree structure that may be modified and updated easily.
Java XML API including SAX, DOM or JDOM, XSLT transformers tutorial is provided at
http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/TOC.html
Cocoon
Apache Cocoon is an XML publishing framework using XML and XSLT technologies for server
applications. Using primarily SAX processing, Cocoon separates the concerns between content,
logic and style. A centralized configuration system and caching is designed in the XML server
applications. Cocoon interacts with most data sources, including: filesystems, RDBMS, LDAP,
native XML databases, and network-based data sources. Transformers are able to adapt content
to formats such as HTML, WML, PDF, SVG, or RTF. Cocoon currently runs as a Servlet or
from a command line interface. Extensible Server Pages (XSP) and the Action framework may
be used for any logic to specify resources and services for Cocoon to perform.
Current Applications/ Projects Using Similar Technology
IMS Project 2 uses the Learning Object Model
(LOM) XML editor in Java and VB provides
wrappers for the Learning Object (LO) but provides
no assistance to a non technical user interested in
composing high quality educational experiences.
ADL 3 Project uses Sharable Content Objects
SCORM as a part of a Run-Time Learning
Environment that also includes administrative
functions. The adjacent figure is the Manifest design
Package
Interchange File
Manifest File
2
3
www.IMSproject.org
www.adlnet.org
Manifest
Meta-data
Organizations
Resources
(sub)Manifest(s)
Physical Files
(The actual Content, Media,
Assessment, Collaboration
And other files)
of educational content. 4 The content is wrapped into Manifests that are used in an Instructional
Management Runtime environment. Manifests describe and contain Assets, which are arranged
as a learning experience. Assets are free formed without structure. It does address Navigation
and sequencing and includes status to each SCO with a lesson_status with values of passed,
completed, browsed, failed, not attempted, or incomplete.
A Manifest can describe part of a course that can stand by itself outside of the context of a course
(an “instructional object”), an entire course, or a collection of courses. It is left up to content
developers to describe their content in the way they want it to be considered for aggregation or
disaggregation. The general rule is that a package always contains a single top-level Manifest
that may contain one or more sub-manifests. The top-level Manifest always describes the
package. Any nested sub-manifests describe the content at the level at which the sub-manifest is
scoped, such as: course, “instructional object”, or other.[SCORM]5
SCORM 6 incorporated the LOM standards along with the Dublin Core Group, and other
elements needed for Department of Defense educational uses. It incorporates descriptive, taskoriented materials, and templates for use to prepare environments that teach this type of
knowledge. This has software to edit Learning Objects, but they do not limit the resolution of the
Learning Object, and so useable smaller blocks are not usable separately from the remaining
object not readily reused or incorporated into another's learning materials.
SCORM sample XML is included as Appendix A.
Another problem is highlighted in the LOM is the resolution of the age groups to three divisions,
elementary, middle and high. This does not take into consideration the different stages of
development. Material appropriate for a Kindergartner is not for a 5th grader and vice versa.
Instructional Architect 7 uses LOM objects from the Science, Mathematics, and Engineering
database at SMETE.org. It provides a web environment that searches, assembles, displays and
generated web pages that use Learning Objects, but this is appropriate for experience expanding,
using the large, sometimes cumbersome, complicated objects currently in the database for a
limited number of disciplines.
COSE8 is a product for sale by Cambridge software that integrated learning objects into a course
with adaptive help and reusable components. It is written in Perl, Javascript and Java on web
servers. It was designed at Staffordshire University, with an on-line demo at
http://www.camsp.com/COSE/livedemo/index.html.
Research with Cocoon was performed by Mark Redmond at the Dublin City University School
of Computer Applications on Developing a site for other than education using Apache's Cocoon
Web Publishing Framework at http://www.compapp.dcu.ie/Projects/proj2001.htm . The Cocoon
Web Publishing Framework, part of the Apache XML project, features the generation of multiple
4
SCORM_1.2CAM.doc downloaded from ADL http://www.adlnet.org/Scorm/downloads.cfm#spec
SCORM_1.2CAM.doc
6
http://www.scorm.org
7
http://ia.usu.edu/app-user using www.smete.org database for science, mathematics and engineering LOM
8
http://www.camsp.com/COSE/
5
file types from a single XML document and the complete separation of content from logic and
presentation. In the project the content of the website being developed (an online record shop) is
represented by well-formed XML documents and rendered into different types (dependant on the
viewing browser) by XSL Transformation. XSP Pages, unique to the Cocoon framework, are
XML documents which contain the programming logic (i. e. the Java code) embedded within
XSP tags, allowing clean division and meaning that changes can be made to presentation without
effecting content or logic.
Application Benefits in Comparison with Existing Systems
 It is hard to remember all the attributes of quality educational material. The templates serve
as a reminder.
 With the topic divided into fundamental functional components, a few may be completed at
any one time and saved, to be completed at a later time.
 FLO are saved as separate objects, so already existing FLOs may be added to a Document
Object Model (DOM) tree.
 The FLO can be transformed into a printable version using PDF and an HTML page as well.
There is not a one to one correspondence of XML FLO to an HTML page, but they can be
inserted at any location, to "expand the page". This may reduce the disorientation that may
come about in web experience.
 The created FLOs, and the FLO Trees may be stored as a LOM and shared with others by
placing it in a repository of objects that may be searched and incorporated into additional
lessons.
 With access to a machine that has limited capacity, a quality lesson may still be provided.
 Exercises can be incorporated within a structured learning environment that initiate the use of
mind tools, and other software packages available to the student. An example of this is if the
student is asked to compose something, Notepad may be opened with a starting document
that contains the instructions or a template for the exercise already, which appears in the text
area. On a Windows machine, an agent using the shell command "notepad
c:\temp\exerciseInstruction.txt". The learning environment can also invoke the Calculator,
Excel or any other software on the user system. The selection of appropriate software to be
used would be dependent of the age group with simpler applications used by early
elementary, and more complex tools used as they get older.
 A search on a LOM repository can provide a teacher with new ideas and enable her to take
advantage of the work of others.
 A search of web pages by age group, keyword, topic, or type of FLO will pull current stored
information.
 FLO objects may be made using resources discovered by web search for definitions,
encyclopedia references, images, illustrations, video, and sound files.
The need for age sensitive mind-tools, applications and educational resources
The applications available on the computers currently have too many options. It is true that a
general all-purpose machine may be useable, it may not be most effective in minimizing
cognitive load and distractions. Customizing an existing software package may be done, but is
not easily accomplished by teachers. A set of age dependent tools is needed for drawing,
composition, analysis, classification and sorting, calculations, and presentation. Open source
Java applications or applets may be used for this purpose. In the Windows environment,
templates (.dot) let you customize the Microsoft Office products by selection icons to use, but it
retains the full menu bar. The instructor uses the grade specific dot file in word, providing
instructions as a read only file. The student may enter their work there but it requires the student
to rename it.
Fundamental Learning Object to Implement a Speech-Narration Interface
Children's use of technology has been limited by their lack of understanding of the metaphors
that make up the basis of the keyboard, mouse, and the GUI interface. They have to be able to
selectively focus, determine the use of the images such a menus, buttons, and icons, read the
details, and perform this amongst the current clutter of information that does not pertain to the
child. This may be easily done, if an interface Agent gets their attention, and then points out the
things that they will need. Narration and conversation, as in classroom settings are effective, but
the instructor is limited by the size of the classroom. Moreno's research [Moreno 2001] on the
presence or absence of narration and animated interface agents demonstrate students have better
retention and an higher level of transference of knowledge with the presence of narration and the
animated interface. Therefore I consider the voice interface, with speech recognition and
narration, one of the most important and effective means of providing educational instruction
using technology to all persons lacking technological skills.
The use of voice synthesizers and speech recognition is operating system and hardware
dependent. Each of these needs to be specified within the learning object. Appendix B contains
the Java Template for a Microsoft Agent running on Windows with True Voice and the MS
speech recognition software.
This is also an option that may not be desired, i.e. if instructors want the students to "read". In
this case the option may be deactivated.
The following list the functionality of the Speech-Narration FLO:
 Equipment check
 Microphone Volume check
 Speaker Volume check
 Loading of the Voice Synthesis software, and /or wave files
 Loading of the Voice Command software.
 Selection of an Interface Agent
 Loading or downloading the Interface Agent
 Providing instruction in use of the voice interface
 Play animations
 Read dialog
 Replay option for any spoken part
 Voice Command Construction
An example of a FLO for the Microsoft Agent Peddy
<FLO name ="UniqueID" type = "Pedagogical">
< to be added as developed>
</FLO>
Default XML Tags for the Metadata for the Fundamental Learning Object
<FLO name ="UniqueID" type = "OneoftheTypes">
<metadata>
<author>AuthorName</author>
<createdate >
<timedate>createdate</timedate>
</createdate >
<reference>
<location type="URL"> http://www.GoodFreeStuff.org</location>
</reference>
<contactInfo>Author@local.edu</contactInfo>
</metadata>
<content>
<topic></topic>
<title></title>
<description></description>
<keywords></keywords>
</content>
</FLO>
Format for an Informative Fundamental Learning Object
<FLO name ="UniqueID" type = "informative">
<metadata>
<author>AuthorName</author>
<createdate >
<timedate>createdate</timedate>
</createdate >
<!-- type options are Website, Original Work, Literature, -->
<reference type="website">
<!-- type options are "URL", "text", "path/filename", "", -->
<location type="URL"> "http://www.GoodFreeStuff.org" </location>
<litref>
</liref>
</reference>
<contactInfo>Author@local.edu</contactInfo>
</metadata>
<!-- type options are Introduction, Summary, Abstract, Definition, Quote -->
<content type="Introduction" >
<topic></topic>
<title></title>
<description></description>
<keywords></keywords>
<!-- type options are "URL", "text", "path/filename", "", -->
<location type = "text"> This is the introduction to this informative fundamental
learning object.
</location>
</content>
</FLO>
Format for an Illustrative Fundamental Learning Object
<FLO name ="UniqueID" type = "illustrative">
<metadata>
<author>Author/IllustratorName</author>
<createdate >
<timedate>createdate</timedate>
</createdate >
<reference>
<location type="URL"> http://www.GoodFreeStuff.org</location>
</reference>
<contactInfo>Author/Illustrator@local.edu</contactInfo>
</metadata>
<!-- type options are Table, Illustration, Figure, Picture, Map, Image, Animation,
Paragraph, Photograph -->
<content type="Illustration" >
<topic></topic>
<title></title>
<description></description>
<keywords></keywords>
<!-- type options are "URL", "text", "path/filename", "", -->
<location type = "URL">http://www.locationoffreeImages.com</location>
<points name="1st">
</points>
<points name="2nd">
</points>
<points name="3rd">
</points>
</content>
</FLO>
Format for an Inquisitive Fundamental Learning Objects
Format for a Cognitive Fundamental Learning Objects
Format for an Interactive Fundamental Learning Objects
Format for an Instructive Fundamental Learning Objects
Format for a Collaborative Fundamental Learning Objects
References
Resources
Reusability and Open Source
reusability.org
OpenContent.org
XML processing
Tutorial
http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/overview/1_xml.html
Processing XML with SAX and DOM
http://www.ibiblio.org/xml/slides/OReillyJava2001/xmlandjava/
DTD for XML bindings
http://grouper.ieee.org/ltsc/gloforum/intro.htm
http://xml.apache.org/cocoon/
http://www.xml.org/xml/resources_focus_sax.shtml
http://www.xml.org/xml/resources_cover.shtml
Learning Object Model
www.multibook.de/lom/en/configEN.html
Web Based Environments
http://jakarta.apache.org/jetspeed/site/resources.html
http://xml.apache.org
http://java.apachee.org
Appendix A:
Details
Title:
Description:
Version:
Author:
Organization:
Download File:
An example of ADL SCORM XML SCORM Conformant Content Online Course Pack
Developed by: XanEdu, Contains single
course meta-data file.
SCORM 1.1
Jason Waack
XanEdu
XanEduInternetStrategySCORMV1_1.zip
14.79 k
http://www.xanedu.com/
<?xml version="1.0"?>
<!DOCTYPE RECORD SYSTEM "IMS-MD01.dtd" >
<!--Based upon content_metadata.txt-->
<record xmlns="http://www.imsproject.org/metadata/">
<metametadata>
<metadatascheme>
ADL SCORM 1.1
</metadatascheme>
</metametadata>
<general>
<title>
<langstring>Internet Strategy MiniPack</langstring>
</title>
<catalogentry>
<!--Ficticious catalog-->
<catalogue>XanEdu Sample SCORM Compliant MiniPacks</catalogue>
<entry>
<!--Using minipack title as unique ID-->
<langstring>Internet Strategy MiniPack</langstring>
</entry>
</catalogentry>
<language>en-US</language>
<description>
<!--Text from minipack introduction-->
<langstring>In this MiniPack, the student has available a broad range of articles from both industry and
business publications. The student can read how specific countries are addressing Internet strategy on a
region-wide basis (e.g., Japan). Another area of strategy is more industry/company - specific (e.g., Ethan Allen
Furniture, Kroger Grocery Stores). The articles also address general Internet strategy advice, such as the
establishment of an e-commerce platform. </langstring>
</description>
<keywords>
<langstring>Internet</langstring>
<langstring>eBusiness</langstring>
</keywords>
<aggregationlevel>
<!--collection of level1 resources, with an index page that links the pages together-->
2
</aggregationlevel>
</general>
<lifecycle>
<version>
<langstring>1.0</langstring>
</version>
<status>
<!--The original minipack is adopted, this a copy modified to be SCORM compliant-->
<langstring>Draft</langstring>
</status>
<contribute>
<role>
<langstring>Author</langstring>
</role>
<centity>
<vcard>
begin:vCard
fn:Bernadette Szajna
end:vCard
</vcard>
</centity>
<date>
<!--Ficticious author date-->
<datetime>20001-01-01</datetime>
<description>Adoption Date</description>
</date>
</contribute>
<contribute>
<role>
<langstring>Technical Implementer</langstring>
</role>
<centity>
<vcard>
begin:vCard
fn:Blair Reamy
end:vCard
</vcard>
</centity>
<date>
<!--SCORM modifications by developer-->
<datetime>20001-05-10</datetime>
<description>SCORM Modifications</description>
</date>
</contribute>
</lifecycle>
<technical>
<format>
<langstring>html</langstring>
</format>
<location type="URI">
http://xanedu1.xanedu.com/packs/00009800/00009898/pack00009898.html
</location>
</technical>
<educational>
<interactivitytype>
<langstring>Expositive</langstring>
</interactivitytype>
<learningcontext>
<langstring>Higher Education</langstring>
</learningcontext>
<description>
<langstring>Online CoursePack</langstring>
</description>
</educational>
<rights>
<cost>
<langstring>yes</langstring>
</cost>
<copyrightandotherrestrictions>
<langstring>yes</langstring>
</copyrightandotherrestrictions>
<description>
<langstring>Content is copyrighted, pack author/institution has rights also</langstring>
</description>
</rights>
<classification>
<purpose>
<langstring>Educational Objective</langstring>
</purpose>
<description>
<langstring>Course supplementary material(Course Pack)</langstring>
</description>
<keywords>
<langstring>Course Pack</langstring>
</keywords>
</classification>
</record>
Appendix B: An example of An Interface Agent
in JavaScript- BellCraft Technologies
{Rem}
_/ MASH - JavaScript Template (Single Character)
_/ Copyright 1998-2001, BellCraft Technologies
{/Rem}
<Object ID="AgentControl" Width=0 Height=0
ClassID="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"
CodeBase="#VERSION=2,0,0,0">
</Object>
<Object ID="L&HTruVoice" Width=0 Height=0
ClassID="CLSID:B8F2846E-CE36-11D0-AC83-00C04FD97575"
CodeBase="#VERSION=6,0,0,0">
</Object>
{SpeechRec}
<Object ID="MSSpeechRecognition" Width=0 Height=0
ClassID="CLSID:161FA781-A52C-11D0-8D7C-00A0C9034A7E"
CodeBase="#VERSION=4,0,0,0">
</Object>
{/SpeechRec}
<Script Language="JavaScript">
<!--//
// * Character Objects
#DIM_CHAR_OBJS
// * Variables
var UsedChars;
var %CharID%ID;
var %CharID%ACS;
{WebLoad}
var %CharID%URL;
var %CharID%States;
var %CharID%Animations;
var %CharID%Req;
var %CharID%StatesReq;
var %CharID%AnimationsReq;
{/WebLoad}
var %CharID%Loaded;
var LoadReq;
var HideReq;
#DIM_CHAR_XY
// * Initialize
UsedChars = #USED_CHARS;
#CHAR_INIT
Window_OnLoad();
Template function Window_OnLoad() {
// Purpose: Runs automatically when page is loaded
// * INSERT ANY NON-AGENT RELATED SCRIPTING HERE
AgentControl.Connected = true;
%CharID%Loaded = LoadLocalAgent(%CharID%ID, %CharID%ACS);
if (%CharID%Loaded) {
SetCharObj();
}
CheckLoadStatus();
}
function LoadLocalAgent(CharID, CharACS) {
// Purpose: Attempts to load the specified character
// Returns: true if successful, false if not
AgentControl.RaiseRequestErrors = false;
LoadReq = AgentControl.Characters.Load(CharID, CharACS);
AgentControl.RaiseRequestErrors = true;
if (LoadReq.Status != 1) {
return(true);
}
return(false);
}
function SetCharObj() {
// Purpose: Sets the character reference and TTS Language ID
#SET_CHAR_OBJ_CASE
}
function CheckLoadStatus() {
// Purpose: Determines if required characters have been
loaded.
//
If not, issue request to load next character
//
else run the AgentIntro routine
if (!%CharID%Loaded) {
{WebLoad}
window.status = "Loading " + %CharID%ID + " Character.
Please Wait...";
%CharID%Req = AgentControl.Characters.Load(%CharID%ID,
%CharID%URL);
return(false);
{/WebLoad}
{LocalOnly}
LoadError();
return(false);
{/LocalOnly}
}
window.status = "";
AgentIntro();
return(true);
}
function LoadError() {
var strMsg;
window.status = "";
strMsg = "Error Loading Character: " + %CharID%ID + "\n";
strMsg = strMsg + "This Microsoft Agent Script requires the
character(s):\n";
strMsg = strMsg + UsedChars;
alert(strMsg);
}
{ScreenPos}
function GetScreenPositions() {
var ScreenWidth = window.screen.width;
var ScreenHeight = window.screen.height;
if ((ScreenWidth == 0) || (ScreenHeight == 0)) {
ScreenWidth = 800;
ScreenHeight = 600;
}
#CHAR_SCREEN_POS
}
{/ScreenPos}
{GetTimeOfDay}
function GetTimeOfDay() {
// Purpose: Returns current time of day
var d = new Date();
var h = d.getHours();
if (h < 12)
return("Morning");
else if (h < 17)
return("Afternoon");
else
return("Evening");
}
{/GetTimeOfDay}
{Commands}
#SUB_INIT_COMMANDS
{/Commands}
function AgentIntro() {
{ScreenPos}
GetScreenPositions();
{/ScreenPos}
{Commands}
InitAgentCommands();
{/Commands}
// *** BEGIN Microsoft Agent Script
***
#USER_SCRIPT
// *** END Microsoft Agent Script ***
}
//-->
</Script>
<Script Language="JavaScript" For="AgentControl"
Event="RequestComplete(RequestObject)">
<!--//
// Purpose: Take action on completion or failure of requests
{WebLoad}
{
switch (RequestObject) {
case %CharID%Req :
if (RequestObject.Status == 0) {
SetCharObj();
if (%CharID%States != "") {
window.status = "Loading " + %CharID%ID + " States.
Please Wait...";
%CharID%StatesReq =
AgentControl.Characters(%CharID%ID).Get("State", %CharID%States,
true);
}
else if (%CharID%Animations != "") {
window.status = "Loading " + %CharID%ID + "
Animations. Please Wait...";
%CharID%AnimationsReq =
AgentControl.Characters(%CharID%ID).Get("Animation",
%CharID%Animations, true);
}
else {
%CharID%Loaded = true;
CheckLoadStatus();
}
}
else {
LoadError();
}
break;
case %CharID%StatesReq :
if (RequestObject.Status == 0) {
if (%CharID%Animations != "") {
window.status = "Loading " + %CharID%ID + "
Animations. Please Wait...";
%CharID%AnimationsReq =
AgentControl.Characters(%CharID%ID).Get("Animation",
%CharID%Animations, true);
}
else {
%CharID%Loaded = true;
CheckLoadStatus();
}
}
else
{
LoadError();
}
break;
case %CharID%AnimationsReq :
if (RequestObject.Status == 0)
{
%CharID%Loaded = true;
CheckLoadStatus();
}
else
{
LoadError();
}
break;
case HideReq :
AgentControl.Characters.Unload(%CharID%ID);
break;
} // end switch
}
else
{
// High Confidence
// *** BEGIN MASH USER COMMANDS ***
#COMMANDS_CASE
// *** END MASH USER COMMANDS ***
}
{/Commands}
//-->
</Script>
<Script Language="JavaScript" For="AgentControl"
Event="Bookmark(BookmarkID)">
<!--//
//-->
</Script>
<Script Language="JavaScript" For="AgentControl"
Event="Click(CharacterID, Button, Shift, X, Y)">
<!-// Insert Click Event Code Here
-->
</Script>
}
{/WebLoad}
<Script Language="JavaScript" For="AgentControl"
//-->
Event="DblClick(CharacterID, Button, Shift, X, Y)">
</Script>
<!-<Script Language="JavaScript" For="AgentControl"
// Purpose: Stop and Hide all characters on double-click
Event="Command(UserInput)">
<!--//
%CharID%.StopAll();
// Purpose: Determine Command that was selected either by menu
if (!%CharID%.HasOtherClients) {
or voice
if (%CharID%.Visible) {
//
and run the applicable Command Script
HideReq = %CharID%.Hide();
{Commands}
}
var BadConfidence;
else {
BadConfidence = 10;
AgentControl.Characters.Character.Unload(%CharID%ID);
}
if (UserInput.Confidence <= -40)
}
{
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
// Bad Recognition
/_/_/_/_/_/_/
}
//->
else if ((UserInput.Alt1Name != "") &&
</Script>
(Math.abs(Math.abs(UserInput.Alt1Confidence) Math.abs(UserInput.Confidence)) < BadConfidence))
{
// Bad Confidence - too close to another command
}
else if ((UserInput.Alt2Name != "") &&
(Math.abs(Math.abs(UserInput.Alt1Confidence) Math.abs(UserInput.Confidence)) < BadConfidence))
{
// Bad Confidence - too close to another command
Download