You are on page 1of 32

W E B V E V E R I E T

Modelling QTI
in Topic Maps
“Get your facts first, then you can distort them as you please.”
Mark Twain

Reidar Bratsberg <reidar@ravn.no>


Jan Schreiber <jans@ravn.no>, Terje Syversen <terje@ravn.no>

Ravn Webveveriet AS, TMRA 2010, Leipzig


Overview

• Our use case


• QTI and Topic Maps
• Embedded topics
• Other uses

W E B V E V E R I E T
Cappelen Damm

• Largest educational publisher in Norway


• Our largest customer
• > 300 e-learning sites/electronic school
books
• All published data in topic maps

W E B V E V E R I E T
One Learning Resource

W E B V E V E R I E T
Browser Flash player ...

Web server

MathML conversion
Templates, presentation code
API for learning Image conversion
objects (REST)
Web publishing framework ...other services...

Import/export
Topic Maps API Grep, RSS, XTM, LTM
TMAPI

Ravn Topic Maps engine

Postgresql Binary storage

W E B V E V E R I E T
Learning Objects in In-browser
SCORM, QTI viewer Flash
IMS-Content Package (Javascript, HTML)

PDF,
QTI HTML EPUB,
etc...

CMS, Topic Maps Engine

Students' User
Editorial Content assessment I18N Interface
results/progress Definition

W E B V E V E R I E T
QTI
• IMS Global Learning Consortium
• IMS Question & Test Interoperability Specification
• Share assessment content (+ results) between CMS,
LMS, repositories and users
• Data model + XML Binding
• Common Cartridge: QTI v1.2.1
(with Content Packaging 1.2, LOM 1.0)
• Latest version: 2.0 and (sort of) 2.1

W E B V E V E R I E T
QTI Features
• Questions, assessments, results
• Modular, supports nested structures
• Outcome processing
• Control time limits, feedback,
pre-conditions etc
• Can include XHTML, MathML
W E B V E V E R I E T
QTI standard woes
• January 2005: v.2.0 Final release
• 2.0: Changes definition of items only
• 2.1: Changes the whole interaction model
• Large changes from version 1.2
• Version 2.1 as draft only
• Withdrawn and "depublished" early 2009
• Republished after lots of complaints
• Convert to some future standard may be non-trivial
(i.e. requires manual work)

W E B V E V E R I E T
How to deal with this?
• Acknowledge the value of content
• Represent our content richer than QTI in our topic
map
• We must be able to represent the data model
completely (complexity)
• Data/content for the long term
• Generate QTI in whatever version needed in the future
• Support other standards as well

W E B V E V E R I E T
QTI and Topic Maps

• Structure easily represented in Topic Maps


• Use case: Modelling "filling gaps" question type
• Gaps to be filled in by student
• Gaps can have a sound file attached
• QTI: Assessment Item: textEntryInteraction

W E B V E V E R I E T
W E B V E V E R I E T
W E B V E V E R I E T
W E B V E V E R I E T
W E B V E V E R I E T
Embedded Topics

• Need to refer to topics within occurrences

• Need to make statements about these


(i.e. associate sounds with gaps in text)

• (Otherwise a simple markup would do)

• Must be able to represent in XML for usage in


authoring tools (mainly XHTML editors)

W E B V E V E R I E T
The occurrence

W E B V E V E R I E T
topic type:
fill-the-gap topic type:
gap

instance of

instance of
"Formen Sie folgende Sätze um"

scope

"mitbringt"
uid:foo
occurrence
type:
instance of gap-text

1. Maria bringt das Buch mit.


Ich weiß, dass Maria das
Buch mitbringt.
uid:foo
2. Peter holt seine Freundin
vom Bahnhof ab.
Ich weiß, dass Peter seine
Freundin vom Bahnhof
abholt.
uid:bar
3. (...)

W E B V E V E R I E T
W E B V E V E R I E T
W E B V E V E R I E T
Authoring tools
• Generic capability of editing any number of embedded
topics

• Interface fetched via ajax from the server, depends on


type and context

• User interface wants to be a topic map? UI stored in a


seperate topic map

• Plugin for TinyMCE editor for generic topic creation/


editing/deletion

• The server maintains the necessary associations, topics,


occurrences

W E B V E V E R I E T
W E B V E V E R I E T
W E B V E V E R I E T
topic type:
fill-the-gap topic type:
gap

instance of

instance of
"Formen Sie folgende Sätze um"

scope

"mitbringt"
uid:foo
occurrence
type:
instance of gap-text

1. Maria bringt das Buch mit.


Ich weiß, dass Maria das
Buch mitbringt.
uid:foo
2. Peter holt seine Freundin Sound:
vom Bahnhof ab. spoken
Ich weiß, dass Peter seine
Freundin vom Bahnhof "mitbringt"
abholt.
uid:bar
3. (...)

W E B V E V E R I E T
topic type:
fill-the-gap topic type:
gap

instance of

instance of
"Formen Sie folgende Sätze um"

scope

"mitbringt"
uid:foo
occurrence
type: assc type:
instance of gap-text answer-
illustration
1. Maria bringt das Buch mit.
Ich weiß, dass Maria das
Buch mitbringt.
uid:foo
2. Peter holt seine Freundin Sound:
vom Bahnhof ab. spoken
Ich weiß, dass Peter seine
Freundin vom Bahnhof "mitbringt"
abholt.
uid:bar
3. (...)

Image
"herbeibringt" assc type:
alternative-
answer

W E B V E V E R I E T
Other uses for this
technique
• Inserting images in content
• Hyperlinks in the text:
Internal associations and URIs
• Printer friendly articles with links on the side
• Embedding videos etc
• Example: Vocabulary in Deutch Drei Digital
W E B V E V E R I E T
W E B V E V E R I E T
W E B V E V E R I E T
W E B V E V E R I E T
W E B V E V E R I E T
To conclude...

• It solved our problem

• Used many places in our production code

• Flexible and easy for developers

• Occurrences with many embedded topics


(hundreds) => performance tuning

W E B V E V E R I E T
Questions?
Thank you.
W E B V E V E R I E T

You might also like