1
edit
Kemorgan65 (talk | contribs) (Change link to Mupple download and bracketed instruction (the instruction needs to be confirmed, i.e. on how to install Mupple after download).) |
|||
| (31 intermediate revisions by 2 users not shown) | |||
| Line 8: | Line 8: | ||
1) MUPPLE II is designed as Firefox Jetpack. Because it's cool, it is for free and open source. If you have not already switched to the 'world’s best browser', download it from http://www.mozilla-europe.org/en/firefox/ (recommended version: 3.6 and higher). | 1) MUPPLE II is designed as Firefox Jetpack. Because it's cool, it is for free and open source. If you have not already switched to the 'world’s best browser', download it from http://www.mozilla-europe.org/en/firefox/ (recommended version: 3.6 and higher). | ||
2) MUPPLE II runs on Jetpack. | 2) MUPPLE II runs on Jetpack. Get your own Jetpack at https://addons.mozilla.org/en-US/firefox/addon/12025 (version 0.8.1). | ||
3) You are one-step away from your first MUPPLE II experience. Get the latest version at | 3) You are one-step away from your first MUPPLE II experience. Get the latest version at https://github.com/Laurian/MUPPLE (see download zip button in right hand column). | ||
You are now ready to trace and replay the web! | You are now ready to trace and replay the web! | ||
| Line 36: | Line 36: | ||
[[File:OverviewMuppleII.PNG|thumb|center|600px|alt=Overview of the MUPPLE II interface|Overview of the MUPPLE II interface]] | [[File:OverviewMuppleII.PNG|thumb|center|600px|alt=Overview of the MUPPLE II interface|Overview of the MUPPLE II interface]] | ||
'''Please note that in the current prototype, the 'Open Workflows' and the 'steps list' are non-functional, that is that the prototype shows one single (default) workflow.' Also MUPPLE won't force you open new or switch tabs for now.'' | |||
''Recording in Detail:'' | ''Recording in Detail:'' | ||
| Line 55: | Line 56: | ||
We will show you how you can record this activity using the basic recording elements 'add link action', 'add form action', and 'add note action'. With these basic actions, you can already record your activity 'book an online video conference'. You then can share the activity with your friends, who can replay your activity. | We will show you how you can record this activity using the basic recording elements 'add link action', 'add form action', and 'add note action'. With these basic actions, you can already record your activity 'book an online video conference'. You then can share the activity with your friends, who can replay your activity. | ||
First of all we show you how to record the activity, and | First of all we show you how to record the activity, and how to replay it. Click on the link to see the video: [http://gridinoc.name/mupple/ MUPPLE video] | ||
[http:// | |||
==Future Jetpack features for MUPPLE II== | ==Future Jetpack features for MUPPLE II== | ||
| Line 71: | Line 66: | ||
Collaboration: Another aspect of the MUPPLE concept is the strong notion of collaboration of learners. Collaboration implies sharing of data. Mozilla [[Labs/Weave|Weave]] could serve as the underlying database infrastructure for sharing data in a secure way. | Collaboration: Another aspect of the MUPPLE concept is the strong notion of collaboration of learners. Collaboration implies sharing of data. Mozilla [[Labs/Weave|Weave]] could serve as the underlying database infrastructure for sharing data in a secure way. | ||
Note: check also further below the “Technical Notes & Further Work” on sharing workflows, interoperability with OpenAnnotation, RDFa, Ubiquity, etc. | |||
==Background of the MUPPLE II concept== | ==Background of the MUPPLE II concept== | ||
| Line 118: | Line 115: | ||
=Technical Notes & Further Work= | =Technical Notes & Further Work= | ||
The current [[http://github.com/Laurian/MUPPLE | The current [[http://github.com/Laurian/MUPPLE prototype code]] is quite hard to follow, it has grown organically around various real and supposed limitations of Jetpack. | ||
* Jetpack code: http://github.com/Laurian/MUPPLE/blob/master/script/core.js | |||
* Slidebar html code: http://github.com/Laurian/MUPPLE/blob/master/slidebar.html | |||
* Slidebar javascript: http://github.com/Laurian/MUPPLE/blob/master/script/slide.js | |||
''If github has issues, you can see the raw sources:'' | |||
* Jetpack code: http://purl.org/ou/mupple/script/core.js | |||
* Slidebar html code: http://purl.org/ou/mupple/slidebar.html | |||
* Slidebar javascript: http://purl.org/ou/mupple/script/slide.js | |||
We adapted some cross-site scripting style strategies in order to achieve a tight coordination between Jetpack and the code in the slidebar; therefore we use a hidden iframe (fed with data URIs) to communicate from the slidebat to jetpack (which listens for the load event), while from jetpack to slidebar or to any tab we inject script tags with raw code or JSONP. | We adapted some cross-site scripting style strategies in order to achieve a tight coordination between Jetpack and the code in the slidebar; therefore we use a hidden iframe (fed with data URIs) to communicate from the slidebat to jetpack (which listens for the load event), while from jetpack to slidebar or to any tab we inject script tags with raw code or JSONP. | ||
We use the Jetpack storage in a particular way: we store a large part of the slidebar's DOM tree into the store instead of individual objects. The concept is that the slidebar it is not a mere View (as in MVC) of a Model, but the Model itself, directly manipulable. If someone drags and reorder some actions (DOM elements) there is no need for propagating those changes to an underlying granular database, no need to determine which individual records have to be updated in a consistent manner. | We use the Jetpack storage in a particular way: we store a large part of the slidebar's DOM tree into the store instead of individual objects. | ||
The concept is that the slidebar it is not a mere View (as in MVC) of a Model, but the Model itself, directly manipulable. If someone drags and reorder some actions (DOM elements) there is no need for propagating those changes to an underlying granular database, no need to determine which individual records have to be updated in a consistent manner. | |||
This approach was inspired by the [[http://en.wikipedia.org/wiki/Naked_objects Naked Objects pattern]]. | |||
Since the slidebar is also the Model, we need to store things there which should not be revealed to the user (such as IDs, URIs, types). For this prototype we chose to use RDFa annotations. | |||
We will investigate if HTML5 microdata would bring us more benefits; we're also thinking of the possibility of creating a workflow microformat. | |||
Having such a Model+View combo would allow for a very simple sharing strategy: you could just select and copy a workflow from the slidebar, and paste it in a blog post - all the underlying data would be just propagated and MUPPLE could just recognise in any web page published workflows and prompt the user to import them at will. | |||
Having RDFa annotations also allows us to serialise the Model to RDF and it would be possible to publish a workflow via a public RDF store (like the [[http://www.talis.com/platform/ Talis Platform]]), this would allow MUPPLE to look-up existing workflows involving a site the user is browsing. | |||
And what we believe that is more important in collaboration: it may allow an user to discover friends and co-workers workflows - this would be achievable by publishing workflows with a [[http://xmlns.com/foaf/spec/#term_maker foaf:maker]] relation, and the user's foaf profile could point to friends, organisations (hence co-workers). (If the user lacks an explicit foaf profile, we could use one based on his Twitter relations: http://semantictweet.com ) | |||
Also, apart of the mentioned RDF approach, we hope that future versions of Mozilla [[Labs/Weave|Weave]] could enable various levels of collaboration. | |||
We consider each recordable action as an annotation, and we would like to have them compatible/interoperable at some level with [[http://www.openannotation.org/ Open Annotation]] initiative. We already use [[http://xpointerlib.mozdev.org/ xpointerlib]] for ''note actions'' which would allow us to create [[http://www.w3.org/2001/Annotea/ Annotea-like]] annotations and be interoperable with Open Annotation. | |||
Xpointerlib proved quite useful in prototyping [[http://gridinoc.name/blog/2009/10/ubiquity-history/ recording]] and [[http://gridinoc.name/blog/2009/10/sharing-ubiquity-commands/ sharing]] of Ubiquity commands; having them as recordable actions in MUPPLE could enable the creation of workflows based on an ''open market'' of Ubiquity commands and provide by this a straight forward way in extending MUPPLE functionality. | |||
Moreover, think of the possibilities that the sole command ''translate'' from Ubiquity could bring to MUPPLE: ''collaboration that spans language barriers''. | |||
As we already mentioned, a LISL implementation on top of the Ubiquity's [[Labs/Ubiquity/Parser_2|Parser 2]] might allow for a tight integration between LISL and existing Ubiquity commands, and it might leverage the [[Labs/Ubiquity/Parser_2/Localization_Tutorial|localization possibilities of the parser]] if needed. | |||
Right now the prototype as UI is pretty much what we envisioned, but with partial functionality; this is mostly due not to the difficulties in added the envisioned functionality, but when observing, hands-on, that some activities must be separated, namely editing a workflow and "replaying" a workflow have to be distinct, as controls, as visual state communicated to the user; therefore we did not add extra functionality just for the sake of a prototype, we believe that a ''reboot'' of MUPPLE II is required, and we plan to do it in February. | |||
After learning how to fly a Jetpack we can now focus on core functionality, code clarity and unit testing. | |||
=Who did it?= | |||
MUPPLE II is brought to you by the Knowledge Media Institute of the Open University, UK. | |||
The MUPPLE team are: | |||
# Laurian Gridinoc (http://kmi.open.ac.uk/people/member/laurian-gridinoc) | |||
# Fridolin Wild (http://kmi.open.ac.uk/people/member/fridolin-wild) | |||
# Thomas Ullmann (http://kmi.open.ac.uk/people/member/thomas-ullmann) | |||
For more information visit the MUPPLE technology page: http://kmi.open.ac.uk/technologies/name/Mupple | |||
=Original Proposal= | =Original Proposal= | ||
The initial [[vision MUPPLE II|vision of the MUPPLE II]] Firefox Jetpack talks more about the motivation and introduces a use case to write collaboratively a paper using Web 2.0 webpages. | The initial [[vision MUPPLE II|vision of the MUPPLE II]] Firefox Jetpack talks more about the motivation and introduces a use case to write collaboratively a paper using Web 2.0 webpages. | ||
edit