Introduction
This is a proposal for a method to define linear and nonlinear narrative 'trails' of content using the Web Annotation Data Model. The goal is to permit a 'Memex-like' application where users 'bookmark' content in a local database which provides a searchable index and UI allowing Entries to be combined into Collections, which in turn can be referenced in each Step of a greater narrative Trail. The elements of this model should be sufficiently decoupled as to allow remixing Entries and Collections into other narrative Trails. The model makes use of 'meta-annotations' (annotations targeting annotations) to create the proposed structures.
Example
Elements contained within a dotted element outline are targets of the containing element.
This example shows:
-
One Trail
-
Four Steps
-
Four Collections
-
Twelve Entries
Presentation
A client application would display these linked elements using whatever layout/navigation strategy it sees fit.
One example of a layout strategy might be to show each Step in a Trail as a slide in a slide presentation. The contents of each slide would be dereferenced from the Collection specified in the Step's body
. Collections serve as a means to show one or more Entries per narrative Step. Each Step targets 0 or more subsequent Steps. These might be used to provide navigation to the next slide, or slides in the case of a nonlinear/branching presentation.
Collections and Steps can both make use of Lists or Composites to specify whether their respective targets should be displayed in a particular order.
P2P
It is possible to store these JSON-LD annotations in a peer-to-peer content-addressable network such as Mediachain or IPFS. To do so, the @id
property must be excluded as per this discussion.
Content IRIs can take the form fs:/mc/QmContent
('mc' for the mediachain p2p network) or fs:/ipfs/QmContent/
('ipfs' for the ipfs p2p network).
Once IPLD is implemented hashes will be equivalent for both networks.
Questions
- Would an
mx:layoutStrategy
property be useful to give consuming clients a hint as to how to best present a Trail? - What is the correct syntax for a
dc:description
with multiple languages?