Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Metadata specification for the mandate system at John Wheatley College Note: this specification is still under development and is incomplete. Version Date 5.7 May 2006 1 Metadata specification for the mandate system at John Wheatley College 1 1.1 System overview Aim The mandate system is intended to support the publication of locally produced digital assets and the better management of non-college generated digital assets by John Wheatley College (JWC). This will provide wider access to these assets through a one-stop-shop web interface and through exporting to the library system. 1.2 Technical setting Metadata is stored on SQL Server 2000 running on Windows 2003 Server. Asp.net is used as the development language to promote simplicity of interaction with Active directory and other windows components. The minimum specification for web browsers accessing the system is Internet Explorer 6 at 800x600 pixels screen size. 1.3 Overview of integration with other College systems Unit-e Active Directory Query for curriculum update mandate Query for agent update Query for user id Diagram: Overview of relationships with other college systems There are two interactions with Active Directory. One is a periodic (weekly or daily) update of the agent table; the other is “constant” capture of the user id for audit trail purposes. Active Directory groups also control permissions to perform actions on the database and which menus and options are visible to the user. The single interaction with Unit-e is a periodic extraction of relevant metadata into local tables. 2 Metadata specification for the mandate system at John Wheatley College 2 2.1 Generic metadata Identifiers Local identifiers are generated and held in the database as table record numbers. Local identifiers are not re-used if the table row is deleted, and are thus persistent. Global and persistent identifiers are necessary for export functions. Currently there is no consensus in the international community on the best approach to take. For the time being, the method employed by the Centre for Digital Library Research (CDLR) as part of the CCInterop project will be used. CDLR was faced with a similar problem in creating unique, persistent identifiers for collection-level description records exported from the Scottish Collections Network (SCONE) database. In particular, this required the creation of a Uniform Resource Name (URN) as an identifier for records exported in Resource Description Framework (RDF) syntax. This was accomplished by taking the URL of the service website and appending the table name and record number of the relevant data. For JWC, this gives a constructor of www.jwheatley.ac.uk/[system_name]/[table_name]/[record_number]. The resulting pseudo-URL is obviously not resolvable but does provide a guaranteed unique and persistent identifier for the the item. As an example, the minutes of a meeting might have the global identifier www.jwheatley.ac.uk/mandate/asset/27 2.2 Dates Dates use the client-side input mask dd-mm-yyyy. Date fields within the SQL Server database use the SmallDateTime data type. Note that the data element for time-of-meeting is currently stored in a separate text field while further consideration is given to integration with college calendar systems. The date of record creation is taken from the current system date. 3 Metadata specification for the mandate system at John Wheatley College 3 Database structure 3.1 Entity-relationship diagram The following is a high-level entity-relationship diagram for the Agent, Asset and (Programme) Unit entities. Agent-Group Contains Agent Curriculum Interacts-With Contains Asset Programme Is-Associated-With-Unit Contains Unit 3.2 Tables Metadata is stored in the following relational tables. Field Type Asset asset_id title publisher date_of_pub asset_notes keywords visible retired filename/uri subtable_key asset_status_id Main table int nvarchar nvarchar smalldatetime ntext nvarchar? bit bit nvarchar int int Size Notes Primary key. Secondary key. Secondary key. 4 Metadata specification for the mandate system at John Wheatley College asset_type_id asset_category_id int int CollegePublication college_publication_id meeting_date meeting_time agenda_item meeting_location_id Sub-table int smalldatetime nvarchar int? int AssociatedPaper associated_paper_id meeting_date agenda_item Sub-table int smalldatetime int? QualityDocument quality_document_id meeting_date programme_id ExternalLearningMaterial external_learning_material_id learning_time educational_desc summary Sub-table int Primary key. smalldatetime Mask: dd-mm-yyyy. int Secondary key. Sub-table. Keep separate from ExternalLearningMaterial to allow future changes in structure. int Primary key. nvarchar ntext ntext Sub-table. Keep separate from InternalLearningMaterial to allow future changes in structure. int Primary key. nvarchar ntext ntext AssetCategory asset_category_id asset_category_name asset_category_notes Lookup table. int nvarchar ntext AssetType asset_type_id asset_ type _name asset_category_id Lookup table. int nvarchar int AssetStatus asset_status_id asset_ status _name asset_category_id Lookup table. int nvarchar int Programme programme_id Lookup table int InternalLearningMaterial internal_learning_material_id learning_time educational_desc summary Secondary key. Secondary key. Primary key. Mask: dd-mm-yyyy. Secondary key. Primary key. Mask:dd-mm-yyyy. Primary key. Primary key. Secondary key. Primary key. Secondary key. Primary key. 5 Metadata specification for the mandate system at John Wheatley College programme_name programme_code curricular_area_id nvarchar nvarchar int CurricularArea curricular_area_id curricular_area_name Lookup table int nvarchar Unit unit_id ue_unit_name ue_unit_code superclass moderation_group Lookup table int nvarchar nvarchar nvarchar nvarchar IsPartOfProgramme is_part_of_programme_id programme_id unit_id Linking table int int int Primary key. Secondary key. Secondary key. IsPartOfUnit is_part_of_unit_id asset_id unit_id Linking table int int int Primary key. Secondary key. Secondary key. Agent agent_id is_personal current_status first_date last_updated subtable_key Main table int bit bit smalldatetime smalldatetime int PersonalAgent personal_agent_id forename surname active_directory_id Sub-table int nvarchar nvarchar int? CorporateAgent corporate_agent_id corporate_name corporate_abbr Sub-table int nvarchar nvarchar AgentGroup agent_group_id group_name group_scope note Lookup table int nvarchar ntext ntext IsPartOfGroup Linking table Secondary key. Primary key. Primary key. Primary key. Mask: dd-mm-yyyy. Mask: dd-mm-yyyy. Secondary key. Primary key. Primary key. Primary key. 6 Metadata specification for the mandate system at John Wheatley College is_part_of_group_id agent_group_id agent_id int int int InteractsWith interacts_with_id agent_id asset_id role_id Linking table int int int int Role role_id role_name role_notes Lookup table int nvarchar ntext AuditTrail audit_trail_id time_of_update agent_id asset_id transaction_type_id int smalldatetime int int int TransactionType transaction_type_id transaction_name Lookup table int nvarchar 3.3 Primary key. Secondary key. Secondary key. Secondary key. Primary key. Primary key. Secondary key. Secondary key. Secondary key. Primary key. Completeness The table structures are not complete; further fields and relationships are likely to be added as a result of feedback and review. Field types may require changing. Field sizes may require changing. 3.4 Hierarchical tables Two entities use hierarchical tables: Agent and Asset. Agent has two sub-tables: PersonalAgent and CorporateAgent, each with a different field structure. The main Agent table is linked to the relevant sub-table via the secondary key subtable_id. A Boolean flag (Agent.is_personal) indicates whether the sub-table is the PersonalAgent table or not. Asset has five sub-tables: CollegePublication, AssociatedPaper, QualityDocument, InternalLearningMaterial, and ExternalLearningMaterial. The main Asset table is linked to the relevant sub-table via the secondary key subtable_id. The sub-table is inferred from the Asset.asset_type_id field linked to the AssetCategory table which lists the five categories of asset. 7 Metadata specification for the mandate system at John Wheatley College All relationships with other tables use the primary keys agent_id or asset_id as appropriate. 8 Metadata specification for the mandate system at John Wheatley College 4 Key: Data sources s = system o = operator x = external Field Source Notes Asset asset_id title s o, s publisher date_of_pub o, s o, s asset_notes keywords visible retired filename/uri subtable_key o o o o o, s s asset_status_id s asset_type_id asset_category_id s s CollegePublication college_publication_id meeting_date meeting_time agenda_item meeting_location_id s o o o s Autonumber; not reused. AssociatedPaper associated_paper_id meeting_date agenda_item s o o Autonumber; not reused. QualityDocument quality_document_id meeting_date programme_id s o s Autonumber; not reused. InternalLearningMaterial internal_learning_material_id learning_time educational_desc summary s o o o Autonumber; not reused. From subtable record for some categories of asset. Literal for some categories of asset. System date of first save for some categories of asset. Default: No. Default: No. From primary key of corresponding subtable record. Literal, or from list option selected by operator From list option selected by operator. From menu option selected by operator. From list option selected by operator. From list option selected by operator. Autonumber; not reused. From list option selected by operator. 9 Metadata specification for the mandate system at John Wheatley College ExternalLearningMaterial external_learning_material_id learning_time educational_desc summary s o o o Autonumber; not reused. From list option selected by operator. AssetCategory asset_category_id asset_category_name asset_category_notes s o o Autonumber; not reused. AssetType asset_type_id asset_ type _name asset_category_id s o s Autonumber; not reused. AssetStatus asset_status_id asset_ status _name asset_category_id s o s From list option selected by operator. Programme programme_id programme_name programme_code curricular_area_id s x x s Autonumber; not reused. From Unit-e system. From Unit-e system. From list option selected by operator. CurricularArea curricular_area_id curricular_area_name s o Autonumber; not reused. Unit unit_id ue_unit_name ue_unit_code superclass moderation_group s x x x x Autonumber; not reused. From Unit-e system. From Unit-e system. From Unit-e system. From Unit-e system. IsPartOfProgramme is_part_of_programme_id programme_id unit_id s x x Autonumber; not reused. From Unit-e system. From Unit-e system. IsPartOfUnit is_part_of_unit_id asset_id unit_id s s s Autonumber; not reused. From list option selected by operator. From list option selected by operator. Agent agent_id s Autonumber; not reused. From list option selected by operator. Autonumber; not reused. 10 Metadata specification for the mandate system at John Wheatley College is_personal current_status first_date last_updated subtable_key o o, x s, x s s PersonalAgent personal_agent_id forename surname active_directory_id s o, x o, x x Autonumber; not reused. From Active directory. From Active directory. From Active directory. CorporateAgent corporate_agent_id corporate_name corporate_abbr s o, x o, x Autonumber; not reused. From Active directory. From Active directory. AgentGroup agent_group_id group_name group_scope note s o o o Autonumber; not reused. IsPartOfGroup is_part_of_group_id agent_group_id agent_id s s s Autonumber; not reused. From list option selected by operator. From list option selected by operator. InteractsWith interacts_with_id agent_id asset_id role_id s s s s Autonumber; not reused. From list option selected by operator. From menu option selected by operator. From menu option selected by operator. Role role_id role_name role_notes s o o Autonumber; not reused. AuditTrail audit_trail_id time_of_update agent_id asset_id transaction_type_id s s s s s Autonumber; not reused. System date of first save. From list option selected by operator. From menu option selected by operator. TransactionType transaction_type_id transaction_name s o Autonumber; not reused. System date of last save. From primary key of corresponding subtable record. 11 Metadata specification for the mandate system at John Wheatley College 5 Maintenance menus Access to various parts of the Web-based maintenance interface is controlled by a user profile supplied by JWC’s Active Directory system. All staff and student users of the JWC intranet are assigned a “Mandate group” stored in this Active Directory. The group drives a specific initial menu display. The initial menu in turn controls access to specific data entry forms and sub-menus. 5.1 System administration menu Initial menu for System administrator group. Options: • • • Asset maintenance menu (system) System maintenance menu Reports menu 5.2 Asset maintenance menu (system) Initial menu for Editor group. Options: • • • • • • • Add College meeting terms of reference, agenda or minutes Add College meeting associated paper Add quality management document Add internal learning material Add external learning material Edit asset Delete asset 5.3 Asset maintenance menu Initial menu for staff groups (“Teaching”, “Senior”, “Administrative”?). Options: • • • • • • 5.4 Add College meeting terms of reference, agenda or minutes Add College meeting associated paper Add quality management document Add internal learning object Add external learning object Edit asset System maintenance menu This menu controls the maintenance of look-up tables. 12 Metadata specification for the mandate system at John Wheatley College Options: • • • • • • • • Agents maintenance menu Agent groups maintenance menu Agent roles maintenance menu Units, Programmes and Curricular areas maintenance menu Asset types maintenance menu Asset statuses maintenance menu Meeting locations maintenance menu Transaction types maintenance menu 5.5 Reports menu (access) Options: • View all assets to be reviewed • View all … • Etc. 5.6 [Look-up table] maintenance menu A maintenance menu is available for each look-up table listed on the System maintenance menu. The Units, Programmes and Curricular areas menu is a special case. Options: • • • 5.7 Add a new [entry] Edit an [entry] Delete an [entry] Units, Programmes and Curricular areas maintenance menu This menu controls the maintenance of a three-level hierarchy: Curricular areas > Programmes > Units. Options: • • • • • • • • • • • Add a Unit Edit a Unit Delete a Unit Group a Unit with a Programme Add a Programme Edit a Programme Delete a Programme Group a Programme with a Curricular area Add a Curricular area Edit a Curricular area Delete a Curricular area 13 Metadata specification for the mandate system at John Wheatley College 6 Specific data entry form contents How each category of asset populates its tables. 6.1 General issues “Display agent name” implies display PersonalAgent.forename+PersonalAgent.surname, or CorporateAgent.corporate_name for each relevant agent. Given that agents to be selected may be a combination of corporate and personal agents, the display of these in dropdown lists or other general functions should be able to accommodate either of these name types. 6.2 Create New Agent Radio button options for selecting corporate agent or personal agent. Selection determines data entry fields: For personal agent: Forename and Initials Surname For Corporate agent: Corporate name The following sections give a contextualised description of information processing. Key: a) Method and source of display/entry. b) Effect of data entry. c) When processing occurs. 6.3 6.3.1 Meeting documentation Input/edit: Committee name a) Select single value from drop-down list based on Agent filtered by group “JWC committee”. a. i.e. display agent names with Agent.agent.id = IsPartOfGroup.agent_id where IsPartOfGroup.agent_group_id = AgentGroup.agent_group_id for AgentGroup.group_name = “JWC committee” b) Agent.agent_id corresponding to selected agent stored in InteractsWith with Asset.asset_id for this asset and Role.role_id for Role.role_name = “author”. c) Stored on submit after Asset.asset_id assigned. Minute-taker/Contributing author a) Select single value from drop-down list based on Agent with Agent.currentstatus = Yes, filtered by group “Admin staff”. 14 Metadata specification for the mandate system at John Wheatley College b) Agent.agent_id stored in InteractsWith with Asset.asset_id and Role.role_id for Role.role_name = ”contributor”. c) Stored on submit after Asset.asset_id assigned. Meeting date a) Operator chooses either free text entry controlled by input mask (or other way of validating it as a valid date format) or pick from JavaScript popup calendar. b) Stored in CollegePublication.meeting_date. c) Stored on submit. Meeting time a) Free text entry; client-side validation within “business hours” i.e. 8-6. b) Stored in CollegePublicaton.meeting_time. c) Stored on submit. Meeting location a) From drop-down list based on MeetingLocation. b) MeetingLocation.meeting_location_id stored in CollegePublication.meeting_location_id. c) Stored on submit. Type a) From drop-down listed based on AssetType filtered by AssetCategory.asset_category_name = “College publication”. b) AssetType.asset_type_id stored in Asset.asset_type_id. c) Stored on submit. Keywords a) Free text entry; Operators should use lowercase and space-hyphen-space delimiters (or develop a way to make this system driven, i.e. entry on separate lines and in storage space-hyphen-space is added). b) Stored in Asset.keywords. c) Stored on submit. 6.3.2 Generated on submit On Submit, the following literals are generated by the system and stored: Asset Category a) Fixed value = AssetCategory.asset_category_id for CollegePublication. b) Stored in Asset.asset_category_id. Subtable a) System generated value for CollegePublication.college_publication_id. b) Stored in Asset.subtable_key. Title a) Derived from combination of values selected in form with set words in between (sequencing needs to be considered). For Agenda (i.e. when AssetType.asset_type_name = “Agenda”): [AssetType.asset_type_name] + “of the” + [CorporateAgent.corporate_name] + “meeting to be held on” + [CollegePublication.meeting_date] + “at” + 15 Metadata specification for the mandate system at John Wheatley College [CollegePublicaton.meeting_time] + “in Room” + [MeetingLocation.meeting_location] + “, Easterhouse Campus” e.g. “Agenda of the Executive Committee Meeting to be held on Thursday 3 February 2005 at 4.30pm in Room S/09, Easterhouse Campus” For Minutes (i.e. when AssetType.asset_type_name = “Minutes”) [AssetType.asset_type_name] + “of the” + [CorporateAgent.corporate_name] + “meeting held on” + [CollegePublication.meeting_date] + “at” + [CollegePublicaton.meeting_time] + “in Room” + [MeetingLocation.meeting_location] + “, Easterhouse Campus” e.g. “Minutes of the Executive Committee meeting held on Thursday 3 February 2005 at 4.30pm in Room S/09, Easterhouse Campus” For Terms of Reference (i.e. when AssetType.asset_type_name = “Terms of Reference”) [AssetType.asset_type_name] + “of the” + [CorporateAgent.corporate_name] e.g. “Terms of Reference of the Executive Committee” b) Stored in Asset.title. Status a) AssetStatus.Asset_status_id for “Approved” b) Stored in Asset.asset_status_id. Date of Publication a) System date. b) Stored in Asset.date_of_pub. Filename/uri a) Assigned elsewhere? b) Stored in Asset.filename/uri. Visible a) Default value = “No”. b) Stored in Asset.visible. Retired a) Default value = “No”. b) Stored in Asset.retired. Publisher a) Fixed value = “John Wheatley College” b) Stored in Asset.publisher value. 6.3.3 File upload Attach File is attached to form through html file command (or equivalent). Rename On submit attached file is renamed according to following convention Filename: [CorporateAgent.corporate_abbr] + [CollegePublication.meeting_date] + [AssetType.asset_type_name].pdf 16 Metadata specification for the mandate system at John Wheatley College Store The file is stored in the path: …/collegepublications/ (Consider a more specific path i.e. using committee name. Which better supports browse structure generation or future implementations of Google box search of .pdf full text?) 6.4 6.4.1 Associated papers Input/edit: Title a) Free text entry. b) Stored in Asset.title. c) Stored on submit. Date of publication a) Operator chooses either free text entry controlled by input mask (or other way of validating it as a valid date format) or pick from JavaScript popup calendar. b) Stored in Asset.date_of_pub. c) Stored on submit. Status a) Radio-button list based on Asset_status filtered by AssetCategory.asset_category_id corresponding to AssetCategory.asset_category_name = ”Associated papers” (options are produced by JWC/ produced externally). b) Stored in Asset.asset_status_id. c) Stored on submit. Committee name a) Select single value from drop-down list based on Agent filtered by group “JWC committee”. b) Agent.agent_id stored in InteractsWith along with Asset.asset_id and Role.role_id for Role.role_name = “Discusser” (?). c) Stored on submit. Meeting date a) Operator chooses either free text entry controlled by input mask (or other way of validating it as a valid date format) or pick from JavaScript popup calendar. b) Stored in AssociatedPaper.meeting_date. c) Stored on submit. Keywords a) Free text entry; Operators should use lowercase and space-hyphen-space delimiters (or develop a way to make this system driven, i.e. entry on separate lines and in storage space-hyphen-space is added). b) Stored in Asset.keywords. c) Stored on submit. (Keywords may end up not being used for Associated papers, and are definitely not mandatory …) Filename/uri 17 Metadata specification for the mandate system at John Wheatley College a) Choice of internal or external. a. Internal: filename capture from upload. b. External: enter url (free text entry). b) Stored in Asset.filename/uri. c) Stored on submit (to be confirmed). Agenda item no a) Free text entry (client-side validation that it’s a numerical entry) b) Stored in Associated_paper.agenda_item. c) Stored on submit. Type a) From drop-down listed based on Asset_type filtered by Asset_category.asset_category_name = ”Associated paper”. b) Asset_type.asset_type_id stored in Asset.asset_type_id. c) (There may be only one entry in the filtered list, in which case this is treated as a literal generated on submit – to be confirmed). 6.4.2 Sub-menu/ pop-up Options: Add author or Create new author Add author Invokes a) Select one or more values from drop-down list based on Agent. b) Agent.agent_id stored in InteractsWith with Asset.asset_id and Role.role_id for Role.role_name = “Author” c) Stored on submit after Asset.asset_id assigned. Create New Author Invokes Radio button options for corporate agent or personal agent (then activates appropriate data entry section). For personal agent Input Forename and Initials a) Free text entry. b) Store in PersonalAgent.forename. c) Store on submit. Surname a) Free text entry. b) Store in PersonalAgent.surname. c) Store on submit. Generated on submit personal_id agent_id last_updated a) System date. b) Stored in Agent.last_updated. first_date 18 Metadata specification for the mandate system at John Wheatley College a) System date. b) Stored in Agent.first_date. is_personal a) Fixed value = Yes b) Stored in Agent.is_personal. current_status a) Default value = Yes (i.e. active). b) Stored in Agent.current_status. subtable_key a) System generated value PersonalAgent.personal_id. b) Stored in Agent.subtable_key. For Corporate agent Input Corporate name a) Free text entry. b) Stored in CorporateAgent.corporate_name. c) Stored on submit. Generated on submit corporate_id agent_id last_updated a) System date. b) Stored in Agent.last_updated. first_date a) System date. b) Stored in Agent.first_date. is_personal a) Fixed value = No b) Stored in Agent.is_personal. current_status a) Default value = Yes (i.e. active). b) Stored in Agent.current_status. subtable_key a) System generated value for CorporateAgent.corporate_agent_id. b) Stored in Agent.subtable_key. 6.4.3 Generated on submit Asset Category a) Fixed value for AssetCategory.asset_category_id for Associated Paper. b) Stored in Asset.asset_category_id. Subtable 19 Metadata specification for the mandate system at John Wheatley College a) System generated value for AssociatedPaper.associated_id. b) Stored in Asset.subtable_key. Publisher Left blank. Visible a) Default value = No. b) Stored in Asset.visible. Retired a) Default value = No. b) Stored in Asset.retired. 6.4.4 File upload Attach File is attached to form through html file command (or equivalent). Rename On submit attached file is renamed according to following convention Filename: [CorporateAgent.corporate_abbr]+[ AssociatedPaper.meeting_date]+[ AssociatedPaper.agenda_item].[?] Store The file is stored in the path: …/associatedpapers/ (Consider a more detailed path using committee name.) 6.4.5 Unresolved issues for Associated papers Keywords Type Urls (yes) Will general JWC browser policy allow pop-ups? If so, nature of add author popup; nature of create author popup. 6.5 6.5.1 Quality documents Input/edit: Meeting date a) Operator chooses either free text entry controlled by input mask (or other way of validating it as a valid date format) or pick from JavaScript popup calendar. b) Stored in Quality_document.meeting_date. c) Stored on submit. Type a) From drop-down listed based on AssetType filtered by AssetCategory.asset_category_name = “Quality Document”. b) AssetType.asset_type_id stored in Asset.asset_type_id. c) Stored on submit. Author a) Select one or more values from drop-down list based on Agent with Agent.current_status = Yes, filtered by groups “Admin staff” and “Senior lecturers”. 20 Metadata specification for the mandate system at John Wheatley College b) Agent.agent_id stored in InteractsWith with Asset.asset_id and Role.role_id for Role.role_name = “Author”. c) Stored on submit after Asset.asset_id assigned. 6.5.2 Generated on submit On submit, the following literals are stored: Title a) System generated value = [programme or unit code]+[type]) b) Stored in Asset.title. Keywords Left blank. Status a) Fixed value = AssetStatus.Asset_status_id for “Approved” where AssetCategory.asset_category_name = “Quality document”. b) Stored in Asset.asset_status_id. Date of Publication a) System date. b) Stored in Asset.date_of_pub. Filename/uri a) System generated value. b) Stored in Asset.filename/uri. Stored on submit? (sequencing issue – derived from changed filename path – needed so that system knows filename of file? Config file will tell path?) Visible a) Default value = No. b) Stored in Asset.visible. Retired a) Default value = No. b) Stored in Asset.retired. Publisher a) Fixed value = “John Wheatley College”. b) Stored in Asset.publisher. 6.5.3 Sub-menu/ pop-up Add Unit or Programme Units have a one-many relationship with quality documents, but this takes place through the general unit-to-asset relationship which is many-to-many, so the data is stored in a linking table (IsPartOfUnit). Units are grouped into Programmes which are grouped into Curricular areas. The form allows selection of a Curricular area which then allows selection of a Programme to display Units. This is necessary because there are several thousand Units. Radio-button options for all Curricular areas. List control for Programmes in the currently selected Curricular area. 21 Metadata specification for the mandate system at John Wheatley College Note: this is probably best achieved using client-side JavaScript rather than a submit button against the Curricular area control. Radio button to support Operator options (is quality document associated with Programme directly, or via Unit?) If Programme, relationship should be created for selected programme utilising hidden/dummy unit corresponding to this programme (or create separate linking table for Programme/Asset where Asset is quality document). If Unit: Dropdown list with ability to select a Unit name(s) in currently selected Programme. Note: this is probably best achieved using client-side JavaScript rather than a submit button against the Programme control. Submit button. On submit, the IsPartOfUnit record should be added to the table, and the page redisplayed for further editing. 6.5.4 File upload Attach File is attached to form through html file command (or equivalent). Rename On submit attached file is renamed according to following convention Filename: [Unit.ue_unit_code (or Programme.programme_code?)] + [Asset.asset_type].pdf Store The file is stored in the path: …/qualitydocuments/ 6.6 6.6.1 Internal learning materials Input/edit: Title a) Free text entry. b) Stored in Asset.title. c) Stored on submit. Keywords a) Free text entry; Operators should use lowercase and space-hyphen-space delimiters (or develop a way to make this system driven, i.e. entry on separate lines and in storage space-hyphen-space is added). b) Stored in Asset.keywords. c) Stored on submit. Add contributor a) Select one or more values from drop-down list based on Agent filtered by groups “Admin staff” and “Lecturers”. b) Agent.agent_id stored in InteractsWith with Asset.asset_id and Role.role_id for Role.role_name = “contributor”. c) Stored on submit after Asset.asset_id assigned. 22 Metadata specification for the mandate system at John Wheatley College Summary a) Free text entry. b) Stored in InternalLearningMaterial.summary. c) Stored on submit. Educational Description a) Free text entry. b) Stored in InternalLearningMaterial.educational_desc. c) Stored on submit. Learning Time a) From drop down list; literal values from 10-60 minutes in 5 minute increments. b) Stored in InternalLearningMaterial.learning_time. c) Stored on submit. Type a) From drop-down listed based on AssetType filtered by AssetCategory.asset_category_name = “Internal Learning Material”. b) AssetType.asset_type_id stored in Asset.asset_type_id. c) Stored on submit. Filename/uri a) Capture from file. b) Stored in Asset.filename/uri. c) Stored on submit? (Sequencing issue: derived from changed filename path – needed so that system knows filename of file? Config file will tell path?) Status a) From drop-down listed based on Asset_status filtered by Asset_category.asset_category_name = ”Internal learning materials”. b) Asset_status.asset_status_id stored in Asset.asset_status_id. c) Store on submit. 6.6.2 Generated On Submit, the following literals are stored: Date of Publication a) System date. b) Stored in Asset.date_of_pub. Visible a) Default value = No. b) Stored in Asset.visible. Retired a) Default value = No. b) Stored in Asset.retired. Publisher a) Fixed value = “John Wheatley College”. b) Stored in Asset.publisher. Author 23 Metadata specification for the mandate system at John Wheatley College a) Fixed value = Agent.agent_ID for Corporate_agent.corporate_name=“John Wheatley College”. b) Stored in InteractsWith with Asset.asset_ID and Role.role_id for Role.role_name = ”author”. 6.6.3 Sub-menus/ pop-ups At bottom of page: Add unit Units are grouped into Programmes which are grouped into Curricular areas. The form allows selection of a Curricular area which then allows selection of a Programme to display Units. This is necessary because there are several thousand Units. Units from more than one Curricular area/Programme can be added to an Asset. Drop down list for all Curricular areas. Check box control(s) for Programmes in the currently selected Curricular area. Note: this is probably best achieved using client-side JavaScript rather than a submit button against the Curricular area control. Check-box control(s) for Unit name(s) in currently selected Programme. Note: this is probably best achieved using client-side JavaScript rather than a submit button against the Programme control. Submit button. On Submit, the IsPartOfUnit record should be added to the table, and the page redisplayed for further editing. 6.7 6.7.1 External learning materials Input/edit: Title a) Free text entry. b) Stored in Asset.title. c) Stored on submit. Keywords a) Free text entry; Operators should use lowercase and space-hyphen-space delimiters (or develop a way to make this system driven, i.e. entry on separate lines and in storage space-hyphen-space is added). b) Stored in Asset.keywords. c) Stored on submit. Date of publication a) Operator chooses either free text entry controlled by input mask (or other way of validating it as a valid date format) or pick from JavaScript popup calendar. b) Stored in Asset.date_of_pub. c) Stored on submit. Publisher a) Free text entry. 24 Metadata specification for the mandate system at John Wheatley College b) Stored in Asset.publisher. c) Stored on submit. Summary a) Free text entry. b) Stored in ExternalLearningMaterial.summary. c) Stored on submit. Educational Description a) Free text entry. b) Stored in InternalLearningMaterial.educational_desc. c) Stored on submit. Learning Time a) From drop down list; literal values from 10-60 minutes in 5 minute increments. b) Stored in InternalLearningMaterial.learning_time. c) Stored on submit. Type a) From drop-down listed based on AssetType filtered by AssetCategory.asset_category_name = “Internal Learning Material” b) AssetType.asset_type_id stored in Asset.asset_type_id. c) Stored on submit. Filename/uri a) Choice of internal or external. a. Internal: file capture from upload. b. External: enter url (free text entry) b) Stored in Asset.filename/uri. c) Stored on submit (to be confirmed). Status a) From drop-down listed based on Asset_status filtered by Asset_category.asset_category_name = ”External learning materials”. b) Asset_status.asset_status_id stored in Asset.asset_status_id. c) Store on submit. 6.7.2 Generated on submit Visible a) Default value = No. b) Stored in Asset.visible. Retired a) Default value = No. b) Stored in Asset.retired. 6.7.3 Sub-menus/ pop-ups At bottom of page: Add author or create new author If Add author, 25 Metadata specification for the mandate system at John Wheatley College a) Select one or more values from drop-down list based on Agent filtered by groups “external” (values will be form both personal and corporate author subtables). b) Agent.agent_id stored in InteractsWith with Asset.asset_id and Role.role_id for Role.role_name = “Author” c) Stored on submit after Asset.asset_id assigned. Requires link to Create New Author if author not found. If Create New Author Radio button options for corporate agent or personal agent (then activates appropriate data entry section). For personal agent Input Forename and Initials a) Free text entry. b) Stored in PersonalAgent.forename. c) Store on submit. Surname a) Free text entry. b) Stored in PersonalAgent.surname. c) Stored on submit. Generated on submit personal_id agent_id last_updated a) System date. b) Stored in Agent.last_updated. first_date a) System date. b) Stored in Agent.first_date. is_personal a) Fixed value = Yes. b) Stored in Agent.is_personal. current_status a) Default value = Yes (i.e. active). b) Stored in Agent.current_status. subtable_key a) System generated value of PersonalAgent.personal_agent_id from this addition. b) Stored in Agent.subtable_key. For Corporate agent Input Corporate name a) Free text entry. b) Stored in CorporateAgent.corporate_agent_name. c) Stored on submit. 26 Metadata specification for the mandate system at John Wheatley College Generated on submit corporate_id agent_id last_updated a) System date. b) Stored in Agent.last_updated. first_date a) (System date) b) stored in Agent.first_date is_personal a) Fixed value = No. b) Stored in Agent.is_personal. current_status a) Default value = Yes (i.e. active). b) Stored in Agent.current_status. subtable_key a) System generated value for CorporateAgent.corporate_agent_id from this addition. b) Stored in Agent.subtable_key. Add unit Units are grouped into Programmes which are grouped into Curricular areas. The form allows selection of a Curricular area which then allows selection of a Programme to display Units. This is necessary because there are several thousand Units. Units from more than one Curricular area/Programme can be added to an Asset. Drop down list for all Curricular areas. Check box control(s) for Programmes in the currently selected Curricular area. Note: this is probably best achieved using client-side JavaScript rather than a submit button against the Curricular area control. Check-box control(s) for Unit name(s) in currently selected Programme. Note: this is probably best achieved using client-side JavaScript rather than a submit button against the Programme control. Submit button. On Submit, the IsPartOfUnit record should be added to the table, and the page redisplayed for further editing. 27 Metadata specification for the mandate system at John Wheatley College 7 Reports JWC will create and maintain email accounts for the system administration and admin reports to be delivered to and set them up to forward to whoever is in charge of a task at any given time. Reports should be printable. The following reports may be required: Daily reports (auto run) Materials not yet visible in given subject area/committee/quality document + generation of email to editor Periodic reports (manual run - selection in interface) Parallel to searches? Learning materials associated with given unit or programme (option to filter by type or status). System reports: retired assets Current_status = 0 retired agents 28 Metadata specification for the mandate system at John Wheatley College 8 Browse pages (To be revised following review of mock-up pages) 8.1 Browse learning materials Browse learning materials by curricular area > programme > unit. Browse learning materials by keyword Others? 8.2 Browse quality documents Browse quality documents by meeting date? Browse quality documents by unit or programme (or add to unit/ programme records). 8.3 Browse college publications Browse college publications by committee > date > type (also includes associated papers for internal users: all staff or other restricted, and if so, how?). 29 Metadata specification for the mandate system at John Wheatley College 9 Search pages (To be revised following review of accepted mock-up forms.) 9.1 Search learning materials Pages will support search: • by curricular area • by programme • by unit • by keyword (searches educational description too) • by type 9.2 Search quality documents Pages will support search: • by meeting date • by contributor (senior lecturer?) • by unit or programme • by moderation group • by curricular area • by programme • by superclass • by type 9.3 Search college publications (and associated papers?) Pages will support search: • by committee • by date • by type 30 Metadata specification for the mandate system at John Wheatley College 10 Export functions (To be developed using an approach similar to CDLR’s method of generating export metadata for the Glasgow Digital Library: Visual Basic scripts run on database tables extracting data and creating appropriate files.) 10.1 Export to Marc What fields? Mapping from database. Automatic additions. What materials? 10.2 Export to DC What fields? Mapping from database Automatic additions What materials? 10.3 Export to METS (To be explored if time permits – evaluation suggested that it will not be essential for JWC purposes.) What fields? What materials? 31 Metadata specification for the mandate system at John Wheatley College 11 Authentication and permissions control Access to the system is controlled by JWC through Active Directory groups. The following information describes the interactions between the systems. 11.1 • • • • 11.2 Summary of access issues Active Directory identity – provides login to webpages or system (JWC to manage) Active Directory users assigned into groups (created by JWC in active Directory) o Access to assets themselves is under active directory User identities established for these groups within database. o Permissions vary be type of user, and type of material. o Identified user tasks on metadata : create, edit, delete, view – tasks operate per type of material and per task Identified user groups: o Student: o Teaching Staff: o Staff o Editor – selected staff o SysAdmin Required user groups in Active Directory This requires JWC to create the following user groups within Active Directory: Group Name Public access Student Academic Support Editors SysAdmin Group Members Anyone not logged in Anyone logged in but not in one of the following groups… As per active directory group As per active directory group Designated staff Designated staff There are five user groups apart from unauthenticated users: • • • • • 11.3 11.3.1 students 2005-2006 academic support mandate editors mandate adminstrators Database, interface, and asset permissions Database permissions In this development of the system access to the database is hard-coded into the interfaces using two (growing to three) database login ids. One of these is set-up as 32 Metadata specification for the mandate system at John Wheatley College read only access, one as read, create and edit, the as yet unimplemented one will require delete privileges as well. 11.3.2 Interface permissions Access to the interfaces is controlled by locating them within different folders and thus requiring users to have permissions to access those folders in order to be able to run the interface applications. 11.3.3 Asset permissions Access to the assets is further controlled by keeping them in another set of folders with permissions applied 11.3.4 Permissions Comment This approach to permissions provides a short term workaround to support test/ initial use of the system. If the system is used in the longer term it will be necessary to implement stricter control over database permissions and desirable to implement dynamic customised interface display dependent on active directory memberships. 11.3.5 Instantiation of permissions Unauthenticated Students 2005-2006 Academic Support Mandate editors Mandate admins data/associatedpapers ? tbc ? tbc read read,write read,write all data/college_publications read read read read,write read,write all data/el_materials no access read read,write read,write read,write all data/el_materials/assessment no access no access read,write read,write read,write all data/il_materials/ no access read read,write read,write read,write all data/il_materials/assessment no access no access read,write read,write read,write all data/quality_documents no access no access read read,write read,write all no access no access execute execute execute all execute execute execute execute execute all no access no access no access no access execute all no access no access no access no access execute all execute execute execute execute execute all no access no access no access no access execute all no access no access no access no access execute all no access no access no access no access no access all Active Directory Group → Folder ↓ Asset access Interface and database access templates/asset/add [db read, write, edit] templates/asset/browse [db read only] templates/asset/delete [db read, write, edit] templates/asset/edit [db read, write, edit] templates/asset/search [db read only] templates/asset/[staffsearch..] [db read only] templates/asset/[staffbrowse..] [db read only] templates/system/… [db read, write, edit, delete entry] 33 Metadata specification for the mandate system at John Wheatley College 12 Data import To reduce data duplication and maintainance of distinct lists of units and programmes or re-creation of information, the system will import data from appropriate existing College systems. Though this could be highly complex, the current approach is utilising known export and import techniques requiring manual intervention. 12.1 Import of data from Unit-e Export required data from Unit-e as a report – this is saveable in csv or equivalent format. Import into Access db (check). Set up script to query Access db and populate SQL Server tables with data. The update needs to populate the Unit table, the Programme table, and the IsPartOfProgramme table linking units and programmes. Given the way data is currently input into Unit-e the script/query may need to edit part of the data. (The updating of this data is unclear – how will it be maintained if new relationships occur; will old ones be deleted or retired?) 12.2 Import of data from Active Directory Many of the authors and contributors to the system are employees of JWC. Their details therefore exist within the Active Directory service. Importing this data reduces the system maintenance overhead. Export selected data from Active Directory. Clean. Convert into Access db (through Excel). Ensure appropriate groups are in already present in AgentGroup. Query data to populate PersonalAgent, Agent, and IsPartOfGroup. 13 Future possible functions 13.1 Short term Selecting multiple records, saved searches, and printing. 13.2 Long term 13.2.1 Reports Management information statistics, etc. Where to put policy documents. 34