= Future development MPDL = == Software selection: frontend (web GUI) and backend system (datastore, indexing, query system) == We examine different software systems by means of their main functions and features for our user requirements in the area of web based access to XML-documents. We limit the examination to four systems: Magnolia, mediaWiki, eXist and eSciDoc. Functions which are not mandadory for our requirements are marked italic. === Basic needs === || ||Magnolia||mediaWiki||eXist||eSciDoc|| ||Scalable||++||++||-||++|| ||Stable||++||++||-||+|| ||Performant||++||++||++||+|| ||Customizable||++||++||++||++|| ||In use at MPIWG||++||++||++||+|| ||Free software||+||++||++||++|| === Datastore === || ||Magnolia||mediaWiki||eXist||eSciDoc|| ||User management||++||++||-||+|| ||Version control system||++||++||-||+|| ||Index / Query system||++||++||++||++|| ||Many document formats (xml, pdf, doc, html)||++||++||+||++|| ||Discussions / Blogs||++||++||-||-|| === Extensions / Development === || ||Magnolia||mediaWiki||eXist||eSciDoc|| ||Predefined extensions / templates||++||++||-||-|| ||Programming||++ ^[#note1 1]^||++ ^[#note2 2]^||++ ^[#note3 3]^||+ ^[#note4 4]^|| ||Index / Query system||++||++||++||++|| ||Many document formats (xml, pdf, doc, html)||++||++||+||++|| ||Notes / Annotations||-||-||-||-|| Notes: [[br]] [=#note1 1]: Freemarker, Java Server Pages, XSL/CSS, limited XPath (works also in JCR 2.0 ?)[[br]] [=#note2 2]: php, Java over JavaBridge [[br]] [=#note3 3]: Java, XQuery / XPath, XSL / CSS [[br]] [=#note4 4]: Java [[br]] === MPDL software === || ||Magnolia||mediaWiki||eXist||eSciDoc|| ||Get XML page fragment||-||-||++||-|| ||Language technology||-||-||++||-|| ||Document upload||++||++||- ^[#note5 5]^||+ ^[#note6 6]^|| ||Web viewer||+ ^[#note6 6]^||+ ^[#note6 6]^||++||+ ^[#note6 6]^|| Notes: [[br]] [=#note5 5]: already implemented but not stable enough [[br]] [=#note6 6]: has to be implemented (relative easy) [[br]] === Magnolia === * URL: [http://www.magnolia-cms.com/ http://www.magnolia-cms.com/] * Advantages * scalable * stable * performant * is used at MPIWG: see [http://hartmutkern.mpiwg-berlin.mpg.de/ here] * user management included (incl. LDAP) * version control system with easy usable history functions (commercial EE version) * notes/annotations: blog comments for each web page * many installations and users worldwide * many extensions / templates * programming: Freemarker, Java Server Pages, XSL/CSS, limited XPath (works also in JCR 2.0 ?) * fulltext search contained (Lucene) * multimedia support (image, sound, video) * free software (CE version) * MPDL software * document upload: stable and mostly included * Disadvantages * user interface: all web pages have to be implemented * XQuery support has to be implemented in Java (relative easy) * MPDL software * get XML page fragment: has to be implemented in JSP (relative easy) * language technology: has to be integrated by JSP's (relative easy) * viewer: has to be implemented by templates and JSP/XSL/HTML (relative easy) === mediaWiki === * URL: [http://www.mediawiki.org/wiki/MediaWiki http://www.mediawiki.org/wiki/MediaWiki] * Advantages * scalable * stable * performant * is used at MPIWG: see for example this [https://it-dev.mpiwg-berlin.mpg.de/tracs/mpdl-project-content TRAC] * user management included (incl. LDAP) * version control system with easy usable history functions (not free EE version) * notes/annotations: discussion of each web page possible * many installations and users worldwide * user interface * already included (Wiki web pages) * simple (e.g. for data uploads) * user know the Wiki system * no extra web server * many extensions / templates * footnotes: [http://meta.wikimedia.org/wiki/Help:Footnotes internal], [http://www.mediawiki.org/wiki/Extension:Cite Cite] * [http://wikisource.org presentation of old books] * programming: php, Java over JavaBridge * fulltext search contained (Lucene) * multimedia support (image, sound, video) * free software * MPDL software * document upload: stable and mostly included * Disadvantages * XML/XSL/CSS support has to be implemented in Java (relative easy) * XQuery support has to be implemented in Java (relative easy) * MPDL software * get page fragment in XML document: has to be implemented in Java (relative easy) * language technology: has to be integrated by Java programs (relative easy) * Viewer: Zope programs have to be implemented in Wiki/Java (relative easy) === eXist + Zope === * URL: [http://exist.sourceforge.net/ http://exist.sourceforge.net/] * Advantages * performant * XML/XSL support * is used at MPIWG: see [http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/query.xql MPDL system] * some installations and users worldwide * XQuery/XPath support * programming: Java, XQuery/XPath, XSL/CSS * fulltext search contained (Lucene) * MPDL software * get page fragment in XML document: already implemented * viewer: available as Zope programs on another web server * document upload: already implemented * free software * Disadvantages * not scalable for many documents (> 1000 XML documents) * not really stable * many system crashes at startup time (up to 2 days) * sometimes system crash when a document is uploaded * no usable version control system included, no history functions * notes/annotations: has to be implemented * user management not usable / has to be implemented * user interface: all web pages have to be implemented * not many extensions / templates * MPDL software * document upload: not stable through eXist === eSciDoc === * URL: [https://www.escidoc.org/ https://www.escidoc.org/] * Advantages * scalable * is in test use at MPIWG: see [http://pubman.mpiwg-berlin.mpg.de/pubman/ Pubman] * user management included (incl. LDAP) * version control system included * XML/XSL support * programming: Java * fulltext search contained (Lucene) * free software * Disadvantages * not in use by many users * performance of many queries not tested * very complicated: much work for administration and development (API etc.) * version control system: no easy usable history functions * notes/annotations: has to be implemented * not many users, installations and developers * user interface: all web pages have to be implemented * not many extensions / templates * XQuery support has to be implemented in Java (relative easy) * MPDL software * get page fragment in XML document: has to be implemented in Java (relative easy) * language technology: has to be integrated by Java programs (relative easy) * viewer: has to be implemented in Java/XSL/HTML (relative easy) * document upload: has to be implemented (relative easy)