Open Badges Standard
Extension Proposal, 29 October 2014
Badge Alliance Standard Working Group
Working Group focus April-October 2014
Linked Data with JSON-LD
Extensions
Present day: Open Badges 1.0
Each badge is composed of 3 badge objects connected by URLs:
Assertion
Badge Class
badge,
uid,
recipient,
issuedOn,
expires,
evidence,
verify
issuer,
name,
description,
image,
criteria
Issuer
name,
url,
org,
contact
The near future: Open Badges 1.1
We propose issuers add two properties to each new Assertion, Badge Class & Issuer object:
*URL subject to change in final version
“@context”: “http://standard.openbadges.org/1.1/context”*,
“@type”: “assertion”
Linked Data with JSON-LD
New @context and @type properties:
Linked Data with JSON-LD
Providing @context for JSON connects terms to their definitions.
Like, “‘criteria’ means ‘the URL of a page that says what’s required to earn the badge.’”
Linked Data with JSON-LD
Many developers may link to the same definitions.
Then, other people know they’re all talking about the same thing.
Linked Data with JSON-LD
Assertion
Badge Class
@context,
@type,
badge,
uid,
recipient,
issuedOn,
expires,
evidence,
verify
@context,
@type,
issuer,
name,
description,
image,
criteria
Issuer
@context,
@type,
name,
url,
org,
contact
Provides context for property declarations. A context file maps terms to definitions of those terms.
{
“@context”: {
“badge”: {
“@id”: “http://standard.openbadges.org/definitions#BadgeClass”,
“@type”: “@id” },
“uid”: {
“@id”: “http://openbadges.org/definitions#uid”,
“@type”: “http://www.w3.org/2001/XMLSchema#string”
...
}
}
OBI Context*
*see full prototype here
JSON-LD Enabled Badge Extensions
Now that we can share a base @context for badges:
…. open & standardized extensions!
JSON-LD Enabled Badge Extensions
Assertion
Badge Class
@context,
@id*,
@type,
badge,
uid,
recipient,
issuedOn,
expires,
evidence,
verify
@context,
@id, @type,
issuer, name,
description,
image,
criteria
Issuer
@context,
@id, @type,
name,
url,
org,
contact
Organizations may define extensions by creating a new context file to link in extended badge objects
{
“@context”: {
“courseLocation”: {
“@id”: “http://extension.org/definitions#courseLocation”,
“@type”: “@id” },
“lat”: {
“@id”: “http://schema.org/latitude”,
“@type”: “@id”
...
}
}
Extension Context
Extension
@context,
@type,
courseLocation,
lat, long
JSON-LD Enabled Badge Extensions
Any badge object (Assertion, Badge Class or Issuer) may be extended.
Each extension:
Overview: JSON-LD & Extensions
Assertion
Badge Class
@context
@id, @type,
badge,
uid,
recipient,
issuedOn,
expires,
evidence,verify
@context,
@id, @type,
issuer,
name,
description,
image,
criteria
Issuer
BadgeList Extension
@context,
@type,
badgeListUrl
@context,
@id, @type,
name,
url,
org,
contact
Open Badges Context:
“uid” -> “http://standard.openbadges.org/definitions#uid”,
“badge”: -> “http://standard.openbadges.org/definitions#badge”
Extension Context:
“badgeListURL” -> “http://extension.org/defs/badgeListUrl”
Overview: JSON-LD & Extensions
An example Issuer extension in code
{
“@context”: [
“http://standard.openbadges.org/1.1/context”
],
“@type”: “issuer”,
“@id”: “http://issuer.org/issuer.json”
“name”: “Example Issuer”,
“description”: “An example issuer organization”,
“contact”: “example@issuer.org”
“extension:badgeListUrl”: {
“@context: “http://extension.org/context/badgeListUrl”,
“@type”: [“extension”, “http://extension.org/defs/badgeListUrl”]
“listUrl”: “http://issuer.org/badgelist.json”
}
}
Extending a Badge Object:
Extension validation w/JSON-schema
{
“@context”: {
“listUrl”: {
“@id”: “http://extension.org/defs/listUrl”,
“@type”: “@id”
},
"obi:validation": [
{ "obi:validatesType": "http://extension.org/defs/badgeListUrl",
"obi:validationSchema": "http://extension.org/schema/badgeListUrl" }
]
}
{
“@context”: “http://standard.openbadges.org/1.1/context”,
“@type”: “issuer”, ...
“extension:badgeListUrl”: {
“@type”:
[“extension”,“http://extension.org/defs/badgelistUrl”]
“@context: “http://extension.org/context/badgeListUrl”,
“listUrl”: “http://issuer.org/badgelist.json”
}
}
Linked Extension Context
Modular extensions
JSON-schema based validation
Schema-based validation help with:
The future: Open Badges vision
A badge is a composition of
standardized and verifiable components
that delivers a message about
an earner’s qualifications.
Open Badges 1.1 Contributors
The Badge Alliance Standard Working Group Cabinet
Special thanks to:
Manu Sporny, Eric Korb, Don Presant, Joe Dickinson, Tim Cook, �Wayne Skipper, Kahli Burke, Robert Sanderson, Kyle Rimkus, Dan Wilson, Kurt Mueller, �Charles Augustine, Serge Ravet, Mary Bold, Jason Lewis, Dave Longley
Nate Otto, Developer
Concentric Sky | @ottonomy
Kerri Lemoie, CTO
Achievery | @kayaelle
Chris McAvoy, CTO
Earshot | @chmcavoy
Sunny Lee, Director of Infrastructure
Badge Alliance | @threeqube
Brian Brennan, Developer
Mozilla | @brianloveswords