Imeji Metadata

 Outdated

= Metadata Profile =

1:1
One metadata profile can be only used for one collection (but of course it is possible to use an already available metadata profile as template for a new profile).
 * Status: Implemented
 * Schedule: 1.0
 * Versioning: A metadata profile will not be versioned.
 * States: A metadata profile can be in the state private, published, and discarded (linked with the corresponding collection).

1:n
One metadata profile in usable for several collections.
 * Status: planned
 * Schedule:
 *  Versioning: A metadata profile will not be versioned (if it would be versioned, the above mentioned problem with deleting information would be solved, but then we will have many versions of one profile which will be functionally the same as the current 1:1 relation).
 * States: A metadata profile can be in the state private, published, and discarded (independently from the corresponding collection(s)). This means following further use cases and informations are needed:
 * Publish metadata profile
 * Rework metadata profile
 * Withdraw metadata profile
 * A metadata profile owner (name and organization)
 * Description:
 * 1) Only the creator of the profile is allowed to make any changes on the profile or somebody else who gets special rights (md profile editor) from the creator.
 * 2) When the creator deletes a metadata element or a predefined value of an element, this metadata will be deleted in all collections that use this profile.
 * 3) * As through this action some data could get lost, the user should get a warning bevore deleting anything.
 * 4) * Further on, every collection creator that uses the profile should get an information (either via e-mail or via a system message on his collection).
 * 5) When the creator adds a metadata element or a predefined value of an element, this metadata will be added in all collections that use this profile.
 * 6) * This changes has no influence on the already available data. But to make it nice, every collection creator that uses the profile should get an information (either via e-mail or via a system message on his collection).

UC_IM_MD_01 Create metadata profile
Status/Schedule
 * Status: implemented
 * Schedule: Beta Release

Pre-Condition
 * One collection in the state private is selected which does not have a metadata profile yet.

Description
 * 1) The user has to enter a name for the profile.
 * 2) The user has two different options:
 * 3) To create a new metadata profile
 * 4) To use an already available MD profile as template
 * 5) The system displays a list of all available published metadata profiles.
 * 6) (Optionally) The user wants to view the details of one selected metadata profile.
 * 7) The user can select one of the already existing md profiles (the system creates a copy of the md profile).
 * 8) The user can edit the the metadata profile (see UC_IM_MD_02 Edit metadata profile).
 * 9) After saving, the system displays a success message.

Actors Involved
 * Account user

UC_IM_MD_02 Edit metadata profile
Status/Schedule
 * Status: implemented
 * Schedule: Beta Release

Pre-Condition
 * One collection in the state private or published is selected which does have a metadata profile.

Description
 * 1) A MD profile consists of
 * 2) * Title (string, mandatory, once)
 * 3) * Description (string, optional, once)
 * 4) * Attributes (complex, mandatory, one-unbounded)
 * 5) The user can modify all attributes of the profile and can create new attributes or delete already existing attributes.
 * 6) * When deleting already available attributes, all values of these attributes will be deleted, too. Therefore the system displays a warning message, where the number of values, that will be deleted, is displayed and which has to be confirmed by the user.
 * 7) * An attribute consists of
 * 8) ** type (list, mandatory, once) e.g. date, geonames, string, integer, cone-person
 * 9) ** label (string, mandatory, multiple)
 * 10) ** a language for each label (list, mandatory, once)
 * 11) ** cardinality (list, mandatory, once): once / multiple
 * 12) ** (optional) a possibility to define a list of predefined values (one text field for each value) or choose a controlled vocabulary
 * 13) * When changing the cardinality from multiple to once, all pictures that have more than one value of the concrete element will loose these values. Therefore the system displays a warning message, where the number of values, that will be deleted, is displayed and which has to be confirmed by the user.
 * 14) The user can modify the list of allowed values for one or more attributes, can delete them or ad new values.
 * 15) * When deleting values from the list of allowed values for one or more attributes, these values will be deleted also in the metadata sets of all pictures that use these values. Therefore the system displays a warning message, where the number of values, that will be deleted, is displayed and has to be confirmed by the user.
 * 16) The user can define the attribute that shall be used as underline (image caption) for the images.
 * 17) After saving, the system displays a success message.

Actors Involved
 * Collection editor for the selected collection

Comments
 * When somebody edits one metadata profile, this profile will be locked for all other users.
 * We will use the pessimistic logging: the selected metadata profile will be locked the moment when one user goes on "edit" and will be un-locked once again when the user clicks on "save". In case the user never goes on save, the locking will be neutralized after the session time out which will be 15 minutes after the last user action on imeji.
 * When the metadata profile is locked, all images that are using this profile (that means all images within the collection that uses the profile) have to be logged, too.

Further Ideas
 * The attribute type integer could also offer a definition of unit (string with autosuggest, mandatory, once) e.g. km, m, cm, mm, Celsius, Fahrenheit
 * Additionally autosuggest for label (either defined by the user himself or chosen out of an list of already existing labels). This way, similar labels are always written the same way.
 * License for each picture (based on the cc licenses)

UC_IM_MD_02 Delete metadata profile
Status/Schedule
 * Status: in specification
 * Schedule: only needed for scenario 1:n

Pre-Condition
 * One metadata profile in the state private is selected

Description
 * 1) A metadata profile can only be deleted when it is not published yet. After that, only discard is possible.
 * 2) A metadata profile can only be used for a new collection when it is released. Therefor when it is still private, the metadata profile is not used by any collection and can therefore be deleted without any problems.
 * 3) The deletion needs a confirmation.
 * 4) After confirming, the system displays a success message.

Actors Involved
 * Collection editor for the selected collection

UC_IM_MD_03 Release metadata profile
Status/Schedule
 * Status: in specification
 * Schedule: only needed for scenario 1:n

Pre-Condition
 * One metadata profile in the state private is selected

Description
 * 1) The user wants to release the metadata profile.
 * 2) For the release a confirmation message is necessary.
 * 3) After confirming, the system displays a success message. The metadata profile is now in the state released and gets a persistent URL.
 * 4) For the case an older released version of the metadata profile already exists, this version will be overwritten.
 * 5) Released means that the profile:
 * 6) * is displayed in browsing lists
 * 7) * can be used (as template) for other metadata profile

Actors Involved
 * MD profile editor for the selected metadata profile

UC_IM_MD_04 Rework metadata profile
Status/Schedule
 * Status: in specification
 * Schedule: only needed for scenario 1:n

Pre-Condition
 * One metadata profile in the state released is selected

Description
 * For reworking a metadata profile a new version of the profile will automatically be created that is in the state private.
 * The latest released version will stay as is is (till a newer version of the profile will be released).
 * In this private version, the user can edit the profile (see UC_IM_MD_02 Edit metadata profile).
 * After saving, the system displays a success message. The profile is still in the state private.
 * To release the profile, see UC_IM_MD_03 Release metadata profile.

Actors Involved
 * MD profile editor for the selected metadata profile

UC_IM_MD_05 Withdraw metadata profile
Status/Schedule
 * Status: in specification
 * Schedule: only needed for scenario 1:n

Pre-Condition
 * One metadata profile in the state released is selected

Description
 * 1) The withdraw needs to be explained by the user via a withdrawn comment and needs a confirmation, where the system makes it clear to the user, that a withdrawn metadata profile can not be edited any more, is not searchable or browsable and can only be found from other users via following the URL to one version of the metadata profile.
 * 2) After confirming, the system displays a success message. The metadata profile is now in the state withdrawn.
 * 3) All collections that use this metadata profile can still use it, but there will be displayed an information, that the profile is withdrawn.
 * 4) Withdraw means that the profile:
 * 5) * is not displayed in any browsing context
 * 6) * can not be used any more (as template) for a new collection

Actors Involved
 * MD profile editor for the selected metadata profile

UC_IM_MD_05 Share metadata profile
Status/Schedule
 * Status: in specification
 * Schedule: only needed for scenario 1:n

Pre-Condition
 * One metadata profile in the state private or released is selected

Description
 * 1) To share a metadata profile, the user has to choose one or several users or user groups which whom he wants to share the collection.
 * 2) (Optionally) When the user chooses one or more user groups, he can view the members of the selected group.
 * 3) The user has to define the concrete user rights he want to assign to the selected user (groups).
 * 4) Each new user will get an automated e-mail notification from the system.

Actors Involved
 * MD administrator for the selected metadata profile

Constrains
 * Share metadata profile currently only works for users that already have a user account within imeji. In a next step it would be nice also to invite new users and include an account creation procedure within the sharing process.

= Metadata Values =

UC_IM_MD_06 Scan filename
Status/Schedule
 * Status: in specification
 * Schedule:

 Pre-Conditions 
 * One upload, one collection, or several pictures within one collection are selected.
 * The metadata profile for the selected collection is already defined.

 Triggers 
 * This use case can be triggered by UC_IM_PIC_01 Upload pictures.

Description
 * 1) When the filename of the uploading pictures already contains some metadata values, these values can automatically extracted by the system if they are based on a general regulation.
 * 2) The system displays one filename as example.
 * 3) The user defines the general regulation for the filenames via
 * 4) defining the order of the metadata elemens as they occur in the filename
 * 5) defining the symbol that defined the end of one element and the beginning of the next (e.g. an underscore or a semicolon)
 * 6) The system extract the filename based on the defined regulation from the example shown in step 2.
 * 7) When the result of the example is satisfying, the user confirms his definitions and the system extracts all metadata values from the selected pictures and stores them in their metadata. Otherwise the user has to change his definitions.

Actors Involved
 * Picture editor for the selected collection

UC_IM_MD_07 Edit picture metadata
Status/Schedule
 * Status: implemented
 * Schedule: Beta Release

Pre-Condition
 * One or several pictures are selected via UC_IM_PIC_02 Select pictures for editing
 * The pictures are either in a private or a published collection

Description
 * 1) The system displays an information message which says how many pictures are currently selected. Further on, there must be a possibility to view all the selected pictures.
 * 2) The user chooses one or several labels he wants to edit.
 * 3) The users defines one or more metadata values for the selected labels.
 * 4) When only one picture is selected:
 * 5) * Already available metadata values will be displayed as pre-filled in.
 * 6) When more than one picture are selected:
 * 7) * When the selected pictures have one or more metadata values in common, this value(s) will be displayed as pre-filled in. When they have different metadata values, this can not be displayed, but then the system will give the information, that some pictures already have a value for the metadata.
 * 8) * The user has to choose whether he wants
 * 9) ** to add the new value only when the value is empty
 * 10) ** to add the new value to all images (only possible when is is a value that could occur more than once)
 * 11) ** to overwrite all values
 * 12) After saving, the system displays a confirmation message and assigns the defined metadata values to the pictures.

Actors Involved
 * Picture editor for the selected collection

Comments
 * To avoid confusion when more than one user tries to edit the metadata of the same picture(s) at the same time, the system has to take care that always the newest version of the pictures and its metadata is displayed. And this will be the only version that is editable.
 * When somebody edits the metadata of one or more pictures, this pictures have to be locked during the editing process so that nobody else can edit them. When during this time, someone else tries to edit them, an information message has to be displayed.
 * We will use the pessimistic logging: the selected image(s) will be locked the moment when one user goes on "edit" and will be un-locked once again when the user clicks on "save". In case the user never goes on save, the locking will be neutralized after the session time out which will be 15 minutes after the last user action on imeji.
 * When at lease one image within a collection is locked, the corresponding metadata profile has to be locked, too.


 * Keep in mind that there are two different use cases possible:
 * if edit can be done under a couple of seconds without any errors (preferred way)
 * if not, should certainly be specified something like an edit workspace where a report can be displayed etc. (not so nice)
 * --> depends on the results of the dev team demonstrators!

Further Information For the editing of picture metadate, 5 different usage scenarios are possible: