June 03, 2005
Creating e-Portfolios using Atom and FOAF
There has been a lot of interest recently in e-Portfolios, and in particular the relationship with feeds and blogs. Having been involved in a lot of work recently in the area of standards for e-portfolios, I think we're quite close to achieving some very simple de-facto solutions. In this post I'll describe a very basic approach using Atom and FOAF.
I've been writing a lot about e-Portfolios lately, largely because, just as with learning objects a long time before, I think we're at a crossroads between adopting a simple homegrown approach using some pretty basic conventions, and adopting complex specifications using an enterprise approach.
An e-Portfolio is, by definition, an aggregate or composite of many facets. We can look at this quite literally as an e-portfolio being aggregated from multiple feeds, each of which supplies items about a particular aspect of the subject.
By combining this set of feeds, we end up with a composite view, that can be used as the basis for a personal profile using FOAF, or to create weblog entries with a reflective purpose.
I can envisage the following types of feeds as being useful in an e-Portfolio context:
This type of feed provides a list of things you are interested in, such as hobbies or academic topics.
An interest entry will typically be just the name of the interest as a title, with a summary containing a brief description of the interest and perhaps a rationale.
The same information can be provided in a FOAF record using the foaf:interest property, but sometimes its useful to get this information as a feed instead. For example, you may be interested in finding out interests in common between a set of people in a community; or you may have a site or tool that collects and discusses interests, and want to provide a way of sharing the headings under which a person has written entries.
A goal feed is a list of things you want to do, whether its a specific career or academic goal such as achieving a particular skill, or a personal goal such as visiting a country or changing part of your lifestyle.
A goal entry will typically consist of a title for the goal and a description or rationale.
An achievement feed is a set of announcements that you've achieved a particular aim; for example, you may have completed a part of a course, or been granted an award. Achievement is a pretty broad category, but generally speaking they should be highlights and milestones, the sort of things that might be useful in a resume. A Learning Management System might provide such a feed automatically, including an entry whenever a stage or module is completed.
An achievement entry will typically consist of a title, description, and perhaps some additional metadata such as the date of the achievement, the level of award, and so on.
A competency feed is a special type of achievement feed, and contains entries that describe skills you've obtained. A HR system might provide a feed like this, or an LMS that manages competencies.
A competency entry would typically comprise the name of the skill, a brief description, and a date. Additional metadata might include an identifier for the competency within an official skills framework, a grade or level of certification, and a link to the certifying body.
A folio feed announces the things you've created or published, such as essays, papers, artwork, music recordings and so on. A folio feed contains entries that link to your creations and describe what they are and what you did to make them. A content management type system could provide one of these feeds automatically every time you submit and publish an object.
A folio entry would typically contain a link to the resource (for example, using the enclosure mechanism in Atom), a title and description of the resource, when it was created, and perhaps additional metadata specific to the media format of the resource itself.
A reflective feed contains entries written about the process of learning and development. Entries can be written about interests, goals, achievements, or creations; for example, you might aggregate all the other kinds of feeds, and then create weblog entries about the items that they contain. Weblogs can provide reflective feeds automatically from posts.
Sometimes a site or tool is used for both reflection and goal-setting, for example, in which case the two types of entries may be contained in a single feed, and its important to be able to separate out the different types of entries (see Standards, below).
Pulling it all together
One solution for constructing an e-Portfolio is to aggregate a range of feeds to create a composite record; the FOAF (Friend of a Friend) model is useful here, as it contains properties that can hold most of the information you might want, such as contact information, goals, interests, and publications.
Another useful model is HR-XML Resume, although this is more structured, and it may not be as simple to map the parts of the feeds into it.
The picture I've painted above is intentionally simplistic, as I'm interested in finding out WHY something more complex would be necessary. (Email me, or comment in your own blog...)
To use atom for the various feeds mentioned above is quite simple; all that may be required is to provide appropriate tags that indicate an entry is a "goal" rather than, say, an "achievement".
FOAF is an RDF vocabulary for personal description and social networking.
HR-XML is a set of XML models used in human resource management, of which HR-XML Resume is the model for expressing a resume.
IMS ePortfolio is an IMS specification mainly aimed at transferring complete portfolio packages between LMS-type systems. There's some interesting things in this spec, such as a vocabulary for relationships between parts of a portfolio, that could be used as the basis of a "topic map" visualization of an ePortfolio.