Annotation of doc/gutshtml/SessionThre1.html, revision 1.1
1.1 ! www 1: <html>
<head>
<meta name=Title
content="Session Three: Publication, Content Maps, Course Maps (Gerd)">
<meta http-equiv=Content-Type content="text/html; charset=macintosh">
<title>Session Three: Publication, Content Maps, Course Maps (Gerd)</title>
<style><!--
.Section1
{page:Section1;}
.Section2
{page:Section2;}
-->
</style>
</head>
<body bgcolor=#FFFFFF class="Normal" lang=EN-US>
<div class=Section1>
<h2>Session Three: Publication, Content Maps, Course Maps (Gerd)</h2>
<h3><a name="_Toc514840855"></a><a name="_Toc421867109">Publication of a Resource</a></h3>
<p>Authors can only write-access the<i> </i><span
style='font-family:"Courier New";font-style:normal'>/~</span><span
style='font-family:"Courier New"'><i>authorname</i></span><span
style='font-family:"Courier New"'>/</span> space. They can copy resources into
the resource area through the publication step, and move them back through
a recover step. Authors do not have direct write-access to their resource
space. </p>
<div class=Section9>
<div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
<p style='border:none;padding:0in'><span
style='font-size:14.0pt'><b>Construction space</b></span><span
style='font-size:14.0pt'> </span><span style='font-size:14.0pt;font-family:
Wingdings'>ˆ</span><span style='font-size:14.0pt'> Publication Step </span><span
style='font-size:14.0pt;font-family:Wingdings'>ˆ</span><span style='font-size:
14.0pt'> <b>Resource space</b></span></p>
<p style='border:none;padding:0in'><span style='font-size:14.0pt'> </span><span
style='font-size:14.0pt;font-family:Wingdings'>§</span><span style='font-size:
14.0pt'> Retrieve </span><span style='font-size:14.0pt;font-family:Wingdings'>§</span>
</p>
</div>
<p>During the publication step, several events will be triggered. Metadata
is gathered, where a wizard manages default entries on a hierarchical per-directory
base: The wizard imports the metadata (including access privileges and royalty
information) from the most recent published resource in the current directory,
and if that is not available, from the next directory above, etc. The Network
keeps all previous versions of a resource and makes them available by an
explicit version number, which is inserted between the file name and extension,
for example <span style='font-family:"Courier New"'>foo.2.html</span>, while
the most recent version does not carry a version number (<span
style='font-family:"Courier New"'>foo.html</span>). Servers subscribing to a changed
resource are notified that a new version is available.</p>
<h3><a name="_Toc514840857"></a><a name="_Toc421867110">Content Re-usage and
Granularity</a></h3>
<p>Any faculty participating in the Network can publish their own learning
resources into the common pool. To that end, the Network provides a Òconstruction
spaceÓ which is only accessible to the author, and a publication process,
which transfers the material to the shared pool Ð during the publication
process, metadata about the resource is gathered, and system-wide update
notification and versioning mechanisms are triggered..</p>
<p>Learning resources could be simple paragraphs of text, movies, applets,
individualizing homework problems, etc. In addition to providing a distributed
digital library with mechanisms to store and catalog these resources, the
Network enables faculty to combine and sequence these resources at several
levels: An instructor from Community College A could combine a text paragraph
from University B with a movie from College C and an online homework problem
from Publisher D, to form one page. Another instructor from High School
E can take that page from Community College A and combine it with other
pages into a module, unit or chapter. Those in turn can be combined into
whole coursepacks. Faculty can design their own curricula from existing
and newly created resources instead of having to buy into a complete off-the-shelf
product.</p>
<p><b>Fig. 2.3.1</b><span style='font-weight:normal'> shows a general overview
of the resource assembly mechanism and the different levels of content granularity
supported by the current implementation of this principle. The topmost puzzle
piece represents a resource at the fragment level Ð one GIF, one movie,
one paragraph of text, one problem, or one regular web page. Attached to
the resource is metadata gathered at the publication time of the resource.</span></p>
<p>Using the resource assembly tool described below, these fragments and pages
can be assembled into a page. A page is a resource of the grain size which
would be rendered as one page on the web and/or on the printer.</p>
<p>Using the same tool, fragments (which would then be rendered as standalone
pages), pages and sequences can be assembled into sequences. Sequences are
resources which are rendered a sequence of pages, not necessarily linear.
Examples are one lesson, one chapter, or one learning cycle</p>
<p>On the third granularity level, fragments (rendered as standalone pages),
pages, and sequences can be assembled into courses. Courses are a sequence
which represents the entirety of the resources belonging to a learning unit
into which learners can be enrolled. Examples are a University one-semester
course, a</p>
<p>workshop, or a High School class.</p>
<p align=center style='text-align:center'><img border=0
width=291 height=436 id="_x0000_i1029" src="handout_files/image005.png"></p>
<p><span style='font-size:14.0pt'><b>Fig. 2.1.1</b></span><span
style='font-size:14.0pt'> Ð Resource Assembly</span></p>
<h3><a name="_Toc514840858"></a><a name="_Toc421867111">Maps</a></h3>
<p>To increase the utility of the materials, the number of hard-coded hyperlinks
between the resources should be minimized. The actual combining and sequencing
is part of the system functionality and driven by external "roadmaps",
which are constructed by the instructors. With this mechanism, one and the
same resource can be part of different courses in different contexts. The
soft-linking makes it possible to import only the desired set of resources
without effectively importing additional parts another instructors resources
through hard-linked menus or "next page" buttons that might resided
on those resources.</p>
<h3><a name="_Toc514840859"></a><a name="_Toc421867112">Curriculum Adaptivity</a></h3>
<p>Maps allow for conditional choices and branching points. The actual path
through and presentation of the learning resources is determined by instructor-specified
combinations of learner choices and system-generated adaptations (for example,
if the learner does not pass a test, additional resources may be included).
Each learner can have an individualized curriculum according to preferences,
capabilities and skills.</p>
<p>These maps can be generated at different levels of granularity with a graphical
tool, or in an automated way through custom scripts.</p>
<h3><a name="_Toc514840860"></a><a name="_Toc421867113">Resource Assembly
Tool</a></h3>
<p>The Network provides the Resource Assembly Tool as one means to generate
maps. The Resource Assembly Tool provides a graphical user interface inside
of a standard web browser. The current implementation is written in JavaScript.
</p>
<p><b>Fig. 2.3.2</b><span style='font-weight:normal'> shows screenshots of
the current implementation. The interface usually consists of two browser
windows, one resizable one with a frameset that contains the menu and the
map under construction, and a multipurpose non-resizable window that displays
information and input forms.</span></p>
<p>When a new map is started, it only has a start and a finish resources.
The author can then enlarge the map area and insert resources into it.</p>
<p>In <b>Fig. 2.3.2A</b><span style='font-weight:normal'>, the author is editing
information about a resource in the map after clicking on the box representing
the resource in the map. In the dialog, the author can enter a map-internal
title for the resource, which is displayed to the learners when navigating
the maps. In the same dialog, the author will specify the URL of the resource,
which can either be internal to the Network, or any URL of a web page outside
of it. For internal resources, the author can also browse the Network filesystem
or search the resource metadata to locate an appropriate resource.</span></p>
<p><span style='font-size:14.0pt'><b><img border=0 width=431
height=327 id="_x0000_i1030" src="handout_files/image006.jpg">Fig. 2.3.2A</b></span><span
style='font-size:14.0pt'> Ð </span><span style='font-size:12.0pt'>Example, Graphical
User Interface of Resource Assembly Tool</span></p>
<p>The resource priority can be chosen. A resource can be Òregular,Ó ÒmandatoryÓ
or Òoptional.Ó These resource priorities are only used in book-keeping of
earned points by the learners. Within the map, resources of different priorities
are displayed in different colors.</p>
<p>The dialog also allows for two modes of removing the resource from the
map: deleting it from the map including every link to and from it, and deleting
it while reconnecting any links that went through the resource. As an example,
resources A and B might both connect to resource C, and resource C might
connect to D. When removing C from the map using the first option, A and
B will not be connected to D anymore. Using the second option, in the end,
A will connect to D, and B will connect to D. In the latter case, the Resource
Assembly tool will also handle link conditions correctly: if A connected
to C under condition 1, and C connected to D under condition 2, then in
the end A will connect to D under a new condition which is (1 AND 2).</p>
<p>Finally, this dialog allows the author to connect the resource to another
resource (or itself) through a new link. When selecting this option, the
Resource Assembly Tool goes into link mode, and will link the current resource
to the next resource clicked on (unless the action is cancelled).</p>
<p><img border=0 width=431 height=327 id="_x0000_i1031"
src="handout_files/image007.jpg"></p>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.2B</b></span><span
style='font-size:14.0pt'> Ð </span><span style='font-size:12.0pt'>Example, Graphical
User Interface of Resource Assembly Tool</span></p>
<p><b>Fig. 2.3.2B</b><span style='font-weight:normal'> shows the Resource
Assembly Tool in info mode, that is, when no specific component of the map
is edited, and if the Tool is not in link mode. In info mode, the contents
of the dialog window change dynamically as the mouse is moved over the components
of the map. In this case, the mouse pointer is over the link condition between
two resources. The dialog window shows the titles of the connected resources,
as well as the condition priority. In this scenario, the condition priority
is set such that the link cannot be taken (Òis blockedÓ) if the condition
is false. The condition priority can also be set such that the link is recommended
if the condition is true (possibly giving the learner several options where
to go next), or that the link has to be taken (Òis forcedÓ) over any other
possible link if the condition is true. Within the map, conditions of different
priorities are displayed in different colors. If the author now were to
click on the condition, the Tool would go into edit mode, and the condition
could be edited.</span></p>
<p><b>Fig. 2.3.2C</b><span style='font-weight:normal'> shows the Tool in edit
mode for the link between the resource titles displayed. The author can
remove the link, or insert a new resource into the link.</span></p>
<p>Obviously, by this mechanism, rather complex maps can be generated. These
are different from binary trees, both because branches can loop back, and
because branches can be re-united Ð in fact, most branches re-unite in the
finish resources. Into each link, a condition with one of three different
priorities can be attached. Whether or not a certain resource in the map
can be displayed depends on whether or not it can be reached through any
path along allowed links, starting with the start resource of the course.
If a resource is not linked to, it is assumed to be accessible if the map
which it is part of is accessible.</p>
<p><img border=0 width=431 height=327 id="_x0000_i1032"
src="handout_files/image008.jpg"></p>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.2C</b></span><span
style='font-size:14.0pt'> Ð </span><span style='font-size:12.0pt'>Example, Graphical
User Interface of Resource Assembly Tool </span></p>
<h3><a name="_Toc514840861"></a><a name="_Toc421867114">Map Representation
and Storage Format</a></h3>
<p><b>Fig. 2.3.3</b><span style='font-weight:normal'> shows the XML representation
of the resource map constructed in </span><b>Fig. 2.3.2</b><span
style='font-weight:normal'>, which is the format in which maps are stored. In
the figure, however, additional graphical map layout information generated
by the Resource Assembly Tool is not displayed. This graphical information
is optional to re-generate the same graphical layout when the map is brought
up again in the Resource Assembly Tool, and is not needed for any other
system functionality.</span></p>
<p>Maps can be generated by tools other than the Resource Assembly Tool. In
particular, an author might have some other representation of a course sequence,
which can be converted into a map using scripts. If this map then were to
be brought up in the Resource Assembly Tool, the Tool would automatically
generate a graphical layout for it. Each entry of the map (resources, conditions
and links) is stored in a separate tag. </p>
<p>Resources and conditions have to have unique ID numbers. These numbers
are automatically generated by the Resource Assembly Tool when the entry
is first created, or added to the entries when a map generated outside the
Resource Assembly Tool is first retrieved. They can also be assigned by
custom scripts or added in by hand.</p>
<p>In this example, <b>Fig. 2.3.3</b><span style='font-weight:
normal'>, entry 1 is the start resource of the map Ð when this map is accessed,
the source (src) URL of this tag will be the first resource rendered. Entry
2 is the finish resource of this map. This resource will be the last resource
in the sequence of resources. Entry 6 is a problem resource with the given
URL and title, as well as the priority ÒmandatoryÓ. Entry 19 is a condition,
which is used by the link between entries 6, the problem, and 9, a sequence.
<i>The final syntax for conditions has not yet been determined.</i></span></p>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=443 valign=top class="Normal">
<p class=Preformatted><span style='font-size:8.0pt'><map></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="1"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> src="/res/msu/korte/phy231welcome.html"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> type="start"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Start"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="2"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> src=""
type="finish" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Finish"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="6"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> src="/res/msu/korte/tests/units.problem"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> type="mandatory"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Physical
Units Test"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="9"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> src="/res/msu/korte/chapters/onedim.sequence"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Motion
in One Dimension"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="11"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> src="/res/msu/bauer/bridges/units.sequence"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Physical
Units Refresher"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="19"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> type="stop"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./res/msu/korte/tests/units.problem].status=solved"></span></p>
<p class=Preformatted><span style='font-size:8.0pt'> </condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="1"
to="6"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="6"
to="9" condition="19"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="6"
to="11"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="11"
to="6"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'></map></span></p>
</td>
</tr>
</table>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.3</b></span><span
style='font-size:14.0pt'> Ð XML representation of the map in Fig. 2.3.2C (non-graphical
information only).</span></p>
<h3><a name="_Toc514840866"></a><a name="_Toc514840862"></a><a
name="_Toc514920452"></a><a name="_Toc421867115">Example of Nested Maps</a></h3>
<p><b>Fig. 2.3.4 </b><span style='font-weight:normal'>shows the XML representation
of three maps which are imported into each other. </span><b>Fig. 2.3.4B</b><span style='font-weight:normal'>
is the sequence that is referenced as resource 9 in the course map </span><b>Fig.
2.3.4A</b><span
style='font-weight:normal'>. In the resulting map, the entry point of resource
9 in </span><b>Fig. 2.3.4A</b><span style='font-weight:normal'> is in fact
the entry point of the start resource of </span><b>Fig. 2.3.4B</b><span
style='font-weight:normal'>, namely, resource 1 there. The exit point of resource
9 in </span><b>Fig. 2.3.4A</b><span style='font-weight:normal'> is the exit
point of the finish resource of </span><b>Fig. 2.3.4B</b><span
style='font-weight:normal'>, namely, resource 2 there.</span></p>
<p><b>Fig. 2.3.4C</b><span style='font-weight:normal'> is the page which is
referenced as resource 24 in </span><b>Fig. 2.3.4B</b><span
style='font-weight:normal'>.</span></p>
<p>A course can easily contain several hundreds of these nested maps. Since
the accessibility of each individual resource in the course depends on the
state of all possible paths linking it to the start resource of the course
across all intermediate maps, the computation and disk-I/O effort per single
transaction could quickly become prohibitive. Thus, all maps and conditions
are compiled into a pre-processed binary data structure at the start of
a session.</p>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=442 valign=top class="Normal">
<p class=Preformatted><span style='font-size:8.0pt'><map></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="1"
src="" type="start" title="Start"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="2"
src="" type="finish" title="Finish"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="5"
src="/res/msu/korte/tests/pretest.problem" type="mandatory"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Pretest"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="9"
src="/res/msu/korte/parts/part1.sequence" type="mandatory"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Part
1"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="11"
src="/res/msu/korte/tests/midterm.sequence" type="mandatory"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Midterm"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="15"
src="/res/msu/korte/parts/part2.sequence" type="mandatory"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Part
2"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="19"
type="stop" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/korte/tests/pretest.problem].status=solved"></span></p>
<p class=Preformatted><span style='font-size:8.0pt'> </condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="20"
src="/res/msu/korte/refresh/refresher.sequence" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Refresher"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="29"
src="/res/msu/korte/tests/final.sequence" type="mandatory"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Final
Exam"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="30"
type="stop" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/korte/tests/midterm.sequence].percent>60"></span></p>
<p class=Preformatted><span style='font-size:8.0pt'> </condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="36"
src="/res/msu/korte/refresh/review.sequence"</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Review"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="43"
type="force" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/korte/tests/midterm.sequence].percent<10"></span></p>
<p class=Preformatted><span style='font-size:8.0pt'> </condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="58"
src="/res/msu/korte/chapters/applications.sequence" type="optional"
</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Applications"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="70"
type="stop" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/korte/tests/final.sequence].percent>60"></span></p>
<p class=Preformatted><span style='font-size:8.0pt'> </condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="1"
to="5"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="9"
to="11"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="11"
to="15" condition="30"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="5"
to="9" condition="19"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="5"
to="20"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="20"
to="5"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="11"
to="36" condition="43"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="36"
to="9"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="36"
to="11"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="15"
to="29"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="29"
to="2" condition="70"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="11"
to="11"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'></map></span></p>
</td>
</tr>
</table>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.4A</b></span><span
style='font-size:14.0pt'> Ð Example of a course map that has nested sequences</span></p>
<br clear=ALL
style='page-break-before:always'>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=442 valign=top class="Normal">
<p class=Preformatted><span style='font-size:8.0pt'><map></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="1"
src="" type="start" title="Start"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="2"
src="" type="finish" title="Finish"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="5"
src="/res/msu/korte/parts/part1intro.html" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> title="Part
1 Introduction"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="6"
src="/res/msu/korte/parts/part1dir.xml" title="Directions"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="12"
src="/res/msu/korte/tests/part11.problem" title="Problem
1"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="13"
src="/res/msu/korte/tests/part13.problem" title="Problem
3"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="19"
src="/res/msu/korte/tests/part12.problem" title="Problem
2"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="24"
src="/res/msu/korte/parts/summary.page" title="Summary"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="47"
type="stop"</span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/korte/tests/part11.problem].status=solved"></span></p>
<p class=Preformatted><span style='font-size:8.0pt'> </condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="48"
type="stop" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/korte/tests/part12.problem].status=solved"></span></p>
<p class=Preformatted><span style='font-size:8.0pt'> </condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="49"
type="stop" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/korte/tests/part13.problem].status=solved"></span></p>
<p class=Preformatted><span style='font-size:8.0pt'> </condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="5"
to="6"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="1"
to="5"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="6"
to="12"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="6"
to="13"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="6"
to="19"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="12"
to="24" condition="47"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="19"
to="24" condition="48"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="13"
to="24" condition="49"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="24"
to="2"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'></map></span></p>
</td>
</tr>
</table>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.4B</b></span><span
style='font-size:14.0pt'> Ð Example of a sequence (</span><span
style='font-size:14.0pt;font-family:"Courier New"'>part1.sequence</span><span
style='font-size:14.0pt'>) that has nested pages</span></p>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=443 valign=top class="Normal">
<p class=Preformatted><span style='font-size:8.0pt'><map></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="1"
src="" type="start" title="Start"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="2"
src="" type="finish" title="Finish"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="5"
src="/res/msu/smith/racecar.problem"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="6"
src="/res/msu/smith/toofast.html"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="8"
src="/res/msu/smith/tooslow.html"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><resource id="15"
src="/res/msu/smith/accelerate.html"></resource></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="40"
type="force" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/smith/racecar.problem].status=solved"></condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="41"
type="stop" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/smith/racecar.problem].answer=friction"></condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="42"
type="stop" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'> value="user.assessments[this./msu/smith/racecar.problem].answer=sliding"></condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><condition id="43"
type="stop" </span></p>
<p class=Preformatted><span style='font-size:8.0pt'>value="user.assessments[this./msu/smith/racecar.problem].answer=nonconstant"></condition></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="1"
to="5"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="5"
to="6" condition="41"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="5"
to="8" condition="42"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="5"
to="15" condition="43"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="6"
to="2"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="8"
to="2"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="15"
to="2"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'><link from="5"
to="2" condition="40"></link></span></p>
<p class=Preformatted><span style='font-size:8.0pt'></map></span></p>
</td>
</tr>
</table>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.4C</b></span><span
style='font-size:14.0pt'> Ð Example of a page (</span><span style='font-size:
14.0pt;font-family:"Courier New"'>summary.page</span><span style='font-size:
14.0pt'>)</span></p>
<br clear=ALL
style='page-break-before:always'>
<p><span style='font-size:14.0pt'><img border=0 width=432
height=456 id="_x0000_i1033" src="handout_files/image009.jpg"></span></p>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.5 Ð </b></span><span
style='font-size:14.0pt'>Flow chart of the course initialization routine run when
a learner first accesses a course during a session (see Figs. 2.1.6A and
2.1.8A for the procedures </span><span style='font-size:14.0pt;font-family:
"Courier New"'>loadmap</span><span style='font-size:14.0pt'> and </span><span
style='font-size:14.0pt;font-family:"Courier New"'>traceroute</span><span
style='font-size:14.0pt'>)</span></p>
<h3><a name="_Toc514840863"></a><a name="_Toc514920453"></a><a
name="_Toc421867116">Initialization of a Course for a Learner</a></h3>
<p>When a learner first enters a course during a session, the system will
initialize this course for the learner. In particular, at this point, the
course map and all nested (embedded) maps and resources are evaluated, and
the information is compiled into two binary structures, which are stored
with the session information: the resource properties hash, and the link
conditions array. This information will be used over the duration of the
session for several purposes: navigation (which resource is the next, which
one the previous?), for access control (can the resource be reached under
the link conditions given the current state of the student?), and to register
assessment results within the context of a certain course and map (there
might be several instances of the same problem resource within a course).</p>
<h3><a name="_Toc514840864"></a><a name="_Toc514920454"></a><a
name="_Toc421867117">Evaluation of the Map Structure for a Course</a></h3>
<p>The URL of the course is passed to the procedure <span
style='font-family:"Courier New"'>readmap</span> (<b>Fig. 2.3.5</b><span
style='font-weight:normal'>). Procedure </span><span style='font-family:"Courier New"'>readmap</span>
first initializes the resource properties as an empty hash, seeds the link
conditions array with a 0<sup>th</sup> element, which is set to ÒtrueÓ,
priority ÒnormalÓ, and sets the map counter to 0 (<b>Fig. 2.3.5, Step R1</b><span
style='font-weight:normal'>). While the resource properties hash, the link conditions
array and the map counter are global variable of the initialization process,
all other variables are local to the procedures (an important property for
these routines to run recursively). The procedure </span><span
style='font-family:"Courier New"'>readmap</span> then calls procedure <span
style='font-family:"Courier New"'>loadmap</span> for the URL of the course (<b>Fig.
2.3.5, Step R2</b><span style='font-weight:normal'>).</span></p>
<p><b>Figs. 2.1.6, 2.1.7</b><span style='font-weight:normal'> show a dump
of excerpts of the binary structure generated in </span><span
style='font-family:"Courier New"'>loadmap</span> for the nested maps of example
<b>Fig. 2.3.4</b><span style='font-weight:normal'>.</span></p>
<p>Procedure <span style='font-family:"Courier New"'>loadmap</span> (<b>Fig.
2.3.6A</b><span style='font-weight:normal'>) first checks if the map URL
has already been processed (multiple inclusion of the same map in a course
structure) (</span><b>Fig. 2.3.6A, Step L1</b><span style='font-weight:normal'>)
Ð if it was, it has been assigned a map counter value in the resource properties
hash. If the map has been processed, there is no need to process it again,
and </span><span style='font-family:"Courier New"'>loadmap</span> returns.</p>
<p>If the map has not been processed yet, the map counter is incremented and
the map is registered under the current value in the resource properties
hash (<b>Fig. 2.3.6A, Step L2</b><span style='font-weight:normal'>). The
file is then opened (</span><b>Fig. 2.3.6A, Step L3</b><span
style='font-weight:normal'>), which might entail prior replication, and the contents
are parsed. If there are no further entries, </span><span
style='font-family:"Courier New"'>loadmap</span> returns (<b>Fig. 2.3.6A, Step
L4</b><span style='font-weight:normal'>).</span></p>
<p>The new entry tag is then read (<b>Fig. 2.3.6A, Step L5</b><span
style='font-weight:normal'>) and the type is determined (</span><b>Fig. 2.3.6A,
Step L6</b><span style='font-weight:normal'>). </span></p>
<p>If the entry is a resource (<b>Step L7</b><span
style='font-weight:normal'>), a resource ID is formed by combining the map counter
and the resource ID within the map. For example, the ÒPart I IntroductionÓ
resource of part1.sequence (</span><b>Fig. 2.3.4B</b><span
style='font-weight:normal'>) was assigned the resource ID 2.5, since it has the
internal resource ID 5 in the 2<sup>nd</sup> map processed (see </span><b>Fig.
2.3.6B</b><span style='font-weight:normal'> under Òids_Ó). If the same URL
is found again, additional IDs are assigned to it. It is necessary to store
the IDs under the URL in the resource properties hash for reverse lookup
if a user simply requests a URL. If the resource is a start or finish resources,
the resource ID is registered as the start or finish resource of the map,
respectively (</span><b>Fig. 2.3.6B</b><span style='font-weight:normal'>,
Òmap_start_Ó, Òmap_finish_Ó). The properties of the resource (URL, Title,
Priority, etc) are now stored under the resource ID, see for example </span><b>Fig.
2.3.6B</b><span
style='font-weight:normal'> Òtitle_2.5Ó.</span></p>
<p>If the resource is not a map itself (<b>Fig. 2.3.6A</b><span
style='font-weight:normal'>, </span><b>Step L8</b><span style='font-weight:
normal'>), the next entry is read. Otherwise, procedure </span><span
style='font-family:"Courier New"'>loadmap </span>calls itself recursively to process
that map (<b>Step L9</b><span style='font-weight:normal'>).</span></p>
<p>If in <b>Step L6</b><span style='font-weight:normal'>, the type of the
entry was determined to be a condition, a condition ID is formed (</span><b>Step
L10</b><span style='font-weight:normal'>) by again combining the map counter
with the internal ID. The condition is also added to the end of the condition
array (see </span><b>Fig. 10</b><span style='font-weight:normal'>), which
is a compilation of all conditions in the course (</span><b>Step L11</b><span
style='font-weight:normal'>). The conditions in this array are evaluated when
a transaction occurs that could change the state of the student, and the
state of each condition is stored by the index number in the session environment.
A reference to the index number in the condition array is stored under the
condition ID (</span><b>Fig. 2.3.6D</b><span style='font-weight:normal'>,
Òcondid_Ó).</span></p>
<p>If the entry is a link (<b>Step L6</b><span
style='font-weight:normal'>), a link ID is generated (</span><b>Step L12</b><span
style='font-weight:normal'>). This ID is formed by combining the map counter and
another counter which is incremented for every new link within the map.
Under this ID, the IDs of the originating and the destination resource of
the link are stored, as well as that of the link condition (</span><b>Fig.
2.3.6D</b><span
style='font-weight:normal'>). For the originating resource, in </span><b>Step
L13 </b><span style='font-weight:normal'>the link ID is added to the list
of outgoing links (</span><b>Fig. 2.3.6C</b><span style='font-weight:normal'>,
Òto_Ó), and for the destination resource, the link ID is added to the list
of incoming links (</span><b>Fig. 2.3.6C</b><span style='font-weight:normal'>,
Òfrom_Ó).</span></p>
<p>After the last entry has been processed, procedure <span
style='font-family:"Courier New"'>loadmap</span> returns. After the last map has
been processed, the original course-level instance of <span
style='font-family:"Courier New"'>loadmap</span> returns to <span
style='font-family:"Courier New"'>readmap</span> (<b>Fig. 2.3.5</b><span
style='font-weight:normal'>, </span><b>Step R2</b><span style='font-weight:
normal'>).</span></p>
<p><img border=0 width=432 height=547 id="_x0000_i1034"
src="handout_files/image010.jpg"></p>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.6A</b></span><span
style='font-size:14.0pt'> Ð Flow chart of procedure </span><span
style='font-size:14.0pt;font-family:"Courier New"'>loadmap</span></p>
<br clear=ALL
style='page-break-before:always'>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=443 valign=top class="Normal">
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/chapters/applications.sequence:
1.58</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/parts/part1.sequence: 1.9</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/parts/part1dir.xml: 2.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/parts/part1intro.html: 2.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/parts/part2.sequence: 1.15</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/parts/summary.page: 2.24</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/refresh/refresher.sequence: 1.20</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/refresh/review.sequence: 1.36</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/tests/final.sequence: 1.29</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/tests/midterm.sequence: 1.11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/tests/part11.problem: 2.12</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/tests/part12.problem: 2.19</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/tests/part13.problem: 2.13</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/korte/tests/pretest.problem: 1.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/smith/accelerate.html: 3.15</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/smith/racecar.problem: 3.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/smith/toofast.html: 3.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>ids_/res/msu/smith/tooslow.html: 3.8</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>map_start_/res/msu/korte/foo.sequence: 1.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>map_start_/res/msu/korte/parts/part1.sequence: 2.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>map_start_/res/msu/korte/parts/summary.page: 3.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>map_finish_/res/msu/korte/foo.sequence: 1.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>map_finish_/res/msu/korte/parts/part1.sequence: 2.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>map_finish_/res/msu/korte/parts/summary.page: 3.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_1.11: Midterm</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_1.15: Part 2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_1.20: Refresher</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_1.29: Final Exam</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_1.36: Review</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_1.5: Pretest</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_1.58: Applications</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_1.9: Part 1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_2.12: Problem 1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_2.13: Problem 3</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_2.19: Problem 2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_2.24: Summary</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_2.5: Part 1 Introduction</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>title_2.6: Directions</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
</td>
</tr>
</table>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.6B</b></span><span
style='font-size:14.0pt'> Ð Dump of the resource properties hash. Excerpt of the
resource properties gathered in procedure </span><span style='font-size:
14.0pt;font-family:"Courier New"'>loadmap</span></p>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=443 valign=top class="Normal">
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_1.1: 1.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_1.11: 1.3,1.7,1.12</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_1.15: 1.10</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_1.20: 1.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_1.29: 1.11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_1.36: 1.8,1.9</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_1.5: 1.4,1.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_1.9: 1.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_2.1: 2.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_2.12: 2.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_2.13: 2.8</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_2.19: 2.7</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_2.24: 2.9</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_2.5: 2.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_2.6: 2.3,2.4,2.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_3.1: 3.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_3.15: 3.7</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_3.5: 3.2,3.3,3.4,3.8</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_3.6: 3.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>to_3.8: 3.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_1.11: 1.2,1.9,1.12</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_1.15: 1.3</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_1.2: 1.11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_1.20: 1.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_1.29: 1.10</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_1.36: 1.7</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_1.5: 1.1,1.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_1.9: 1.4,1.8</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_2.12: 2.3</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_2.13: 2.4</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_2.19: 2.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_2.2: 2.9</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_2.24: 2.6,2.7,2.8</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_2.5: 2.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_2.6: 2.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_3.15: 3.4</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_3.2: 3.5,3.6,3.7,3.8</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_3.5: 3.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_3.6: 3.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>from_3.8: 3.3</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
</td>
</tr>
</table>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.6C</b></span><span
style='font-size:14.0pt'> Ð Dump of the resource properties hash. Excerpt of information
gathered about links between resources in subroutine </span><span
style='font-size:14.0pt;font-family:"Courier New"'>loadmap</span><span
style='font-size:14.0pt'>.</span></p>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=148 valign=top class="Normal">
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.1: 1.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.10: 1.29</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.11: 1.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.12: 1.11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.2: 1.11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.3: 1.15</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.4: 1.9</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.5: 1.20</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.6: 1.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.7: 1.36</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.8: 1.9</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_1.9: 1.11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_2.1: 2.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_2.2: 2.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_2.3: 2.12</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_2.4: 2.13</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_2.5: 2.19</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_2.6: 2.24</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_2.7: 2.24</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_2.8: 2.24</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_2.9: 2.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_3.1: 3.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_3.2: 3.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_3.3: 3.8</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_3.4: 3.15</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_3.5: 3.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_3.6: 3.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_3.7: 3.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>goesto_3.8: 3.2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
</td>
<td width=148 valign=top class="Normal">
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.1: 1.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.10: 1.15</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.11: 1.29</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.12: 1.11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.2: 1.9</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.3: 1.11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.4: 1.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.5: 1.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.6: 1.20</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.7: 1.11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.8: 1.36</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_1.9: 1.36</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_2.1: 2.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_2.2: 2.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_2.3: 2.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_2.4: 2.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_2.5: 2.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_2.6: 2.12</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_2.7: 2.19</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_2.8: 2.13</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_2.9: 2.24</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_3.1: 3.1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_3.2: 3.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_3.3: 3.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_3.4: 3.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_3.5: 3.6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_3.6: 3.8</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_3.7: 3.15</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>comesfrom_3.8: 3.5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
</td>
<td width=148 valign=top class="Normal">
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.1: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.10: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.11: 1.70</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.12: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.2: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.3: 1.30</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.4: 1.19</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.5: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.6: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.7: 1.43</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.8: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_1.9: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_2.1: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_2.2: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_2.3: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_2.4: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_2.5: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_2.6: 2.47</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_2.7: 2.48</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_2.8: 2.49</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_2.9: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_3.1: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_3.2: 3.41</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_3.3: 3.42</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_3.4: 3.43</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_3.5: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_3.6: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_3.7: 0</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>undercond_3.8: 3.40</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_1.19: 8</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_1.30: 9</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_1.43: 10</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_1.70: 11</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_2.47: 5</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_2.48: 6</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_2.49: 7</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_3.40: 1</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_3.41: 2</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_3.42: 3</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'>condid_3.43: 4</span></p>
<p style='line-height:90%'><span style='font-size:8.0pt;
font-family:"Courier New"'><b>É</b></span></p>
</td>
</tr>
</table>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.6D</b></span><span
style='font-size:14.0pt'> Ð Dump of the resource properties hash. Excerpt of information
gathered about links and link conditions between resources in subroutine
</span><span style='font-size:14.0pt;font-family:"Courier New"'>loadmap</span><span
style='font-size:14.0pt'>.</span></p>
<span style='font-size:14.0pt;font-family:"Times New Roman"'><br clear=ALL
style='page-break-before:always'>
</span>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=443 valign=top class="Normal">
<p><span style='font-size:12.0pt'>0 : true:normal</span></p>
<p><span style='font-size:12.0pt'>1 : user.assessments[this./msu/smith/racecar.problem].status=solved:force</span></p>
<p><span style='font-size:12.0pt'>2 : user.assessments[this./msu/smith/racecar.problem].answer=friction:stop</span></p>
<p><span style='font-size:12.0pt'>3 : user.assessments[this./msu/smith/racecar.problem].answer=sliding:stop</span></p>
<p><span style='font-size:12.0pt'>4 : user.assessments[this./msu/smith/racecar.problem].answer=nonconstant:stop</span></p>
<p><span style='font-size:12.0pt'>5 : user.assessments[this./msu/korte/tests/part11.problem].status=solved:stop</span></p>
<p><span style='font-size:12.0pt'>6 : user.assessments[this./msu/korte/tests/part12.problem].status=solved:stop</span></p>
<p><span style='font-size:12.0pt'>7 : user.assessments[this./msu/korte/tests/part13.problem].status=solved:stop</span></p>
<p><span style='font-size:12.0pt'>8 : user.assessments[this./msu/korte/tests/pretest.problem].status=solved:stop</span></p>
<p><span style='font-size:12.0pt'>9 : user.assessments[this./msu/korte/tests/midterm.sequence].percent>60:stop</span></p>
<p><span style='font-size:12.0pt'>10 : user.assessments[this./msu/korte/tests/midterm.sequence].percent<10:force</span></p>
<p><span style='font-size:12.0pt'>11 : user.assessments[this./msu/korte/tests/final.sequence].percent>60:stop</span></p>
<p><span style='font-size:18.0pt'><b>É</b></span></p>
</td>
</tr>
</table>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.7</b></span><span
style='font-size:14.0pt'> Ð Excerpt of the dump of the condition array constructed
in procedure </span><span style='font-size:14.0pt;font-family:"Courier New"'>loadmap
</span><i>(the final syntax of conditions has not yet been determined)</i></p>
<h3><a name="_Toc514920455"></a><a name="_Toc421867118">Paths and Path Conditions</a></h3>
<p>The next mayor step will be to determine all possible paths and conditions
leading up to a resource for access control.</p>
<p><span style='font-family:"Courier New"'>readmap</span> checks if the course
has a start resource from its map_start entry in the resource properties
(Step R2), and if does not, continue to store the two global binary data
structures (<b>Steps R5,R6</b><span style='font-weight:normal'>) Ð in this
special case, all resources which are part of any maps in the course are
assumed to be accessible.</span></p>
<p>If the course has a start resource, <span style='font-family:
"Courier New"'>readmap</span> calls the procedure <span style='font-family:
"Courier New"'>traceroute</span> (<b>Fig. 2.3.8A</b><span style='font-weight:
normal'>) with the following parameters (</span><b>Step R4</b><span
style='font-weight:normal'>): The cumulative condition along this path or route
so far is set to ÒtrueÓ (the map is accessible); the resource ID of the
start resource of the course map; and an empty list for all resources processed
so far along this route. It is again important to note that all variables
except the global binary structures are local to </span><span style='font-family:"Courier New"'>traceroute</span>,
since <span style='font-family:"Courier New"'>traceroute</span> will recursively
call itself whenever there is a branching to follow all possible paths of
the maps.</p>
<p><span style='font-family:"Courier New"'>traceroute</span> will establish
a section within the resource properties hash that builds up all conditions
leading up to a resource. <b>Fig. 2.3.8B</b><span style='font-weight:
normal'> shows an excerpt of the final result. For example, resource 2.5, the
introduction to part 1, can be reached under condition 8 (see </span><b>Fig.
2.3.7</b><span style='font-weight:normal'>), meaning, after solving the
pretest problem.</span></p>
<p><span style='font-family:"Courier New"'>traceroute</span> first checks
if the resource has already been processed on this route by its resource
ID (<b>Fig. 2.3.8A</b><span style='font-weight:normal'>, </span><b>Step
T1</b><span style='font-weight:normal'>) Ð this test avoids that </span><span
style='font-family:"Courier New"'>traceroute</span> runs into endless loops when
the links on the map loop. Next, the resource ID is added to the list of
processed resources on this route (<b>Step T2</b><span style='font-weight:normal'>).</span></p>
<p>The resource conditions are now ORÕd with the cumulative conditions on
this route (<b>Step T3</b><span style='font-weight:normal'>) Ð the route
represents another way of getting to the resource. A small routine with
simplification rules for boolean expressions is called to simplify the potentially
very long expression.</span></p>
<p>In the next step, it is determined if the resource is itself a map (<b>Step
T4</b><span style='font-weight:normal'>). If it is, the exit route conditions
can differ from the entry route condition by all additional conditions along
the paths in the embedded maps (for non-map resources, entry and exit route
conditions are the same). If however the embedded map does not have a start
resource (</span><b>Step T5</b><span style='font-weight:normal'>), that
is not the case Ð again, the missing of entry point to an embedded link
structure is interpreted as the resources being openly accessible.</span></p>
<p>If the embedded map does have a start resource, <span
style='font-family:"Courier New"'>traceroute</span> is called recursively with
the current route conditions, the ID of the start resource of that map,
and the list of already processed resource IDs (<b>Step T6</b><span style='font-weight:
normal'>). Upon return, if the embedded map does not have a finish resource, the
entry and exit conditions of this map are assumed to be the same (</span><b>Step
T7</b><span style='font-weight:normal'>). If the map had a finish resource,
the route condition so far is set to the resource condition of the finish
resource of the embedded map (</span><b>Step T8</b><span style='font-weight:normal'>)
Ð in order go on from here, the user would have had to reach the finish
resource of the embedded map.</span></p>
<p>Now the route conditions are correctly set for exiting the resource and
going on from here. <span style='font-family:"Courier New"'>traceroute </span>now
loops over all outgoing links of the resource (<b>Step T9</b><span
style='font-weight:normal'>). If the link does have a link condition (</span><b>Step
T10</b><span style='font-weight:normal'>), then for this path, the cumulative
route condition so far AND the link condition (</span><b>Step T11</b><span
style='font-weight:normal'>). If there is no link condition, then there is no
change in route conditions (</span><b>Step T12</b><span style='font-weight:
normal'>).</span></p>
<p>To further process the routes along this link, <span
style='font-family:"Courier New"'>traceroute</span> is called recursively with
the resource ID of the destination resource of the link, the new route conditions,
and the list of already processed resources (<b>Step T13</b><span
style='font-weight:normal'>). </span><span style='font-family:"Courier New"'>traceroute</span>
returns after processing the last outgoing link of the resource it had been
called for.</p>
<p><b>Fig. 2.3.8B</b><span style='font-weight:normal'> shows part of the output
of </span><span style='font-family:"Courier New"'>traceroute</span> for
the example <b>Fig. 2.3.4</b><span style='font-weight:normal'>.</span></p>
<br clear=ALL
style='page-break-before:always'>
<p><span style='font-size:14.0pt'><img border=0 width=432
height=557 id="_x0000_i1035" src="handout_files/image011.jpg"></span></p>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.8A</b></span><span
style='font-size:14.0pt'> Ð Flow chart of procedure </span><span
style='font-size:14.0pt;font-family:"Courier New"'>traceroute</span></p>
<br clear=ALL
style='page-break-before:always'>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=443 valign=top class="Normal">
<p>conditions_1.1: 0</p>
<p>conditions_1.11:</p>
<p>(((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)|(8&6&2)|(8&6&3)|(8&6&4)|(8&6&1))</p>
<p>conditions_1.15:</p>
<p>((((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)|(8&6&2)|(8&6&3)|(8&6&4)|(8&6&1)))&9</p>
<p>conditions_1.2:</p>
<p>(((((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)|(8&6&2)|(8&6&3)|(8&6&4)|(8&6&1)))&9)&11</p>
<p>conditions_1.20: 0</p>
<p>conditions_1.29:</p>
<p>((((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)|(8&6&2)|(8&6&3)|(8&6&4)|(8&6&1)))&9</p>
<p>conditions_1.36:</p>
<p>((((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)|(8&6&2)|(8&6&3)|(8&6&4)|(8&6&1)))&10</p>
<p>conditions_1.5: 0</p>
<p>conditions_1.9: 8</p>
<p>conditions_2.1: 8</p>
<p>conditions_2.12: 8</p>
<p>conditions_2.13: 8</p>
<p>conditions_2.19: 8</p>
<p>conditions_2.2:</p>
<p>(((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)))|((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)|(8&6&2)|(8&6&3)|(8&6&4)|(8&6&1))</p>
<p>conditions_2.24: ((8&5)|(8&7)|(8&6))</p>
<p>conditions_2.5: 8</p>
<p>conditions_2.6: 8</p>
<p>conditions_3.1: ((8&5)|(8&7)|(8&6))</p>
<p>conditions_3.15: ((8&5&4)|(8&7&4)|(8&6&4))</p>
<p>conditions_3.2: ((8&5&2)|(8&5&3)|(8&5&4)|(8&5&1)|(8&7&2)|(8&7&3)|(8&7&4)|(8&7&1)|(8&6&2)|(8&6&3)|(8&6&4)|(8&6&1))</p>
<p>conditions_3.5: ((8&5)|(8&7)|(8&6))</p>
<p>conditions_3.6: ((8&5&2)|(8&7&2)|(8&6&2))</p>
<p>conditions_3.8: ((8&5&3)|(8&7&3)|(8&6&3))</p>
</td>
</tr>
</table>
<p><span style='font-size:14.0pt'><b>Fig. 2.3.8B Ð </b></span><span
style='font-size:14.0pt'>Dump of resource properties hash. Excerpt of cumulative
link conditions to reach a certain resource.</span></p>
<h3><a name="_Toc514840865"></a><a name="_Toc514920456"></a><a
name="_Toc421867119">Multivalued Boolean Evaluation of Link Priorities</a></h3>
<p>When a user accessed a resource on a map and desires to access the ÒnextÓ
resource, the request is processed by a number of steps. From the data examplified
in <b>Fig. 2.3.6C</b><span style='font-weight:normal'>, it is determined
which outgoing links exist. From the data in </span><b>Fig. 2.3.6D</b><span style='font-weight:normal'>
it is determined to which resources those links lead. For each of the resources,
the expressions in </span><b>Fig. 2.3.8A</b><span style='font-weight:normal'>
are evaluated as follows. Stored in the session environment is the evaluation
of the table </span><b>Fig. 10</b><span
style='font-weight:normal'>, where the boolean part is evaluated as Ò0Ó or Ò1Ó.
In addition, a multivalued boolean value is computed incorporating the condition
priority. A false blocking condition is assigned the value zero, all other
false conditions the value 1. A true forced condition is assigned the value
3, all other true conditions the value 2. </span></p>
<p>In the expressions <b>Fig. 2.3.8A</b><span style='font-weight:
normal'> an Ò&Ó (ÒANDÓ) is processed as the minimum (min) operation, a Ò|Ó
(ÒORÓ) is processed as the maximum (max) operation. The outcome Ò0Ó means
ÒblockedÓ, the outcome Ò1Ó mean Ònot recommendedÓ, the outcome Ò2Ó recommended,
and the outcome Ò3Ó forced.</span></p>
</div>
<p> </p>
</div>
<br
clear=ALL style='page-break-before:always;'>
<div class=Section2> </div>
</body>
</html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>