MITH-OAC Phase II Project Update for January 2012

Currently, the OAC development team at Maryland Institute for Technology in the Humanities (MITH) is busy working the ins and outs of their development milestones. As of now, there is source code available on Github ( containing the skeleton functionality and design for a Streaming Video Annotation tool. The tool itself has no streaming video, but it does contain functionality to draw shapes on an SVG (RaphaelJS) canvas and sync them with a timer.

Instead of just pointing to the source code and letting those interested and with technical knowledge pick it apart, let’s take a moment to explain our methodology and why we chose the path we took. Our annotation tool is written in Javascript with our own in-house framework, MITHGrid. MITHGrid is developed by James Smith as a faceted browsing system for client-side data that mimics the Simile and Infusion projects. MITHGrid widgets are written using Applications, which house any number of DataStores, or triple-stores, on the client-side. DataStores are broken up by Views, which act like filters for the data inside a particular DataStore (e.g. “Give me all the blue squares in DataStore A”). Presentations then take the filtered data from the Views and render them on the screen. This results in a chain-effect where all data added, updated, or removed within a DataStore flows directly into the Presentation rendering that data, thus allowing for quick updates.

Javascript is being used because of its flexibility with other browsers and its familiarity with the staff. The triple-store data format is being used along with MITHGrid as it conforms well to the principles of the Semantic Web and Linked Data which are recognized and mirrored in the OAC beta specifications. In the specifications, Annotations are defined as connecting two elements together: a Target and a Body (i.e. A Body points to a Target). To expand any annotation (e.g. Add creators, constraints to the annotation Target or Body, etc.) additional triple-store items are added to the main annotation object. This is reflected in a MITHGrid DataStore. Each item has key-value pairs that act as the other two-thirds of the triple store system. An annotation in a MITHGrid DataStore would be represented as:

Annotation [

id -> 1,
    hasTarget -> targetId
hasBody   -> bodyId
    -> creatorId


Going between RDF and the MITHGrid JSON data is therefore simplified, since both use the same principles of triples and data storage. Currently, we are working on approaching this problem using NodeJS to ingest external metadata and convert it into JSON. More on that topic will be in a future blog post.

The progress with the OAC Streaming Video Annotation Client is under an ECL2 License and available via Github to clone and pick apart (

Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: