Skip to content

Quick Start Guide

Maria Akritidou edited this page Mar 2, 2017 · 23 revisions

Requirements

  • PHP >= 5.5.9, with the following extensions enabled: OpenSSL, Mbstring, Tokenizer
  • Web Server e.g. Apache, Nginx
  • Composer for dependency management
  • Gulp for running automated tasks

Installation

Add a virtual host on your web server, e.g. for Apache:

<VirtualHost *:{portNo}>
    DocumentRoot "{projectRootPath}/public"
    <Directory "{projectRootPath}/public">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Install composer packages

composer install

Build & development

Run gulp to execute automated tasks

gulp

Communication request & response

MICE can be called via a POST request including the following parameters in the request payload:

  • ERMR_repository: Required. Name of the repository in the ERMR.
  • delta_stream: Required. Description of the change using lrm:deltas (more information on deltas here).
  • callback_url: Optional. Callback URL to send the user's decision on whether to accept or reject the change.

Example:

POST /

{
  "ERMR_repository: "TestDVA",
  "delta_stream": "
    <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#digital_video_1> <http://xrce.xerox.com/LRM#changedBy> <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#delta_1> .
    <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#delta_1> <http://xrce.xerox.com/LRM#deletion> <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#deletion_statement_1> .
    <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#deletion_statement_1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#hasAspectRatio> .
    <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#deletion_statement_1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#aspect_ratio_1> .
    <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#delta_1> <http://xrce.xerox.com/LRM#insertion> <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#insertion_statement_1> .
    <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#insertion_statement_1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#hasAspectRatio> .
    <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#insertion_statement_1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> <https://dl.dropboxusercontent.com/u/27469926/dva_t.owl#aspect_ratio_2> .",
  "callback_url": "http://www.example.com/xxx"
}

MICE can send back the user's decision via a GET request including the following parameters:

  • action: The user’s response on whether to accept and save the change to the ERMR or to reject it (possible values: accept or reject)
  • success: In case the user has accepted the change, MICE also returns whether the change has been successfully saved to the ERMR or not (possible values: 0 or 1)

Example:

GET http://www.example.com/xxx?action=accept&success=1

Exploring the User Interface

The MICE UI is presented in the following screenshot:

MICE UI

  1. Info box showing whether the given change is expected to have an impact on the ecosystem or not.
  2. The "Change description" panel presents a list of operations that the given change needs to perform.
  3. The "Dependency graph" panel presents a graph visualization of the changed resource and the resources related to it, showing which of them may be impacted by the change and which not.
  4. The "Legend" panel provides explanations regarding the resources that appear on the graph.
  5. The "View graph" button allows the user to view the dependency graph for any of the operations listed in the "Change description" area.
  6. Buttons to expand/collapse all nodes appearing on the graph.
  7. Buttons to accept/save or reject the change.

Viewing the change description

A change to a resource may require a number of operations to be performed. For example, a change to the aspect ratio of a digital video artwork from "4:3" to "5:4" actually requires two change operations: deletion of the value "4:3" and insertion of the value "5:4".

The "Change Description" panel shows the list of operations that need to be performed and allows the user to view the impact after each operation is run using the "View graph" button.

Understanding the Dependency Graph

The Dependency Graph shows the connections between the changed resource and other resources in the ecosystem and the potential impact that the change may have on them.

The graph includes two main types of nodes:

  • Resources (e.g. a digital video artwork) and
  • Dependencies, which indicate the requirements for some conditions, in order for a resource to fulfil its purpose or to function adequately and consistently (e.g. a digital video artwork may have a dependency on specific software in order to run). Dependencies usually connect one or several resources (designated by the lrm:from property) to one or several other resources (designated by the lrm:to property)

Two particular types of dependencies are distinguished:

  • Conjunctive dependencies: all source (lrm:from) resources are required together and simultaneously to evaluate the impact of a change on the target resource(s) (lrm:to). It means that if one or several of the sources has changed (and satisfies the precondition), then the target resources must change accordingly.
  • Disjunctive dependencies: the target resource(s) (lrm:to) just depends on one of the source resources (lrm:to). It means that if there is one input resource that did not change, then the target resource(s) do not need to change.

Clicking on a resource on the graph expands the next level of the graph to show the selected resource's dependencies.

The impact is shown using a different color on the graph (red is used for impacted resources and green for not impacted ones).

Accepting / Rejecting the change

Based on the impact shown on MICE, the user may decide on how to proceed by clicking on the Accept / Reject change buttons.