
application/vnd.ims.lti.v2.toolsettings+json format.| Media Type | application/vnd.ims.lti.v2.toolsettings+json |
|---|---|
| RDF Type | http://purl.imsglobal.org/vocab/lti/v2/lti#ToolSettingsContainer |
| JSON-LD | http://purl.imsglobal.org/ctx/lti/v2/ToolSettings |
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 © 2014 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.
Join the discussion and post
comments on the LTI Public Forum: http://www.imsglobal.org/
© 2014 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.
v1.0 Public Draft - Revision: 7 April 2014
ToolProxyBinding.
System-level Tool Settings are stored within the ToolProxy.
This specification defines a JSON representation that can provide details about
Tool Settings within a single container or all the relevant containers.When accessing settings via the REST API [LTI, 14 TSS], a client may specify whether
the response should provide settings from one particular container or all relevant containers.
The example in Figure 1 shows Tool Settings from three containers:
LtiLink, ToolProxyBinding, and ToolProxy.
The various containers are nested within an array labeled by the @graph
property. The type of each container is specified by the
@type property, and the REST endpoint for the container itself is specified by
the @id property. Thus, in Figure 1, the REST endpoint for the LtiLink
is given by:
http://tc.example.com/resources/LtiLink/17001
For any given container, tool settings are accessed through the custom property
which takes an object as its value. The @id
property within the custom object specifies the REST endpoint for the tool settings
(as opposed to the endpoint for the parent container). In Figure 1, the REST endpoint for the
link-level settings is given by:
http://tc.example.com/resources/LtiLink/17001/custom
A client may read or update the settings by issuing an HTTP GET or PUT request at this endpoint in accordance with [LTI, 14 TSS].
{
"@context" : "http://purl.imsglobal.org/ctx/lti/v2/ToolSettings",
"@graph" : [
{ "@type" : "LtiLink",
"@id" : "http://tc.example.com/resources/LtiLink/17001",
"custom" : {
"@id" : "http://tc.example.com/resources/LtiLink/17001/custom",
"chapter" : "3",
"section" : "1"
}
},
{ "@type" : "ToolProxyBinding",
"@id" : "http://tc.example.com/courses/0294823738/bindings/tp.example.com/ebook",
"custom" : {
"@id" : "http://tc.example.com/courses/0294823738/bindings/tp.example.com/ebook/custom",
"isbn" : "978-0321558145",
"style" : "jazzy"
}
},
{ "@type" : "ToolProxy",
"@id" : "http://tc.example.com/resources/ToolProxy/79833",
"custom" : {
"@id" : "http://tc.example.com/resources/ToolProxy/79833/custom",
"customerId" : "394892759526"
}
}
]
}
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 ToolSettingsContainer object because custom is an embedded object. A complete diagram would show branches emanating from custom to reveal its properties, and so on, recursively. For a complete representation, see Figure 5 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 3.
An object within a JSON-LD document may have one of four possible representations:
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 4.
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 ToolSettingsContainer 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 [LTI, 14 TSS] for a ToolSettingsContainer contains the following rewrite rules (among others):
{
"@context" = {
"lti" : "http://purl.imsglobal.org/vocab/lti/v2/lti#",
"custom" : "lti:custom",
...
}
}
The following list defines the necessary and sufficient conditions for a document to conform to the application/vnd.ims.lti.v2.toolsettings+json media type.
@type property whose value is "ToolSettingsContainer" or a subtype of ToolSettingsContainer.@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.lti.v2.toolsettings+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 5 presents a complete graphical representation of the JSON binding for a ToolSettingsContainer object. The subsections following this figure provide details about each object that appears in the JSON binding for a ToolSettingsContainer object.
LtiLink represents a link within the Tool Consumer system pointing to a resource within the Tool Provider.
| Property | Mult | Description | Type |
|---|---|---|---|
| @id | 0..1 | The URI that identifies this LtiLink instance. |
xs:anyURI |
| custom | 0..1 | A collection of custom properties defined by the Tool Provider and stored in this ToolSettingsContainer. | PropertyMap |
| custom_url | 0..1 | The REST endpoint at which custom tool settings may be accessed for this ToolSettingsContainer. | xs:anyURI |
| Property | Mult | Description | Type |
|---|---|---|---|
| @id | 0..1 | The URI that identifies this ToolProxy instance. |
xs:anyURI |
| custom | 0..1 | A collection of custom properties defined by the Tool Provider and stored in this ToolSettingsContainer. | PropertyMap |
| custom_url | 0..1 | The REST endpoint at which custom tool settings may be accessed for this ToolSettingsContainer. | xs:anyURI |
ToolProxyBinding associates a ToolProxy with a learning Context (such as a Course Section). This association must be established before the corresponding Tool can be used within the Context. The ToolProxyBinding also serves as a container that holds tool settings associated with the learning Context.
| Property | Mult | Description | Type |
|---|---|---|---|
| @id | 0..1 | The URI that identifies this ToolProxyBinding instance. |
xs:anyURI |
| custom | 0..1 | A collection of custom properties defined by the Tool Provider and stored in this ToolSettingsContainer. | PropertyMap |
| custom_url | 0..1 | The REST endpoint at which custom tool settings may be accessed for this ToolSettingsContainer. | xs:anyURI |
application/vnd.ims.lti.v2.toolsettings.simple+json format. IMS Public Draft. 7 April 2014.| Title: | Tool Settings in the application/vnd.ims.lti.v2.toolsettings+json format. |
|---|---|
| Editor: | Stephen Vickers (IMS Global) |
| Version: | 1.0 |
| Version Date: | 7 April 2014 |
| Release: | Public Draft |
| Status: | IMS Public Draft |
| Purpose: | This document is made available for review and comment by the public community at large. |
| Document Location: | Join the discussion and post comments on the LTI Public Forum: http://www.imsglobal.org/community/forum/categories.cfm?catid=44 |
The following list of individuals contributed to the authoring of this document:
| Greg McFall | Pearson | John Tibbetts | VitalSource |
| Lance Neumann | Blackboard | Stephen Vickers | IMS Global Learning Consortium |
IMS Global Learning Consortium, Inc. (“IMS Global”) is publishing the information contained in this (“Specification”) for purposes of scientific, experimental, and scholarly collaboration only.
IMS Global makes no warranty or representation regarding the accuracy or completeness of the Specification. This material is provided on an “As Is” and “As Available” basis.
The Specification is at all times subject to change and revision without notice.
It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.
IMS Global would appreciate receiving your comments and suggestions.
Please contact IMS Global through our website at http://www.imsglobal.org
Please refer to Document Name: IMS Global Learning Tools Interoperability - Content-Item Message Public Draft v1.0
Revision: 7 April 2014