SlideShare a Scribd company logo
1 of 74
Download to read offline
Introduction             Structure             Architecture        Conclusions




                                     Novelle
               A collaborative open source writing tool software


                      Federico Gobbo & Michele Chinosi
                {federico.gobbo,michele.chinosi}@uninsubria.it
                            Universit` dell’Insubria
                                     a
                                 Varese, Italy
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 writings
       emerged, whose structural traits are still unclear, and the
       role/distinction between authors and readers beging to collapse.

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

       On the contrary, the pessimists say: ‘authors have lost their power
       in this openness’.
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 satisfying
       for authors/users/active readers and whose structure is clear, i.e.
       suitable for linguistic computation. These are the main ideas of
       Novelle.

       We feel that the problems faced by hypertexts are much more the
       sames of blogs and wikis. We didn’t want to reinvent the wheel, so
       we gave a lot of attention of the known literature, in particular on
       hypertexts.
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 by
       hypertexts had helped us to design Novelle. We started from
       terminology.

       Terms as ‘chapter’, ‘page’ or ‘footnote’ become senseless in the
       new texts, or they highly change their meaning. What seems to be
       lost is the relations, the texture underpinning the text itself –
       etimologically, ‘texture’ and ‘text’ both derive from the late Latin
       term textum, coined by the Roman Rhetorician Quintilianus.
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 not
       dependent from printing, from web comics (McCloud);

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

       transclusion, i.e. a kind of quotation, but with the ability to follow
       the evolution of the original document (see later).
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-collections
               without loss of context information.
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-collections
               without loss of context information.
               comparing complex alternatives, i.e. how to get parallel or
               alternative versions of the same document.
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-collections
               without loss of context information.
               comparing complex alternatives, i.e. how to get parallel or
               alternative versions of the same document.
               typology of links, i.e. how to order links avoiding confusion.
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-collections
               without loss of context information.
               comparing complex alternatives, i.e. how to get parallel or
               alternative 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 every
               document.
Introduction                            Structure   Architecture   Conclusions

Known problems and proposed solutions


Which problems are already solved?


               the framing problem is not solved.
Introduction                            Structure   Architecture              Conclusions

Known problems and proposed solutions


Which problems are already solved?


               the framing problem is not solved. We think the best
               approximation is to let the users be able to extract
               subcollection on-the-fly, i.e. extractions are not permanent,
               they are view of lexias.
Introduction                            Structure   Architecture              Conclusions

Known problems and proposed solutions


Which problems are already solved?


               the framing problem is not solved. We think the best
               approximation is to let the users be able to extract
               subcollection on-the-fly, i.e. extractions are not permanent,
               they are view of lexias.
               comparing complex alternatives is not solved.
Introduction                            Structure   Architecture              Conclusions

Known problems and proposed solutions


Which problems are already solved?


               the framing problem is not solved. We think the best
               approximation is to let the users be able to extract
               subcollection on-the-fly, i.e. extractions are not permanent,
               they are view of lexias.
               comparing complex alternatives is not solved. A cue is given
               by the document history model by wikis, but it works only on
               a chronological basis.
Introduction                            Structure   Architecture              Conclusions

Known problems and proposed solutions


Which problems are already solved?


               the framing problem is not solved. We think the best
               approximation is to let the users be able to extract
               subcollection on-the-fly, i.e. extractions are not permanent,
               they are view of lexias.
               comparing complex alternatives is not solved. A cue is given
               by the document history model by wikis, but it works only on
               a chronological basis.
               typology of links is not solved.
Introduction                            Structure   Architecture              Conclusions

Known problems and proposed solutions


Which problems are already solved?


               the framing problem is not solved. We think the best
               approximation is to let the users be able to extract
               subcollection on-the-fly, i.e. extractions are not permanent,
               they are view of lexias.
               comparing complex alternatives is not solved. A cue is given
               by the document history model by wikis, but it works only on
               a chronological basis.
               typology of links is not solved. The (X)HTML standard(s) of
               the anchor tag is too generic to give a typology.
Introduction                            Structure   Architecture              Conclusions

Known problems and proposed solutions


Which problems are already solved?


               the framing problem is not solved. We think the best
               approximation is to let the users be able to extract
               subcollection on-the-fly, i.e. extractions are not permanent,
               they are view of lexias.
               comparing complex alternatives is not solved. A cue is given
               by the document history model by wikis, but it works only on
               a chronological basis.
               typology of links is not solved. The (X)HTML standard(s) of
               the anchor tag is too generic to give a typology.
               version control is solved
Introduction                            Structure   Architecture              Conclusions

Known problems and proposed solutions


Which problems are already solved?


               the framing problem is not solved. We think the best
               approximation is to let the users be able to extract
               subcollection on-the-fly, i.e. extractions are not permanent,
               they are view of lexias.
               comparing complex alternatives is not solved. A cue is given
               by the document history model by wikis, but it works only on
               a chronological basis.
               typology of links is not solved. The (X)HTML standard(s) of
               the anchor tag is too generic to give a typology.
               version control is solved by the wiki model of document
               history, so we keep this solution.
Introduction                            Structure                          Architecture                             Conclusions

Known problems and proposed solutions


The wiki model of document history


                              a very old             an old        the current             the last
                               version               version         version               version




                                                         the document
               creation                                                                               destruction
                                                        history timeline


                                           an edit                             a restore

                                                     sandbox
Introduction              Structure           Architecture           Conclusions

Ownership and licencing


The problem of ownership


       In order to address the remaining problems, we found that we had
       to make a choice for the problem of ownership.
Introduction              Structure            Architecture           Conclusions

Ownership and licencing


The problem of ownership


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

       The Blog Way. Blogs follow the annotation model, where a single
       lexia is central and the others are comments, sometimes organized
       in threads (“write once, read many”). Advantage: suitable for a
       lot of licences.
Introduction              Structure              Architecture            Conclusions

Ownership and licencing


The problem of ownership


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

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

       The Wiki Way. Wikis follow an free-to-edit model, where every
       lexia is central: no authorship, no signature, no hierarchy (“write
       many, read many”). Disadvantage: only GPL-like licences.
Introduction              Structure              Architecture            Conclusions

Ownership and licencing


Solution: free licencing



       We decided to let users/authors free to choose the licence of their
       works, as in case or narrative or creative works ownership is treated
       as authorship, even by fellows of free culture (Stallman, Lessig). In
       other words, each user owns his own lexias (as blogs).
Introduction              Structure              Architecture            Conclusions

Ownership and licencing


Solution: free licencing



       We decided to let users/authors free to choose the licence of their
       works, as in case or narrative or creative works ownership is treated
       as authorship, even by fellows of free culture (Stallman, Lessig). In
       other 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 to
       comment everything, but freedom of everything may be denied
       depending on the licence. This have to be chosen on lexia creation.
Introduction                    Structure                          Architecture                 Conclusions

Ownership and licencing


How to manage editing and create derivative works



                                            an old            the current
                                            version             version




                           the document
           creation
                          history timeline




                                                  creation of a             a new document
                                                 derivative work             history timeline
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 the
       CC licence. If so, he has the right to retain or refuse the attribution
       after the edits – for comparison: wikis let only to restore
       documents along history, you can’t “fork contents”; nor blogs.

       In this case, a new history timeline start and a derivative link will
       be put to mark the derivation from the original work.
Introduction                           Structure                     Architecture             Conclusions

Ownership and licencing


Transclusion: beyond quotation


                                        the current
                                          version



                     the document
                    history timeline



                                                      transclusion

                                                                        a freezed quotation


                                                                        an other document
                                                                          history timeline
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. We
       call the quoted text transclusion, following Nelson. Unlike the
       cut-and-paste text, a transclusion retains a link to recall the
       original context (quotation link), so it never points to out-to-date
       data.

       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 original
       document.
Introduction                        Structure                    Architecture                        Conclusions

Ownership and licencing


An up-to-date transclusion example


                                        an old                                         the current
                                        version                                          version



                      the document
                     history timeline



                                                  transclusion

                                                                       an up-to-date
                                                                         quotation

                                                                    an other document
                                                                      history timeline
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 link
       that let users change the context. A web page becomes a view of
       lexias, where relations/differences/comparison between lexias are
       rendered visually in a single canvas. The choice of the (CC) licence
       may be a guide for the user.
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 link
       that let users change the context. A web page becomes a view of
       lexias, where relations/differences/comparison between lexias are
       rendered visually in a single canvas. The choice of the (CC) licence
       may be a guide for the user.

       So, we distinguish between shallow links, i.e. links in a single view
       of lexias, and deep links, i.e. links that let users change view or
       context.
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 link
       that let users change the context. A web page becomes a view of
       lexias, where relations/differences/comparison between lexias are
       rendered visually in a single canvas. The choice of the (CC) licence
       may be a guide for the user.

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

       Finally, links to web materials out of our system will be marked as
       external links.
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 web
               canvas as views of lexias.
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 web
               canvas as views of lexias.
               comparing complex alternatives should be solved by
               transclusions and the document history model by wikis.
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 web
               canvas as views of lexias.
               comparing complex alternatives should be solved by
               transclusions and the document history model by wikis.
               typology of links, i.e. shallow vs. deep (quotation, derivative)
               and external links should avoid chaos.
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 web
               canvas as views of lexias.
               comparing complex alternatives should be solved by
               transclusions 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.
Introduction              Structure              Architecture           Conclusions

A simple overview


The Architecture of Novelle
       This is a basic scheme of Novelle multi-tier architecture


                                       GUI

                                      AJAX
                                              Ruby on Rails
                                                                RDBMS

                                       XML

                                 DBMS / Filesystem
Introduction               Structure           Architecture         Conclusions

Why XML for data?


XML, eXtensible Markup Language



               We choose XML as language and meta-language because we
               want to be able to save messages with their meanings.
Introduction               Structure           Architecture         Conclusions

Why XML for data?


XML, eXtensible Markup Language



               We choose XML as language and meta-language because we
               want to be able to save messages with their meanings.
               XML is a W3C standard.
Introduction                Structure            Architecture       Conclusions

Why XML for data?


XML, eXtensible Markup Language



               We choose XML as language and meta-language because we
               want to be able to save messages with their meanings.
               XML is a W3C standard.
               XML lets us extend and connect Novelle with other
               applications.
Introduction                 Structure              Architecture           Conclusions

Why XML for data?


XML, eXtensible Markup Language



               We choose XML as language and meta-language because we
               want to be able to save messages with their meanings.
               XML is a W3C standard.
               XML lets us extend and connect Novelle with other
               applications.
               Storing separately data from their representations lets a
               system run more efficiently and quickly.
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.
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 such
               commercial databases (e.g. Oracle) or open-source software
               (e.g. PostgreSQL, MySQL).
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 such
               commercial databases (e.g. Oracle) or open-source software
               (e.g. PostgreSQL, MySQL).
               None of these solutions let us store efficiently our data
               structure.
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 such
               commercial databases (e.g. Oracle) or open-source software
               (e.g. PostgreSQL, MySQL).
               None of these solutions let us store efficiently our data
               structure.
               An Entity-Relationship schema can’t map exactly Novelle’s
               data architecture.
Introduction                 Structure            Architecture           Conclusions

Why XML for data?


Why RDBMS don’t fit our needs


               The commercial solutions we tested haven’t native support for
               XML data except an emulation layer that maps XML trees
               into E-R model to store data into tables, losing most of the
               expressive power. These products also introduce a cost for
               purchase and use them.
Introduction                 Structure            Architecture           Conclusions

Why XML for data?


Why RDBMS don’t fit our needs


               The commercial solutions we tested haven’t native support for
               XML data except an emulation layer that maps XML trees
               into E-R model to store data into tables, losing most of the
               expressive power. These products also introduce a cost for
               purchase and use them.
               Other free RDBMS, such as the most famous MySQL or
               PostgreSQL, are compatible with XML data but they also
               store XML trees in a relational schema or map the entire XML
               tree as BLOB (Binary Large OBject) storing it in one large
               table.
Introduction                Structure            Architecture          Conclusions

Why XML for data?


Native XML databases



               We tried using Xindice (by Apache Group), eXist, Ozone as
               native XML databases.
Introduction                Structure            Architecture          Conclusions

Why XML for data?


Native XML databases



               We tried using Xindice (by Apache Group), eXist, Ozone as
               native XML databases.
               While Ozone, as an Object Oriented XML native database,
               requires a large amount of memory for working on entire XML
               trees, Xindice and eXist are two more interesting projects.
Introduction                 Structure             Architecture            Conclusions

Why XML for data?


Native XML databases



               We tried using Xindice (by Apache Group), eXist, Ozone as
               native XML databases.
               While Ozone, as an Object Oriented XML native database,
               requires a large amount of memory for working on entire XML
               trees, Xindice and eXist are two more interesting projects.
               Xindice has not been developed since april 2004, so it is very
               difficult to adopt it for a new project.
Introduction                 Structure             Architecture            Conclusions

Why XML for data?


Native XML databases



               We tried using Xindice (by Apache Group), eXist, Ozone as
               native XML databases.
               While Ozone, as an Object Oriented XML native database,
               requires a large amount of memory for working on entire XML
               trees, Xindice and eXist are two more interesting projects.
               Xindice has not been developed since april 2004, so it is very
               difficult to adopt it for a new project.
               eXist is more usable and stable, but it doesn’t implement full
               XML standard and its performances are not so good (yet).
Introduction              Structure             Architecture           Conclusions

Why XML for data?


XML Repository in the filesystem



       Like most blogs and wikis, we choose to store Novelle XML
       repository on time-based filesystem structure. Our representation is
       a directory tree that reflects quite well our idea of history.
Introduction                  Structure         Architecture           Conclusions

Why XML for data?


XML Repository in the filesystem



       Like most blogs and wikis, we choose to store Novelle XML
       repository on time-based filesystem structure. Our representation is
       a 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
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 develop
               cycle for web applications without the need to rewrite common
               functions and classes (DRY - Don’t Repeat Yourself).
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 develop
               cycle for web applications without the need to rewrite common
               functions and classes (DRY - Don’t Repeat Yourself).
               It provides XML builder and gdiff/gpatch libraries. In
               particular:
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 develop
               cycle for web applications without the need to rewrite common
               functions and classes (DRY - Don’t Repeat Yourself).
               It provides XML builder and gdiff/gpatch libraries. In
               particular:
               gdiff/gpatch creates a patch from two files.
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 develop
               cycle for web applications without the need to rewrite common
               functions and classes (DRY - Don’t Repeat Yourself).
               It provides XML builder and gdiff/gpatch libraries. In
               particular:
               gdiff/gpatch creates a patch from two files.
               XML Builder offers a set of classes to menage XML files.
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 an
               easy way and saving space.
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 an
               easy way and saving space.
               Moving across a history means to retrieve a fixed number of
               subsequent patches.
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 an
               easy way and saving space.
               Moving across a history means to retrieve a fixed number of
               subsequent patches.
               RoR doesn’t support XML native databases, so we temporarily
               use a RDBMS only for RoR needs.
Introduction                 Structure            Architecture           Conclusions

Ruby on Rails and AJAX


AJAX: Asyncronous Javascript And XML



               AJAX is a web development tecnique for creating interactive
               web applications. It uses a combination of XHTML,
               Javascript, XML, CSS, DOM and the XMLHTTPRequest
               object.
Introduction                 Structure            Architecture           Conclusions

Ruby on Rails and AJAX


AJAX: Asyncronous Javascript And XML



               AJAX is a web development tecnique for creating interactive
               web applications. It uses a combination of XHTML,
               Javascript, XML, CSS, DOM and the XMLHTTPRequest
               object.
               XMLHTTPRequest lets clients ask servers to give some
               particular data using asyncronous handshake, while users can
               still continue using the web application.
Introduction                 Structure              Architecture         Conclusions

Ruby on Rails and AJAX


AJAX: Asyncronous Javascript And XML



               AJAX is a web development tecnique for creating interactive
               web applications. It uses a combination of XHTML,
               Javascript, XML, CSS, DOM and the XMLHTTPRequest
               object.
               XMLHTTPRequest lets clients ask servers to give some
               particular data using asyncronous handshake, while users can
               still continue using the web application.
               Ruby on Rails fully supports AJAX.
Introduction                  Structure             Architecture               Conclusions

Access Points


Access Points as a flexible model for navigation

                In Novelle users can search through histories using a simple
                search engine.
Introduction                  Structure             Architecture               Conclusions

Access Points


Access Points as a flexible model for navigation

                In Novelle users can search through histories using a simple
                search engine.
                The engine returns a list of meaning and a set of links
                between them.
Introduction                  Structure             Architecture               Conclusions

Access Points


Access Points as a flexible model for navigation

                In Novelle users can search through histories using a simple
                search engine.
                The engine returns a list of meaning and a set of links
                between them.
                These links are represented with clickable images. Every
                image is itself a map that the user can surf and/or open to
                increase details level.
Introduction                  Structure             Architecture               Conclusions

Access Points


Access Points as a flexible model for navigation

                In Novelle users can search through histories using a simple
                search engine.
                The engine returns a list of meaning and a set of links
                between them.
                These links are represented with clickable images. Every
                image is itself a map that the user can surf and/or open to
                increase details level.
                Users can create new typed links between lexias or
                comment/modify every existing lexia if these actions are
                granted by the author.
Introduction                  Structure             Architecture               Conclusions

Access Points


Access Points as a flexible model for navigation

                In Novelle users can search through histories using a simple
                search engine.
                The engine returns a list of meaning and a set of links
                between them.
                These links are represented with clickable images. Every
                image is itself a map that the user can surf and/or open to
                increase details level.
                Users can create new typed links between lexias or
                comment/modify every existing lexia if these actions are
                granted by the author.
                These modifications are stored into the history of the
                document.
Introduction                       Structure   Architecture      Conclusions

What is done, what’s still to do


Novelle’s milestones

               Make a concept map to organize goals and common
               terminology for the team – done.
Introduction                       Structure      Architecture          Conclusions

What is done, what’s still to do


Novelle’s milestones

               Make a concept map to organize goals and common
               terminology for the team – done.
               Test technologies in order to find out what may fit our needs
               – done.
Introduction                       Structure       Architecture           Conclusions

What is done, what’s still to do


Novelle’s milestones

               Make a concept map to organize goals and common
               terminology 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 – in
               progress.
Introduction                       Structure       Architecture            Conclusions

What is done, what’s still to do


Novelle’s milestones

               Make a concept map to organize goals and common
               terminology 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 – in
               progress.
               Let users test our prototype with real data and real needs, in
               order to have feedback about GUI and features – to do.
Introduction                       Structure       Architecture            Conclusions

What is done, what’s still to do


Novelle’s milestones

               Make a concept map to organize goals and common
               terminology 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 – in
               progress.
               Let users test our prototype with real data and real needs, in
               order to have feedback about GUI and features – to do.
               Adjust GUI and features. Publish Novelle as an open-source
               project – to do.
Introduction                       Structure       Architecture            Conclusions

What is done, what’s still to do


Novelle’s milestones

               Make a concept map to organize goals and common
               terminology 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 – in
               progress.
               Let users test our prototype with real data and real needs, in
               order to have feedback about GUI and features – to do.
               Adjust GUI and features. Publish Novelle as an open-source
               project – to do.
               Dig and extract sensible information automatically, thanks to
               the well-structured context datas – to do.
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?

More Related Content

Similar to Novelle: A collaborative open source writing tool software

Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2Ankit Dubey
 
Programme generated architecture
Programme generated architectureProgramme generated architecture
Programme generated architectureSatya Prakash
 
Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)stanbridge
 
Cse 6007 fall2012
Cse 6007 fall2012Cse 6007 fall2012
Cse 6007 fall2012rhrashel
 
Coupling Semantic MediaWiki with MASTRO
Coupling Semantic MediaWiki with MASTROCoupling Semantic MediaWiki with MASTRO
Coupling Semantic MediaWiki with MASTROAlbin Ahmeti
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patternsAmit Kabra
 
(E book pdf) thinking in patterns with java
(E book   pdf) thinking in patterns with java(E book   pdf) thinking in patterns with java
(E book pdf) thinking in patterns with javaRaffaella D'angelo
 
Concept Modeling on Semantic Wiki
Concept Modeling on Semantic WikiConcept Modeling on Semantic Wiki
Concept Modeling on Semantic WikiJie Bao
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...ICSM 2010
 
DODDLE-OWL: A Domain Ontology Construction Tool with OWL
DODDLE-OWL: A Domain Ontology Construction Tool with OWLDODDLE-OWL: A Domain Ontology Construction Tool with OWL
DODDLE-OWL: A Domain Ontology Construction Tool with OWLTakeshi Morita
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignDr. C.V. Suresh Babu
 

Similar to Novelle: A collaborative open source writing tool software (20)

Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2
 
Programme generated architecture
Programme generated architectureProgramme generated architecture
Programme generated architecture
 
Unit iii design patterns 9
Unit iii design patterns 9Unit iii design patterns 9
Unit iii design patterns 9
 
Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)
 
Cse 6007 fall2012
Cse 6007 fall2012Cse 6007 fall2012
Cse 6007 fall2012
 
.Net design pattern
.Net design pattern.Net design pattern
.Net design pattern
 
Coupling Semantic MediaWiki with MASTRO
Coupling Semantic MediaWiki with MASTROCoupling Semantic MediaWiki with MASTRO
Coupling Semantic MediaWiki with MASTRO
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patterns
 
(E book pdf) thinking in patterns with java
(E book   pdf) thinking in patterns with java(E book   pdf) thinking in patterns with java
(E book pdf) thinking in patterns with java
 
Concept Modeling on Semantic Wiki
Concept Modeling on Semantic WikiConcept Modeling on Semantic Wiki
Concept Modeling on Semantic Wiki
 
Complexity
ComplexityComplexity
Complexity
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
2D and 3D Visualizations In Wikidev2.0 M. Fokaefs, D. Serrano, B. Tansey and ...
 
DODDLE-OWL: A Domain Ontology Construction Tool with OWL
DODDLE-OWL: A Domain Ontology Construction Tool with OWLDODDLE-OWL: A Domain Ontology Construction Tool with OWL
DODDLE-OWL: A Domain Ontology Construction Tool with OWL
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Wims paper (1)
Wims paper (1)Wims paper (1)
Wims paper (1)
 
Wims paper (1)
Wims paper (1)Wims paper (1)
Wims paper (1)
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
010821+presentation+oti.ppt
010821+presentation+oti.ppt010821+presentation+oti.ppt
010821+presentation+oti.ppt
 

More from Michele Chinosi

Babbo Natale va in vacanza?
Babbo Natale va in vacanza?Babbo Natale va in vacanza?
Babbo Natale va in vacanza?Michele Chinosi
 
BPMN Usage Survey: Tables
BPMN Usage Survey: TablesBPMN Usage Survey: Tables
BPMN Usage Survey: TablesMichele Chinosi
 
BPMN Usage Survey: Results
BPMN Usage Survey: ResultsBPMN Usage Survey: Results
BPMN Usage Survey: ResultsMichele Chinosi
 
Why To Consider BPMN 2.0
Why To Consider BPMN 2.0Why To Consider BPMN 2.0
Why To Consider BPMN 2.0Michele Chinosi
 
Workflow Modeling in EU GENESIS Project
Workflow Modeling in EU GENESIS ProjectWorkflow Modeling in EU GENESIS Project
Workflow Modeling in EU GENESIS ProjectMichele Chinosi
 
Modeling and Validating BPMN Diagrams
Modeling and Validating BPMN DiagramsModeling and Validating BPMN Diagrams
Modeling and Validating BPMN DiagramsMichele Chinosi
 
Modeling Requirements for the Management of Electronic Records
Modeling Requirements for the Management of Electronic RecordsModeling Requirements for the Management of Electronic Records
Modeling Requirements for the Management of Electronic RecordsMichele Chinosi
 
Representing Business Processes: Conceptual Model and Design Methodology
Representing Business Processes: Conceptual Model and Design MethodologyRepresenting Business Processes: Conceptual Model and Design Methodology
Representing Business Processes: Conceptual Model and Design MethodologyMichele Chinosi
 
Spim Mips Simulator 08 02
Spim Mips Simulator 08 02Spim Mips Simulator 08 02
Spim Mips Simulator 08 02Michele Chinosi
 
BPeX: A New Approach to BPMN Model Portability - Updated Version
BPeX: A New Approach to BPMN Model Portability - Updated VersionBPeX: A New Approach to BPMN Model Portability - Updated Version
BPeX: A New Approach to BPMN Model Portability - Updated VersionMichele Chinosi
 
Integrating Privacy Policies into Business Processes
Integrating Privacy Policies into Business ProcessesIntegrating Privacy Policies into Business Processes
Integrating Privacy Policies into Business ProcessesMichele Chinosi
 
BPeX: A New Approach to BPMN Model Portability
BPeX: A New Approach to BPMN Model PortabilityBPeX: A New Approach to BPMN Model Portability
BPeX: A New Approach to BPMN Model PortabilityMichele Chinosi
 

More from Michele Chinosi (13)

Babbo Natale va in vacanza?
Babbo Natale va in vacanza?Babbo Natale va in vacanza?
Babbo Natale va in vacanza?
 
BPMN Usage Survey: Tables
BPMN Usage Survey: TablesBPMN Usage Survey: Tables
BPMN Usage Survey: Tables
 
BPMN Usage Survey: Results
BPMN Usage Survey: ResultsBPMN Usage Survey: Results
BPMN Usage Survey: Results
 
Why To Consider BPMN 2.0
Why To Consider BPMN 2.0Why To Consider BPMN 2.0
Why To Consider BPMN 2.0
 
Workflow Modeling in EU GENESIS Project
Workflow Modeling in EU GENESIS ProjectWorkflow Modeling in EU GENESIS Project
Workflow Modeling in EU GENESIS Project
 
Modeling and Validating BPMN Diagrams
Modeling and Validating BPMN DiagramsModeling and Validating BPMN Diagrams
Modeling and Validating BPMN Diagrams
 
Modeling Requirements for the Management of Electronic Records
Modeling Requirements for the Management of Electronic RecordsModeling Requirements for the Management of Electronic Records
Modeling Requirements for the Management of Electronic Records
 
Representing Business Processes: Conceptual Model and Design Methodology
Representing Business Processes: Conceptual Model and Design MethodologyRepresenting Business Processes: Conceptual Model and Design Methodology
Representing Business Processes: Conceptual Model and Design Methodology
 
Spim Mips Simulator 08 02
Spim Mips Simulator 08 02Spim Mips Simulator 08 02
Spim Mips Simulator 08 02
 
Spim Mips Simulator
Spim Mips SimulatorSpim Mips Simulator
Spim Mips Simulator
 
BPeX: A New Approach to BPMN Model Portability - Updated Version
BPeX: A New Approach to BPMN Model Portability - Updated VersionBPeX: A New Approach to BPMN Model Portability - Updated Version
BPeX: A New Approach to BPMN Model Portability - Updated Version
 
Integrating Privacy Policies into Business Processes
Integrating Privacy Policies into Business ProcessesIntegrating Privacy Policies into Business Processes
Integrating Privacy Policies into Business Processes
 
BPeX: A New Approach to BPMN Model Portability
BPeX: A New Approach to BPMN Model PortabilityBPeX: A New Approach to BPMN Model Portability
BPeX: A New Approach to BPMN Model Portability
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

Novelle: A collaborative open source writing tool software

  • 1. Introduction Structure Architecture Conclusions Novelle A collaborative open source writing tool software Federico Gobbo & Michele Chinosi {federico.gobbo,michele.chinosi}@uninsubria.it Universit` dell’Insubria a Varese, Italy
  • 2. 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 writings emerged, whose structural traits are still unclear, and the role/distinction between authors and readers beging to collapse. The optimists say: ‘hypertexts realize our postmodern and decostructionist dream of an ‘opera aperta’ (open work)’. On the contrary, the pessimists say: ‘authors have lost their power in this openness’.
  • 3. 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 satisfying for authors/users/active readers and whose structure is clear, i.e. suitable for linguistic computation. These are the main ideas of Novelle. We feel that the problems faced by hypertexts are much more the sames of blogs and wikis. We didn’t want to reinvent the wheel, so we gave a lot of attention of the known literature, in particular on hypertexts.
  • 4. 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 by hypertexts had helped us to design Novelle. We started from terminology. Terms as ‘chapter’, ‘page’ or ‘footnote’ become senseless in the new texts, or they highly change their meaning. What seems to be lost is the relations, the texture underpinning the text itself – etimologically, ‘texture’ and ‘text’ both derive from the late Latin term textum, coined by the Roman Rhetorician Quintilianus.
  • 5. 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 not dependent from printing, from web comics (McCloud); lexias, i.e. autonomous units of a hypertext, form hypertexts in education (Bolter). transclusion, i.e. a kind of quotation, but with the ability to follow the evolution of the original document (see later).
  • 6. 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-collections without loss of context information.
  • 7. 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-collections without loss of context information. comparing complex alternatives, i.e. how to get parallel or alternative versions of the same document.
  • 8. 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-collections without loss of context information. comparing complex alternatives, i.e. how to get parallel or alternative versions of the same document. typology of links, i.e. how to order links avoiding confusion.
  • 9. 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-collections without loss of context information. comparing complex alternatives, i.e. how to get parallel or alternative 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 every document.
  • 10. Introduction Structure Architecture Conclusions Known problems and proposed solutions Which problems are already solved? the framing problem is not solved.
  • 11. Introduction Structure Architecture Conclusions Known problems and proposed solutions Which problems are already solved? the framing problem is not solved. We think the best approximation is to let the users be able to extract subcollection on-the-fly, i.e. extractions are not permanent, they are view of lexias.
  • 12. Introduction Structure Architecture Conclusions Known problems and proposed solutions Which problems are already solved? the framing problem is not solved. We think the best approximation is to let the users be able to extract subcollection on-the-fly, i.e. extractions are not permanent, they are view of lexias. comparing complex alternatives is not solved.
  • 13. Introduction Structure Architecture Conclusions Known problems and proposed solutions Which problems are already solved? the framing problem is not solved. We think the best approximation is to let the users be able to extract subcollection on-the-fly, i.e. extractions are not permanent, they are view of lexias. comparing complex alternatives is not solved. A cue is given by the document history model by wikis, but it works only on a chronological basis.
  • 14. Introduction Structure Architecture Conclusions Known problems and proposed solutions Which problems are already solved? the framing problem is not solved. We think the best approximation is to let the users be able to extract subcollection on-the-fly, i.e. extractions are not permanent, they are view of lexias. comparing complex alternatives is not solved. A cue is given by the document history model by wikis, but it works only on a chronological basis. typology of links is not solved.
  • 15. Introduction Structure Architecture Conclusions Known problems and proposed solutions Which problems are already solved? the framing problem is not solved. We think the best approximation is to let the users be able to extract subcollection on-the-fly, i.e. extractions are not permanent, they are view of lexias. comparing complex alternatives is not solved. A cue is given by the document history model by wikis, but it works only on a chronological basis. typology of links is not solved. The (X)HTML standard(s) of the anchor tag is too generic to give a typology.
  • 16. Introduction Structure Architecture Conclusions Known problems and proposed solutions Which problems are already solved? the framing problem is not solved. We think the best approximation is to let the users be able to extract subcollection on-the-fly, i.e. extractions are not permanent, they are view of lexias. comparing complex alternatives is not solved. A cue is given by the document history model by wikis, but it works only on a chronological basis. typology of links is not solved. The (X)HTML standard(s) of the anchor tag is too generic to give a typology. version control is solved
  • 17. Introduction Structure Architecture Conclusions Known problems and proposed solutions Which problems are already solved? the framing problem is not solved. We think the best approximation is to let the users be able to extract subcollection on-the-fly, i.e. extractions are not permanent, they are view of lexias. comparing complex alternatives is not solved. A cue is given by the document history model by wikis, but it works only on a chronological basis. typology of links is not solved. The (X)HTML standard(s) of the anchor tag is too generic to give a typology. version control is solved by the wiki model of document history, so we keep this solution.
  • 18. Introduction Structure Architecture Conclusions Known problems and proposed solutions The wiki model of document history a very old an old the current the last version version version version the document creation destruction history timeline an edit a restore sandbox
  • 19. Introduction Structure Architecture Conclusions Ownership and licencing The problem of ownership In order to address the remaining problems, we found that we had to make a choice for the problem of ownership.
  • 20. Introduction Structure Architecture Conclusions Ownership and licencing The problem of ownership In order to address the remaining problems, we found that we had to make a choice for the problem of ownership. The Blog Way. Blogs follow the annotation model, where a single lexia is central and the others are comments, sometimes organized in threads (“write once, read many”). Advantage: suitable for a lot of licences.
  • 21. Introduction Structure Architecture Conclusions Ownership and licencing The problem of ownership In order to address the remaining problems, we found that we had to make a choice for the problem of ownership. The Blog Way. Blogs follow the annotation model, where a single lexia is central and the others are comments, sometimes organized in threads (“write once, read many”). Advantage: suitable for a lot of licences. The Wiki Way. Wikis follow an free-to-edit model, where every lexia is central: no authorship, no signature, no hierarchy (“write many, read many”). Disadvantage: only GPL-like licences.
  • 22. Introduction Structure Architecture Conclusions Ownership and licencing Solution: free licencing We decided to let users/authors free to choose the licence of their works, as in case or narrative or creative works ownership is treated as authorship, even by fellows of free culture (Stallman, Lessig). In other words, each user owns his own lexias (as blogs).
  • 23. Introduction Structure Architecture Conclusions Ownership and licencing Solution: free licencing We decided to let users/authors free to choose the licence of their works, as in case or narrative or creative works ownership is treated as authorship, even by fellows of free culture (Stallman, Lessig). In other 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 to comment everything, but freedom of everything may be denied depending on the licence. This have to be chosen on lexia creation.
  • 24. Introduction Structure Architecture Conclusions Ownership and licencing How to manage editing and create derivative works an old the current version version the document creation history timeline creation of a a new document derivative work history timeline
  • 25. 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 the CC licence. If so, he has the right to retain or refuse the attribution after the edits – for comparison: wikis let only to restore documents along history, you can’t “fork contents”; nor blogs. In this case, a new history timeline start and a derivative link will be put to mark the derivation from the original work.
  • 26. Introduction Structure Architecture Conclusions Ownership and licencing Transclusion: beyond quotation the current version the document history timeline transclusion a freezed quotation an other document history timeline
  • 27. 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. We call the quoted text transclusion, following Nelson. Unlike the cut-and-paste text, a transclusion retains a link to recall the original context (quotation link), so it never points to out-to-date data. 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 original document.
  • 28. Introduction Structure Architecture Conclusions Ownership and licencing An up-to-date transclusion example an old the current version version the document history timeline transclusion an up-to-date quotation an other document history timeline
  • 29. 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 link that let users change the context. A web page becomes a view of lexias, where relations/differences/comparison between lexias are rendered visually in a single canvas. The choice of the (CC) licence may be a guide for the user.
  • 30. 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 link that let users change the context. A web page becomes a view of lexias, where relations/differences/comparison between lexias are rendered visually in a single canvas. The choice of the (CC) licence may be a guide for the user. So, we distinguish between shallow links, i.e. links in a single view of lexias, and deep links, i.e. links that let users change view or context.
  • 31. 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 link that let users change the context. A web page becomes a view of lexias, where relations/differences/comparison between lexias are rendered visually in a single canvas. The choice of the (CC) licence may be a guide for the user. So, we distinguish between shallow links, i.e. links in a single view of lexias, and deep links, i.e. links that let users change view or context. Finally, links to web materials out of our system will be marked as external links.
  • 32. 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 web canvas as views of lexias.
  • 33. 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 web canvas as views of lexias. comparing complex alternatives should be solved by transclusions and the document history model by wikis.
  • 34. 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 web canvas as views of lexias. comparing complex alternatives should be solved by transclusions and the document history model by wikis. typology of links, i.e. shallow vs. deep (quotation, derivative) and external links should avoid chaos.
  • 35. 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 web canvas as views of lexias. comparing complex alternatives should be solved by transclusions 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.
  • 36. Introduction Structure Architecture Conclusions A simple overview The Architecture of Novelle This is a basic scheme of Novelle multi-tier architecture GUI AJAX Ruby on Rails RDBMS XML DBMS / Filesystem
  • 37. Introduction Structure Architecture Conclusions Why XML for data? XML, eXtensible Markup Language We choose XML as language and meta-language because we want to be able to save messages with their meanings.
  • 38. Introduction Structure Architecture Conclusions Why XML for data? XML, eXtensible Markup Language We choose XML as language and meta-language because we want to be able to save messages with their meanings. XML is a W3C standard.
  • 39. Introduction Structure Architecture Conclusions Why XML for data? XML, eXtensible Markup Language We choose XML as language and meta-language because we want to be able to save messages with their meanings. XML is a W3C standard. XML lets us extend and connect Novelle with other applications.
  • 40. Introduction Structure Architecture Conclusions Why XML for data? XML, eXtensible Markup Language We choose XML as language and meta-language because we want to be able to save messages with their meanings. XML is a W3C standard. XML lets us extend and connect Novelle with other applications. Storing separately data from their representations lets a system run more efficiently and quickly.
  • 41. 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.
  • 42. 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 such commercial databases (e.g. Oracle) or open-source software (e.g. PostgreSQL, MySQL).
  • 43. 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 such commercial databases (e.g. Oracle) or open-source software (e.g. PostgreSQL, MySQL). None of these solutions let us store efficiently our data structure.
  • 44. 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 such commercial databases (e.g. Oracle) or open-source software (e.g. PostgreSQL, MySQL). None of these solutions let us store efficiently our data structure. An Entity-Relationship schema can’t map exactly Novelle’s data architecture.
  • 45. Introduction Structure Architecture Conclusions Why XML for data? Why RDBMS don’t fit our needs The commercial solutions we tested haven’t native support for XML data except an emulation layer that maps XML trees into E-R model to store data into tables, losing most of the expressive power. These products also introduce a cost for purchase and use them.
  • 46. Introduction Structure Architecture Conclusions Why XML for data? Why RDBMS don’t fit our needs The commercial solutions we tested haven’t native support for XML data except an emulation layer that maps XML trees into E-R model to store data into tables, losing most of the expressive power. These products also introduce a cost for purchase and use them. Other free RDBMS, such as the most famous MySQL or PostgreSQL, are compatible with XML data but they also store XML trees in a relational schema or map the entire XML tree as BLOB (Binary Large OBject) storing it in one large table.
  • 47. Introduction Structure Architecture Conclusions Why XML for data? Native XML databases We tried using Xindice (by Apache Group), eXist, Ozone as native XML databases.
  • 48. Introduction Structure Architecture Conclusions Why XML for data? Native XML databases We tried using Xindice (by Apache Group), eXist, Ozone as native XML databases. While Ozone, as an Object Oriented XML native database, requires a large amount of memory for working on entire XML trees, Xindice and eXist are two more interesting projects.
  • 49. Introduction Structure Architecture Conclusions Why XML for data? Native XML databases We tried using Xindice (by Apache Group), eXist, Ozone as native XML databases. While Ozone, as an Object Oriented XML native database, requires a large amount of memory for working on entire XML trees, Xindice and eXist are two more interesting projects. Xindice has not been developed since april 2004, so it is very difficult to adopt it for a new project.
  • 50. Introduction Structure Architecture Conclusions Why XML for data? Native XML databases We tried using Xindice (by Apache Group), eXist, Ozone as native XML databases. While Ozone, as an Object Oriented XML native database, requires a large amount of memory for working on entire XML trees, Xindice and eXist are two more interesting projects. Xindice has not been developed since april 2004, so it is very difficult to adopt it for a new project. eXist is more usable and stable, but it doesn’t implement full XML standard and its performances are not so good (yet).
  • 51. Introduction Structure Architecture Conclusions Why XML for data? XML Repository in the filesystem Like most blogs and wikis, we choose to store Novelle XML repository on time-based filesystem structure. Our representation is a directory tree that reflects quite well our idea of history.
  • 52. Introduction Structure Architecture Conclusions Why XML for data? XML Repository in the filesystem Like most blogs and wikis, we choose to store Novelle XML repository on time-based filesystem structure. Our representation is a 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
  • 53. 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 develop cycle for web applications without the need to rewrite common functions and classes (DRY - Don’t Repeat Yourself).
  • 54. 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 develop cycle for web applications without the need to rewrite common functions and classes (DRY - Don’t Repeat Yourself). It provides XML builder and gdiff/gpatch libraries. In particular:
  • 55. 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 develop cycle for web applications without the need to rewrite common functions and classes (DRY - Don’t Repeat Yourself). It provides XML builder and gdiff/gpatch libraries. In particular: gdiff/gpatch creates a patch from two files.
  • 56. 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 develop cycle for web applications without the need to rewrite common functions and classes (DRY - Don’t Repeat Yourself). It provides XML builder and gdiff/gpatch libraries. In particular: gdiff/gpatch creates a patch from two files. XML Builder offers a set of classes to menage XML files.
  • 57. 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 an easy way and saving space.
  • 58. 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 an easy way and saving space. Moving across a history means to retrieve a fixed number of subsequent patches.
  • 59. 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 an easy way and saving space. Moving across a history means to retrieve a fixed number of subsequent patches. RoR doesn’t support XML native databases, so we temporarily use a RDBMS only for RoR needs.
  • 60. Introduction Structure Architecture Conclusions Ruby on Rails and AJAX AJAX: Asyncronous Javascript And XML AJAX is a web development tecnique for creating interactive web applications. It uses a combination of XHTML, Javascript, XML, CSS, DOM and the XMLHTTPRequest object.
  • 61. Introduction Structure Architecture Conclusions Ruby on Rails and AJAX AJAX: Asyncronous Javascript And XML AJAX is a web development tecnique for creating interactive web applications. It uses a combination of XHTML, Javascript, XML, CSS, DOM and the XMLHTTPRequest object. XMLHTTPRequest lets clients ask servers to give some particular data using asyncronous handshake, while users can still continue using the web application.
  • 62. Introduction Structure Architecture Conclusions Ruby on Rails and AJAX AJAX: Asyncronous Javascript And XML AJAX is a web development tecnique for creating interactive web applications. It uses a combination of XHTML, Javascript, XML, CSS, DOM and the XMLHTTPRequest object. XMLHTTPRequest lets clients ask servers to give some particular data using asyncronous handshake, while users can still continue using the web application. Ruby on Rails fully supports AJAX.
  • 63. Introduction Structure Architecture Conclusions Access Points Access Points as a flexible model for navigation In Novelle users can search through histories using a simple search engine.
  • 64. Introduction Structure Architecture Conclusions Access Points Access Points as a flexible model for navigation In Novelle users can search through histories using a simple search engine. The engine returns a list of meaning and a set of links between them.
  • 65. Introduction Structure Architecture Conclusions Access Points Access Points as a flexible model for navigation In Novelle users can search through histories using a simple search engine. The engine returns a list of meaning and a set of links between them. These links are represented with clickable images. Every image is itself a map that the user can surf and/or open to increase details level.
  • 66. Introduction Structure Architecture Conclusions Access Points Access Points as a flexible model for navigation In Novelle users can search through histories using a simple search engine. The engine returns a list of meaning and a set of links between them. These links are represented with clickable images. Every image is itself a map that the user can surf and/or open to increase details level. Users can create new typed links between lexias or comment/modify every existing lexia if these actions are granted by the author.
  • 67. Introduction Structure Architecture Conclusions Access Points Access Points as a flexible model for navigation In Novelle users can search through histories using a simple search engine. The engine returns a list of meaning and a set of links between them. These links are represented with clickable images. Every image is itself a map that the user can surf and/or open to increase details level. Users can create new typed links between lexias or comment/modify every existing lexia if these actions are granted by the author. These modifications are stored into the history of the document.
  • 68. Introduction Structure Architecture Conclusions What is done, what’s still to do Novelle’s milestones Make a concept map to organize goals and common terminology for the team – done.
  • 69. Introduction Structure Architecture Conclusions What is done, what’s still to do Novelle’s milestones Make a concept map to organize goals and common terminology for the team – done. Test technologies in order to find out what may fit our needs – done.
  • 70. Introduction Structure Architecture Conclusions What is done, what’s still to do Novelle’s milestones Make a concept map to organize goals and common terminology 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 – in progress.
  • 71. Introduction Structure Architecture Conclusions What is done, what’s still to do Novelle’s milestones Make a concept map to organize goals and common terminology 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 – in progress. Let users test our prototype with real data and real needs, in order to have feedback about GUI and features – to do.
  • 72. Introduction Structure Architecture Conclusions What is done, what’s still to do Novelle’s milestones Make a concept map to organize goals and common terminology 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 – in progress. Let users test our prototype with real data and real needs, in order to have feedback about GUI and features – to do. Adjust GUI and features. Publish Novelle as an open-source project – to do.
  • 73. Introduction Structure Architecture Conclusions What is done, what’s still to do Novelle’s milestones Make a concept map to organize goals and common terminology 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 – in progress. Let users test our prototype with real data and real needs, in order to have feedback about GUI and features – to do. Adjust GUI and features. Publish Novelle as an open-source project – to do. Dig and extract sensible information automatically, thanks to the well-structured context datas – to do.
  • 74. 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?