PKwhu4x°ÔC mimetypeapplication/x-advene-zip-packagePKwhu4ękzˆ1=1= content.xml index Bringing a video to a hypervideo 480080 c:\\videos\\zzvideo_next_big_thing.mp4 Nelson HT03 False start Salutations and flattery to the investor audience Dummy assistants of today Computer world nightmare Let's start over, let's clean the slate Complexity and unreliability of current operating systems Simplicity for whom : the idiot or power beginner ? Designing imaginary constructs, not string based systems The zigzag virtual machine for new users Conclusion Next speaker announce speaker=Ted Nelson date=Thursday August 28th place=Nottingham, UK event=Panel "The Next Big Thing, Inc." at Hypertext'03 ...my brain serving correctly, our next speaker is Ted Nelson Ladies and gentlemen, I'm very honoured to appear here. ??? the time I'm on the light. I'm very honoured to appear, to have a chance to talk to this distinguished group of investment bankers, and I know how you must feel after the dot.com crash. The ones who made, who made out well are not here today and of course, the ones who lost everything aren't either. So you would be a group of the astute, the far seing who are able to understand the concepts I want to put before you. A lot of talk, there was a lot of tall talk, in the late 90's as the world's got bigger and bigger. You heard (of?) all these wonderful tools that were gonna help people understand computers. So we had talking paperclips. For those to whom the world wide web was too complicated we had the Bonzi Buddy, a gorilla, a purple gorilla who would help you through and stay on your browser. And we have the wonderful website askjeeves.com which got I believe ten million in first stage capital. Jeeves says as you got on the front page, "ask me anything I know everything", said "what is the population of Bulgaria ?". "I know this about Bulgaria: Bulgaria is a country". And then a little list distracts you from the fact that it paid no attention to your question. So we are seing, we have seen simultanously the dumb down of concepts being offered to consumers, and the escalation of idiocy in the concepts being presented to the likes of you. So let's cut through this. We have a computer world now which has become a nightmare honky-tonk prison, where fanfares and, and pretty flashing lights distract you from the fact that everything is progressively more complicated, and you're being spied on on every site, and nothing is available anymore, and you have to sign up for everything. I say : let's start over, let's start over, let's clean the slate. Are you users of Windows ? How are you doing on your backups ? Have you had the machine halt in the middle of backups by any chance ? Have you lost any data ? Have things disappeared into strange parts of your disk ? And have you, have you had to reinstall the operating system and loose track of all your settings ? Or are you a user of the Macintosh ? Once so simple and unreliable. Now rock solid and uncomprehensible ! So the beginning user puts something on the desktop, "ok, now I file it inside, op", and gets the full unix directory. Right How about Linux? Oh that's great! We have this wonderful command line interface or we have the, the gnome thing with really nice incomprehensible widgets that were designed as a dumbdown of the command line interface as distinct from. ...clarity Everything is designed either for people who need to know too much, or for an imaginary stupid person. So many people want design for "the man in the street", well, the man in the street is lying on his back with the bottle of a weld?? Irish broom. We need to design for the intelligent but clueless beginner; and shall we say "the power beginner". We want to create a new computer world, where things are no harder than they need to be, and that's so difficult, because the issue was never electronics, and was never the inners of complex operating systems, the issue was always (how much have I got) You got two minutes the issue was always the design of imaginary constructs. You see, science is supposed to be about universals, and yet computer science, I believe, has become sidetracked into the ramifications of tradition, because it's all about computer languages which are written as long strings. So, you write a program as a long string, and then you do string matching against the various variables and the opcodes and so on, and then that thing compiles an executable. So people go all off into the the consequences of string parsing and syntax, but the real issue is the complex executable, making it understandable, because computer languages are about the human mind's grasp for the task to be done, and maintaining it through iterations as you improve the program. Ok, so the design, so computer science has always been I believe about the design of imaginary constructs and their ramifications. But everybody thinks it's about reality, and that's the mistake. It's much more like game design. So the game I am presenting to you, the package let us say, the zigzag virtual machine, virtual interactive machine, would be a cross platform new user system. The power beginner can look at all the cells and orthogonal connections, the relaxed beginner can merely use the functions "add relative", "add appointment", "deliver appointment", "share appointment" and making these, and adding these within the language of the system so there's a unified package you do not have to walk outside, and it would be the same running under linux, and running under the macintosh, and running under windows, by eschewing the temptations of each of these environments and rather creating a hermetically clean internal world we can start over. So I offer to you a simple new beginning, a fresh start, a sunny morning after the hangover nightmare we have built today. name=Talking Paperclip URL=http://entries.the5k.org/1126/ description=Clippy is paperclip eager to help you using Microsoft Office image=http://www.hazza316.co.uk/mrt/mrtvclippit/images/Clippit.gif altURL=http://www.hazza316.co.uk/mrt/mrtvclippit/TvCstart.htm name=Bonzi Buddy URL=http://www.bonzi.com/bonzibuddy/bonzibuddyfreehom.asp description=Bonzi is a purple gorilla eager to help you surf the web image=http://images.bonzi.com/images/gorillatalk.gif name=AskJeeves URL=http://www.ask.com/ description=Jeeves is a majordom eager to answer any of your questions image=http://sp.ask.com/i/j/aj7/jeeves_btm.gif name=Microsoft Windows description=The most used operating system URL=http://en.wikipedia.org/wiki/Microsoft_Windows name=Mac OS X description=The most feline operating system URL=http://en.wikipedia.org/wiki/Mac_OS_X name=Linux description=The most free operating system URL=http://en.wikipedia.org/wiki/Linux Various hits near microphones Squeaking Footsteps Caugh Shock Cup? Caughs squeaking name=Peter J. NĂŒrnberg URL=http://www.cs.aue.auc.dk/~pnuern/ name=Peter Murray Rust URL=http://www.ch.cam.ac.uk/CUCL/staff/pm.html name=Cathy Marshall URL=http://www.csdl.tamu.edu/~marshall/ name=Ted Nelson (flashing version) URL=http://xanadu.com.au/ted/ name=Paul De bra URL=http://www.win.tue.nl/~debra/ name=Wendy Hall URL=http://www.ecs.soton.ac.uk/~wh/ PrecedingSameType <?xml version='1.0' encoding='UTF-8'?> <query xmlns='http://liris.cnrs.fr/advene/ruleset'> <source value='here/type/annotations'/> <condition operator='before' rhs='here/fragment' lhs='element/fragment'/> </query> containedAnnotations <?xml version='1.0' encoding='UTF-8'?> <query xmlns='http://liris.cnrs.fr/advene/ruleset'> <source value='here/ownerPackage/annotations'/> <condition operator='during' rhs='here' lhs='element'/> <condition operator='different' rhs='here' lhs='element'/> </query> followingSameType <?xml version='1.0' encoding='UTF-8'?> <query xmlns='http://liris.cnrs.fr/advene/ruleset'> <source value='here/type/annotations'/> <condition operator='before' rhs='element/fragment' lhs='here/fragment'/> </query> containedUtterances <?xml version='1.0' encoding='UTF-8'?> <query xmlns='http://liris.cnrs.fr/advene/ruleset'> <source value='here/ownerPackage/annotationTypes/utterance/annotations'/> <condition operator='during' rhs='here/fragment' lhs='element/fragment'/> </query> Interactive query <?xml version='1.0' encoding='UTF-8'?> <query xmlns='http://liris.cnrs.fr/advene/ruleset'> <source value='here/rootPackage/annotations'/> <condition operator='contains' rhs='string: nelson' lhs='element/content/data'/> </query> Texte simple SchĂ©ma Ă©lĂ©mentaire pour l'annotation avec du simple texte Simple text annotation Annotation texte Une simple annotation textuelle Relation Ă©lĂ©mentaire Simple mise en relation de deux annotations. Various noises Noises laughs laughs applauses applauses otherNoises otherNoises Speech utterance Internal internal_reference A simple schema for building summaries for discourses Summary Parts of a speech PartOfSpeech string:${here/content/parsed/event} by ${here/content/parsed/speaker} Speaker, Date, Place, Event TalkDescription here/content/parsed/name People's appearance People From a part of speech to the next one NextPart For web elements related to speech outsideWeb here/content/parsed/name An operating system operatingSystem here/content/parsed/name For assistants that should help user carrying out theirs tasks assistant <a tal:attributes="href here/absolute_url">annotation <em tal:content="here/id">Id</em></a> (<a tal:attributes="href string: /media/play/${here/fragment/begin}">Play fragment</a> | <a href="/media/pause">Pause</a> | <a href="/media/stop">Stop</a> ) Package's default view <h1>Contenu du recueil <em tal:content="here/title">Titre</em> créé par <address tal:content="here/author">Auteur</address></h1> <h2><a tal:attributes="href here/annotations/absolute_url">Annotations (<em tal:content="python:len(here.annotations)">Number</em>)</a></h2> <table border="1"> <tr> <th>Type d'annotation</th> <th>Type MIME</th> <th>Nombre d'annotations</th> </tr> <tr tal:repeat="at here/annotationTypes"> <td><a tal:attributes="href at/absolute_url" tal:content="at/title | at/id">Annotation Type</a></td> <td tal:content="at/mimetype">Mime-Type</td> <td><span tal:replace="python:len(at.annotations)">Number</span> (<a tal:attributes="href string:${at/absolute_url}/view/annotation_list_view">visualiser</a>)</td> </tr> </table> <h2><a tal:attributes="href here/relations/absolute_url">Relations (<em tal:content="python:len(here.relations)">Number</em>)</a></h2> <table border="1"> <tr> <th>Type de relation</th> <th>Type MIME</th> <th>Nombre de relations</th> </tr> <tr tal:repeat="rt here/relationTypes"> <td><a tal:attributes="href rt/absolute_url" tal:content="rt/title | rt/id">Relation Type</a></td> <td tal:content="rt/mimetype">Mime-Type</td> <td><span tal:replace="python:len(rt.relations)">Number</span> (<a tal:attributes="href string:${rt/absolute_url}/view/relation_list_view">visualiser</a>)</td> </tr> </table> <h2><a tal:attributes="href string:${here/absolute_url}/views/view/views-view">Vues</a></h2> <p>Des <a tal:attributes="href string: ${here/absolute_url}/view/print-default-views">vues par dĂ©faut</a> sont appliquĂ©es automatiquement aux Ă©lĂ©ments.</p> <span tal:replace="structure here/views/view/views-view">Views</span> <h2><a tal:attributes="href string:${here/absolute_url}/schemas">SchĂ©mas</a></h2> <ul> <li tal:repeat="s here/schemas"> <a tal:attributes="href s/absolute_url" tal:content="structure s/view/item-view">SchĂ©ma</a> </li> </ul> <ul> <li tal:repeat="item here"> <a tal:attributes="href item/absolute_url" tal:content="structure item/view/item-view">Item</a> </li> </ul> <h1>Liste des schĂ©mas</h1> <ul tal:repeat="item here/ids"> <a tal:attributes="href item/absolute_url" tal:content="structure item/view/item-view">Item</a> </ul> <p>Vue <strong tal:content="here/id">Id</strong> applicable sur <em tal:content="here/matchFilter">class</em></p> <pre tal:content="here/content/data"> Contenu </pre> <p>Type <a tal:attributes="href here/absolute_url"><em tal:content="here/id">id</em> : <span tal:replace="here/title">Titre</span></a><br /> <span tal:condition="here/meta/dc/description"> Description : <em tal:content="here/meta/dc/description">description</em><br /> </span> <a tal:attributes="href here/annotations/absolute_url" tal:content="python: '%d annotation(s)' % len(here.annotations)">Nombre d'annotations</a></p> <span tal:condition="python: hasattr(here, 'content')"> <form method="POST" tal:attributes="action here/absolute_url"> <textarea tal:attributes="cols options/config/edit-width | 60; rows options/config/edit-height | 20" tal:content="here/content/data" rows="20" cols="60" name="data"> Contenu </textarea><br /> <input type="hidden" name="key" value="contentData"> <input type="hidden" name="action" value="update"> <input type="submit" value="Valider" /> </form> </span> <span tal:condition="python: not hasattr(here, 'content')"> <p>Cette vue ne s'applique que sur les Ă©lĂ©ments possĂ©dant un contenu.</p> </span> <p>Vue gĂ©nĂ©rique de <span tal:replace="here/uri">URI</span></p> <span tal:replace="here/viewableClass">Classe</span> <strong tal:content="here/id">Id</strong> <span tal:condition="exist: here/matchFilter" comment="is_a_view"> applicable sur <em tal:content="here/matchFilter">filtre</em> </span> <h2>Schema <strong tal:content="here/title | here/id">Title</strong> (<em tal:content="here/id">Id</em>)</h2> <p>Description : <em tal:content="here/meta/dc/description | string:Non fournie.">Description</em></p> <p>Types d'annotation dĂ©finis :</p> <ul> <li tal:repeat="t here/annotationTypes"> <span tal:replace="structure t/view/annotation-type-view">Type</span> </li> </ul> <p>Types de relation dĂ©finis :</p> <ul> <li tal:repeat="t here/relationTypes"> <span tal:replace="structure t/view/relation-type-view">Type</span> </li> </ul> <h1>CrĂ©er une nouvelle vue dans le recueil <em tal:content="here/ownerPackage/uri">Nom</em></h1> <form method="POST" tal:attributes="action here/ownerPackage/absolute_url"> <input type="hidden" name="type" value="view"> <input type="hidden" name="action" value="create"> Identificateur : <input type="text" name="id"><br /> Applicable sur : <select name="class"> <option>*</option> <option>annotation</option> <option>annotation-type</option> <option>content</option> <option>fragment</option> <option>list</option> <option>package</option> <option>query</option> <option>relation</option> <option>relation-type</option> <option>schema</option> <option>view</option> </select><br /> Content :<br /> <textarea name="data" rows="20" cols="80"> </textarea><br /> <input type="submit" value="Create"> </form> <h1>Annotation <em tal:content="here/id">Id</em></h1> <p>DĂ©but: <span tal:replace="here/fragment/begin">Begin</span></p> <p>Fin: <span tal:replace="here/fragment/end">End</span></p> <p>Type: <span tal:replace="here/type">Type</span></p> <p>Type du contenu: <span tal:replace="here/content/mimetype">Content-type</span></p> <p><a tal:attributes="href string:${here/content/absolute_url}/data">Content</a></p> <div class="epoz-fulleditor" metal:use-macro="epozmacros/macros/epoz_fulleditor"> <iframe metal:fill-slot="epoz_editorframe" id="epoz-editor" class="epoz-editorframe" usecss="1" tal:attributes="src string:${here/content/data/absolute_url}?mode=raw; dst here/content/absolute_url" onload="startEpoz()"> </iframe> </div> <table border="1"> <tr> <th>Identificateur</th> <th colspan="2">Filtre</th> <th>Actions</th> </tr> <tr tal:repeat="v here"> <td> <a tal:attributes="href v/absolute_url" tal:content="structure v/id">View Id</a> </td> <td tal:content="v/matchFilter/class">Class</td> <td tal:content='structure v/matchFilter/type | string::'>Type</td> <td> <a title="Editer la vue" tal:attributes="href string:${v/absolute_url}/view/edit-content">Editer</a> <span tal:condition='python: v.match(v.rootPackage)'> <span tal:condition='python:not "ruleset" in v.content.mimetype'> | <a title="Edition graphique de la vue" tal:attributes="href string:${v/absolute_url}/view/epoz">Epoz</a> | <a title="Appliquer la vue sur ownerPackage" tal:attributes="href string:${v/rootPackage/absolute_url}/view/${v/id}">Appliquer</a> </span> </span> <span tal:condition='python:"ruleset" in v.content.mimetype'> | <a title="Activer la vue dynamique" tal:attributes="href string:/media/stbv?id=${v/id}">Activer</a> </span> </td> </tr> </table> Relation <em tal:content="here/id">Id</em> entre <a href="annotation1" tal:attributes="href here/members/first/absolute_url" tal:content="here/members/first/content/data">Annotation 1</a> et <a href="annotation2" tal:attributes="href here/members/last/absolute_url" tal:content="here/members/last/content/data">Annotation 2</a> <p>Type <em tal:content="here/id">id</em> : <span tal:replace="here/title">Titre</span></p> <p><a here="annotations" tal:attributes="href here/annotations" tal:content="python: '%d annotations' % len(here.annotations)">Nombre d'annotations</a> definies.</p> <p>Type <a tal:attributes="href here/absolute_url"><em tal:content="here/id">id</em> : <span tal:replace="here/title">Titre</span></a><br /> <span tal:condition="here/meta/dc/description"> Description : <em tal:content="here/meta/dc/description">description</em><br /> </span> <a tal:attributes="href here/relations/absolute_url" tal:content="python: '%d relation(s)' % len(here.relations)">Nombre de relations</a></p> Affichage des annotations textuelles sur la vidĂ©o <?xml version='1.0' encoding='UTF-8'?> <ruleset xmlns='http://experience.univ-lyon1.fr/advene/ns/advenetool'> <rule name='Affichage des annotations textuelles'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:text/plain' lhs='annotation/content/mimetype'/> <action name='AnnotationCaption'> <param name='message' value='annotation/content/data'/> </action> </rule> </ruleset> annotation_list_view <h2><a tal:attributes="href here/annotations/absolute_url">Annotations de <span tal:replace="here/title | here/id">element</span> (<em tal:content="python:len(here.annotations)">Number</em>)</a></h2> <table width="100%" border="1"> <tr> <th>Id</th> <th>DĂ©but</th> <th>Fin</th> <th>Contenu</th> </tr> <tr tal:repeat="a here/annotations"> <td> <a tal:attributes="href a/absolute_url; title a/type/title | a/type/id" tal:content="a/id">Id</a> </td> <td> <a tal:attributes="href string:/media/play/${a/fragment/begin}; title string:Lancer le lecteur" tal:content="a/fragment/formatted/begin">Begin</a> </td> <td> <a tal:attributes="href string:/media/play/${a/fragment/end}; title string:Lancer le lecteur" tal:content="a/fragment/formatted/end">End</a> </td> <td tal:content="a/content/data">Contenu</td> </tr> </table> D_Utterance <?xml version='1.0' encoding='UTF-8'?> <ruleset xmlns='http://experience.univ-lyon1.fr/advene/ns/advenetool'> <rule name='Subtitle utterances'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:utterance' lhs='annotation/type/id'/> <action name='AnnotationCaption'> <param name='message' value='annotation/content/data'/> </action> </rule> <rule name='Internal reference'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:utterance' lhs='annotation/type/id'/> <condition operator='value' lhs='annotation/outgoingRelations'/> <action name='PopupGoto'> <param name='duration' value='string: 5000'/> <param name='position' value='annotation/outgoingRelations/first/members/last/fragment/begin'/> <param name='message' value='string: Would you like to jump to it ("${annotation/outgoingRelations/first/members/last/content/data}")?'/> <param name='description' value="string: &quot;${annotation/content/data}&quot;:There's a reference to this latter in the discourse."/> </action> </rule> </ruleset> D_Summary <?xml version='1.0' encoding='UTF-8'?> <ruleset xmlns='http://experience.univ-lyon1.fr/advene/ns/advenetool'> <rule name='Display title of the part'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:PartOfSpeech' lhs='annotation/type/id'/> <action name='AnnotationCaption'> <param name='message' value='annotation/content/data'/> </action> </rule> <rule name='Navigation to next and previous part'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:PartOfSpeech' lhs='annotation/type/id'/> <action name='PopupGoto2'> <param name='description' value='string:This is part "${annotation/content/data}"'/> <param name='position2' value='annotation/incomingRelations/first/members/first/fragment/begin'/> <param name='position1' value='annotation/outgoingRelations/first/members/last/fragment/begin'/> <param name='message2' value='string: Go to previous part : "${annotation/incomingRelations/first/members/first/content/data} "'/> <param name='message1' value='string: Go to next part : "${annotation/outgoingRelations/first/members/last/content/data}"'/> <param name='duration' value='annotation/fragment/duration'/> </action> </rule> <rule name='Add URL to the stack'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:PartOfSpeech' lhs='annotation/type/id'/> <action name='PushURL'> <param name='url' value='string:http://localhost:1234/packages/advene/view/S_Summary?mode=raw'/> <param name='message' value='annotation/content/data'/> </action> </rule> </ruleset> S_Summary <html> <head> <title>Advene demo - Speech summary</title> <link tal:attributes="href package/resources/styles/nelson.css/absolute_url" type="text/css" rel="stylesheet" /> </head> <body tal:define="description here/annotationTypes/TalkDescription/annotations/first"> <h1>A summary of <span style="font-style: italic;" tal:content="here/title">Titre</span></h1> <h2></h2> <p>Speaker : <em tal:content="description/content/parsed/speaker">the actual speaker</em><br /> Date : <em tal:content="description/content/parsed/date">the actual date</em><br /> Event : <em tal:content="description/content/parsed/event">the actual event</em><br /> Place : <em tal:content="description/content/parsed/place">the actual place</em><br /> <h2>The different parts of the speech:</h2> <ul> <li tal:repeat="a here/annotationTypes/PartOfSpeech/annotations"><a tal:attributes="href a/player_url"><img alt="" tal:attributes="src a/snapshot_url" /> <span style="font-weight: bold;" tal:content="a/content/data">Nom</span></a> (<a tal:attributes="href string:${a/absolute_url}/view/S_part_details">Details</a>) </li> </ul> <br> </body> </html> index <html> <head> <title>Advene demo - main page</title> <link tal:attributes="href package/resources/styles/nelson.css/absolute_url" type="text/css" rel="stylesheet" /> </head> <body> <h1>Welcome to the Ted Nelson HT'03 hypervideo!</h1> <p>This hypervideo is intended as a demonstration of current <em><a href="http://liris.cnrs.fr/advene/">Advene</a></em> software and framework capabilities (march 2005). </p> <h2>A slight introduction to Advene</h2> <p>The objective of the advene approach is to help people design and exchange hypervideos (hypermedias composed from audiovisual material <em>plus</em> annotation structure contents). A hypervideo is composed of several <em>views</em>, some of which (static views) can be experienced in a standard web browser, as the page you are currently reading, while others (dynamic views) result from the augmentation of the stream with text, popups, links, and so on. Several other views can be used, such as timeline, transcription related to the stream, etc. For more precisions about the advene project, see the <a href="http://liris.cnrs.fr/advene/">website</a> or read the article <a href="http://portal.acm.org/citation.cfm?id=1083405"><em>Advene: active reading through hypervideo</em></a> from the proceedings of the <a href="http://www.ht05.org/">HT'05 conference</a>. </p> <p>The advene prototype allows you to define your annotation structure (annotation and relation types), to annotate a video, to design queries on the annotation and to create both static and dynamic views. All of this information can then be saved as <em>packages</em> that can freely be shared amongst users, while the video itself has to be retrieved differently depending on the rights attached to it. A freely distributed video can be shared without difficulty, while copyrighted film material would have to be bought by both the producer and the consumer of the package. That is why Advene means: <em>Annotate Digital Video, Exchange on the NEt! </em>(or <em>Annotate DVd's, Exchange on the NEt!). </em></p> <h2>This hypervideo </h2> <p>The hypervideo you are currently viewing was composed with material coming from one video file and an annotation structure contained in the package you have loaded in the Advene software. </p> <h3>The video </h3> <p>This <a href="http://avexa128.valuehost.co.uk/ZZ/downloads/zzvideo_next_big_thing.mp4" target="_top">video</a> contains Ted Nelson's presentation at a <a href="http://www.ht03.org/panels.html" target="_top">HT'03 conference panel</a>. It lasts approximately 8 minutes, and is in MPEG4 format. The best thing you should do by now is download the video, save it somewhere on your disk, and link the package to it. To do so, use the advene main window &quot;Select movie file...&quot; button, select the appropriate video file, and save the package. You can click <a href="/media/play">here</a> to check if the movie is launched. If not, check that the path to the video file is set (Edit Package Properties). </p> <h3>The HT'03 panel: <em>The Next Big Thing, Inc. </em></h3> <p>Each of the panelist had to submit his views on Common-use hypertext for the next decade. As quoted on the panel website:</p> <blockquote> <p>The panel itself will be presented in an imaginary corporate setting. Panel members have been requested to submit a 5 minute proposal to a new multi-billion dollar international consortium, Next Big Thing Inc., that has decided to launch itself as the information nexus of the future. They want an infrastructure to enable them to do this. They are prepared to either use current technology as it is, augment it, or completely start from scratch, and have the resources to build whatever they accept. Each panelist will have 5 minutes to make their case, then will be examined by the shareholders (the audience) who will vote on the final technology to adopt at the end. </p> <p>The proposal should include a background to the technology they propose, the steps needed to implement their vision, and the result in 10 years time of adopting their proposal.</p> <p>Panelists are, of course, allowed (expected? :) to sabotage each other's bids, with commercial espionage, bribery, subterfuge, and of course, old-fashioned heckling all fair game - this is the funding oportunity of a lifetime! </blockquote> <p>As announced on the website, the panel chair was <a href="http://www.ecs.soton.ac.uk/%7Ewh/" target="_top">Wendy Hall</a>, and panelists were Paul de Bra, Ted Nelson and Peter Nuernberg. </p> <p>As reported on <a href="http://interconnected.org/notes/2003/08/ht03/thu_am_next_big_thing.txt" target="_top">personnal notes from Matt Webb</a>, panelists were in fact Paul de Bra, Peter Murray-Rust, Ted Nelson, Peter Nuernberg, and Cathy Marshall. </p> <p>They all appear on the video, and we have some images of their presence, corresponding to annotation beginning times:</p> <ul> <li tal:repeat="a here/annotationTypes/People/annotations"><a tal:attributes="href a/content/parsed/URL" tal:content="a/content/parsed/name">name</a>:<br></br><img tal:attributes="alt a/content/sorted/name" tal:attributes="src a/snapshot_url" /></li> </ul> <p>Maybe you only see red rectangles instead of snapshots taken from the video stream. If so, it means that the images have not been extracted from the video yet (no image from the video is delivered with the package), and that you should let the player capture them during the video play. For the moment being snapshots are taken when the player plays the video (and not very precisely indeed). So if you haven't played the moment you want a snapshot of, you should not have it. For accelerating things, you can use the "Player/Save image cache" facility for saving images for later reuse.</p> <p>You can for instance play the first two minutes of the video, and reload this page, to check if snapshots have been updated. You also can check if they really correspond to the right timecodes. These little inconveniences correspond to the alpha status of the prototype and the difficulty to correctly and precisely handle multimedia data without much engineering force. </p> <h2>Content of the package</h2> <p>This <code>nelson.xml</code> package contains </p> <ul> <li><a href="/packages/advene/schemas"><em>schemas</em></a>: definitions of annotation and relation types (e.g. the <a href="/packages/advene/annotationTypes/People"><code>People</code></a> annotation type belongs to the <a href="/packages/advene/schemas/Summary"><code>Summary</code></a> schema). Its MIME-type is <code>application/x-advene-structured</code> which means that annotations of type <code>People</code> can have a simple structured text content such as: <pre> name=Peter Murray Rust URL=http://www.ch.cam.ac.uk/CUCL/staff/pm.html</pre> </li> <li><em><a href="/packages/advene/annotations">annotations</a> and <a href="/packages/advene/relations">relations</a></em>: they have an id, a type, they are related to a temporal fragment of the stream, and have a content. </li> <li><em><a href="/packages/advene/queries">queries</a></em>: applied to any set of elements of a package, they can filter it according to various conditions.</li> <li><em><a href="/packages/advene/views">views</a></em>: presenting material extracted from the video and elements defined in the package. </li> </ul> <h3><em>Ad-hoc </em>views</h3> <p>You can browse the content of the package using the advene &quot;<a href="/application/adhoc/tree">tree view</a>&quot;. This view is called <em>ad hoc</em> view, as it was programmed, and as the user can only use it (changing it would need programming skills). </p> <p>Another <em>ad-hoc</em> view is the &quot;<a href="/application/adhoc/timeline">timeline view</a>&quot;, which presents all the annotations defined in the package, on lines representing annotation type. Right-clicking on elements (annotations and annotation types) pops up a menu from which it possible to do various actions on the element.</p> <p>The &quot;<a href="/application/adhoc/transcription/utterance">transcription view</a>&quot; can also be used to textually present annotations of the same type temporaly connected to the video (text/video alignment interfaces, with temporal jumps allowed at any level). The context menu of the annotation is also available by right-clicking in the text.</p> <h3>Static views</h3> <p>Also called UTBV (User-Time Based Views), these views are merely standard web documents that use the package elements (mostly annotations). They take advantage of a template attribute language developped in the context of the <a href="http://www.zope.org/">Zope</a> application server platform, called <a href="http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/AppendixC.stx">ZPT</a> (Zope Page Templates) [<a href="http://www.zope.org/Wikis/DevSite/Projects/ZPT/SimpleTutorial">Tutorial</a>]. A static view therefore consists in standard XML elements with special TAL attributes that permit simple commands, such as <code>tal:repeat</code>, <code>tal:content</code>, <code>tal:condition</code>, etc. The final construction of the page is done by the ZPT engine, and served by the web server embedded in the Advene application, when accessing the view.</p> <p>The present document contains standard XHTML with several TAL expressions, for instance for looping on the six <code>People</code> annotations, and presenting six list items with a name (i.e. the value of the &quot;name&quot; attribute), making it a web link (which destination is the value of the &quot;URL&quot; attribute), and inserting an image whose source is the snapshot corresponding to the beginning of the fragment related to each annotation. Here is for instance the corresponding part of the current view: </p> <pre>&lt;ul&gt; &lt;li tal:repeat=&quot;a here/annotationTypes/People/annotations&quot;&gt; &lt;a tal:attributes=&quot;href a/content/parsed/URL&quot; tal:content=&quot;a/content/parsed/name&quot;&gt;name&lt;/a&gt;: &lt;br&gt;&lt;/br&gt;&lt;img tal:attributes=&quot;alt a/content/parsed/name&quot; tal:attributes=&quot;src a/snapshot_url&quot; /&gt; &lt;/li&gt; &lt;/ul&gt;</pre> <p>The main means for locating and accessing elements of a package consists in using TALES (Template Attributes Language Expression Syntax). TALES expressions have the form of a path, with identifiers separated with slashes. For example, <code>here/annotationTypes/People/annotations</code> permits the access to all the annotations of type <code>People</code> contained here (<code>here</code> representing the current package). <code>a/content/parsed/name</code> identifies the value of the <code>name</code> attribute of the <code>parsed</code> <code>content</code> of the annotation <code>a</code>.</p> <p>The <a href="/application/adhoc/browser">package browser</a> is an <em>ad-hoc</em> view that allows to explore the package using TALES expressions in a "Nextstep file browser" way. The first column represents the element it has been launched on, or the package root.</p> <p>Given their path nature, TALES expressions can easily be used in URLs, which is what we implemented in the Advene webserver. For instance, calling the present view was done using the <a tal:attributes="href here/absolute_url"><code tal:content="here/absolute_url">url</code></a> URL. Other parts of the application can also be controlled through URLs. For instance, launching the player can be done using <code>http://localhost:1234/media/play</code>.</p> <p>Some static views can be applied to packages, others to annotations, others to schemas, etc. Some views (mainly administrative views) can be applied to any package, others only to a unique package (e.g. by refering to annotations ids directly, or containing textual information that are pertinent only in its context), other can be generic and limited to packages that contain some schemas and related annotations. Views can be exchanged amongst users just as annotations or schemas. </p> <p>Just as for what happened on the web and was a very important factor of spread and use, users are expected to be able to easily design the static views they need by a mix of copy-paste and general understanding of the principles. We are planning to integrate a WYSIWYG editor such as <a href="http://kupu.oscom.org/">Kupu</a> in order to achieve this goal.</p> <h3>Dynamic views</h3> <p>Also called STBV (Stream-Time Based Views) these views are video based, i.e. they consist of the video player <em>augmented</em> with several possibilities: add text on the video, add SVG drawing on the video (currently only available for Linux), navigate to other parts of the stream or to URLs (external or package related), display information popups, activate another dynamic view, etc. </p> <p>The general approach currently implemented in Advene is based on the ECA (Event-Condition-Action) paradigm, a system we consider generally apprehensible, as anybody can use its principles nowadays for filtering his mail. A dynamic view is then a set of rules. Each rule is activated by an <em>event</em> (e.g. beginning of an annotation) and, if a <em>condition</em> applies (e.g. the annotation type is <code>People</code>), it triggers an <em>action</em> (e.g. caption the name attribute from the content of the annotation).</p> <p>Several dynamic views have been defined in the package you are currently consulting. You can set the current dynamic view in the Advene main interface. But a view change is itself an action you can trigger from another view (be it static or dynamic). Feel free to test for instance the <a href="/media/play?stbv=D_People">D_People</a> view.</p> <h2>Static views of this package </h2> <p>You can find a complete description of the schemas and views that have been designed for this package in the <a href="packageConception">packageConception</a> view. These views have been designed to demonstrate the hypermedia capabilities of the Advene prototype. All of the views form a hypervideo generator.</p> <p>The summary of the video, divided in "Parts of speech" : <a href="S_Summary">S_Summary</a></p> <p>This view, named <code>index</code>, is a static Advene view. Notice that as such you can also directly <a tal:attributes="href string:${view/absolute_url}/view/edit-content">edit it in your browser</a>. Any Advene static or dynamic view definition can also be edited in the browser (but be prepared to hand-edit XML in the latter case).</p> <p>The transcription of the discourse of Ted Nelson <a href="S_Utterance">S_Utterance</a></p> <p>A view on the assistants Ted Nelson talks about: <a href="assistants">assistants</a></p> <p>A <a href="reportNoises">reportNoises</a> view sums up the Laughs and Applauses annotations by counting them, and presenting other noises that can be heard on the video.</p> <p>Notice that most of the static views propose links to dynamic views and control of the player.<p> <p>A special view is the <a href="package-view">package-view</a> view, which is an administrative view allowing to visualize all of the package's elements. Note that a static view can always be visualized considering two modes: <em>raw</em> (default), and <em>navigation</em>. The navigation mode provides navigation and test facilities to administrate the package content directly from a web browser. You can either see <a href="package-view?mode=navigation">only the package-view in navigation mode</a>, or <a href="/admin/display/navigation">switch to the navigation mode</a> for the rest of your session. If you want to set again the "raw" mode, visit the <a href="/admin">Server Administration</a> page accessible at the top of the document.</p> <h2>Dynamic views of this package </h2> <p>A view that allows to navigate between the different parts of the speech (using navigation popup + URL stack actions): <a href="/media/play?stbv=D_Summary">D_Summary</a></p> <p>A view that simply captions the utterances as subtitles, and proposes to follow links inside the discourse, when Ted Nelson reuses one term he previously used or defined: <a href="/media/play?stbv=D_Utterance">D_Utterance</a>.</p> <p>A generic view that proposes to follow any relation in the annotations, whatever it may be: <a href="/media/play?stbv=D_relation">D_relation</a>. Note that this view has been sort of specialized in the D_Utterance view.</p> <p>A view that provides links (in the URL stack) to websites for concepts Ted Nelson employs in his discourse (3 dummy assistants, 3 operating systems): <a href="/media/play?stbv=outsideURLs">outsideURLs</a>.</p> <p>The <a href="/media/play?stbv=D_People">D_People</a> view we already talked about that caption the names of the panelists and propose their web pages URL on the stack for further consultation.</p> <p>A view that dynamically stops the video player and loads external URL in a browser, when it encounters an annotation with a URL attribute (cf. preceding view): <a href="/media/play?stbv=stopAndBrowse">stopAndBrowse</a>.</p> <p>The simple <a href="/media/play?stbv=D_assistantsLoop">D_assistantsLoop</a> view, that just loops on a part of the speech.</p> <p>Two <em>virtual editing</em> view:</p> <ul> <li>an abstract is dynamically generated by the <a href="/media/play?stbv=D_abstract">D_abstract</a> view: a set of rule has been defined to jump from utterance annotation to other utterance annotations, identified by their ids.</li> <li>the <a href="/media/play?stbv=D_laughsTour">D_laughsTour</a> view proves that the presentation was fun, jumping from one laugh annotation to another. Notice that this view is more generic, as it would apply on any package featuring the Noise schema, which defines a Laughs annotation.</li> </ul> <p>Note that several dynamic views propose hyperlinks to navigate the video, hyperlinks to static views, or hyperlinks to the outside web. Also note that the links above proposed hyperlinks change the current dynamic view and play the stream from its beginning. You can also just change the view and play from the current position (<a href="/media/resume?stbv=D_Summary">D_Summary</a>, <a href="/media/resume?stbv=D_Utterance">D_Utterance</a>, <a href="/media/resume?stbv=outsideURLs">outsideURLs</a>, <a href="/media/resume?stbv=D_People">D_People</a>, <a href="/media/resume?stbv=stopAndBrowse">stopAndBrowse</a>, <a href="/media/resume?stbv=D_abstract">D_abstract</a>, <a href="/media/resume?stbv=D_laughsTour">D_laughsTour</a>). The D_assistantsLoop view has a fixed begin time.</p> <h1>And now?</h1> <p>Now you can enjoy the different views, explore Advene, give it a stop, etc.</p> <p>Two parts of this hypervideo may be of interest to you:</p> <ul> <li>The <a href="packageConception">packageConception</a> view describes how the package was built.</li> <li>The <a href="doItYourself">doItYourSelf</a> view proposes some instructions for designing schemas and views, and of course annotate the video.</li> </ul> </body> </html> S_Utterance <html> <head> <title>Transcription view</title> <link tal:attributes="href package/resources/styles/nelson.css/absolute_url" type="text/css" rel="stylesheet" /> </head> <body tal:define="description here/annotationTypes/TalkDescription/annotations/first"> <h1>Transcription of <span style="font-style: italic;" tal:content="here/title">Titre</span></h1> <p>The speaker is <em tal:content="description/content/parsed/speaker">speaker</em> and the total duration of the stream is <span tal:content="description/fragment/formatted/duration"> 12</span><p> <ul> <li tal:repeat="a here/annotationTypes/utterance/annotations/sorted">(<span tal:content="a/fragment/formatted/begin">debut</span> - <span tal:content="a/fragment/formatted/end">fin</span>) : <span style="font-weight: bold;" tal:content="structure a/view/v_enriched_link">utterance</span> (<em tal:content="a/id">id</em>) </li> </ul> <br> </body> </html> D_relation <?xml version='1.0' encoding='UTF-8'?> <ruleset xmlns='http://experience.univ-lyon1.fr/advene/ns/advenetool'> <rule name='Goto relation'> <event name='AnnotationBegin'/> <condition operator='value' lhs='annotation/outgoingRelations'/> <action name='PopupGoto'> <param name='duration' value='annotation/fragment/duration'/> <param name='position' value='annotation/outgoingRelations/first/members/last/fragment/begin'/> <param name='message' value='string: Go to ${annotation/outgoingRelations/first/members/last/content/data}'/> <param name='description' value='string:The annotation ${annotation/content/data} is related to another one.'/> </action> </rule> </ruleset> S_test_options <h1>Contents of the <em>options</em> root element</h1> <ul> <li tal:repeat="k options/keys">options/<span tal:content="k">key</span> : <em tal:content="options/?k">value</em></li> </ul> <h1>Contents of the <em>request</em> root element</h1> <ul> <li tal:repeat="k request/keys">request/<span tal:content="k">key</span> : <em tal:content="request/?k">value</em></li> </ul> <p>Try to add parameters to the query (with the syntax <pre>?foo=1&amp;bar=2</pre>) to get them through <em>request/foo</em>.</p> v_enriched_link <a tal:attributes="href here/absolute_url ; title string:Annotation ${here/id}" tal:content="here/content/data">Content</a> S_part_details <html> <head> <title>Transcription view</title> <link tal:attributes="href package/resources/styles/nelson.css/absolute_url" type="text/css" rel="stylesheet" /> </head> <body tal:define="a here"> <h1>Information about the part <em tal:content="a/content/data">data</em></h1> <p tal:define="p a/incomingRelations/first/members/first">Previous part : <a tal:attributes="href string:${p/absolute_url}/view/S_part_details" tal:content="p/content/data">Previous part</a></p> <p tal:define="n a/outgoingRelations/first/members/last">Next part : <a tal:attributes="href string:${n/absolute_url}/view/S_part_details" tal:content="n/content/data">Next part</a></p> <h2>Utterances-linked transcription</h2> <p> <span tal:repeat="u a/query/containedUtterances" tal:replace="structure u/view/v_enriched_link">Link</span> </body> assistants <html> <head> <title>Advene demo - Assistants</title> <link tal:attributes="href package/resources/styles/nelson.css/absolute_url" type="text/css" rel="stylesheet" /> </head> <body> <h1>Dummy assistants</h1> <h2>Quotes</h2> <p>Here is the text from the <em>Dummy assistants of today part of Ted Nelson's speech</em>: <br /> you can <a href=/media/play?stbv=D_assistantsLoop">play in loop</a> this excerpt (<a href=/media/pause">pause/resume</a>)</p> <cite>A lot of talk, there was a lot of tall talk, in the late 90's as the world's got bigger and bigger. You heard (of?) all these wonderful tools that were gonna help people understand computers. So we had <strong>talking paperclips</strong>. For those to whom the world wide web was too complicated we had the <strong>Bonzi Buddy</strong>, a gorilla, a purple gorilla who would help you through and stay on your browser. And we have the wonderful website <strong>askjeeves.com</strong> which got I believe ten million in first stage capital. Jeeves says as you got on the front page, "ask me anything I know everything", said "what is the population of Bulgaria ?". "I know this about Bulgaria: Bulgaria is a country". And then a little list distracts you from the fact that it paid no attention to your question. So we are seing, we have seen simultanously the dumb down of concepts being offered to consumers, and the escalation of idiocy in the concepts being presented to the likes of you.</cite> <h2>And now?</h2> <p>Two years later, what is the situation? Let's have a look.</p> <h3><a tal:attributes="href here/annotations/a434/content/parsed/URL">Talking paperclip</a></h3> <img tal:attributes="src here/annotations/a434/content/parsed/image"> <p>Clippy has not been well for a long time, turned off by default in Office XP, see <a href="http://www.microsoft.com/presspass/features/2001/apr01/04-11clippy.asp">this</a>. It will be remembered, though.</p> <h3><a tal:attributes="href here/annotations/a435/content/parsed/URL">Bonzi Buddy</a></h3> <img tal:attributes="src here/annotations/a435/content/parsed/image"> <p>The playful companion is not well either, it may even have turned bad, this <a href="http://msnbc.msn.com/id/3078514/">news article</a> describes a trial implicating it. Sad.</p> <h3><a tal:attributes="href here/annotations/a436/content/parsed/URL">Askjeeves</a></h3> <img tal:attributes="src here/annotations/a436/content/parsed/image"> <p>Jeeves is not dead, he stills works on <a href="http://www.ask.com/">ask.com</a>, and he does (now) know the <a href="http://web.ask.com/web?q=What+is+the+population+of+Bulgaria%3F&qsrc=0&o=0">population of Bulgaria</a>.</p> </body> </html> outsideURLs <?xml version='1.0' encoding='UTF-8'?> <ruleset xmlns='http://experience.univ-lyon1.fr/advene/ns/advenetool'> <rule name='Assistants'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:assistant' lhs='annotation/type/id'/> <action name='PushURL'> <param name='url' value='annotation/content/parsed/URL'/> <param name='message' value='annotation/content/parsed/name'/> </action> </rule> <rule name='os'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:operatingSystem' lhs='annotation/type/id'/> <action name='PushURL'> <param name='url' value='annotation/content/parsed/URL'/> <param name='message' value='annotation/content/parsed/name'/> </action> </rule> </ruleset> stopAndBrowse <?xml version='1.0' encoding='UTF-8'?> <ruleset xmlns='http://experience.univ-lyon1.fr/advene/ns/advenetool'> <rule name='assistants browse'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:assistant' lhs='annotation/type/id'/> <action name='OpenURL'> <param name='url' value='annotation/content/parsed/URL'/> </action> <action name='AnnotationCaption'> <param name='message' value='annotation/content/parsed/description'/> </action> </rule> <rule name='assistants stop'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:assistant' lhs='annotation/type/id'/> <action name='PlayerPause'/> </rule> <rule name='os browser'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:operatingSystem' lhs='annotation/type/id'/> <action name='AnnotationCaption'> <param name='message' value='annotation/content/parsed/description'/> </action> </rule> <rule name='os stop'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:operatingSystem' lhs='annotation/type/id'/> <action name='PlayerPause'/> </rule> <rule name='Bulgaria special'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:a270' lhs='annotation/id'/> <action name='OpenURL'> <param name='url' value='string: http://web.ask.com/web?q=What+is+the+population+of+Bulgaria%3F&amp;qsrc=0&amp;o=0'/> </action> <action name='Message'> <param name='message' value='string: Jeeves went to school!'/> </action> </rule> </ruleset> D_abstract <?xml version='1.0' encoding='UTF-8'?> <ruleset xmlns='http://experience.univ-lyon1.fr/advene/ns/advenetool'> <rule name='begin'> <event name='ViewActivation'/> <action name='PlayerGoto'> <param name='position' value='package/annotations/a225/fragment/begin'/> </action> </rule> <rule name='a225->a228'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string: a225' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a228/fragment/begin'/> </action> </rule> <rule name='a232->a245'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string: a232' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a245/fragment/begin'/> </action> </rule> <rule name='a251->a254'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string: a251' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a254/fragment/begin'/> </action> </rule> <rule name='a254->a258'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a254' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a258/fragment/begin'/> </action> </rule> <rule name='a259->a271'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a259' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a271/fragment/begin'/> </action> </rule> <rule name='a277->a279'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a277' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a279/fragment/begin'/> </action> </rule> <rule name='a280->a322'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a280' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a322/fragment/begin'/> </action> </rule> <rule name='a326->a289'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a326' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a289/fragment/begin'/> </action> </rule> <rule name='a291->a334'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a291' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a334/fragment/begin'/> </action> </rule> <rule name='a341->a357'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a341' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a357/fragment/begin'/> </action> </rule> <rule name='a364->a371'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a364' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a371/fragment/begin'/> </action> </rule> <rule name='a388->a393'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a388' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a393/fragment/begin'/> </action> </rule> <rule name='a394->a396'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a394' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a396/fragment/begin'/> </action> </rule> <rule name='a414->a420'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a394' lhs='annotation/id'/> <action name='PlayerGoto'> <param name='position' value='annotation/rootPackage/annotations/a396/fragment/begin'/> </action> </rule> <rule name='end'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:a426' lhs='annotation/id'/> <action name='Popup'> <param name='duration' value='string: 2000'/> <param name='message' value='string: You are redirected to D_Summary view.'/> </action> <action name='ActivateSTBV'> <param name='viewid' value='string: D_Summary'/> </action> </rule> </ruleset> D_laughsTour <?xml version='1.0' encoding='UTF-8'?> <ruleset xmlns='http://experience.univ-lyon1.fr/advene/ns/advenetool'> <rule name='go to next laughs annotation'> <event name='AnnotationEnd'/> <condition operator='equals' rhs='string:laughs' lhs='annotation/type/id'/> <condition operator='value' lhs='annotation/query/followingSameType'/> <action name='PlayerGoto'> <param name='position' value='annotation/query/followingSameType/sorted/first/fragment/begin'/> </action> </rule> </ruleset> reportNoises <html> <head> <title>Advene demo - Report on noises</title> <link tal:attributes="href package/resources/styles/nelson.css/absolute_url" type="text/css" rel="stylesheet" /> </head> <body> <p><em>This view is a summary of the annotations for the Noise schema. Of course, its accuracy depends on the fact that the <em>whole</em> whole video was annotated along that schema.</em></p> <h1>Noises</h1> <p>People laughed approximately <span tal:content="here/rootPackage/annotationTypes/laughs/annotations/length">444</span> times during the speech. </p> <p>They applauded <span tal:content="here/rootPackage/annotationTypes/applauses/annotations/length">444</span> times. </p> <p tal:condition="here/annotationTypes/otherNoises/annotations/length">Various noises could be heard: <span tal:repeat="a here/annotationTypes/otherNoises/annotations/sorted"><em tal:content=a/content/data">bruit</em> (<a tal:attributes="href a/player_url">play</a>), </span></p> </body> </html> D_People <?xml version='1.0' encoding='UTF-8'?> <ruleset xmlns='http://experience.univ-lyon1.fr/advene/ns/advenetool'> <rule name='Name+URL'> <event name='AnnotationBegin'/> <condition operator='equals' rhs='string:People' lhs='annotation/type/id'/> <action name='Caption'> <param name='duration' value='string: 4000'/> <param name='message' value='annotation/content/parsed/name'/> </action> <action name='PushURL'> <param name='url' value='annotation/content/parsed/URL'/> <param name='message' value='annotation/content/parsed/name'/> </action> </rule> </ruleset> packageConception <html> <head> <title>Advene demo - package conception</title> <link tal:attributes="href package/resources/styles/nelson.css/absolute_url" type="text/css" rel="stylesheet" /> </head> <body> <h1> Work with Advene: how this package was constructed</h1> <p>This document is a summary of the construction of the package <code>nelson.xml</code>: schema design, annotations, view design. </p> <h2> First step: a short summary of the video </h2> <p>We have defined a first schema, named <code><a href="/packages/advene/schemas/Summary">Summary</a></code>, that contains two annotation types: <code><a href="/packages/advene/annotationTypes/PartOfSpeech">PartOfSpeech</a></code> (text/plain) and <code><a href="/packages/advene/annotationTypes/TalkDescription">TalkDescription</a></code> (application/x-advene-structured) with <code>speaker</code>, <code>date</code>, <code>place</code>, <code>event</code> attributes. We also defined a relation type : <code><a href="/packages/advene/relationTypes/NextPart">NextPart</a></code> (text/plain)</p> <p>We have the defined annotations: first <a href="/packages/advene/annotationTypes/TalkDescription/annotations">one annotation</a> of type <code><a href="/packages/advene/annotationTypes/TalkDescription">TalkDescription</a></code>, then <a href="/packages/advene/annotationTypes/PartOfSpeech/annotations">11 annotations</a> of type <code><a href="/packages/advene/annotationTypes/PartOfSpeech">PartOfSpeech</a></code>. These latter cover all the video, and annotation was done using the "on the fly" annotation mode from the main Advene view, then adjusted with the timeline view time setting facilities. <a href="/packages/advene/relations">11 relations</a> have also been defined between the annotations, the last one being linked to the first.</p> <p>We then defined </p> <ul> <li>a static view named <code><a href="/packages/advene/views/S_Summary">S_Summary</a></code> which presents summary informations (from the 1 + 11 annotations)</li> <li>a dynamic view named <code>D_Summary </code>that contains 3 rules: <ul> <li> caption of the title of the <code>PartOfSpeech</code> </li> <li> push the URL of the part on the URL stack </li> <li> navigation popup with two links, one to the next part of speech, the other to the previous part of speech, taking advantage of the nextPart relatio</li> </ul> </li> </ul> <h2> Second step: linking transcription to the video </h2> <p> We first made a <a class="twikiLink" href="textualTranscription">transcription</a> of Ted Nelson speech. </p> <p> Then we linked the transcription to the video, which means: </p> <ul> <li> Defining a new schema <code>DiscourseAnalysis</code>. </li> <li> Defining a textual annotation type <code><a href="/packages/advene/annotationTypes/utterance">utterance</a></code>. </li> <li> Synchronizing with the video using the import transcription GUI. The chosen granularity has the "subtitling" use in mind : short utterances, but not too short. The interested reader can download the <a href="http://liris.cnrs.fr/advene/download/Nelson-HT03/nelson-transcription-utterances.txt">transcription import work saved file</a>, and open it into the import transcription GUI (here is a <a href="/application/adhoc/transcribe?url=http://liris.cnrs.fr/advene/download/Nelson-HT03/nelson-transcription-utterances.txt"> shortcut</a>).</li> </ul> <p> Some views have then been defined : </p> <ul> <li> The obvious "utterance subtitling" dynamic view <code>D_Utterance</code> </li> <li> The ad-hoc transcription view can be used with the <a href="/packages/advene/annotationTypes/utterance">utterance</a< annotation type so as to provide a classical text/video synchronisation </li> <li> The static view <code><a href="/packages/advene/views/S_Utterance">S_Utterance</a></code> displays the transcription, temporally linked with the video. </li> </ul> <p> Adding some relations: </p> <ul> <li> <code><a href="/packages/advene/relationTypes/internal_reference">internal_reference</a></code> inside the discourse. </li> <li> adding a rule to the <code>D_Utterance</code> dynamic view taking advantages of these relations by proposing to jump to it. </li> </ul> <p> Designing a <code><a href="/packages/advene/views/S_part_details">S_part_details</a></code> view that presents the utterances temporally contained in the part of speech it is applied to. For this, </p> <ul> <li> a <code>containedUtterances</code> query was defined (specialization of the <code>containedAnnotations</code> query, which returns the annotations that are stricly temporally contained in it)</li> <li> the <code>S_part_details</code> view itself loops on all the utterances annotations that are returned, and present them using the pre-defined <code><a href="/packages/advene/views/v_enriched_link">v_enriched_link</a></code> annotation view. Applying it to an utterance annotation generates HTML code with a link to an annotation, that uses the annotation default view.</li> </ul> <h2> Third step: Linking the video to the world (wide web) </h2> <p>Ted Nelson not only makes self references in his speech. He also makes references to the outside web. So as to be able to develop views and usages related to such analyses, we have defined a <code>outsideWeb</code> schema. </p> <p> We define several annotation types in this schema: </p> <ul> <li> <code><a href="/packages/advene/annotationTypes/assistant">assistant</a></code> with <code>name</code>, <code>URL</code>, <code>description</code>, <code>image</code> attributes (we use here the simple <code>application/x_advene-structured</code> annotation MIME-type where each line contains "att_name=att_value") </li> <li> <code><a href="/packages/advene/annotationTypes/operatingSystem">operatingSystem</a></code> with <code>name</code>, <code>description</code>, <code>URL</code> attributes </li> </ul> <p> After annotating the document, we can define several views related to the <code>outsideWeb</code> schema: </p> <ul> <li>a dynamic view <code>D_assistantsLoop</code> that plays in loop the excerpt of the speech dedicated to assistants (<code>PartOfSpeech&