Re: Review of OBI Badges vocabulary

On 23 January 2015 at 16:50, Sunny Lee <sunny@badgealliance.org> wrote:

> Howdy folks,
>
> Thanks for the feedback. The following is the BA response. I put it in
> etherpad format so folks can feel free to weigh in and comment directly:
> http://etherpad.badgealliance.org/obi-vocab-review-credcg
>

+1 good progress

I'm definitely more likely to reuse this work with JSON LD


>
> Thanks,
>
> Sunny
>
> On Tue, Jan 20, 2015 at 5:02 AM, Eric Korb <eric.korb@accreditrust.com>
> wrote:
>
>> +1 to everything
>>
>> Per comment for hosted:  Yes, we see the use of hosted badges for K-12,
>> but Accreditrust is not interested in this form.  However, if wanted to
>> host badges in JSON-LD format in a single file via URL, here an example:
>>
>> {
>>   "@context": "https://w3id.org/openbadges/v1",
>>   "alignment": [],
>>   "claim": {
>>     "about": "https://www.FOO.com/i/FOO"
>>   },
>>   "criteria": [
>>     "https://FOO.com/badge/criteria.php?cid=13&badge=66&award=944"
>>   ],
>>   "description": "4th Grade Level Basic Writing Skills",
>>   "evidence": "",
>>   "id": "https://www.FOO.com/i/FOO/badges/1.1.41.c",
>>   "image": "https://FOO.com/badge/13/images/basicwritingskillsbadge.png",
>>   "issued": "2014-02-10T06:00:00Z",
>>   "issuer": "http://www.accreditrust.com",
>>   "name": "4th Grade - Basic Writing Skills",
>>   "owner": "https://dev.FOO.com/i/FOO",
>>   "sysOpenBadges": {
>>     "assertion": {
>>       "uid": "944",
>>       "recipient":
>> "sha256$ff1fb520fb37a2fd35d4a1cc4caf2cd7ef808101367603e54f7329096e0e7a40",
>>       "badge": {
>>         "name": "4th Grade - Basic Writing Skills",
>>         "description": "4th Grade Level Basic Writing Skills",
>>         "image": "
>> https://FOO.com/badge/13/images/basicwritingskillsbadge.png",
>>         "criteria": "
>> https://FOO.com/badge/criteria.php?cid=13&badge=66&award=944",
>>         "issuer": {
>>           "name": "Accreditrust, LLC",
>>           "url": "http://www.accreditrust.com",
>>           "email": "test@domain.com",
>>           "image": "https://FOO.com/badge/13/accreditrust_logo_70_rt.png
>> ",
>>           "description": "<p>Digital Achievement Curation and
>> Validation</p>",
>>           "_location": "
>> https://FOO.com/badge/13/Npperqvgehfg,_YYP-issuer.json",
>>           "origin": "http://www.accreditrust.com"
>>         },
>>         "tags": [
>>           "writing",
>>           "4th grade"
>>         ],
>>         "alignment": [
>>           {
>>             "name": "Align Name 1",
>>             "url": "http://www.example.com",
>>             "description": "Align Desc 1"
>>           },
>>           {
>>             "name": "Align Name 2",
>>             "url": "http://www.example.com",
>>             "description": "Align Desc 2"
>>           }
>>         ],
>>         "_location": "
>> https://FOO.com/badge/13/41/173-66-4gu_Tenqr_-_Onfvp_Jevgvat_Fxvyyf-badge.json
>> "
>>       },
>>       "verify": {
>>         "type": "hosted",
>>         "url": "https://FOO.com/badge/13/41/173-Revp_Tznvy-verify.json"
>>       },
>>       "issuedOn": 1392012000,
>>       "evidence": ""
>>       },
>>       "_originalRecipient": {
>>         "identity":
>> "sha256$ff1fb520fb3adadf2ads5d4a1cc4caf2cd7ef808101367603e54f7329096e0e7a40",
>>         "type": "email",
>>         "hashed": true,
>>         "salt": "4POq9rBZ"
>>       },
>>       "salt": "4POq9rBZ",
>>       "issued_on": 1392012000
>>     }
>>   },
>>   ],
>>   "tag": [],
>>   "type": "Badge"
>> }
>>
>>
>>
>> On Tue, Jan 20, 2015 at 4:02 AM, Melvin Carvalho <
>> melvincarvalho@gmail.com> wrote:
>>
>>>
>>>
>>> On 20 January 2015 at 06:27, Manu Sporny <msporny@digitalbazaar.com>
>>> wrote:
>>>
>>>> I took an action[1] last week to review the OpenBadges spec at:
>>>>
>>>> http://standard.openbadges.org/
>>>>
>>>> Here's the first rough review:
>>>>
>>>> > Open Badges Standard
>>>>
>>>> I don't think we should be calling this a standard yet. I know the BA
>>>> wants to call it a standard, but that word means something special at
>>>> the W3C, IETF, ISO, OASIS, etc. I think we'll get significant and
>>>> unnecessary push-back from W3C comms and legal about this if we proceed
>>>> w/ any language that positions this document as a standard. I know there
>>>> is a disclaimer in the doc, but I don't think that'll convince W3C that
>>>> people will understand the nuance that statement is drawing.
>>>>
>>>> > Portable digital credentials
>>>>
>>>> Badges, credentials, microcredentials - we need to get our terminology
>>>> straight between the groups.
>>>>
>>>> > embedding it into portable image files as digital badges
>>>>
>>>> The image file thing is a non-goal for Digital Bazaar, maybe we can
>>>> reword it to "optionally embedding"? The important bit is the data
>>>> format, not where you can stuff the data format, no?
>>>>
>>>> > JSON-LD context (v1.1)
>>>>
>>>> Lots of thoughts on the context, but don't have time to delve into all
>>>> of them right now. Maybe that'll be a separate review. In general it
>>>> looks like class names (words starting w/ caps) are intermixed with
>>>> property names (lowercased names). The definition of 'type' is slightly
>>>> confusing, unless the OBI type subclasses rdf:type. obi:validation seems
>>>> like it might need to use JSON-LD framing to work for non-trivial
>>>> examples.
>>>>
>>>> > They are published as JSON for interoperability.
>>>>
>>>> Why not as JSON-LD?
>>>>
>>>> > Badge Baking Hosted Verification Signed Verification
>>>>
>>>> This sort of content isn't usually found in a vocabulary document. It's
>>>> a part of a spec, like the Identity Credentials spec. I suggest moving
>>>> this stuff out to a separate document.
>>>>
>>>> > Hosted Verification
>>>>
>>>> I think we should be focusing solely on digital signatures for
>>>> verification. The whole hosted model is very problematic when you start
>>>> working with credentials that are mission critical.
>>>>
>>>> > Signed Verification
>>>>
>>>> -1 to JWS:
>>>>
>>>> http://manu.sporny.org/2013/sm-vs-jose/
>>>>
>>>> > Assertion
>>>>
>>>> > uid
>>>>
>>>> You don't need a UID if you follow Web Architecture principles. There is
>>>> just an identifier, which is a URL. That is both globally unique and the
>>>> identifier can be generated locally.
>>>>
>>>> The question is whether to map this to @id, or to have a new 'id' value
>>>> that is a URL and relegate uid to "legacy" status.
>>>>
>>>> > recipient
>>>>
>>>> +1 for this language over credentialee
>>>>
>>>> > badge
>>>>
>>>> The fact that both recipient, badge, and a few other properties are both
>>>> machine-readable and change is bad news for deep validation of badges.
>>>> This is going to cause a huge problem for digital signatures on badges.
>>>>
>>>> We're either going to need both 'badge' and 'badgeHash', or you're going
>>>> to need to deep nest the IdentityObject, BadgeClass, and
>>>> VerificationObject. If you don't do that, for example, the BadgeClass
>>>> could vary wildly over time w/o invalidating the digital signature
>>>> (which it should).
>>>>
>>>> > verify
>>>>
>>>> Again, I disagree with this approach to verification. The Hosted model
>>>> is not something that Digital Bazaar would be interested in supporting
>>>> in any other way than legacy support.
>>>>
>>>> > issuedOn - DateTime - Either an ISO 8601 date or a standard 10-digit
>>>> >  Unix  timestamp.
>>>>
>>>> no unix timestamps, they're incredibly difficult to read/debug and don't
>>>> really provide any benefit these days. Make the dates and times human
>>>> readable.
>>>>
>>>> > This must be a PNG or SVG image, and should be prepared via the
>>>> > Baking specification.
>>>>
>>>> -1 to Badge Baking being in the vocabulary document, or a core
>>>> specification.
>>>>
>>>> > IdentityObject
>>>>
>>>> > identity
>>>>
>>>> This should be an IRI or URL. Assigning badges to people's names is fine
>>>> for low-value badges, but again, Digital Bazaar doesn't really have an
>>>> interest in low-value badges.
>>>>
>>>> > type
>>>>
>>>> Could be confused with rdf:type and JSON-LD's @type. E-mail addresses
>>>> make bad long-term identifiers.
>>>>
>>>> > hashed
>>>>
>>>> -1 to hashed identifiers. Identifiers, especially in Linked Data, need
>>>> to be dereference-able.
>>>>
>>>> > VerificationObject
>>>>
>>>> Verification should be digital-signatures based. We could still support
>>>> this for legacy purposes.
>>>>
>>>> > BadgeClass
>>>>
>>>> +1 to the content of a BadgeClass, but why not move most of this up into
>>>> the top-level badge object? Doing so saves a great deal of headache wrt.
>>>> verifying the digital signature because you push developers to include
>>>> all of the important information in the badge itself (without requiring
>>>> an external dereference to figure out if the badge is valid).
>>>>
>>>> > IssuerOrganization
>>>>
>>>> > image
>>>>
>>>> markup looks malformed.
>>>>
>>>> > revocationList
>>>>
>>>> If we used URLs to identify badges, just dereferencing the badge URL
>>>> would enable you to see if it was revoked or not.
>>>>
>>>> > For example, if the issuer at example.org wants to add a foo
>>>> > property to the assertion, the property name should be example:foo,
>>>> > or preferably a dereferencable IRI describing the property, such as
>>>> > http://example.org/foo.
>>>>
>>>> "example:foo" would be dropped by a JSON-LD processor that doesn't have
>>>> "example:" mapped. The digital signature wouldn't cover the property. In
>>>> fact, things that don't map to the JSON-LD context are not going to be
>>>> signed and are thus not protected from tampering. This bit looks like it
>>>> needs more work as I think it creates a security hole in the spec.
>>>>
>>>> > Signed Badges
>>>>
>>>> Agree that signed badges are very important, disagree that JWS is the
>>>> best path forward.
>>>>
>>>> In general I think the following changes need to be made to the
>>>> specification:
>>>>
>>>> 1. The vocabulary should be extracted out into a separate document.
>>>> 2. Signing could just re-use the Linked Data Signatures specification.
>>>> 3. Everything else should go into an OBI spec (hosted, structure of
>>>>    badges, extensions, etc.)
>>>>
>>>> Unfortunately, there are a number of contradicting opinions above, so
>>>> we'll need some discussion to tease out where the group wants to go with
>>>> things like flat badges vs. nested information wrt. digital signatures.
>>>> Whether or not extensions need JSON-LD framing, or if we just require
>>>> extensions to do shallow nesting + JSON Schema checking against
>>>> compacted JSON-LD data for now. We may also want to talk about freezing
>>>> 1.1 and ensuring that the entirety can be expressed in an Identity
>>>> Credential and then move to the Identity Credentials format for OBI 2.0?
>>>> Just some food for thought, talk w/ everyone on the call tomorrow.
>>>>
>>>
>>> +1 to everything
>>>
>>> Though I can see why you would want hosted badges.  Some badges may not
>>> have the need for portability and just live on a (COOL) URI.  Hosting some
>>> static content is easy for most publishers.  They can always be made
>>> portable later with a signature.
>>>
>>>
>>>>
>>>> -- manu
>>>>
>>>> [1] http://opencreds.org/minutes/2015-01-13/#88
>>>>
>>>> --
>>>> Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
>>>> Founder/CEO - Digital Bazaar, Inc.
>>>> blog: The Marathonic Dawn of Web Payments
>>>> http://manu.sporny.org/2014/dawn-of-web-payments/
>>>>
>>>>
>>>
>>
>

Received on Saturday, 24 January 2015 09:14:34 UTC