TELS Logo Banner Banner

Getting started in SAIL development

The Basics

SAIL stands for Scalable Architecture for Interactive Learning. The SAIL framework is a Java based open source framework (API) to support the development of E-Learning systems. It has been designed to support distributed learning and authoring, to be adapted for use by many diverse education scenarios, to continuously evolve (rather than becoming obsolete within a few years as many E-Learning projects have done) and to allow content (curriculum and bits of curriculum) to be re-used and revised. The SAIL framework is still in the early stages of development and is extended as the project team discovers new needs and requirements.

The Pas Suite (Project-activity-step) is a learning environment built atop the SAIL framework. It includes an authoring tool for creating curriculum and a learner environment that allows students to work through your curriculum. The key to understanding Pas is to look at WISE first (see below), since the Pas Suite is based on the WISE technique of presenting curriculum, authoring, etc.

A more detailed comparison of SAIL and Pas is in the wiki page Using the Pas Suite.

WISE

If you are developing within SAIL, it is mostly likely with Pas. If not, please contact us with your plans.

To work with Pas, it helps to first get familiar with WISE, from which it derived. A good overview can be found through the WISE flash introduction. After that you can sign up for a teacher account on WISE and explore. You can "preview" projects, edit them, or whatever you want. The help documentation for using WISE is quite good. I've found also that the help documentation has been very useful in becoming more familiar with how things work in SAIL.

Communication and collaboration

SAIL development is led by the Technology Group of the TELS Center. This is comprised of programmers from UC Berkeley and the Concord Consortium. We collaborate by wiki, mailing list, teleconference, and the occasional face-to-face meeting.

Wiki

You're looking at our wiki right now.

Email lists:
  • SAIL Discuss (older archives) - this list for less technical discussions about SAIL.
    • Example: Check out this new demo , How should SAIL handle content versioning? or How do I get involved in SAIL?
  • SAIL Dev (older archives) - this list is for more technical/code related discussions about sail.
    • Example: What method do I need to call to do X? or My PLR isn't building.
      *TELS-Tech
Issues

We use JIRA for project management, task management and bug tracking. This is where you enter assigned tasks and track progress.

SourceForge

We host our Maven project sites at for SAIL and Pas on SourceForge.

Search

To search the TELS wiki or issue tracker, use our Search plugins for Firefox.

The Maven project descriptors are also useful for finding out more about SAIL and Pas.

Terminology

What is a curnit?

A SAIL-based curriculum unit which is created by an author is called a curnit (from "curriculum" and "unit" squeezed together).

In technical terms, a curnit is a jar file which contains XML descriptors and other files. The curnit.jar file defines the steps and activites for the curriculum unit. The XML descriptors relate to the id's of the steps and activities. (See Curnit archive file format.)

What is the Pas Learner Runtime (PLR) / Virtual Learning Environment (VLE)?

The set of jars and Java classes that execute the curnit. Among other things, it contains classes which represent activities and steps.

You may wish to get started by building and executing a simple curnit and then experiment more by building different types of curriculum units.

Set up Eclipse Environment

  1. Install the latest version of Eclipse. Must be Eclipse version 3.3 or newer. Get the "IDE for Java developers"
  2. Install an SVN client. We recommend Subversive (update site). Another option is Subclipse (update site).
  3. Install Maven 2.x Plug-in for Eclipse using update site. Get the latest stable version.
    • Create a .m2 folder in your user home directory, if you don't have one. On windows this would be
      C:/Documents and Settings/[user name]/.m2
      
    • Windows Explorer may not allow you to create a folder named .m2. If this happens, open the Command Prompt, change to the desired directory, and type "mkdir .m2".
  4. Install command line version of Maven
    1. Download Maven 2 from http://maven.apache.org/download.html.
    2. Unpack the downloaded distribution to a directory of your choosing (this is your Maven Home directory).  Do NOT unpack it to the .m2 folder created earlier.
    3. Define a M2_HOME system variable.
    4. Add M2_HOME/bin to the system path.
    5. Make sure that the JAVA_HOME variable is already defined and that it is set to a JDK (and not a JRE).
    6. Here is a more detailed guide to installation from the Maven 2 website: http://maven.apache.org/download.html#Installation.

Checking out the Pas Suite and dependencies

  1. Open the SVN Repository Explorer perspective within Eclipse.
  2. Add a subversion repository: https://tels.svn.sourceforge.net/svnroot/tels
  3. Check out the Pas Learner Runtime project under trunk/Pas Suite (right-click "Pas Learner Runtime" and click "Checkout"). Before checking out the next project. Have get it to build completely.
  4. Check out the pas-author-runtime project under trunk/Pas Suite (right-click "pas-author-runtime" and click "Checkout"). Before checking out the next project. Have get it to build completely.
  5. Check out the pas-otrunk project under trunk/Pas Suite (right-click "pas-otrunk" and click "Checkout"). Before checking out the next project. Have get it to build completely.
  6. Check out the pas-common-apps project under trunk/Pas Suite (right-click "pas-common-apps" and click "Checkout"). Before checking out the next project. Have get it to build completely.
  7. Check out the pas-browsing-mozswing project under trunk/Pas Suite (right-click "pas-browsing-mozswing" and click "Checkout"). Before checking out the next project. Have get it to build completely.
  8. Check out the sail-otrunk project under trunk.
  9. Add a subversion repository: https://sail.svn.sourceforge.net/svnroot/sail
  10. Check out the sail-data-emf project under trunk (right-click "sail-data-emf" and click "Checkout")
  11. Import the OTrunk Project Set (make sure you have the Subclipse (update site) plugin for Eclipse)
    1. Download the Project Set file OTrunkProjectSet.psf and save it anywhere, such as your desktop
    2. Open Eclipse
    3. Navigate to File>Import... and the Import window will pop up
    4. Expand Team and click on "Team Project Set" and click Next
    5. The next screen will allow you to choose the path where the Project Set file is located, Browse for the file and click Finish
    6. The projects in the Project Set will now be retrieved from the repository, this may take a while

This will create the necessary projects in your eclipse workspace.

Make sure all the projects build and do not have any errors. If you encounter errors, trying cleaning the project. If there are still problems, close the project. Then, from the command line, enter the directory of the project with errors and run mvn install. Reopen the project and there should no longer be any errors. This is a common way of fixing mysterious build errors. It is also recommended that, even if no errors are encountered, that this be done occasionally.

It may also be the case that the maven tree of dependencies needs to be refreshed. If errors persist after cleaning and building at the command line, select the project and right click "properties." Go to the Java build path. Remove the Maven dependencies from the Libraries tab and then re-add them. If there is anything under the Projects tab in the Java build path, remove it. Then repeat the general clean, close, and rebuild procedure in the previous paragraph.  

Make sure the Pas Learner Runtime builds. To do this, look at the Problems tab at the bottom of the Eclipse window - you should see 0 errors.

If you see errors make sure you are using Java 1.5. Go to the Java Perspective (Window->Open Perspective and then select Java), make sure that the Pas Learner Runtime is Checked out by clicking on 'Checkout' after right-clicking on Pas Learner Runtime, and then view the Properties.

  • Specify JRE 1.5 in: Project:Properties:Java Build Path:Libraries.
  • Specify JDK 5.0 in Project:Properties:Java Compiler:JDK Compliance.
  • It might help to check in the Package Explorer view from the Java Perspective, to verify that the JRE System Library is indeed based on jre 1.5. To know this, the corresponding .jar files should have path names that include the jre 1.5.0_06 folder name.

Building a curnit from the Pas Learner Runtime

  1. trunk
  2. Pas Suite
  3. Pas Learner Runtime
  • After Pas Learner Runtime builds properly, open the pas-common-apps (under Pas Suite) and then go to: src/main/java/org.telscenter.pas.builders path
  • In {{src/main/java/}}org.telscenter.pas.builders package there are builder classes.
    When run, these classes each programatically create a single curnit.
    Some examples are:
    • BuildPasBlank.java
    • BuildPas0000.java
  • Run org.telscenter.pas.builders.BuildPasXXX on the command line
    or
  • Run in Eclipse
    Right click on the java source file, select Run As, Java Application
    You have now built a curnit which will be located in the target directory. The name of the curnit will be curnit-NAME.jar, where NAME is the name given to the curnit in the java source.

Running a Curnit using a previewer

  • Run net.sf.sail.common.apps.preview.BundleLauncher on the command line with a single program argument </path/to/curnit-file.jar> to refer to wherever the curnit .jar file you wish to run is located in.
    or
  • Run the curnit using Eclipse
    Right-click the curnit jar file in the package explorer view. To get to the Package Explorer view, go to Window->Show View and then select the Package Explorer option. You may have to refresh the package explorer (right-click and select "Refresh") before you can view the newly generated curnit. From the popup menu, select "Run As..." and then "Run..."
    Under Java Application on the left side, select one of the run configurations entitled PreviewCurnit_X (at the moment there are several, including PreviewCurnit_PCA_v1 and PreviewCurnit_PLR_v1). Depending on the configuration you probably will be prompted to select the curnit - curnit-NAME.jar - from the file system browser. Make sure that the main class is appropriate for what you want to launch the curnit. For example, the main class for the PreviewCurnit_PCA_v1 and Preview_Curnit_PLR_v1 should be net.sf.sail.common.apps.preview.BundleLauncher

Try this with several classes in the pas.builders directory to see several examples of Pas curnits with different activities.

Run an existing curnit

You can also run curnits which you have downloaded from elsewhere. To find curnits to download you can look on http://www.telscenter.org/confluence/display/PAS/WISE+legacy+projects+to+convert and select a project. For instance, select http://www.telscenter.org/confluence/pages/viewpage.action?pageId=13003
On it you will find a table that looks like:

WISE info 19530@wiseproject
full title Airbags: Too Fast, Too Furious?? (B)
contact kevin777@berkeley.edu
latest conversion converted-wise-dev.berkeley.edu-19530.jar
latest offeringhttp://rails.dev.concord.org/sail/offering/jnlp/2/13

The .jar file is the curnit.jar, which can be run by downloading and then following the instructions above.
Alternatively you can follow the "latest offering" link - you will be prompted by your browser to run the curnit using java web start.

The issues section of the conversion page is important because it will tell you what parts of the wise project were or are not yet converted.

Authoring curnits

The authoring tool is still under development, so there are several challenges with actually authoring a SAIL curnit.

One simple way to author a curnit is to author it in WISE and then convert it to a SAIL curnit, however there are limitations here. Not all WISE steps can be converted. It would be useful to have a list of those steps which can be converted (I have not yet found one). In addition, where WISE is forgiving of malformed HTML, SAIL and the project converter is not. So errors in your HTML in the WISE project will result in errors in the SAIL curnit even when you can run the WISE project and it looks fine.

You can author in WISE by joining WISE as a teacher, logging in, navigating to the author portal (a space within the WISE website) and creating a project. Complete the project and remember the project id (usually a 5 digit number), which you will need to do the conversion later.

Use the WISE project converter to do convert the WISE project. The WISE project converter can be checked out into Eclipse from the TELS svn (it can be found under the Pas Suite directory in the SVN). Run the online project converter (in Eclipse, click Run... and then select the OnlineProjectConverter launcher).

  • Choose wise-dev.berkeley.edu for the Host url
  • enter the project id which you remembered from your WISE authoring
  • use: true to omit steps which cannot be converted or false to include steps which cannot be converted
    Refresh (F5) the project directory. The converted SAIL curnit can be found in the target directory and is named something like: converted-wise-dev.berkeley.edu-#.jar

Run your converted curnit using the techniques in the running sections of this page.

SAIL Otrunkification Effort

This page will be used to record the steps required to bring OTrunk data persistent model into SAIL.

Planning

Iteration 1

Goals

  • Get the existing authoring tool working. Current Authoring Tool Efforts
  • Unify the user data format used by TELS, with rest of projects at concord TEEMSS, CAPA, UDL, and ITSI

Tasks

  • Handling of possible scores in teacher grading tool.
    • new resource stored in the portal
    • the vle needs to loading that new resource
    • teacher grading tool needs to edit that resource
  • Figure out new learner data format (Scott) - Finished Jan. 1
    • Status report SAIL meeting November 30, 2007
    • Start discussion SAIL meeting December 7, 2007
    • OTrunk could supply a Rim (install service to supply rim to step types)
    • Change steptype code to abstract learner data and be able to work with either Rim or OTrunk
    • Change step entirely so it wouldn't work with old stuff- Rip out Rim code, write to Otrunk Object instead of a rim

Add initial support for all pas step types (Tony & Scott & Geoff)

  • VLE
  • Authoring Tool
    • Loading in OTml File and create the project structure
    • Add, Move and Remove Steps in the project and have those changes persist
    • Update loading and saving code of authoring tool (Tony) - start work around Dec. 7 at earliest
      • There might some work in sail-core or sail-otrunk to support this better.
        • requires time with scott should it is best to hold off until "initial learner data format work" is complete.
  • Other
    • Update the converter to write out OTrunk Curnits (Geoff) Otrunk Converter status
    • Add learner data saving for all pas step types (Tony) Otrunk Saving status
      • depends on "new learner data format".
    • Update sds reporting code (Aaron)
      • depends on "add learner data saving..."
    • Update curnitmap to work with OTrunk curnit (Hiroki?)
      • depends on "add initial support for all pas step types"
    • Update teacher grading tool to work with the otrunk learner data format (Hiroki/Tony)
      • depends on "add learner data saving..."
    • Update handling of possible scores in teacher grading tool. (Hiroki/Tony)
      • depends on "update curnitmap..."

Iteration 2

Goals

  • Unify the authoring and running application framework used by TELS and UDL.

Tasks

  • Refactor/Port the VLE and Pas Steps so they work with the OTrunk view system (??)
  • Refactor/Port the Authoring tool so it works with the OTrunk view system (??)

At our current pace I think Iteration 1 might take until the end of
February. Infusing a new programmer might speed this
up. The key is to identify medium sized tasks that don't require
knowledge of the whole system. And at the same
time don't spend effort on stuff in Iteration 1 which we are going to
redo in Iteration 2.

I came up with these 2 iterations, because stuff always takes longer
than you think. And if we tried to do it all in one
iteration it would be many months before we finished. So instead we get
something sooner that isn't perfect and will
need to be redone, but it should be usable. However this means that
major revisions and changes to the authoring tool
should be held off (if possible) until Iteration 2.

Resources

SVN URL: https://svn.concord.org/svn/projects
all of the projects are under /trunk/common/java

Root of OTrunk documentation: http://confluence.concord.org/display/CSP/OTrunk
OTrunk examples: http://confluence.concord.org/display/CSP/OTrunk+Examples

Programmer resources breakdown for this effort

Aaron 50%
Scott 15%
Stephen 10%

Hiroki 50%
Anthony 80%
New programmer 80%

Labels