IHM -- recursive semantic hypermedia archive

View page as slide show

Robin Gareus

CiTu, Université Paris 8; linuxaudio.org

Introduction: The Problem

  • IHM needs a spiffy media archive :)
  • There is no appropriate non-commercial solution.
  • joomla or drupal could be customized; yet that path would require non-sustainable development effort.

Intro.: Motivation / Use-case

Why another content-management system ?

Content means “some sort of information”, management in this context means “doing something with it.”

Most of the CMS are web-site revisioning systems with emphasis on social networks.

We want a system to contain abstract items or objects (i.e. image, article, movie, person, location, comments,..) and be able to define semantic relations between them.

Intro.: Collaborations (1/2)

Potential applications, existing projects, collaborations:

  • IHM - archive about history of man-machine interfaces
  • TheArtCollider - platform for connected creation (CiTu, Paris8)
  • MMDB - MyMovieDatabase (GNU project)
  • Ozalid - upcoming social network and archive of the Bibliothèque nationale de France
  • zeega.org - interactive documentaries and new forms of storytelling (Meta-Lab, Harvard)

Intro.: Collaborations (2/2)

  • Freesound.org - collection of audio-samples
  • newscoop/superdesk - newsroom production system (sourcefabric.org)
  • airtime - radio station system (sourcefabric.org)
  • mmTeX - fan-fiction layout and book publishing engine.

Intro.: Goals / Outline

  • Complete language-set to define relations
  • Modular system (extended by plugins)
  • Publish/subscribe architecture
  • Social network integration
  • Pluggable front-ends:
    • n-dimensional navigation, timeline
    • interoperability with existing authoring tools, apps and data-sets.
    • integrated XHTML engine

Implementation: Data Model

The datamodel is a language based on triplets:

“Subject” + “predicate” + “Object”

Where subject and objects are an noun for an item/thing/frame/object and predicate is a verb.

Both, items and predicates are modular types and each of them may optionally have have dynamic attributes or adverbs.

Impl.: Data Model Example

“Mona Lisa” + was presented [from date to date] at + “the Louvre [website]”.

“Mona Lisa” + was authored [on date] by + “L. da Vinci.”.


  • “subject, object”
  • + predicate +
  • [attribute]

Impl.: References, Edges

  • Each item in IHM has a canonical resource-URI (aka. UUID) - which can be used to universally reference the content (similar to a permalink).
  • Edges are directional (parent/child) links between two resource-URIs using a predicate.
  • A matrix defines the potential relations.

Impl.: Data Types and Relations

Impl.: Technical Specs

  • PHP/JavaScript/XHTML5, REST-API
  • Model/View/Controller
  • OAuth/OpenID for access control and authentication.
  • Atom/XML is the main data-format for content.
  • uses existing RDF templates (SOAP, DOAP, FOAF, etc)
  • modular system: the layout/architecture is defined in the core but the actual visualization, rendering and [interaction + graphic] design is handled by plugins.

Impl.: Data Aggregation

  • Each object may be aggregated or synchronized with an external resource URI.
  • Items may reference read-only sources (media archive on disk, 3rd party information) - synchronisation.
  • Changes to the data-set are published (push) and can be subscribed to. Asynchronous updates.

Prototype: Demo

Prototype: What's missing

  • Proper front-end (web and interaction design[er])
    • Item visualization
    • Project specific customizations
  • Backend-parts:
    • Authentication & access-control
    • Pub/Sub API
    • Query filtering on edges.
  • Community management

Prototype: Outlook, Roadmap

  • Publicly usable prototype: after x-mas
  • Freeze APIs: spring 2012
wiki/ihm.txt · Last modified: 24.02.2012 13:04 by rgareus