4.1. Content Repository
The Content Repository (CR) is a central service application that can be used by other
applications to manage its content. The developer must define and declare the
interactions with the content repository. The main features that the content repository are:
- CR is capable to store any kind of information (files, data, text).
- Define application specific data structures that will use the CR features and
services within the application context.
- Revision control, which means that every addition and subsequent changes of an
application is registered, so the versions are kept and can be roll-backed.
- Ability to handle hierarchies, and folder structures, and inherit its properties.
- Easily interact with the CR and its specific defined structures through a welldefined
API, in order to add data or present it.
- Also handles publish states for content that might need it.
- Identify content through a content type definition.
- Associate the content with external applications.
- Store specific templates to use when displaying specific content types.
- Create relations between content repository items or external database objects.
- Embedded search facility to automatically expose the content to the search engine
the system might be using.
The process for an application to use the content repository goes as:
1. Define the database structure your application needs that will use some of the CR
2. Use the standardized API (to add, edit, delete, present) to create scripts for your
The CR logic is stored in database functions and triggers, but it has a Tcl API that glue all
the involved database calls and makes straightforward for the developers to create
applications that use the CR.
4.2. Results: Vertical Applications
Within OpenACS a vertical application means a set packages that interact together to
provide a specific domain set of functionalities.
The following are good examples of vertical applications completely running in
OpenACS and using Tcl as the programming language:
4.2.1. Project Manager
Full featured Project manager, consist in a set of functionalities that can be summarized
as: track tasks, estimates and actual progress for a project. It consist in more that 5
packages. Features that are part f it: project creation, customers management, task
assignments, logs, comments, create processes, rates, etc.
4.2.2. Assessment Tool
Extremely powerful application to create several types of assessments such as online selftests,
surveys, tests and gathering of information in general. The main features of this
application are: IMS-QTI support for import and export of assessments, branching,
sections, several types of questions and many more are part of it. More information at:
4.2.3. Communities of Practice
Communities of Practice within OpenACS are represented by a set of tools available
through all the website to interact with any kind of applications. The main objective is to
give the power to the end user describe in many forms any object at the system and make
relations among them. Those tools are:
And those tools can be used in all the applications that the end user might have available,
such as forums, file storage, etc. For example, you can categorize a given file, and then
link it to a forum thread, which you are also rating and commenting. Then a third user
will search for given topic, and the first result will be the file, and when he looks at the
file, he’ll see as well all its related objects, such as the forum thread.
4.2.4. .LRN and the E-LANE project
.LRN (pronounced dot-learn, www.dotlrn.org) is a full featured LMS with extra
community building capabilities, uses packages available for OpenACS and integrate
other vertical applications described here. Its focus is to help the creation of learning and
research communities, and not just server as an LMS.
The E-LANE Project (European-Latin America New Education, www.e-lane.org) is
using .LRN as its foundation technology to promote and demonstrate e-learning within
this geographical area, the demonstration is based on three fundamental factors: the
learning methodology, the content development, and the technological platform, the three
of them brought together to use it in real scenarios for further improvement of .LRN.
As a contribution to the .LRN community, E-LANE has developed among other
applications the user-tracking package, which is mainly focused to “Analyze users
behavior and syndicate it by object type”.
This package is basically using Tcl to create the UI and the administrative actions, and
glue them with awstats (http://awstats.sourceforge.net/), which in this case is the log
analyzer used to parse the AOLserver request logs, and those logs contains a set of
special keys written on each http request logged, which is the base to generate specific
request reports for a given user and/or object type.