74
Introduction Structure Architecture Conclusions Novelle A collaborative open source writing tool software Federico Gobbo & Michele Chinosi {federico.gobbo,michele.chinosi}@uninsubria.it Universit` a dell’Insubria Varese, Italy

Novelle: A collaborative open source writing tool software

Embed Size (px)

DESCRIPTION

Our aim is to find a way to build new texts which is fully satisfying for authors/users/active readers and whose structure is clear, i.e. suitable for linguistic computation. These are the main ideas of Novelle.

Citation preview

Page 1: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

NovelleA collaborative open source writing tool software

Federico Gobbo & Michele Chinosi{federico.gobbo,michele.chinosi}@uninsubria.it

Universita dell’InsubriaVarese, Italy

Page 2: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What we learned from hypertexts

The digital revolution and the medium of writing

Since the Web Era (1991), new forms and techniques of writingsemerged, whose structural traits are still unclear, and therole/distinction between authors and readers beging to collapse.

The optimists say: ‘hypertexts realize our postmodern anddecostructionist dream of an ‘opera aperta’ (open work)’.

On the contrary, the pessimists say: ‘authors have lost their powerin this openness’.

Page 3: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What we learned from hypertexts

The main ideas behind Novelle

Our aim is to find a way to build new texts which is fully satisfyingfor authors/users/active readers and whose structure is clear, i.e.suitable for linguistic computation. These are the main ideas ofNovelle.

We feel that the problems faced by hypertexts are much more thesames of blogs and wikis. We didn’t want to reinvent the wheel, sowe gave a lot of attention of the known literature, in particular onhypertexts.

Page 4: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What we learned from hypertexts

The analysis of terminology on hypertexts

The technical (Cunningham, McCloud) and philosophical (Nelson,Bolter, Landow) description of the known problems faced byhypertexts had helped us to design Novelle. We started fromterminology.

Terms as ‘chapter’, ‘page’ or ‘footnote’ become senseless in thenew texts, or they highly change their meaning. What seems to belost is the relations, the texture underpinning the text itself –etimologically, ‘texture’ and ‘text’ both derive from the late Latinterm textum, coined by the Roman Rhetorician Quintilianus.

Page 5: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What we learned from hypertexts

Terms we adopt

Some keywords we found useful for our analysis:

web canvas instead of ‘web page’, much more clear and notdependent from printing, from web comics (McCloud);

lexias, i.e. autonomous units of a hypertext, form hypertexts ineducation (Bolter).

transclusion, i.e. a kind of quotation, but with the ability to followthe evolution of the original document (see later).

Page 6: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Known problems as traced by Nelson, 1992

the framing problem, i.e. how to extract sub-collectionswithout loss of context information.

comparing complex alternatives, i.e. how to get parallel oralternative versions of the same document.

typology of links, i.e. how to order links avoiding confusion.

version control, i.e. how to keep track of the history of everydocument.

Page 7: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Known problems as traced by Nelson, 1992

the framing problem, i.e. how to extract sub-collectionswithout loss of context information.

comparing complex alternatives, i.e. how to get parallel oralternative versions of the same document.

typology of links, i.e. how to order links avoiding confusion.

version control, i.e. how to keep track of the history of everydocument.

Page 8: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Known problems as traced by Nelson, 1992

the framing problem, i.e. how to extract sub-collectionswithout loss of context information.

comparing complex alternatives, i.e. how to get parallel oralternative versions of the same document.

typology of links, i.e. how to order links avoiding confusion.

version control, i.e. how to keep track of the history of everydocument.

Page 9: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Known problems as traced by Nelson, 1992

the framing problem, i.e. how to extract sub-collectionswithout loss of context information.

comparing complex alternatives, i.e. how to get parallel oralternative versions of the same document.

typology of links, i.e. how to order links avoiding confusion.

version control, i.e. how to keep track of the history of everydocument.

Page 10: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Which problems are already solved?

the framing problem is not solved.

We think the bestapproximation is to let the users be able to extractsubcollection on-the-fly, i.e. extractions are not permanent,they are view of lexias.

comparing complex alternatives is not solved. A cue is givenby the document history model by wikis, but it works only ona chronological basis.

typology of links is not solved. The (X)HTML standard(s) ofthe anchor tag is too generic to give a typology.

version control is solved by the wiki model of documenthistory, so we keep this solution.

Page 11: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Which problems are already solved?

the framing problem is not solved. We think the bestapproximation is to let the users be able to extractsubcollection on-the-fly, i.e. extractions are not permanent,they are view of lexias.

comparing complex alternatives is not solved. A cue is givenby the document history model by wikis, but it works only ona chronological basis.

typology of links is not solved. The (X)HTML standard(s) ofthe anchor tag is too generic to give a typology.

version control is solved by the wiki model of documenthistory, so we keep this solution.

Page 12: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Which problems are already solved?

the framing problem is not solved. We think the bestapproximation is to let the users be able to extractsubcollection on-the-fly, i.e. extractions are not permanent,they are view of lexias.

comparing complex alternatives is not solved.

A cue is givenby the document history model by wikis, but it works only ona chronological basis.

typology of links is not solved. The (X)HTML standard(s) ofthe anchor tag is too generic to give a typology.

version control is solved by the wiki model of documenthistory, so we keep this solution.

Page 13: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Which problems are already solved?

the framing problem is not solved. We think the bestapproximation is to let the users be able to extractsubcollection on-the-fly, i.e. extractions are not permanent,they are view of lexias.

comparing complex alternatives is not solved. A cue is givenby the document history model by wikis, but it works only ona chronological basis.

typology of links is not solved. The (X)HTML standard(s) ofthe anchor tag is too generic to give a typology.

version control is solved by the wiki model of documenthistory, so we keep this solution.

Page 14: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Which problems are already solved?

the framing problem is not solved. We think the bestapproximation is to let the users be able to extractsubcollection on-the-fly, i.e. extractions are not permanent,they are view of lexias.

comparing complex alternatives is not solved. A cue is givenby the document history model by wikis, but it works only ona chronological basis.

typology of links is not solved.

The (X)HTML standard(s) ofthe anchor tag is too generic to give a typology.

version control is solved by the wiki model of documenthistory, so we keep this solution.

Page 15: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Which problems are already solved?

the framing problem is not solved. We think the bestapproximation is to let the users be able to extractsubcollection on-the-fly, i.e. extractions are not permanent,they are view of lexias.

comparing complex alternatives is not solved. A cue is givenby the document history model by wikis, but it works only ona chronological basis.

typology of links is not solved. The (X)HTML standard(s) ofthe anchor tag is too generic to give a typology.

version control is solved by the wiki model of documenthistory, so we keep this solution.

Page 16: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Which problems are already solved?

the framing problem is not solved. We think the bestapproximation is to let the users be able to extractsubcollection on-the-fly, i.e. extractions are not permanent,they are view of lexias.

comparing complex alternatives is not solved. A cue is givenby the document history model by wikis, but it works only ona chronological basis.

typology of links is not solved. The (X)HTML standard(s) ofthe anchor tag is too generic to give a typology.

version control is solved

by the wiki model of documenthistory, so we keep this solution.

Page 17: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

Which problems are already solved?

the framing problem is not solved. We think the bestapproximation is to let the users be able to extractsubcollection on-the-fly, i.e. extractions are not permanent,they are view of lexias.

comparing complex alternatives is not solved. A cue is givenby the document history model by wikis, but it works only ona chronological basis.

typology of links is not solved. The (X)HTML standard(s) ofthe anchor tag is too generic to give a typology.

version control is solved by the wiki model of documenthistory, so we keep this solution.

Page 18: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Known problems and proposed solutions

The wiki model of document history

creation

a very oldversion

the documenthistory timeline

an old version

the currentversion

the lastversion

a restorean edit

destruction

sandbox

Page 19: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

The problem of ownership

In order to address the remaining problems, we found that we hadto make a choice for the problem of ownership.

The Blog Way. Blogs follow the annotation model, where a singlelexia is central and the others are comments, sometimes organizedin threads (“write once, read many”). Advantage: suitable for alot of licences.

The Wiki Way. Wikis follow an free-to-edit model, where everylexia is central: no authorship, no signature, no hierarchy (“writemany, read many”). Disadvantage: only GPL-like licences.

Page 20: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

The problem of ownership

In order to address the remaining problems, we found that we hadto make a choice for the problem of ownership.

The Blog Way. Blogs follow the annotation model, where a singlelexia is central and the others are comments, sometimes organizedin threads (“write once, read many”). Advantage: suitable for alot of licences.

The Wiki Way. Wikis follow an free-to-edit model, where everylexia is central: no authorship, no signature, no hierarchy (“writemany, read many”). Disadvantage: only GPL-like licences.

Page 21: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

The problem of ownership

In order to address the remaining problems, we found that we hadto make a choice for the problem of ownership.

The Blog Way. Blogs follow the annotation model, where a singlelexia is central and the others are comments, sometimes organizedin threads (“write once, read many”). Advantage: suitable for alot of licences.

The Wiki Way. Wikis follow an free-to-edit model, where everylexia is central: no authorship, no signature, no hierarchy (“writemany, read many”). Disadvantage: only GPL-like licences.

Page 22: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

Solution: free licencing

We decided to let users/authors free to choose the licence of theirworks, as in case or narrative or creative works ownership is treatedas authorship, even by fellows of free culture (Stallman, Lessig). Inother words, each user owns his own lexias (as blogs).

So, we decided to implement every standard Creative Commons(cc) Licence version 2.0. Consequently, everybody is free tocomment everything, but freedom of everything may be denieddepending on the licence. This have to be chosen on lexia creation.

Page 23: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

Solution: free licencing

We decided to let users/authors free to choose the licence of theirworks, as in case or narrative or creative works ownership is treatedas authorship, even by fellows of free culture (Stallman, Lessig). Inother words, each user owns his own lexias (as blogs).

So, we decided to implement every standard Creative Commons(cc) Licence version 2.0. Consequently, everybody is free tocomment everything, but freedom of everything may be denieddepending on the licence. This have to be chosen on lexia creation.

Page 24: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

How to manage editing and create derivative works

creation the documenthistory timeline

an old version

the currentversion

creation of aderivative work

a new document history timeline

Page 25: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

For people who don’t like pictures

A user may let others edit his work, i.e. no No-Deriv option in theCC licence. If so, he has the right to retain or refuse the attributionafter the edits – for comparison: wikis let only to restoredocuments along history, you can’t “fork contents”; nor blogs.

In this case, a new history timeline start and a derivative link willbe put to mark the derivation from the original work.

Page 26: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

Transclusion: beyond quotation

the documenthistory timeline

the currentversion

an other document history timeline

a freezed quotation

transclusion

Page 27: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

Again, for people who don’t like pictures

Every user may comment and quote works by others – max. 10%of the original document may be quoted, as in the Italian Law. Wecall the quoted text transclusion, following Nelson. Unlike thecut-and-paste text, a transclusion retains a link to recall theoriginal context (quotation link), so it never points to out-to-datedata.

Furthermore, a transclusion may let the author/user to be living,i.e. to be kept up-to-date along the history timeline of the originaldocument.

Page 28: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

An up-to-date transclusion example

the documenthistory timeline

an oldversion

an other document history timeline

an up-to-date quotation

transclusion

the currentversion

Page 29: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

From transclusion to a typology of links

A quotation link is a special case of the deep links, i.e. every linkthat let users change the context. A web page becomes a view oflexias, where relations/differences/comparison between lexias arerendered visually in a single canvas. The choice of the (CC) licencemay be a guide for the user.

So, we distinguish between shallow links, i.e. links in a single viewof lexias, and deep links, i.e. links that let users change view orcontext.

Finally, links to web materials out of our system will be marked asexternal links.

Page 30: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

From transclusion to a typology of links

A quotation link is a special case of the deep links, i.e. every linkthat let users change the context. A web page becomes a view oflexias, where relations/differences/comparison between lexias arerendered visually in a single canvas. The choice of the (CC) licencemay be a guide for the user.

So, we distinguish between shallow links, i.e. links in a single viewof lexias, and deep links, i.e. links that let users change view orcontext.

Finally, links to web materials out of our system will be marked asexternal links.

Page 31: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ownership and licencing

From transclusion to a typology of links

A quotation link is a special case of the deep links, i.e. every linkthat let users change the context. A web page becomes a view oflexias, where relations/differences/comparison between lexias arerendered visually in a single canvas. The choice of the (CC) licencemay be a guide for the user.

So, we distinguish between shallow links, i.e. links in a single viewof lexias, and deep links, i.e. links that let users change view orcontext.

Finally, links to web materials out of our system will be marked asexternal links.

Page 32: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

New solutions to classic hypertext’s problems

Our solutions of open problems of hypertexts

the framing problem should be solved by deep links and webcanvas as views of lexias.

comparing complex alternatives should be solved bytransclusions and the document history model by wikis.

typology of links, i.e. shallow vs. deep (quotation, derivative)and external links should avoid chaos.

version control is already solved by wikis.

Page 33: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

New solutions to classic hypertext’s problems

Our solutions of open problems of hypertexts

the framing problem should be solved by deep links and webcanvas as views of lexias.

comparing complex alternatives should be solved bytransclusions and the document history model by wikis.

typology of links, i.e. shallow vs. deep (quotation, derivative)and external links should avoid chaos.

version control is already solved by wikis.

Page 34: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

New solutions to classic hypertext’s problems

Our solutions of open problems of hypertexts

the framing problem should be solved by deep links and webcanvas as views of lexias.

comparing complex alternatives should be solved bytransclusions and the document history model by wikis.

typology of links, i.e. shallow vs. deep (quotation, derivative)and external links should avoid chaos.

version control is already solved by wikis.

Page 35: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

New solutions to classic hypertext’s problems

Our solutions of open problems of hypertexts

the framing problem should be solved by deep links and webcanvas as views of lexias.

comparing complex alternatives should be solved bytransclusions and the document history model by wikis.

typology of links, i.e. shallow vs. deep (quotation, derivative)and external links should avoid chaos.

version control is already solved by wikis.

Page 36: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

A simple overview

The Architecture of Novelle

This is a basic scheme of Novelle multi-tier architecture

AJAX

Ruby on Rails

RDBMS

XML

DBMS / Filesystem

GUI

Page 37: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML, eXtensible Markup Language

We choose XML as language and meta-language because wewant to be able to save messages with their meanings.

XML is a W3C standard.

XML lets us extend and connect Novelle with otherapplications.

Storing separately data from their representations lets asystem run more efficiently and quickly.

Page 38: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML, eXtensible Markup Language

We choose XML as language and meta-language because wewant to be able to save messages with their meanings.

XML is a W3C standard.

XML lets us extend and connect Novelle with otherapplications.

Storing separately data from their representations lets asystem run more efficiently and quickly.

Page 39: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML, eXtensible Markup Language

We choose XML as language and meta-language because wewant to be able to save messages with their meanings.

XML is a W3C standard.

XML lets us extend and connect Novelle with otherapplications.

Storing separately data from their representations lets asystem run more efficiently and quickly.

Page 40: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML, eXtensible Markup Language

We choose XML as language and meta-language because wewant to be able to save messages with their meanings.

XML is a W3C standard.

XML lets us extend and connect Novelle with otherapplications.

Storing separately data from their representations lets asystem run more efficiently and quickly.

Page 41: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML suites our needs for the Repository

We use XML trees to store together data, metadata,messages and their meanings.

We tried to use other more classical solutions suchcommercial databases (e.g. Oracle) or open-source software(e.g. PostgreSQL, MySQL).

None of these solutions let us store efficiently our datastructure.

An Entity-Relationship schema can’t map exactly Novelle’sdata architecture.

Page 42: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML suites our needs for the Repository

We use XML trees to store together data, metadata,messages and their meanings.

We tried to use other more classical solutions suchcommercial databases (e.g. Oracle) or open-source software(e.g. PostgreSQL, MySQL).

None of these solutions let us store efficiently our datastructure.

An Entity-Relationship schema can’t map exactly Novelle’sdata architecture.

Page 43: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML suites our needs for the Repository

We use XML trees to store together data, metadata,messages and their meanings.

We tried to use other more classical solutions suchcommercial databases (e.g. Oracle) or open-source software(e.g. PostgreSQL, MySQL).

None of these solutions let us store efficiently our datastructure.

An Entity-Relationship schema can’t map exactly Novelle’sdata architecture.

Page 44: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML suites our needs for the Repository

We use XML trees to store together data, metadata,messages and their meanings.

We tried to use other more classical solutions suchcommercial databases (e.g. Oracle) or open-source software(e.g. PostgreSQL, MySQL).

None of these solutions let us store efficiently our datastructure.

An Entity-Relationship schema can’t map exactly Novelle’sdata architecture.

Page 45: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

Why RDBMS don’t fit our needs

The commercial solutions we tested haven’t native support forXML data except an emulation layer that maps XML treesinto E-R model to store data into tables, losing most of theexpressive power. These products also introduce a cost forpurchase and use them.

Other free RDBMS, such as the most famous MySQL orPostgreSQL, are compatible with XML data but they alsostore XML trees in a relational schema or map the entire XMLtree as BLOB (Binary Large OBject) storing it in one largetable.

Page 46: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

Why RDBMS don’t fit our needs

The commercial solutions we tested haven’t native support forXML data except an emulation layer that maps XML treesinto E-R model to store data into tables, losing most of theexpressive power. These products also introduce a cost forpurchase and use them.

Other free RDBMS, such as the most famous MySQL orPostgreSQL, are compatible with XML data but they alsostore XML trees in a relational schema or map the entire XMLtree as BLOB (Binary Large OBject) storing it in one largetable.

Page 47: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

Native XML databases

We tried using Xindice (by Apache Group), eXist, Ozone asnative XML databases.

While Ozone, as an Object Oriented XML native database,requires a large amount of memory for working on entire XMLtrees, Xindice and eXist are two more interesting projects.

Xindice has not been developed since april 2004, so it is verydifficult to adopt it for a new project.

eXist is more usable and stable, but it doesn’t implement fullXML standard and its performances are not so good (yet).

Page 48: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

Native XML databases

We tried using Xindice (by Apache Group), eXist, Ozone asnative XML databases.

While Ozone, as an Object Oriented XML native database,requires a large amount of memory for working on entire XMLtrees, Xindice and eXist are two more interesting projects.

Xindice has not been developed since april 2004, so it is verydifficult to adopt it for a new project.

eXist is more usable and stable, but it doesn’t implement fullXML standard and its performances are not so good (yet).

Page 49: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

Native XML databases

We tried using Xindice (by Apache Group), eXist, Ozone asnative XML databases.

While Ozone, as an Object Oriented XML native database,requires a large amount of memory for working on entire XMLtrees, Xindice and eXist are two more interesting projects.

Xindice has not been developed since april 2004, so it is verydifficult to adopt it for a new project.

eXist is more usable and stable, but it doesn’t implement fullXML standard and its performances are not so good (yet).

Page 50: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

Native XML databases

We tried using Xindice (by Apache Group), eXist, Ozone asnative XML databases.

While Ozone, as an Object Oriented XML native database,requires a large amount of memory for working on entire XMLtrees, Xindice and eXist are two more interesting projects.

Xindice has not been developed since april 2004, so it is verydifficult to adopt it for a new project.

eXist is more usable and stable, but it doesn’t implement fullXML standard and its performances are not so good (yet).

Page 51: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML Repository in the filesystem

Like most blogs and wikis, we choose to store Novelle XMLrepository on time-based filesystem structure. Our representation isa directory tree that reflects quite well our idea of history.

For every message Novelle stores three XML documents:

The message itself

Its past history

The filesystem directory tree

Page 52: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Why XML for data?

XML Repository in the filesystem

Like most blogs and wikis, we choose to store Novelle XMLrepository on time-based filesystem structure. Our representation isa directory tree that reflects quite well our idea of history.For every message Novelle stores three XML documents:

The message itself

Its past history

The filesystem directory tree

Page 53: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

Ruby on Rails: an open-source web framework

The Ruby on Rails (RoR) framework lets us a quick developcycle for web applications without the need to rewrite commonfunctions and classes (DRY - Don’t Repeat Yourself).

It provides XML builder and gdiff/gpatch libraries. Inparticular:

gdiff/gpatch creates a patch from two files.

XML Builder offers a set of classes to menage XML files.

Page 54: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

Ruby on Rails: an open-source web framework

The Ruby on Rails (RoR) framework lets us a quick developcycle for web applications without the need to rewrite commonfunctions and classes (DRY - Don’t Repeat Yourself).

It provides XML builder and gdiff/gpatch libraries. Inparticular:

gdiff/gpatch creates a patch from two files.

XML Builder offers a set of classes to menage XML files.

Page 55: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

Ruby on Rails: an open-source web framework

The Ruby on Rails (RoR) framework lets us a quick developcycle for web applications without the need to rewrite commonfunctions and classes (DRY - Don’t Repeat Yourself).

It provides XML builder and gdiff/gpatch libraries. Inparticular:

gdiff/gpatch creates a patch from two files.

XML Builder offers a set of classes to menage XML files.

Page 56: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

Ruby on Rails: an open-source web framework

The Ruby on Rails (RoR) framework lets us a quick developcycle for web applications without the need to rewrite commonfunctions and classes (DRY - Don’t Repeat Yourself).

It provides XML builder and gdiff/gpatch libraries. Inparticular:

gdiff/gpatch creates a patch from two files.

XML Builder offers a set of classes to menage XML files.

Page 57: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

Ruby on Rails for the document history model

Using gdiff/gpatch we can implement our history model in aneasy way and saving space.

Moving across a history means to retrieve a fixed number ofsubsequent patches.

RoR doesn’t support XML native databases, so we temporarilyuse a RDBMS only for RoR needs.

Page 58: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

Ruby on Rails for the document history model

Using gdiff/gpatch we can implement our history model in aneasy way and saving space.

Moving across a history means to retrieve a fixed number ofsubsequent patches.

RoR doesn’t support XML native databases, so we temporarilyuse a RDBMS only for RoR needs.

Page 59: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

Ruby on Rails for the document history model

Using gdiff/gpatch we can implement our history model in aneasy way and saving space.

Moving across a history means to retrieve a fixed number ofsubsequent patches.

RoR doesn’t support XML native databases, so we temporarilyuse a RDBMS only for RoR needs.

Page 60: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

AJAX: Asyncronous Javascript And XML

AJAX is a web development tecnique for creating interactiveweb applications. It uses a combination of XHTML,Javascript, XML, CSS, DOM and the XMLHTTPRequestobject.

XMLHTTPRequest lets clients ask servers to give someparticular data using asyncronous handshake, while users canstill continue using the web application.

Ruby on Rails fully supports AJAX.

Page 61: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

AJAX: Asyncronous Javascript And XML

AJAX is a web development tecnique for creating interactiveweb applications. It uses a combination of XHTML,Javascript, XML, CSS, DOM and the XMLHTTPRequestobject.

XMLHTTPRequest lets clients ask servers to give someparticular data using asyncronous handshake, while users canstill continue using the web application.

Ruby on Rails fully supports AJAX.

Page 62: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Ruby on Rails and AJAX

AJAX: Asyncronous Javascript And XML

AJAX is a web development tecnique for creating interactiveweb applications. It uses a combination of XHTML,Javascript, XML, CSS, DOM and the XMLHTTPRequestobject.

XMLHTTPRequest lets clients ask servers to give someparticular data using asyncronous handshake, while users canstill continue using the web application.

Ruby on Rails fully supports AJAX.

Page 63: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Access Points

Access Points as a flexible model for navigation

In Novelle users can search through histories using a simplesearch engine.

The engine returns a list of meaning and a set of linksbetween them.

These links are represented with clickable images. Everyimage is itself a map that the user can surf and/or open toincrease details level.

Users can create new typed links between lexias orcomment/modify every existing lexia if these actions aregranted by the author.

These modifications are stored into the history of thedocument.

Page 64: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Access Points

Access Points as a flexible model for navigation

In Novelle users can search through histories using a simplesearch engine.

The engine returns a list of meaning and a set of linksbetween them.

These links are represented with clickable images. Everyimage is itself a map that the user can surf and/or open toincrease details level.

Users can create new typed links between lexias orcomment/modify every existing lexia if these actions aregranted by the author.

These modifications are stored into the history of thedocument.

Page 65: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Access Points

Access Points as a flexible model for navigation

In Novelle users can search through histories using a simplesearch engine.

The engine returns a list of meaning and a set of linksbetween them.

These links are represented with clickable images. Everyimage is itself a map that the user can surf and/or open toincrease details level.

Users can create new typed links between lexias orcomment/modify every existing lexia if these actions aregranted by the author.

These modifications are stored into the history of thedocument.

Page 66: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Access Points

Access Points as a flexible model for navigation

In Novelle users can search through histories using a simplesearch engine.

The engine returns a list of meaning and a set of linksbetween them.

These links are represented with clickable images. Everyimage is itself a map that the user can surf and/or open toincrease details level.

Users can create new typed links between lexias orcomment/modify every existing lexia if these actions aregranted by the author.

These modifications are stored into the history of thedocument.

Page 67: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

Access Points

Access Points as a flexible model for navigation

In Novelle users can search through histories using a simplesearch engine.

The engine returns a list of meaning and a set of linksbetween them.

These links are represented with clickable images. Everyimage is itself a map that the user can surf and/or open toincrease details level.

Users can create new typed links between lexias orcomment/modify every existing lexia if these actions aregranted by the author.

These modifications are stored into the history of thedocument.

Page 68: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What is done, what’s still to do

Novelle’s milestones

Make a concept map to organize goals and commonterminology for the team – done.

Test technologies in order to find out what may fit our needs– done.

Develop our first prototype with the basic data structure – inprogress.

Let users test our prototype with real data and real needs, inorder to have feedback about GUI and features – to do.

Adjust GUI and features. Publish Novelle as an open-sourceproject – to do.

Dig and extract sensible information automatically, thanks tothe well-structured context datas – to do.

Page 69: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What is done, what’s still to do

Novelle’s milestones

Make a concept map to organize goals and commonterminology for the team – done.

Test technologies in order to find out what may fit our needs– done.

Develop our first prototype with the basic data structure – inprogress.

Let users test our prototype with real data and real needs, inorder to have feedback about GUI and features – to do.

Adjust GUI and features. Publish Novelle as an open-sourceproject – to do.

Dig and extract sensible information automatically, thanks tothe well-structured context datas – to do.

Page 70: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What is done, what’s still to do

Novelle’s milestones

Make a concept map to organize goals and commonterminology for the team – done.

Test technologies in order to find out what may fit our needs– done.

Develop our first prototype with the basic data structure – inprogress.

Let users test our prototype with real data and real needs, inorder to have feedback about GUI and features – to do.

Adjust GUI and features. Publish Novelle as an open-sourceproject – to do.

Dig and extract sensible information automatically, thanks tothe well-structured context datas – to do.

Page 71: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What is done, what’s still to do

Novelle’s milestones

Make a concept map to organize goals and commonterminology for the team – done.

Test technologies in order to find out what may fit our needs– done.

Develop our first prototype with the basic data structure – inprogress.

Let users test our prototype with real data and real needs, inorder to have feedback about GUI and features – to do.

Adjust GUI and features. Publish Novelle as an open-sourceproject – to do.

Dig and extract sensible information automatically, thanks tothe well-structured context datas – to do.

Page 72: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What is done, what’s still to do

Novelle’s milestones

Make a concept map to organize goals and commonterminology for the team – done.

Test technologies in order to find out what may fit our needs– done.

Develop our first prototype with the basic data structure – inprogress.

Let users test our prototype with real data and real needs, inorder to have feedback about GUI and features – to do.

Adjust GUI and features. Publish Novelle as an open-sourceproject – to do.

Dig and extract sensible information automatically, thanks tothe well-structured context datas – to do.

Page 73: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What is done, what’s still to do

Novelle’s milestones

Make a concept map to organize goals and commonterminology for the team – done.

Test technologies in order to find out what may fit our needs– done.

Develop our first prototype with the basic data structure – inprogress.

Let users test our prototype with real data and real needs, inorder to have feedback about GUI and features – to do.

Adjust GUI and features. Publish Novelle as an open-sourceproject – to do.

Dig and extract sensible information automatically, thanks tothe well-structured context datas – to do.

Page 74: Novelle: A collaborative open source writing tool software

Introduction Structure Architecture Conclusions

What is done, what’s still to do

Thanks

We wish to acknowledge Massimiliano Pepe for his collaboration.

Attribuzione - Non Commerciale - Condividi allo stesso modo 2.0 Italia

http://creativecommons.org/licenses/by-nc-sa/2.0/it/

You may have this file here: http://purl.org/net/fgobbo

Questions?