WPSML 6.0 Specification
WPSML 2.0 Specification
Chris Hector
Logictran, Inc.
Version 1.9
October 20, 2004
Introduction
In 2003 the Pearson CMG undertook a study of assessment content used and managed across the Pearson Higher Ed group, including key vendors. In short, the study concluded that there were numerous inconsistencies in the process, leading to expense and reduction of freedom in sharing this content across systems and HE/Professional Business Units. The key objective was to design a new xml format (WPSML) that would fully encompass Pearson CMG assessment content.
The principals for this effort were defined as follows:
1. XML: Little of Pearson Higher Ed’s assessment content outside of the WPS (Web Publishing System) system is stored in XML. This format was chosen as the modern successor to proprietary storage formats. It utilizes the significant progress industry in creating tools to manage XML. It acknowledges the growth of Pearson HE’s production teams in utilizing XML within book production methods.
2. Unicode: Handling special symbols and characters across the range of computers that need to display them has been the bane of the software industry. In our world it impacts the displaying of mathematics, engineering symbols, and foreign language characters. Unicode is a key software industry standard adopted by Microsoft, Sun, and numerous standards groups.. WPSML adopts this standard, and it will in the future allow us to take advantage of operating systems and internet browsers compliance in displaying our symbols correctly.
3. MathML: As with special symbols the handling of groups of these symbols in mathematics has been extremely difficult for the software industry. All major mathematics software vendors and all key internet standards bodies have now committed to the MathML XML standard for handling math. WPSML brings us into MathML compliance, and allows us to take advantage of the growing support for this standard in operating systems and internet browsers.
4. IMS QTI: The IMS metadata specification provides for something called “QTI” or “question and testing interchange” format. While few vendors adhere rigorously to this standard for handling assessment content, all major course management vendors adhere to it at least minimally. So while strict compliance with QTI is not critical to the key objective of this project, it does help us to achieve straightforward exchangeability with key CMS vendor formats for assessment.
5. Algorithmic expressions: Much of our assessment content is in algorithmic form, whether in Testgen, MathXL, Brownstone , or other formats. While all of the formats have a fundamentally similar approach to creating algorithms, incompatibilities in formatting these expressions prevent us from exchanging them across proprietary boundaries. A key objective of WPSML 2.0 is to create a common format that each of our vendors can use to filter their algorithms to, and to provide a bridge for moving these high value assessments between systems.
About this Document
This document describes the WPSML 2.0 specification. WPSML is an evolving specification, and the 2.0 version supports a subset of the functionality required to describe all Pearson HE assessment content. Specifically, the 2.0 specification was designed to support all TestGen and WPS content whileconformaning to the PE Core 1.0 specification. Further, WPSML 2.0 provides a framework for version 3.0 which will fully support PHGA, MathXL, and ExamView content.
Revision History
|Version 1.9 |10/20/2004 |Introduced Compact Math representation to replace MathML for expressions which must be evaluated for |
| | |a result. |
| | |Revised spelling of variant content to use varlist/varent |
| | |Added support for player-specific content (varlist skip="yes") |
| | |This is the approved WPSML 2.0 specification |
|Draft 1.8 |6/30/2004 |Formatting, edits, standardization of fonts and headings. |
| | |Created new tag for elements and attributes: Arial 10 pt Bold Italic - element |
|Draft 1.7 |6/10/2004 |Added Support for multiple variants of the same content. |
| | |Added requirement for IMS Content Packaging v1.1.3. |
| | |Modified Introductory material. |
| | |Revised PECORE references to the 1.0 release. |
| |1/16/2003 |Renamed Spec to WPSML 2.0 |
| |12/1/2003 |Final pre-review draft of WPSML 6.0 |
Test Item Content
The test item content has several component parts:
• Questions/Answers
• Metadata Describing the content (origin, copyright, subject matter categories/keywords)
• Related Materials (Books, Study Guides)
• Content to support a particular use (Web site infrastructure, scripts, boilerplate)
• Customer data to support particular instructors, grading, classes
This standard will concern itself primarily with questions/answers and the related metadata.
Standards used include:
• MathML
• Unicode encoding
• XHTML for presentation
• Homegrown algorithmic markup
• Homegrown question markup
• Pearson CORE metadata
• ONIX
• IMS QTI (packaging only)
WPSML Structure
WPSML is an XML-based representation capable of representing all existing WPS content (WPSML 1.0 format,) and all of the exiting TestGen content (currently in BOK format.) Version 2.0 functionally differs from version 1.0 in several key respects:
1. Version 2.0 uses Unicode encodings for all content
2. Version 2.0 uses parsed content (XHTML) for representing HTML formatted content, where version 1.0 used unparsed[1] CDATA sections.
3. Version 2.0 supports algorithmic content
4. Version 2.0 supports plotting
5. Version 2.0 supports Math rendering and input
6. Version 2.0 supports the 15 metadata fields defined in TestGen and is intended to support the 20 metadata fields defined in the “Pearson Education Core Metadata Schema”
Required Changes to Question Types
The following changes to WPSML 1.0 Question Types are required for TestGen support
1. Topic, Skill, Objective, User1, and User 2 are added to each question (Each a list)
This is done by the addition of the qtimetadata element.
2. Macro Definitions are added at the problemset level.
This is done by the addition of rulist, ruelement, and ruref constructs.
3. Page reference, difficulty level are associated metadata for each test item. You can input a page reference up to 16 characters and a difficulty level from 0 to 9. This is done with the qtimetadata element.
4. Workspace, is provided as a separate (formatting) item.
Instruction, Notes, Comments are added to each question.
5. Maximum attempts, time between attempts is associated with the problemset level.
6. Label-points are modified to move the label within the point. This allows points to be reused for plotting functionality which also requires labels.
7. Multiple choice has bi-modal switch added.
8. Add vocabulary question type. All vocabulary questions are entered and displayed with the "term" as the question in testbanks and in the Question Editor. You can globally change how vocabulary questions are displayed on tests by clicking the check box next to "Display term as question" or "Display definition as question" on the Test Page Display Options dialog. In addition, you can override this global setting by selecting a vocabulary question on a test and clicking the Form button. A tilde (~) symbol next to a question number indicates that the form of the vocabulary question has been changed to the opposite of the global setting.
9. Add foils to matching by allowing an empty match-item in a match-pair.
10. Add answer to Essay type (not for checking).
11. All questions have a max points, all correct answers have a point value (partial credit) default is correct yields max points.
12. Add show-labels attribute to short answer (fill in the blanks) question blanks.
13. Add new blankarea element for short answer (fill in the blanks) question blanks as an alternative to the standard blank.
14. An Algorithmic definition block can contain any question. This defines a set of variables, production rules to generate them and criteria for acceptable values. It also contains a test item template containing references to the variables.
15. Answer analysis features of TestGen will be added to all free-response fields:
a. Regular Expression (covers match case and match spacing)
b. Match-char-case="no" max-incorrect-chars="1" are moved from pattern-problem to the pattern element
c. Numeric (tolerance, significant digits)
d. Expression allows an expression with symbolic names to be entered. (Symbolic names are x, y, z etc. These are not variables in the sense of algorithmic processing.) The similar form, Reduce only attributes control the matching of the answer. Tolerance, variable (symbolic name) replacement values provide a TestGen specific mechanism for comparing expressions – comparable to (but not as complete as) Brownstones use of Maple. TestGen computes specific values from the variable replacement values using the expressions and then compares the numeric results.
e. Input types control the legal values allowed within a specific blank field. TestGen supports:
|None (blank) |Allows all keystrokes |
|Integers only |Allows keys 0-9, comma, hyphen |
|Real numbers only |Allows keys 0-9, comma, period, hyphen |
|aA-zZ only |Allows keys a-z, A-Z |
|No numbers |Allows all keystrokes except 0-9 |
|Money only |Only keys 0-9, comma, $, period |
Character Representations: Unicode Mapping Facility
Browser support of character entities varies by operating system and browser, but continues to improve with the latest releases of software. To support and encourage the use of Unicode within WPSML, we provide a translation facility that maps Unicode characters to browser renderings. The Unicode Mapping Facility can be used on export of WPSML to HTML-based formats, on publishing of WPSML to a website, or can be done dynamically by a web-server as HTML pages are requested. The facility provides a translation from Unicode encoding to an image, an HTML entity, or HTML tagging. As Unicode support improves in browsers, fewer entities will require mapping.
The Safari project developed a conversion process and a full mapping of all 994 entities in Docbook. This Unicode to HTML markup process is dynamically applied by the Safari web-servers as HTML rendering is performed.
For each entity an HTML rendering was defined that correctly displays on the platforms/browser combinations: Netscape 4/Linux, Internet Explorer 5/Windows 9x/2000, Internet Explorer 5/Macintosh 8/9. This rendering was (in order of preference):
• A named or numbered entity,
• A character string in the range 32..7F (hex)
• An HTML tagged string including markup to select a font, font size or other character markup formatting such as super/subscript
• An image reference
The resulting mapping can be seen at:
WPSML authors are encouraged to use the Unicode encoding because of the unified approach to selecting browser renderings> Browser renderings can be selected by context (where the OS/Browser combination is known) and a mechanism is provided for taking advantage of progress in Unicode support by browsers.
Unicode Private Use Area
The Unicode Private Use Area is a range of code points whose meaning is purposely unstandardized . The code points in the Private Use Area are available for ad hoc use by users and applications, which can assign any meaning desired to them. WPSML will assign entries in the Private Use Area for any character that is used in WPSML content, for which no other suitable Unicode encoding can be found. These “assigned meanings” will be consistent across all WPSML content. As new content is added to WPS, the assignments can be extended as needed. In Unicode, the Private Use Area runs from U+E000 to U+F8FF and is supplemented by two Private Use Planes. The Unicode Mapping Facility will be used to provide renderings for all entries in the Private use Area.
Math and Other Scientific Notation
Displaying Math
Math used for display purposes is expressed using MathML. Either content or display MathML is allowed. Additionally, where a WPSML writer has a rendered version of the math, this can also provided as a variant (see Multiple Variants of Content). The use of MathML for math display provides a standards based syntax that is expressive and allows high fidelity display.
Evaluating Math Expressions (Compact Math Notation)
Math expressions must be evaluated in a number of cases:
• When algorithmic variables are generated from a formula.
• When a graph is produced from a formula.
• When a student's response is a mathematical expression or formula.
In WPSML these expressions use a standard infix mathematical expression form.
In addition to numerical expressions, WPSML supports expressions that operate on strings or produce a string results as well as boolean expressions.
Numerical expressions are always computed using floating point calculations. The trunc() function can be used to truncate a result where needed.
Boolean operations result in the value 0 for false and 1 for true. Functions requiring a boolean parameter shall treat any non-zero value as true.
Within expressions we will have constants, variables, operators, functions which are each discussed below. Evaluation of expressions is done in such a way as to preserve precedence required by parenthesis and operator precedence.
Functions can have no side effects. Mathematically correct optimizations are allowed.
Constants
A string constant is a sequence of characters surrounded by double quotes.
A boolean constant is either 0 to indicate false, or 1 to indicate true.
A numeric (floating point) constant can be expressed in integer (47), floating point (47.05) or scientific notation (3.475E22).
Variables
Variables must begin with a letter (A..Z or underscore "_") followed by zero or more letters and digits. Variable names are not case sensitive.
Variables can be of float, int, boolean, complex or string type.
Within a function declaration used in plotting, the following variable names are
Reserved and have a specific meaning:
Cartesian plots (x,y)
Polar plots(r,theta)
Line plots(x)
Parametric(t)
Some predefined constant variables are available as well:
pi (3.1415926…)
e (2.71828….)
i (sqrt(-1))
Types and Conversions
All numeric expressions are computed using floating point arithmetic. The result of the expression will be truncated if assigned to an integer variable.
For assignment to an int variable – the default conversion is an implied trunc().
Conversion using round() can explicitly used.
All type conversions must be explicit, using type conversion functions:
|trunc(x) |converts float to int |
|value(s) |converts string to float |
|format(x,f) |converts a numeric (int or float) value into a string. |
| |The format function takes two arguments, the value being converted and a format string. |
| |The syntax of the format string is the same syntax as the format attribute of the WPSML |
| |variable element. |
| |Examples: |
| |# - integer format |
| |#.### - floating point with up to 3 digits of precision |
| |#.000 - floating point with required to 3 digits of precision |
| |0000 – 4 digit integer zero padded |
| |+# - integer format with leading sign |
| |($#.00) – dollar prefixed negatives denoted with () |
| |#.####E+000 – scientific notation (up to 4 decimal digits on mantissa, fixed 3 digit |
| |exponent) |
| |# #/# - mixed fraction |
Operators
Order of precedence (from lowest to highest):
| | |or (logical) |
| & |and (logical) |
| = != |equal, not equal |
| < > = |less, greater, less or equal, greater or equal |
| + - |addition, subtraction |
| * / |multiplication, division |
| ! + - |not, unary +, unary - |
| ^ |Power |
Operators supported for strings are equality and inequality (= , !=) and concatenation (+).
Functions
The following functions are supported:
|Function |Description |
|sin(x) |Sine |
|cos(x) |Cosine |
|tan(x) |Tangent |
|arcsin(x) |Inverse Sine |
|arcos(x) |Inverse Cosine |
|arctan(x) |Inverse Tangent |
|sec(x) |Secant |
|csc(x) |Cosecant |
|cot(x) |Cotangent |
|arcsec(x) |Inverse secant |
|arccsc(x) |Inverse cosecant |
|arccot(x) |Inverse cotangent |
|sqrt(x) |Square Root |
|log(x,n) |Logarithm base n (defaults to 10) |
|ln(x) |Natural Logarithm |
|abs(x) |Absolute Value Function |
|sinh(x) |hyperbolic sine |
|cosh(x) |hyperbolic cosine |
|tanh(x) |hyperbolic tangent |
|sech(x) |hyperbolic secant |
|csch(x) |hyperbolic cosecant |
|coth(x) |hyperbolic cotangent |
|arcsinh(x) |Inverse hyperbolic sine |
|arccosh(x) |Inverse hyperbolic cosine |
|arctanh(x) |Inverse hyperbolic tangent |
|arcsech(x) |Inverse hyperbolic secant |
|arccsch(x) |Inverse hyperbolic cosecant |
|arccoth(x) |Inverse hyperbolic cotangent |
|exp(x) |Exponential Function |
|mean(n1,n2,…) |Mean |
|mode(n1,n2,…) |Mode |
|NumModes(n1,n2,…) |Number of modes |
|median(n1,n2,…) |Median |
|stdev(n1,n2,…) |Standard deviation |
|GFC(x,y) |Greatest common factor |
|factsqrt(x) |Factor out square root |
|factorial(x) |Factorial |
|round(x,n) |Rounding to n places (negative n allowed) |
|trunc(x) |Truncation of decimal portion |
|mod(x,n) |Modulas |
|rand(l,h[,n]) |Random number in the range of l to h. |
| |n is the power of 10 to round to. |
| |n can be negative and defaults to 0. |
|prime(l,h[,n]) |Random prime number in the range of l to h. |
| |n is the power of 10 to round to. |
| |n defaults to 0. |
|sigdig(x,n) |Rounding to n significant digits (negative n allowed) |
|IfThenElse(b,t,f) |IfThenElse((\v1
]]>
becomes:
See the image: >
-----------------------
Q: What is 1/(3-1)?
a) 1.5
b) .5
c) 2
Question 1
Q: What is
$V1/( 3 - $V2)?
a) 1+ $V1/(3 - $V2)
b) $V1/( 3 - $V2)
c) $V1 + $V2
Template 1
$V1 = RND(1..20)
$V2 = RND(1..20)
Criteria($V2 != 3)
Production Rules 1
Q: What is 1/(3-1)?
a) 1.5
b) .5
c) 2
Question 1/
$V1=1, $V2=1
Q: What is 2/(3-4)?
a) -1
b) -2
c) 6
Question 1/
$V1=2, $V2=4
production rules
variable filter
non-textual
value production or plug-in
variable replacement
Question template
Question Instance
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.