|
I got involved with the
Open Knowledge Initiative when I was invited to the project kickoff
meeting back in 2000. The interest and excitement was obvious at that meeting. People
are very passionate about making eLearning tools more widely available.
Since then, I've participated in several project related to OKI. These projects are
summaries here.
OKI Meetings
I have particated in several technical meetings since the OKI project was started. Some
of these were focused on issues surround digital repositories and how university libraries
could make use of them. Others had to where various services would fit into the OKI
architecture. There has been some overlap between the work being done by the
IMS Global Learning Consortium and OKI. As Director of
Specification Development during that time, I coordinated IMS activities with OKI, especially
at IMS quarterly meetings.
Stellar Technical Evaluation
Although not technically part of the OKI program,
Stellar is a major project at MIT to
develop distance learning tools. These tools are implemented in Java and allow students
in Singapore to participate in MIT classes. My work was a technical evaluation of the
project to date. This involved examining code, interfaces, and speaking with the
developers involved. Results are confidential to MIT.
OKI Technical Evaluation
In the spring of 2003, Eduworks was commissioned by The
Mellon Foundation to evaluate the OKI Project. Eduworks subcontracted the technical
evaluation to me. The evaluation was conducted using a methodology consisting of:
- Documentation review - as of May, 2003.
- Source management review - mostly how
SourceForge was being used.
- OSID review - all Common and Eduational Services.
- Sample implementation review - largely a digital repository.
- Interviews with program participants - ten developers.
In addition an evaluation of current support for building systems based on the OKI OSIDs.
This consisted of:
- Building a prototype OKI system.
- Sharding data between institutions.
- Swapping code or tools.
- Accessing remote services.
- OKI ventor compatibility.
The results of this evaluation are confidential to the Mellon Foundation.
OSID Implementations
I have implemented the following OKI Open Source Interface Definitions at this time:
- osid.shared
- osid.dictionary
- osid.authentication
- osid.filing
The shared OSID contains a unique identifier generator based on a timestamp in milliseconds
along with an authority string. Type, Agent, Group, and Properties are all implemented.
Properties, however, is expanded considerably in an included osid_mjn.properties package.
The SharedManager has support for persistent management of Agents and Groups.
The DictionaryManager provides a simple way to extract strings from an application or GUI
and put them in a container which allows them to be retrieved using a tag (usually a string).
Authentication is usually based on a underlying enterprise authentication mechanism, such as
Kerberos or LDAP. Just to see if it could be done, I've created an authentication method that
is wholly contained in the osid.authentication implementation. It uses persistent properties
(username and password) kept in agent objects. While this is not especially secure, it is
simple and easy to use. An administration tool is also included to allow user names to be
created and added to the list of known agents.
There are very few implementations of the OKI Filing OSID that I know of.
Several issues came up in developing this OSID. For example, a Cabinet has properties
associated with it, but not ByteStore. Since properties are a good way to handle
metadata, I would assume that ByteStores would have properties, too. Alternatively, they
could be handled in CabinetEntry, since Cabinet and ByteStore both extend it. Properties
are treated differently here than in osid.shared.Properties.
The javadoc generated from this implementation is available
for you to view. Please contact me if you are interested in sharing or swapping OSID implementation
code.
Proposed Improvements to Property Management
During the implementation of osid.shared.Properties, I noticed that several features were
missing which would limit the usefulness of properties in OKI based applications (IMHO).
There are
no provisions for adding new properties dynamically, or changing existing values. There
are no recommended ways of grouping properties by type, or creating hierarchical organizations
of properties. Finally, there is no ways to iterate over key/value pairs.
To address these, I wrote a
proposed set of extensions which added in the missing functionality.
This proposal only changes the name of a single method of the original definition of
osid.shared.Properties, but adds several new classes, including a set of wrapper clases for
atomic data types such as boolean, int, char, float, etc.
You can download my implemenation of properties.
Have a look at some of the
javadoc generated from this implementation, also.
OSID State Persistence
Many applications using the OSID specifications will require state data to be persistent
across invocations. Support for serialization and persistence is provided in the OSIDs, but
little or not guidance on how this might be accomplished is mentioned. I've written a short
paper called
OKI OSID Serialization which examines what data might be
persistent in OSID implementations, describes common strategies for persistence, and includes
a full implementation of persistent state for the osid.shared.SharedManager.
Personal and Collaborative ePortfolios using OKI OSIDs
The real power of the OKI OSIDs can be difficult to see by just looking at the interface
definitions. It takes a real application like ePortfolios to put the OSIDs into context.
To put the problem into perspective, I've written an
Overview of Personal and Collaborative Portfolios.
This the the basis for a
Design for ePortfolios using OSIDs. The design explores
the use of filing, hiearchy, and dr to implement organization and collection structures, and
examines the use of authentication and authorization to develop access control. Digital
Rights Management is mentioned, along with some of the standards work being done in this
area.
Remote File Repositories
While most digital repositories require a certain degree of formality, it is possible to
concieve of a lightweight repository as a wrapper around a remote filing system accessed
by FTP. An index-based searching mechanism can be added to perform limited file metadata
searching. This is proposed in
Remote Filing Repositories.
Tufts VUE Implementations
Several OKI OSID implementations were developed as part of the Tufts Visual Understanding
Environment (VUE), a concept mapping appliation. OSIDs implemented include authorization,
authentication, shared, and two forms of filing. The Cover Page
goes into a bit more detail and has a link to download code and documentation.
Inheritance in Relational Databases
This paper explores how relational database tables can be set up and used
to inherit attributes arranged as a hierarchy. In particular, this is used to explore how
implicit authorizations can be resolved when they are persisted in a database.
|