W E B V E V E R I E T
Ravn Webveveriet AS, TMRA 2010, Leipzig
Reidar Bratsberg <[email protected]>Jan Schreiber <[email protected]>, Terje Syversen <[email protected]>
Modelling QTI in Topic Maps
“Get your facts first, then you can distort them as you please.”Mark Twain
W E B V E V E R I E T
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
Web server
Postgresql
Topic Maps APITMAPI
Web publishing framework
Templates, presentation code
Browser Flash player
...other services...
MathML conversion
API for learning objects (REST)
Binary storage
Image conversion
Ravn Topic Maps engine
Import/exportGrep, RSS, XTM, LTM
...
W E B V E V E R I E T
QTI
CMS, Topic Maps Engine
Students'assessment
results/progress
Learning Objects inSCORM,
IMS-Content Package
In-browserQTI viewer
(Javascript, HTML)Flash
HTML
Editorial Content I18NUser
InterfaceDefinition
PDF,EPUB,etc...
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
1. Maria bringt das Buch mit.Ich weiß, dass Maria das Buch mitbringt.
2. Peter holt seine Freundin vom Bahnhof ab.Ich weiß, dass Peter seine Freundin vom Bahnhof abholt.
3. (...)
"mitbringt"uid:foo
uid:foo
"Formen Sie folgende Sätze um"
occurrence type:
gap-text
uid:bar
scope
instance of
topic type:gap
instance of
topic type:fill-the-gap
instance of
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
1. Maria bringt das Buch mit.Ich weiß, dass Maria das Buch mitbringt.
2. Peter holt seine Freundin vom Bahnhof ab.Ich weiß, dass Peter seine Freundin vom Bahnhof abholt.
3. (...)
"mitbringt"uid:foo
uid:foo
"Formen Sie folgende Sätze um"
occurrence type:
gap-text
uid:bar
scope
instance of
topic type:gap
instance of
topic type:fill-the-gap
instance of
Sound: spoken
"mitbringt"
W E B V E V E R I E T
1. Maria bringt das Buch mit.Ich weiß, dass Maria das Buch mitbringt.
2. Peter holt seine Freundin vom Bahnhof ab.Ich weiß, dass Peter seine Freundin vom Bahnhof abholt.
3. (...)
"mitbringt"uid:foo
uid:foo
"Formen Sie folgende Sätze um"
occurrence type:
gap-text
uid:bar
scope
instance of
topic type:gap
instance of
topic type:fill-the-gap
instance of
Sound: spoken
"mitbringt"
"herbeibringt"Image
assc type:answer-
illustration
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.