Next, the tables necessary for Level A are draw in the form of an E-R diagram
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 a row 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, in order to represent completely the information represented by the unit of learning.
imsld_id - identifier
version - version number
level - A, B or C. It is the level of the IMS-LD file that arrive
sequence_used_p - sequence used, true or false. True means simple sequencing is being used. Defaults to false
learning_objective_itemmodel_id - references imsld_itemmodels and contains the objectives of the unit of learning
title
method_id - references imsld_methods
prerequisite_itemmodel_id - references imsld_itemmodels and contains the prerequisites for the unit of learning
component_id - references imsld_components
when_property_value_is_set** - references imsld_when_property_value_is_set. Treated with more detail in level B
imsld_components: Used to store all the components of the IMS-LD (which are: roles, acitivities and environments. The activities references this table)
component_id
role_id - references imsld_roles
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_type
create_new_p - multopleoccurrences of this role may be created during runtime?
match_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_itemmodel_id - references imsld_items
parent_role_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_learning_activities. This table stores all the learning activities of IMS-LD
learning_activity_id - references imsld_activities
title
component_id - references imsld_components
isvisible_p - initial visibility attribute. Initial value: true
learning_objective_itemmodel_id - references imsld_itemmodels
time_limit_id - references imsld_time_limits
prerequisite_itemmodel_id - references imsld_itemmodels
parameter_value
activity_description_itemmodel_id - references imsld_itemmodels
on_completion_id - references imsld_on_completions
identifier - unique identifier of the activity
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
parameter_value
activity_description_itemmodel_id - references imsld_itemmodels
user_choice - The user decides when the activity is completed
time_limit_id - If user_choice is null, the activity will be completed until the time referenced by this id has been expired.
on_completion_id - references imsld_on_completions
identifier - unique identifier of the acrivity
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
component_id - references imsld_components
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_itemmodel_id - references imsld_itemmodels
identifier
imsld_environments. This table contains the environments of the unit of learning. An environment consists of learning objects, services and other environments, and it can be referentiated by some other tables too.
environment_id
parent_environment_id
title
imsld_learning_objects
learning_object_id
class
isvisible_p - the user decides when the activity is completed?
parameter_value
type - knowledge-object, tool-object, test-object, etc. (learning resource type from the IEEE LTSC LOM)
environment_id - references imsld_environments
schema_version
imsld_email_services. It describes all the email services
email_service_id
select - all-persons-in-role, persons-in-role
title
is_visible_p
imsld_email_data
sendmail_service_id - references imsld_email_services
role_id - references imsld_roles
email_data
email_property_id - references imsld_properties **
username_property_id - references imsld_properties **
imsld_conference_services
conference_id
conference_type - synchronous, asynchronous or announcement
title
item_id - references imsld_items
is_visible_p
imsld_index_search_services
search_service_id
title
index_class - this element selects the class 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_type - type of search facility that is expected at runtime: free-text-search, index-with-reference, index-without-reference
is_visible_p
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
play_id
method_id - references imsld_methods
is_visible_p - the user decides when the activity is completed?
title
when_last_act_completed the play is completed until the act referenced by this field is completed
time_limit_id - references time_limits. If when_last_act_completed is null, the play is completed when the time indicated here has been completed
on_completion_id - references imsld_on_completions
imsld_acts
act_id
play_id - references imsld_plays
title
time_limit_id - if there are no role_parts mapped to this act throug the mapping table (explained later), the act is completed until the the time indicated here has been completed
on_completion_id - references on_completion
when_property_value_is_set ** - references imsld_when_property_value_is_set
imsld_role_parts
role_part_id - references imsld_part_id
act_id - references imsld_acts
role_id
unit_of_learning_id - references imsld_imslds
environment_id - references imsld_environments
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_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
is_visible_p
title: A text that can represent a prerequisite, an objective, the name of a file, etc.
imsld_time_limits
time_limit_id
time_limit - amount of time in a specific format
property_id ** - references imsld_properties
imsld_parameters
parameter_id
parameter_value
imsld_imsld_objects_map. This is a very importan table in this data model, because it is used to map almost every imsld_* to every imsld_*. For instance, the activities that are part of a component are mapped by this table, and the acts to complete play are also mapped using this table. This is just a representation of the acs_rels table, because at the implementation phase, acs_rels will be used with different rel_types
imsld_object_one_id - references imsld_* (acs_objects)
imsld_object_one_type - wich can be: learning_object, imsld_item, imsld_role, support_activity, etc
imsld_object_two_id - references imsld_* (acs_objects)
imsld_object_two_type - same as imsld_object_one_type
IMPORTANT NOTES:
The last table will use acs_rels. The rel_types will be completely defined in the implementation phase. By now we can think of: parent_item_rel, role_parts_activites_rel, component_service_rels, service_roles_rel, learning_object_item_rel, plays_to_complete_method_rel and role_parts_to_complete_act.
There are some important IMS-LD tags (learning objectives, for instance) that does not have a table for themselves, but this is because such tags consist only of a reference to a itemmodel or another table, so there is no need to create a table just for that.
This data model can (and it is 99% sure) change in the implementation phase, but we will base the development on this data model.
There are some tables in this data model that will be related to some others of other .LRN packages. For instance, the table imsld_conferences will be used to store the synchronous type (forums) and asynchronous type (chats) of conferences. Also, we will use acs_objects for the imslds, activities, services, learning_objects, components, and for every case we find it useful. We can make use of the cr_items too. But that is something that we will know better in the implementation phase.