Wiki Format Text Display Enabled in CAREO

I just threw the switch to enable Wiki Formatted Text in CAREO, specifically in learning resource descriptions (any time you see a resource listed – search results, main page, whatever), and discussion post entries. This will let folks just go ahead and enter plain text, and CAREO will try to Do The Right Thing to display it as nice HTML.

Something like this discussion on “Earth At Night” looks a wee bit better now that it’s not all munged into one paragraph per entry, or faking formatting using the icky <pre> tag…

I’m using the RADEOX RE java rendering engine. Looks like it’s doing a decent job, but it appears to require double carriage returns before it will paragraphize some text, whereas most folks will use a single return to break up a long block of text. I’ll look into changing this behaviour.

CAREO Learning Resource Syndication Feeds – RSS

After way too long, I’ve taken some time to re-implement the RSS feeds from CAREO. The new implementation is infinitely more scalable than previously (now uses periodically updated static files, rather than regenerated-every-time live queries).

The downside of this new implementation is that you can’t create your own feeds from any query. I’ll add any new feeds that people want, but I preferred the personalized and on-demand nature of the previous implementation.

Unfortunately, that on-demand regeneration from live queries was the achilles heal, since it caused the server to fall flat on its face once adoption really took off. A victim of its own success, really…

For now, the feeds are regenerated daily (at, or shortly after, 6:00am MST).

RSS feeds are now listed in one central place, at http://careo.ucalgary.ca/rss/

XStreamDB Progress

I’ve been playing around with interim builds of XStreamDB 3.1 Beta, and it’s coming along REALLY nicely. It’s pretty cool when the president of the company is the guy running the beta program. Jim’s been awesome, feeding tips and pointers to the new stuff.

They just added/enhanced scoring of fulltext queries, so we can have results sorted by descending relevancy to a query. It’s freakin’ fast, too. I’ve added 3734 XML records from CAREO to XStreamDB (which is also running on the CAREO server – a G4/500 Desktop box, not fast by any stretch of the imagination – to keep the playing field level). Scored and sorted queries are returning results in well under a second. Great stuff.

I’ve even got it doing the processing to pull out just a few elements (title, description, etc…) rather than the whole LOM. It doesn’t seem to take any more time to just pull the whole LOM out, either, which is cool. I prefer the mini proxy results for now, because they’re easier to read in the results listing, but if the EOAdaptor needs the full record, that’s trivial.

The cool thing about the relevancy ranking is that it generates a float value from 0.000000 (completely irrelevant) to 1.000000 (completely relevant). Lots of room in there for subtle variation in relevancy.

Here’s the query I’m running right now:

FOR $record IN (Root("Apollo:Metadata"))
    LET $score := SCORE $record USING [//* CONTAINS "earth image"]
RETURN
    LET $title := $record//*:general/*:title/*:langstring/text()
    LET $location := $record//*:technical/*:location/text()
    LET $format := $record//*:technical/*:format/text()
    LET $description := $record//*:general/*:description/*:langstring/text() 
    LET $docid := GetDocId( $record )
    ORDER BY $score
RETURN
<result>
    <docid>
            {$docid}
    </docid>
    <score>
        {$score}
    </score>
    <title>
        {$title}
    </title>
    <description>
        {$description}
    </description>
    <location>
        {$location}
    </location>
    <format>
        {$format}
    </format>
</result>

Which returns stuff like this:

<result>
    <docid>
        1$Apollo:Metadata$1-3438-0
    </docid>
    <score>
        0.95458674
    </score>
    <title>
        The Earth and Moon Viewer
    </title>
    <description>
        This website allows you access to earth and moon imagery from a
        variety of viewpoints.  You can view either a map of the Earth
        showing the day and night regions at this moment, or view the
        Earth from the Sun, the Moon, the night side of the Earth, above
        any location on the planet specified by latitude, longitude and
        altitude, from a satellite in Earth orbit, or above various
        cities around the globe.   Images can be generated based on a
        full-colour image of the Earth by day and night, a topographical
        map of the Earth, up-to-date weather satellite imagery, or a
        composite image of cloud cover superimposed on a map of the
        Earth, a colour composite which shows clouds, land and sea
        temperatures, and ice, or the global distribution of water
        vapour. Expert mode allows you additional control over the
        generation of the image. You can compose a custom request with
        frequently-used parameters and save it as a hotlist or bookmark
        item in your browser.
    </description>
    <location>
        http://www.fourmilab.ch/earthview/vplanet.html
    </location>
    <format>
        text/html
    </format>
</result>

Compare that to the smaller statement to just pull the whole LOM:

FOR $record IN (Root("Apollo:Metadata"))
    LET $score := SCORE $record USING [//* CONTAINS "earth image"]
    ORDER BY $score
RETURN $record

Which returns the whole freakin’ LOM document.

Designing Effective Learning Objects – Presentation

Ferdinand Krauss is preparing for a presentation he’ll be giving on designing effective learning objects.

Presentation available here (but requires some form of MS browser, which I don’t have handy 🙁

UPDATE: If you get the warning: This presentation contains content that your browser may not be able to show properly. This presentation was optimized for more recent versions of Microsoft Internet Explorer. – just click on the “do it anyway” link. It works OK in Safari here, I was just daunted by the “You don’t have Explorer” warning…