application/vnd.ims.lis.v2.lineitemresults+json
formatMedia Type | application/vnd.ims.lis.v2.lineitemresults+json |
---|---|
RDF Type | http://purl.imsglobal.org/vocab/lis/v2/outcomes#LineItem |
JSON-LD | http://purl.imsglobal.org/ctx/lis/v2/LineItem |
IPR and Distribution Notices
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.
IMS takes no
position regarding the validity or scope of any intellectual property or other
rights that might be claimed to pertain to the implementation or use of the
technology described in this document or the extent to which any license under
such rights might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on IMS's
procedures with respect to rights in IMS specifications can be found at the IMS
Intellectual Property Rights web page: http://www.imsglobal.org/ipr/
Copyright © 2016 IMS Global Learning Consortium. All Rights Reserved.
Use of this
specification to develop products or services is governed by the license with
IMS found on the IMS website: http://www.imsglobal.org/
Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
© 2016 IMS Global Learning Consortium, Inc.
All Rights Reserved.
The IMS Logo and Learning Tools Interoperability (LTI) are trademarks of the IMS Global
Learning Consortium, Inc. in the United States and/or other countries.
Figure 1 shows the representation of a LineItem resource in the application/vnd.ims.lis.v2.lineitemresults+json
format.
{ "@context" : [ "http://purl.imsglobal.org/ctx/lis/v2/LineItem", { "res" : "http://purl.imsglobal.org/ctx/lis/v2p1/Result#" } ], "@type" : "LineItem", "@id" : "http://lms.example.com/sections/2923/gradebook/items/1", "label" : "Chapter 5 Test", "reportingMethod" : "res:totalScore", "lineItemOf" : { "@id" : "http://lms.example.com/resources/Context/2272", "contextId" : "123-abc" }, "assignedActivity" : { "@id" : "http://toolprovider.example.com/assessment/66400", "activityId" : "a-9334df-33" }, "scoreConstraints" : { "@type" : "NumericLimits", "normalMaximum" : 100, "extraCreditMaximum" : 10, "totalMaximum" : 110 }, "result" : [ { "@id" : "http://server.example.com/sections/2923/gradebook/items/1/results/43", "resultOf" : "http://server.example.com/sections/2923/gradebook/items/1", "resultAgent" : { "@type" : "Person", "@id" : "http://server.example.com/persons/54062", "userId" : "54062" }, "comment" : "Nice work!", "normalScore" : 85, "extraCreditScore" : 3, "penaltyScore" : 0, "totalScore" : 88, "resultScore" : "88", "status" : "res:Completed" }, { "@id" : "http://server.example.com/sections/2923/gradebook/items/1/results/44", "resultOf" : "http://server.example.com/sections/2923/gradebook/items/1", "resultAgent" : { "@type" : "Person", "@id" : "http://server.example.com/persons/72003", "userId" : "72003" }, "comment" : "Please come see me", "normalScore" : 52, "extraCreditScore" : 0, "penaltyScore" : 10, "totalScore" : 42, "resultScore" : "42", "status" : "res:Started" } ] }
This specification defines the structure of a JSON document using a graphical notation. In this notatation, an object is represented by a box that branches out to other boxes corresponding to the properties of that object, as shown in Figure 2.
Figure 2 is not a complete representation of a LineItem
object because there are embedded objects (lineItemOf
, assignedActivity
, result
). A complete diagram would show branches emanating from the embedded objects to reveal their properties, and so on, recursively. For a complete representation, see Figure 8 below.
Each box representing a property specifies the name and type of the property , as shown in Figure 3.
If a property is optional, its box will be decorated with a circle that contains a question mark, as shown in Figure 4.
If a property can have multiple values, then its box in the graphical notation is decorated with a circle that contains a plus sign (+) as shown in Figure 5. In this example, the result
property may reference more than one LISResult
object. Ordinarily, these values are encapsulated within a JSON array, but if it turns out that only one value is present, then the square brackets for the array are optional.
An object within a JSON-LD document may have one of four possible representations:
When an object is to be identified by a fully-qualified URI or a CURIE, the box representing the object will be decorated with the #uri hash tag, as shown in null.
When an object or enumerable value is to be identified by a simple name, the box representing the corresponding property will be decorated with the #sn hash tag, as shown in Figure 7.
The JSON-LD standard reserves a handful of property names and tokens that have special meaning. These names and tokens, described below, begin with the '@' symbol.
The @id property may identify a so-called blank node by using a CURIE with an underscore as the prefix. The binding of a JSON-LD document MAY include identifiers for blank nodes, but these identifiers are not required.
JSON-LD specifies four other reserved terms (@value, @language, @container, @list). Ordinarily, these terms are not used in the JSON binding for LineItem
objects. However, implementations that extend this specification by including additional properties may utilize these reserved terms in accordance with the rules defined by [JSON-LD-syntax].
In JSON-LD, a context is used to map simple names that appear in a JSON document to URI values for properties or data types in a formal vocabulary (typically an RDF ontology). For example, the standard context [LIS-v2-LineItemResults] for a LineItem contains the following rewrite rules (among others):
{ "@context" = { "liso" : "http://purl.imsglobal.org/vocab/lis/v2/outcomes#", "scoreConstraints" : "liso:scoreConstraints", ... } }
A context may specify that the values of certain object properties must be rendered as URI references. The following snippet presents an example of such a rule.
{ "@context" = { ... "resultStatus" : { "@id" : "liso:resultStatus", "@type" : "@id" } ... }
This rule is an example of type coercion. For more details about the syntax of a JSON-LD context, see [JSON-LD-syntax].
The following list defines the necessary and sufficient conditions for a document to conform to the application/vnd.ims.lis.v2.lineitemresults+json
media type.
@type
property whose value is "LineItem
".@context
property that references one or more JSON-LD contexts (either by URI or by value).@context
property, a non-empty collection MUST always be represented as a JSON array whose values are enclosed in square brackets. Whereas, in general, the JSON-LD syntax specification allows a collection containing a single value to omit the square brackets, the application/vnd.ims.lis.v2.lineitemresults+json
media type requires square brackets for all non-empty collections other than the @context
property.@id
property of a given object is mandatory if the minimum cardinality of that property, as defined by this specification, is greater than zero. The @id
property is optional for all other objects (even if it is not explicitly listed in the set of properties for an object). Conforming implementations SHOULD include the @id
property for all addressable objects.@id
property is mandatory, then the value MUST NOT treat the object as a blank node. In this case, the @id
value MUST NOT be a CURIE with an underscore as the prefix.@type
property and a @context property.@type
property if the object value is a subtype of the declared range of the property.Figure 8 presents a complete graphical representation of the JSON binding for a LineItem object. The subsections following this figure provide details about each object that appears in the JSON binding for a LineItem object.
{ "@id" : "http://toolprovider.example.com/assessment/66400", "activityId" : "a-9334df-33" }
Property | Mult | Description | Type |
---|---|---|---|
@id | 0..1 | The URI that identifies this Activity instance. |
xs:anyURI |
activityId | 1 | The unique ID for the activity as used by the tool provider. | xs:normalizedString |
{ "@id" : "http://lms.example.com/resources/Context/2272", "contextId" : "123-abc" }
Property | Mult | Description | Type |
---|---|---|---|
@id | 0..1 | The URI that identifies this Context instance. |
xs:anyURI |
contextId | 1 | A unique string provided by the tool consumer to identify the context (as passed in the context_id launch parameter). | xs:normalizedString |
Property | Mult | Description | Type |
---|---|---|---|
@id | 0..1 | The URI that identifies this LISPerson instance. |
xs:anyURI |
userId | 1 | A unique identifier for the person. | xs:normalizedString |
{ "@id" : "http://server.example.com/sections/2923/gradebook/items/1/results/43", "resultOf" : "http://server.example.com/sections/2923/gradebook/items/1", "resultAgent" : { ... }, "comment" : "Nice work!", "normalScore" : 85, "extraCreditScore" : 3, "penaltyScore" : 0, "totalScore" : 88, "resultScore" : "88", "status" : "res:Completed" }
Property | Mult | Description | Type |
---|---|---|---|
@id | 0..1 | The URI that identifies this LISResult instance. |
xs:anyURI |
resultAgent | 1 | The person whose score is recorded in this Result. | LISPerson |
comment | 0..1 | A comment about this Result suitable for display to the learner. Typically, this is a comment made by the instructor or grader. | DataValue.Type |
normalScore | 0..1 | The score earned by the learner before adding extra credit or subtracting penalties. | xs:decimal |
extraCreditScore | 0..1 | The number of exta credit points earned by the learner. | xs:decimal |
penaltyScore | 0..1 | The number of points deducted from the normal score due to some penalty such as submitting an assignment after the due date. | xs:decimal |
totalScore | 0..1 | The total score on the assignment given by
totalScore = normalScore + extraCreditScore - penaltyThis value does not take into account the effects of curving. |
xs:decimal |
resultScore | 0..1 | The final score that should be displayed in a gradebook for this Result object. | Literal |
gradedBy | 0..1 | The agent who generated the result. | Agent (URI reference)
|
resultStatus | 0..1 | The status of the result for this user and line item. | ResultStatus (Simple Name reference)
|
timestamp | 0..1 | The time at which the result was generated. | xs:dateTime |
{ "@context" : [ ... ], "@type" : "LineItem", "@id" : "http://lms.example.com/sections/2923/gradebook/items/1", "label" : "Chapter 5 Test", "reportingMethod" : "res:totalScore", "lineItemOf" : { ... }, "assignedActivity" : { ... }, "scoreConstraints" : { ... }, "result" : [ ... ] }
Property | Mult | Description | Type |
---|---|---|---|
@context | 1..* | This value specifies one or more JSON-LD contexts, either by reference or by value. When multiple contexts are specified, they must be encapsulated within an array. For most implementations, the value will be the single URI for the standard context associated with the
|
JSON-LD Context |
@type | 1 | A simple name identifying the object's type. The standard context [LIS-v2-LineItemResults] defines the following simple names that are applicable:
Implementations may use a custom JSON-LD context which defines simple names for additional types that are subtypes of |
owl:Class (Simple Name reference)
|
@id | 0..1 | The URI that identifies this LineItem instance. |
xs:anyURI |
label | 0..1 | A human-friendly label for this LineItem suitable for display. For example, this label might be used as the heading of a column in a gradebook. | xs:normalizedString |
reportingMethod | 1 | Identifies the property that is reported as the resultScore of the Results within this LineItem. |
Property (URI reference)
|
lineItemOf | 1 | The context to which this LineItem belongs. | Context |
assignedActivity | 0..1 | The Activity that learners engage with to produce the Results recorded in this LineItem. | Activity |
scoreConstraints | 0..1 | Constraints on the scores recorded in the Results associated with this LineItem. | NumericLimits |
result | * | A Result associated with this LineItem. | LISResult |
{ "@type" : "NumericLimits", "normalMaximum" : 100, "extraCreditMaximum" : 10, "totalMaximum" : 110 }
Property | Mult | Description | Type |
---|---|---|---|
@id | 0..1 | The URI that identifies this NumericLimits instance. |
xs:anyURI |
normalMaximum | 0..1 | The maximum number of points that a learner may earn without extra credit. | xs:float |
extraCreditMaximum | 0..1 | The maximum number of extra credit points that a learner may earn. | xs:float |
totalMaximum | 0..1 | The maximum number of points that a learner may earn. This value is given by
totalMaximum = normalMaximum + extraCreditMaximum |
xs:float |
ResultStatus
instances are enumerable, and they must be referenced by a simple name. The default vocabulary of simple names for instances of the ResultStatus
class are listed in Table 7.
Simple Name | URI / Description |
---|---|
Completed | http://purl.imsglobal.org/vocab/lis/v2/outcomes#Completed |
Final | http://purl.imsglobal.org/vocab/lis/v2/outcomes#Final |
Initialized | http://purl.imsglobal.org/vocab/lis/v2/outcomes#Initialized |
Started | http://purl.imsglobal.org/vocab/lis/v2/outcomes#Started |
Restriction Base | http://www.w3.org/2001/XMLSchema#string |
---|---|
maxLength | 4096 |
Restriction Base | http://www.w3.org/2001/XMLSchema#string |
---|
Title: | LineItem JSON Binding in the application/vnd.ims.lis.v2.lineitemresults+json format |
---|---|
Editor: | Stephen Vickers (IMS Global) |
Version: | 2.0 |
Version Date: | 15 December 2014 |
Release: | Public Draft |
Status: | IMS Public Draft |
Purpose: | This document is made available for review and comment by the public community at large. |
The following list of individuals contributed to the authoring of this document:
Viktor Haag | Desire2Learn | Charles Severance | University of Michigan |
Brad Humphrey | Instructure | John Tibbetts | Vitalsource |
Greg McFall | Pearson | Claude Vervoort | Cengage |
Bracken Mosbacker | Instructure | Stephen Vickers | IMS Global Learning ConsortiumZ |
Padraig O'hiceadha | Houghton Mifflin Harcourt |