Here's the draft text I worked up to define an endorsement extension. This is the result of months of work and thinking by many peopleThis solves for a limited number of use cases by intent, and is designed to be modified in the future for additional purposes, used as a model for future extensions, and to be complementary to other extensions serving specific purposes. As I
wrote this morning, endorsement could be a key factor in enabling the translation of real badge value from an issuer's context to a consumers, so that badges may be turned into real opportunities for earners.
Badge Endorsement:Any organization that is set up to issue a badge may provide an endorsement of a badge object (Assertion, Badge Class or Issuer). For example, a school district may issue an endorsement to indicate approval of a specific Badge Class corresponding to professional development credits acceptable by the district. See the Badge Alliance Endorsement Working Group
framework paper for background.
Endorsement of a Badge Class serves to publicly acknowledge the value of a badge as designed, assessed, and issued by a badge issuer. Endorsements of an Issuer are presumed to apply to all Badge Classes and Assertions created by that Issuer. See the
context and
schema for endorsement.
Extendable Badge Objects: Assertion
Badge endorsers must create a Badge Class to use for the endorsement, but the extension itself must be added to an Assertion whose recipient identity is the IRI (URL) of the endorsed Badge Object. Endorsers may use one Badge Class for all their endorsements, or they may create multiple badge classes to provide different types of endorsement. Consumers should consider both the Badge Class's description
field as well as the Assertion's Endorsement extension'sstatement
property.
Example implementation:
BadgeClass:
{
"id": "http://endorser.org/endorsementclass1"
"name": "Endorsement",
"description": "A badge of true endorsement.",
...
}
Assertion:
{
"recipient": {
"identity": "http://anotherissuer.org/badgeclass5",
"type": "id",
"hashed": false
},
"badge": "http://endorser.org/endorsementclass1",
"extension:Endorsement": {
"@context":"http://standard.openbadges.org/extensions/endorsement/context.json",
"@type": ["extension", "extension:Endorsement"],
"statement": "The reason why the endorsed object is worthy."
"endorsedObject": {
*** Full copy of endorsed object ***
}
},
...
}
* context file does not yet exist, but it will be very simple, following the
extensions specification.
- The most important technical question was if the approach to using the Badge Object IRI (URL) as the recipient.identity and declaring the type of identity as JSON-LD's '@id' keyword. The resulting assertions are not uploadable to the Mozilla Backpack or other services that expect an email address as the identifier. Only applications specifically written to understand badges issued to other badges will be able to create and read endorsement information.
- My most pressing question was, is this the right information to include so that consumers can understand the endorsement?
- Kerri noted that it might be useful to have a field that would provide a consumer some information about why the endorser is qualified to have a valued endorsement. It is an open question as to what form this information could take, and whether it would be important to be machine readable.
- I think that linking to a badge assertion or collection of assertions is the eventual answer to questions of authorization or qualification in a manner that could eventually be machine-evaluable. We don't yet have a spec for sharing multiple assertions at once besides the Backpack Displayer API. I don't think we can wait on putting out endorsement as a ready-to-use extension to have a long technical discussion on this topic.
- One of the core ideas behind endorsement is that it builds on trust relationships between consumers and endorsers to create trust between those consumers and issuers. Consumers who already trust a given endorser don't need additional documentation of reasons to trust that entity. Open Badges and endorsement themselves
- We didn't have time to mention it today, but I think this extension could go hand-in-hand with another "3rd party annotation" extension designed to add properties (like additional alignments) to badges issued by others. The endorsement framework paper indicated a desire to comment on alignment to standards, particularly.
- A lot of feedback focused on how this extension might work with Tim (et al)'s proposal to define a BadgeClass's creator, and create ways for them to authorize different issuers to create assertions. These authorization relationships are very much like endorsement (but I think they also have an explicit authorization purpose and require a little more metadata to define the exact scope of that authorization, like that it may be limited to an explicit set of BadgeClasses. I think that endorsement as defined here could go hand-in-hand with authorization-to-issue-on-my-behalf, but there are many uses for endorsement that do not constitute authorization.
- A side note: As we met for the #MC4PD Summit last week in Redwood City, a few standard badgers discussed the use cases for authorization-to-issue. It is not explicitly following the 1.x standard, but in a minor update, we could define that the "issuer" pointed to in the Badge Class is the "creator" and assumed issuer, except that an "issuer" property found in the assertion (LD-mapped to obi:issuerorg) could be considered the issuer of the assertion, and the badge could be considered valid if authorization for that issuer to issue the BadgeClass were discoverable.
The next step in this process, before making the extension available for issuers to use, is gathering the Open Badges specification community's feedback on the questions raised by this investigation.
- Are these properties the right information to include in an endorsement?
- Do we need to wait to decide on a method of adding a "qualification-to-endorse" component to the extension, where endorsers can share information about their own trustworthiness relative to the endorsed Badge Object's claims?
- Is the use case of 3rd party endorsement that this extension targets so similar to the authorization-to-issue use case from Tim's investigation that work on endorsement should not proceed until crafting the authorization-to-issue proposal?
- Is this proposal ready to advance as an OBI extension ready for use? (Note: extensions are intended to be an experimental proving ground for new ideas that may later be absorbed into the core OBI specification)
Nate Otto, Developer