Data Model
The following data model stores the relevant information that can be
in an IMS-LD file. The tables are the ones needed to store the interesting
part of the information from IMS-LD specification that we consider is
necessary in order to play the unit of learning correctly.
At present, the data model does not have into account the interaction
with the rest of the .LRN packages, because the tables needed for that
interaction will be defined in the development phase. Also, the tables might
change during the development phase, because we can find better ways to
structure the information, but the final data model, in our opinion, will
not be too different from the one presented here.
The complete data model is presented in an Entity-Relationship (ER)
diagram that is divided in three blocks, each one related to a level of the
IMS-LD specification. The tables of the .LRN model for supporting IMS-LD of
a level are not independent from the other levels, and the relationships of
the three diagrams have been represented. In the tables of the E-R diagrams
are presented only the primary keys and foreign keys. This is in order to
achieve clarity and simplicity because the diagram is too big. Nevertheless,
all the fields of the proposed diagram are presented and explained next,
divided by the three levels of IMS-LD.
Next, each table of the data model is described divided in the three
levels of the IMS-LD specification
IMPORTANT NOTE: The present Data Model will be normalize in the near
time in order to improve its understanding.
Level A
imsld_imslds: This table is used to store all the units of
learning. This is the high level in the hierarchy. Each IMS-LD file
loaded in .LRN will generate an entrance in this table. This table
contains all the different units of learning. Each unit of learning
will contain global information and also references to other tables
for having all the required information of a unit of learning
imsld_id - identifier
version - version number
uri - uri of the imsld
level - A, B or C. It is the level of the IMS-LD file that
arrive
sequence_p - sequence used, true or false. True means
simple sequencing is being used. Defaults to false
learning_objective_id - references
imsld_learning_objectives
title
method_id - references imsld_methods
prerequisite_id - references imsld_itemmodel
component_id - references imsld_components
complete_unit_of_learning_id - references
complete_unit_of_learning
imsld_complete_unit_of_learning. This tables describes the
actions to do when a unit of learning is completed
complete_unit_of_learning_id
when_property_value_is_set_id ** - references
imsld_when_property_value_is_set
imsld_prerequisites. It has all the prerequisites of a unit of
learning. These are the previous knolowdges that are required for
doing the unit of learning
prerequisite_id
prerequisite_item - references imsld_items
imsld_components: Used to store all the components of the
IMS-LD
component_id
role_id - references imsld_roles
activity_id - references imsld_activities
environment_id - references imsld_environments
property_id ** - references imsld_properties
imsld_roles. This table contains all the defined roles
role_id - references imsld_roles
role_types - references role_types_id
create_new_p - multopleoccurrences of this role may be
created during runtime?
match_n_persons - exclusively-in-roles,
not-exclusively
max_persons. Maximum number of persons for this
role
min_persons. Minimum number of persons for this
role
role_name. The name of the role
information_id - references imsld_items
role_parent_id. The parent role. This allows a hierarchy
of roles. The root of the hierarchy are learner and stuff, which
has not a parent role
imsld_activities. This table defines the three types of
activities in IMS-LD: learning activities, support activities and
structure activities. These three tables references to this
table
activity_id
activity_structure_id - references
imsld_activity_structures
imsld_learning_activities. This table stores all the learning
activities of IMS-LD
learning_activity_id - references imsld_activities
title
isvisible_p - initial visibility attribute. Initial value:
true
learning_objective_id - references
imsld_learning_objectives
prerequisite_id - references imsld_itemmodel
parameter_id - references imsld_parameters
activity_description_id - references imsld_items
complete_activity_id - references
complete_activities
on_completion_id ** - references
imsld_on_completions
imsld_complete_activities. This is a table where for each
entry is specified when an activity is considered completed
complete_activity_id
user_choice - the user specifies that this activity is
completed
time_limit - references imsld_time_limits. The activity is
completed when the time is completed
when_property_value_is_set_id ** - references
imsld_when_property_value_is_set
imsld_learning_activity_environments_map This table maps
learning activities with environments
learning_activity_id - references
imsld_learning_activities
environment_id - references imsld_environments
imsld_support_activities. This table stores all the support
activities of IMS-LD
support_activity_id - references imsld_activities
component_id - references imsld_components
isvisible_p - initial visibility attribute. Initial value:
true
title. The name of the support activity
activity_description_id - references imsld_items
complete_activity_id - references
imsld_complete_activities
on_completion_id - references imsld_on_completions
imsld_support_activity_roles_map. This table maps a support
role to an activity
support_activity_id - references
imsld_support_activities
role_id - references imsld_roles
imsld_support_activity_environments_map. This table maps
support activities with environments
support_activity_id - references
imsld_support_activities
environment_id - references imsld_environments
imsld_activity_structures. This table contains all the
activity structures of IMS-LD. Each entry is one activity
structure.
activity_structure_id - references imsld_activities
number_to_select - if not null, the activity structure is
completed when the number of activities completed equals the
number set
sort - possible values: as-is, visibility-order
structure_type - sequence or selection
title. The name of the activity structure
information_id - references imsld_items
imsld_activity_structure_choices
choice_id
learning_activity_id - references
imsld_learning_activities
support_activity_id - references
imsld_support_atcivities
unit_of_learning_id - references imsld_imslds
activity_structure_id - references
imsld_activity_structures
imsld_activity_structure_choices_map
activity_structure_id - references
imsld_activity_structures
choice_id - references
imsld_activity_structure_choices
imsld_activity_structure_environments_map
activity_structure_id - references
imsld_activity_structures
environment_id - references imsld_environments
imsld_environments
environment_id
imsld_environmnent_instances
environment_id - references imsld_environments
environmen_instance_id
title
imsld_environment_instance_choices
choice_id
learning_object_id - references
imsld_learning_objects
service_id - references imsld_services
environment_id - references imsld_environments
imsld_environment_instances_environment_instance_choices_map
choice_id - references
imsld_environment_instance_choices
environment_instance_id - references
imsld_environmnent_instances
imsld_learning_objects
learning_object_id
class
isvisible_p - the user decides when the activity is
completed?
parameter_id - references imsld_parameters
type - knowledge-object, tool-object, test-object, etc.
(learning resource type from the IEEE LTSC LOM)
item_sequence_id - references
ims_leanring_object_item_sequences
schema_sequence_id - references
ims_learning_object_schema_sequences
item_id - references imsld_items
environment_id - references imsld_environments
imsld_learning_object_item_sequences: First sequence of the
learning objects
sequence_id
title
ims_learning_object_schema_sequences: Second sequence of the
learning objects
sequence_id
schema
schemaversion
imsld_learning_object_item_sequence_items_map
sequence_id - references
imsld_learning_object_item_sequences
item_id - references imsld_items
imsld_parameters: Table for holding the parameter values. This
table will possible dissapear, depending if in the development phase
there is the need of storing more information about the
parameters
parameter_id
parameter_value
imsld_services. It contains all the services
service_id
class
identifier
isvisible_p
parameter_id
email_service - (send_mail) references
imsld_email_services
conference_service_id - references
imsld_conference_services
index_search_id - refernces
imsld_index_search_services
imsld_email_services. It describes all the email
services
email_id - references imsld_services
select - all-persons-in-role, persons-in-role
title
imsld_email_data
email_data_id
role_id - references imsld_roles
email_property_id - references imsld_properties **
username_property_id - references imsld_properties
**
imsld_email_service_email_data_map
email_id - references imsld_email_services
email_data_id - references imsld_email_data
imsld_conference_services
conference_id
conference_type - synchronous, asynchronous or
announcement
title
conference_manager_id - references imsld_roles
moderator_id - references imsld_roles
item_id - references imsld_items
imsld_conference_participants_or_observers_map
conference_id - references
imsld_conference_services
role_id - references imsld_roles
imsld_index_search_services
search_service_id
title
index_class - this element selects the calss to make the
index on
index_element - this element selects the element to make
the index on
index_type_of_element - type of element to index on
search - how a user can access the indexed entities
search_type - type of search facility that is expected at
runtime: free-text-search, index-with-reference,
index-without-reference
imsld_learning_objectives. This table contains all the
different objectives of the different unit of learning and
activities. Each entry of this table is a set of objectives. A set
of objectives is symbolized by an itemmodel_id
learning_objective_id
itemmodel_id - references imsld_itemmodels
imsld_methods
method_id
time_limit_id - references imsld_time_limits. If not null,
the method is completed when this time has been completed,
otherwise, the method is completed when all the plays mapped to
this method through the imsld_plays_to_complete_method are
completed
on_completion_id - references imsld_on_completions
condition_id ** - references imsld_conditions
imsld_plays_to_complete_method. It contains all the plays that
has a method. Each play can be selected in parallel by an user
during the delivering of a unit of learning
method_id
play_id
imsld_plays
play_id
isvisible_p - the user decides when the activity is
completed?
title
complete_play_id - references imsld_complete_play
on_completion_id - references imsld_on_completions
imsld_complete_play
complete_play_id
when_last_act_completed - references imsld_acts. The play
is completed when this act is completed
time_limit_id - references imsld_time_limits. The play is
completed when this time is completed
when_property_value_is_set_id * - references
imsld_when_property_value_is_set
imsld_method_plays_map
method_id - references imsld_methods
play_id - references imsld_plays
imsld_play_acts_map
play_id - references imsld_plays
act_id - references imsld_acts
imsld_acts
act_id
title
complete_act_id - references imsld_complete_acts
on_completion_id - references on_completion
when_condition_true ** - references
imsld_when_condition_true
imsld_complete_acts
complete_act_id
time_limit_id - references imsld_complete_acts. When not
null, the act is completed when this time has been completed,
otherwise, the act is completed until all role parts mapped to
this complete_act_id trhoug the imsld_act_role_parts are
completed
when_property_value_is_set_id ** - references
imsld_when_property_value_is_set
imsld_act_role_parts
complete_act_id - references imsld_acts
role_part_id - references imsld_part_id
imsld_act_role_parts_map
role_part_id - references imsld_role_parts
act_id - references imsld_acts
imsld_role_part_choices
choice_id
learning_activity_id - references
imsld_learning_activities
support_activity_id - references
imsld_support_activities
unit_of_learning_id - references imsld_imslds
activity_structure_id - references
imsld_activity_structures
environment_id - references imsld_environments
imsld_role_parts - mapping table between acts and roles
role_part_id
title
role_id - references imsld_roles
choice_id - references imsld_role_part_choices
imsld_on_completion
on_completion_id
feedback_description_id - references
imsld_itemmodels
change_property_value_id ** - references
imsld_change_property_value
notification_id - references imsld_notifications
***
imsld_itemmodels. This is a table that contains a text and an
id. In conjunction with the tables imsld_itemmodel and
imsld_itemmodel_items_map allow to associate several items to the
same itemmodel.
title
itemmodel_id
imsld_itemmodel_items_map
item_id - references imsld_items
itemmodel_id - references imsld_itemmodels
imsld_items. Items are used for multiple purposes in other
tables. For example it can describe objectives, prerequisites,
references to files, etc.
item_id
identifier. Unique identifier for the IMS-LD
identifierref. It references the IMS CP
isvisible_p.
parameter_id
title: A text that can represent a prerequisite, an
objective, the name of a file, etc.
parent_item - references imsld_items. An item can
reference to another item, which is a sub-item or child of the
one referencing it.
imsld_time_limits
time_limit_id
time_limit - amount of time in a specific format
property_id ** - references imsld_properties
Next, the tables necessary for Level A are draw in the
form of an E-R diagram
Level B
Level B extends the table email_data and add: username_property_id
and email_property_id (**) Next is shown the E-R diagram for these
tables
imsld_properties (add a reference to properties from
imsld_components and time_limits **)
property_id
imsld_loc_locpers_locrole_properties: Combined table for the
loc, locpers and locrole properties
property_id - references imsld_properties
title. The name of the property
datatype - references imsld_datatypes
initial_value
imsld_globpers_glob_property: Combined table for the glob and
globpers properties
property_id - references imsld_properties
global_definition_id - references
imsld_global_definitions
existing
imsld_global_definitions
property_id - references imsld_properties
uri
title
global_definition
datatype_id
initial_value
imsld_property_groups
property_group_id
property_id - references imsld_properties
title
imsld_group_property_choices
choice_id
property_id - references imsld_properties
proerty_group_id - references imsld_property_groups
imsld_restrictions
restriction_id
restriction_type - minExclusive, minInclusive, maxExclusive,
maxInclusive, totalDigits, fractionDigits, length, minLength,
maxLength, enumeration, whiteSpace, pattern
restriction
imsld_property_restrictions_map
restriction_id - references imsld_restrictions
property_id - references imsld_properties
imsld_datatypes
datatype_id
datatype - string, boolean, integer, uri, datetime, file,
real, tet, duration, other
imsld_when_property_value_is_set (add a reference to this table
from the tables: complete_activities, complete_act, complete_play and
complete_unit_of_learning **)
when_property_value_is_set_id
property_id - references imsld_properties
property_value_id - references property_values
imsld_property_values
property_value_id
langstring
calculate_id - references imsld_calculates
property_id - references imsld_properties
imsld_change_property_values: A reference to this table must be
added from the imsld_on_completion table in level A
change_property_value_id
property_id - references imsld_properties
property_value_id - references property_values
imsld_monitors
monitor_id
service_id - references imsld_services
monitor_choice_id - references imsld_monitor_choices
imsld_monitor_choices
choice_id
role_id - references imsld_roles
self - references imsld_roles
imsld_conditions: A reference to this table must be added from
the table imsld_methods in level A
condition_id
title
imsld_sequences
sequence_id
condition_id - references imsld_conditions
sequence_sort - to know how to evaluate the condition
if_id - references imsld_ifs
imsld_then_model
then_model_id
show_id - references imsld_show_hide
hide_id - references imsld_show_hide
change_property_value
imsld_ifs
if_id
expression_id - references imsld_expressions
true_thenmodel_id - 'then', evaluated if the expression is
true. References imsld_then_model
false_thenmodel_id - 'else', evaluated if the expression is
false. References imsld_then_model
imsld_expressions - table holding the expressions. Instead of
making a table for each type of expression, we store the
expression_type and according to that value we know what other
attributes in the table have to be stored in order to use them
expression_id
expression_type - is-member-of-role, is, is-not, and, or,
sum, subtract, multiply, divide, greater-than, less-than,
users-in-role, no-value, time-unit-of-learning-started,
datetime-activity-started, current-datetime, complete, not
expression_id - references imsld_expressions
calculate_id - references imsld_calculates
expression_one_id - references imsld_expressions
expression_two_id - references imsld_expressions
role_id - references imsld_roles
property_id - references imsld_properties
time_unit_of_learning_started
datetime_activity_started
current_datetime
imsld_calculates
calculate_id
right_operand - references imsld_operands
left_operand - references imsld_operands
imsld_operands
operand_id
property_id - references imsld_properties
property_value - references imsld_property_values
expression_id - references imsld_expressions
imsld_when_condition_true (add a reference from the
imsld_complete_acts table **)
when_condition_true_id
role_id - references imsld_roles
expression_id - references imsld_expressions
imsld_show_hide
show_hide_id
class
item_id - references imsld_items
environment_id - references imsld_environments
learning_activity_id - references
imsld_learning_activities
support_activity_id - references
imsld_support_activities
activity_structure_id - references
imsld_activity_structures
play_id - references imsld_plays
unit_of_learning_id - references imsld_imslds
imsld_global_elements
global_element_id
view_set_property_id - references view_set_properties
imsld_view_set_properties
view_set_property_id
type - view-property, view-property-group, set-property,
set-property-group
href
property_of - self or supporter-person
ref
view - value or title-value
max_transactions
transaction_type
notification_id - references imsld_notifications ***
Level C
Modify the imsld_email_data (***), add a reference to
imsld_notifications table from imsld_on_completion, imsld_thens and
imsld_view_set_properties table (***). Next is shown the E-R diagram that
adds Level C
imsld_notifications
notification_id
choice_id - references imsld_notifications_choice
subject
imsld_notification_emails_data_map
notification_id - references imsld_notifications
email_data_id - references imsld_email_data
imsld_notifications_choice
choice_id
learning_activity_id - references
imsld_learning_activities
support_activity_id - references
imsld_support_activities
Run Tables
The previous tables are referred to the IMS-LD specifications level
A, B and C. They have all the information necessary to map an XML
compliant IMS-LD document to the tables in the .LRN platform. But also,
for the ims-ld package to interact with real users, we need additional
tables. These new tables are necessary for the execution of the player
where the information is sequenced to the student. These tables are
described in this Section. Next is shown the E-R diagram for these
tables
imsld_party_roles_map. This table maps parties of a .LRN course
to the roles defined in the IMS-LD document. A party can be either a
user or a group. One party can belong to several roles.
party_id references parties
role_id references imsld_roles
imsld_parties_property_values_map. This table maps parties of a
.LRN course to the properties defined in the IMS-LD document. One
party can have several property values to establish. The properties
can be local or global.
party_id references parties
property_id references imsld_properties
property_value. This is the value of the property for the
party in a current moment. The value can change during the
delivering of the unit of learning
imsld_roles_property_values_map. This table maps roles of the
IMS-LD document to the properties of the IMS-LD document. One role can
have several property values to establish. The properties can only be
local.
roles_id references imsld_roles
property_id references imsld_properties
property_value. This is the value of the property for the
role in a current moment. The value can change during the
delivering of the unit of learning
imsld_property_values. This table stores the values of the
properties that are common for all the users of the the IMS-LD
document. There can be several property values to establish. The
properties can be local or global.
property_id references imsld_properties
property_value. This is the value of the property for the
role in a current moment. The value can change during the
delivering of the unit of learning
imsld_parties_activities_audit. This table stores all the .LRN
parties information about the IMS-LD delivering that is of interest.
related to activities At present we have defined only a little
information, but in the future this information may be expanded. Each
entry of the table has an activity that has been realized by a
party.
party_id references parties
activity_id references imsld_activity
delivering_order. It represents the order of visualization
of the activity in the sequence of activities
selected_p. It is true if the party select by himself the
activity. It is false if the activity was sequenced to the
party
start_time. The start time of the activity
end_time. The end time of the activity
done_p. It is true if the activity is complete
act_id references ismld_parties_acts_audit
imsld_parties_acts_audit. This table stores all the .LRN parties
information about the IMS-LD delivering that is of interest related to
acts. At present we have defined only a little information, but in the
future this information may be expanded. Each entry of the table has
an act that has been realized by a party.
party_id references parties
act_id references imsld_acts
start_time. The start time of the act
end_time. The end time of the activity
done_p. It is true if the act is complete
imsld_parties_plays_audit. This table stores all the .LRN
parties information about the IMS-LD delivering that is of interest
related to plays. At present we have defined only a little
information, but in the future this information may be expanded. Each
entry of the table has an act that has been realized by a
party.
party_id references parties
play_id references imsld_plays
start_time.The start time of the act
end_time. The end time of the activity
done_p. It is true if the act is complete