Current MS Students/Getachew Hagos

From CSWiki

Jump to: navigation, search

Contents

[edit] Prospectus


[edit] RATIONALE

Wikis are fully editable websites; any visitor can read, reorganize and update the structure and content (text and pictures) of a wiki as they see fit. This functionality means that wikis are excellent tools for collaboration in an online environment, which makes them highly useful for facilitating online education or simply a companion website for a course of study. With that in mind, there is a need for more wiki templates that facilitate regular content updates as well as standardization of appearance and better security features. My research project will focus on creating wiki templates for specific features of a wiki page, that is:

  1. Editable – Most wikis use a version of wiki syntax that helps users to format the content of a wiki page. The syntax may vary depending on the wiki engine being used. Some wikis, such as mediawiki, do not require the user to know wiki syntax. Rather an editing toolbar is provided so that a user can type in their content and format it by using the toolbar. Although most of the formatting of simple text is straightforward and supported by most, the support for complex features such as editing a table (even for tabular data) is either unsupported or rather cumbersome (mediawiki) for a user to adopt. An implementation of a user-friendly syntax for table editing and a toolbar button for further simplifying editing a table will be implemented.
  2. Roll based authentication – Other features wikis support include, user authentication, which are useful and necessary in an online education setting. However, not all wiki features are enabled by default upon installation. Implementing such advanced features sometimes require manipulation of individual lines of code in the wiki source files and are typically generic in nature – that is one level of access for all. Roll based authentication, based on profiles, such as a professor with a set of higher rolls, and students with lesser rolls will be implemented. With such implementation, a professor may be allowed to view and edit any page where as students will be allowed to modify certain pages only. In addition, a professor can keep certain pages such as exam questions completely hidden from public view and keep an exclusive access to them. For ease of configuration and flexibility, rolls and profiles will be defined in an XML file external to the source codes.


[edit] REVIEW OF RELEVANT STUDIES

There are many different wikis engines commonly known as wiki clones, which are written in a variety of programming languages. As a result, developers can translate the wiki code into their preferred programming language, which enables them to manipulate the code with ease. Many wiki clones are written in PHP, a common Internet scripting and programming language. However, wikis are written in a variety of other languages including Perl, Ruby and Java, to name a few.

A comparison of wiki engines based on a large set of features is available at WikiMatrix. Although this is not a comparison study, and by no means exhaustive, several wiki engines were investigated with two specific features in mind. First, support for text formatting including advanced features such as the support for tabular data. Second, role based user authentication support that is the degree to which contents are protected from the general public edit/view depending on the choice of security the user defined.

In particular three Java based wiki engines xwiki, vqwiki and jspwiki including their code base were contrasted. All three comprise many and varied features that contribute to their sophistication, nonetheless, the support for the two specific features, such as support for tabular data as well as role based authentication features is either missing or inefficient – at least to the author’s knowledge. Among the three, vqwiki has the ease of installation and level of sophistication deemed appropriate for extension. Extending vqwiki to incorporate support for tabular data and add templates to support security features is the goal of my project.


[edit] METHOD TO BE EMPLOYED IN THE STUDY

Since wikis are inherently websites, the methodology used in building interactive websites will be employed. Both client-side and server-side technologies will be used with the following characteristics in mind:

  • Content separated from design
  • Efficient content management
  • Content re-usable
  • Customizable


The tools used will be all open source, which include among others

  • eclipse Java development IDE
  • MySQL for data storage
  • hibernate – Object-relational mapping (ORM) for relational persistence
  • apache tomcat web container
  • struts for web framework
  • JSP
  • JavaScript
  • XSLT for XML styling and transformation of contents and
  • CAS Central Authentication Service – an open source authentication system originally created by Yale University.


To cope with platform evolution and take advantage of technology changes, evolutionary software development methodology will be utilized, that is, each functionality will be added in an incremental step with feedback, rather than planning, as the primary control mechanism. The feedback will be driven by regular tests and releases of the evolving software.


[edit] THE PLAN OF STUDY

  1. Prepare/install apache tomcat web server
  2. Prepare/install subversion – source code and revision controlling software
  3. Prepare/install eclipse IDE
  4. Get vqwiki source code
  5. Integrate MySQL database support for vqwiki and hibernate persistence mapping framework
  6. Implement web framework
  7. Add features to vqwiki which include template for tabular data support
  8. Customize and implement CAS security features
  9. I notice that you don't say anything about XSL. Are you not planning to use that? What is your approach to tables? Also, you can use vqwiki if you prefer Java. It would be more useful to me, though, if you worked with MediaWiki since we are using that.

    If you stay with vqwiki, a couple of other questions arise.
    (1) How hard would it be to move stuff from MediaWiki to vqwiki?
    (2) How does vqwiki compare to MediaWiki in terms of other features?

    These questions are important for our use here if we are to considered using whatever your build. Otherwise, you may build something that only vqwiki users will use — which raises another question: how widely used is vqwiki?

    Russ Abbott 16:41, 25 August 2006 (PDT)

    (Feel free to remove this comment when you have responded to it.)


    I have XSLT added in the Methods sections of my perspective and that is what we want. That is because, XSL is a style sheet for XML as CSS is for HTML. XSLT on the other hand is an XSL Transformation language that converts XML/XSL documents into HTML suitable for a browser to display. Please see definitions here: XSLT defined, XSL defined


    As far as vqwiki is concerned, you raised some important points, and I have thought about some of the issues. First, let me talk about the plan in the grand scheme of things and will address the specific questions later. If I create a template for supporting tabular data in vqwiki at the client side, i.e., using either XSLT or JavaScript, it will be not so difficult to port the same feature to mediawiki. The same argument is valid to any client side extensions. As of the authentication features, it can simply be implemented at the web server layer (tomcat or apache). Assuming both of these assumptions are valid, the choice of a wiki engine becomes less important.


    If it appears that there is a need for server side scripting however, then PHP is required for mediawiki, and I have a plan to look into this further in the future. My biggest hurdle with PHP is the lack of open source IDE that support the development environment, but that might change with the advent of PHP-IDE – an eclipse project to build a PHP integrated development environment. I will experiment with PHP and these new IDE in the future and try to get a better sense of what it takes before I get too consumed with the Java wikis.

    Going back to your questions,

    1. Conversion of mediawiki contents to vqwiki probably won’t be a trivial matter as it will basically require an intimate knowledge of both engines. I will investigate these and address the details of this issue in the future
    2. Comparison – vqwiki is a clone to the original wikiwiki and support many of the features that are in mediawiki. Running through the wikimatrix we can see that both support a lot of similar features. One nice feature worth mentioning about vqwiki however is, deployment is extremely simple, i.e., drop a war file in to a web container (tomcat or any application server) and you are done.
    3. How widely is vqwiki used? Running the keyword “vqwiki” in search engines resulted, 114,000 Goggle, 43,900 Yahoo and 8,128 MSN entries. I couldn’t really find any scientific poll that indicates usage statistics. However, it appears it has a considerable web presence in particular in the java community. The reason I choose it, however, is purely based on merit. I was able to download the war file and install it in less than 15 minutes that include downloading time. I was also able to get the source code and able to modify and see my changes within one hour. As I pointed out earlier, it also supports most of the features that mediawiki support - justifying my selection.

Personal tools