Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

URL ID for image typo? #545

Closed
BigBlueHat opened this issue Sep 28, 2023 · 9 comments · Fixed by #547
Closed

URL ID for image typo? #545

BigBlueHat opened this issue Sep 28, 2023 · 9 comments · Fixed by #547

Comments

@BigBlueHat
Copy link

The current context file contains (note the capital I in #Image):

        "image": {
          "@id": "https://purl.imsglobal.org/spec/vc/ob/vocab.html#Image",
          "@type": "@id"
        },

However, that points to the object type definition (https://purl.imsglobal.org/spec/vc/ob/vocab.html#Image) and not the property definition (https://purl.imsglobal.org/spec/vc/ob/vocab.html#image).

Small but important difference.

Thanks!
🎩

@ottonomy
Copy link
Contributor

ottonomy commented Oct 3, 2023

I agree with @BigBlueHat that the general convention is UpperCamelCase for class/entity types and lowerCamelCase for property names, as this is.

@xaviaracil
Copy link
Collaborator

@BigBlueHat which version of the context are you looking at? Current version (https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.2.json) defines image as:

"image": {
          "@id": "https://purl.imsglobal.org/spec/vc/ob/vocab.html#Image",
          "@type": "@id"
        }

@ottonomy
Copy link
Contributor

ottonomy commented Oct 11, 2023

@xaviaracil yes that was the version of the context he was looking at. The issue is that the IRI for the type Image and the property image are the same -> "https://purl.imsglobal.org/spec/vc/ob/vocab.html#Image". Typically, image would point to an IRI like "https://purl.imsglobal.org/spec/vc/ob/vocab.html#image" instead, differentiating the definition for the class and the property.

@xaviaracil
Copy link
Collaborator

@ottonomy got it. I've created a new branch. My main doubt is in the image entity of the top level:

    "image": {
      "@id": "https://purl.imsglobal.org/spec/vc/ob/vocab.html#image",
      "@type": "@id"
    }

Source:

"image": {
"@id": "https://purl.imsglobal.org/spec/vc/ob/vocab.html#image",
"@type": "@id"
},

I've set it to ...#image, but I wonder if this entity is necessary, as every entity with an image property has the image entity in their inner context.

@ottonomy
Copy link
Contributor

ottonomy commented Oct 12, 2023

Does the top level property in the context enable a top level image property to be present in the VC?

I see this snippet from the above link:

"image": {
          "@id": "https://purl.imsglobal.org/spec/vc/ob/vocab.html#image-1",
          "@type": "@id"
        },

That seems incorrect.

And:

 "image": {
          "@id": "https://purl.imsglobal.org/spec/vc/ob/vocab.html#image-3",
          "@type": "@id"
        },

Seems like some bug crept in.

@xaviaracil
Copy link
Collaborator

@ottonomy I don't see any image property in the top level in OB's datamodel. Should we remove this definition?

Regarding the rare identifiers, they're pointing out to the description of the attribute for the given entity. That's why we have several definitions for image, with differents html ids.

@ottonomy
Copy link
Contributor

ottonomy commented Oct 24, 2023

they're pointing out to the description of the attribute for the given entity. That's why we have several definitions for image, with differents html ids.

I don't like the modeling of issuer.image to be a separate vocabulary concept from Achievement.image etc. Ideally we just use https://schema.org/image for these things, but 1EdTech may have its own reasons for preferring its vocabulary for all terms, it can work. A generic concept for an image #image would be better I think than having different IRIs for the term image when it appears in different places in the context. I guess that's just a stylistic preference, but it seems simpler.

I don't see any image property in the top level in OB's datamodel. Should we remove this definition?

This is one of those cases where some VC sub-communities have used some top-level metadata in the VC for display in various communities. I am perfectly fine myself with removing image from top-level display. It would be useful to approach wallet implementers who participated in the JFF Plugfests to see how they have implemented image display to see if they are targeting credentialSubject.achievement.image properly.

@kayaelle
Copy link
Contributor

I agree with Nate re: using https://schema.org/image. The advantage is that it increases interoperability with other linked data models outside of 1EdTech's.

For the plugfests, we listed badge image in the requirements but we should have required achievement.image which is what was intended.

I don't think we need an image at the top level. There is enough flexibility to tailor the acheivement.image to the individual credential if implementers choose to do so. By keeping it to just achievement.image vs adding a top level image, wallets and other displayer don't need to make a decision about which one to display. This has already become an issue with name and achievement.name.

@xaviaracil xaviaracil linked a pull request Oct 26, 2023 that will close this issue
@ottonomy
Copy link
Contributor

ottonomy commented Oct 26, 2023

Great, thanks for weighing in on not needing a top level image @kayaelle. 👍 to removing that from a future version of the context and reviewing other top level properties that are elsewhere duplicated in the model for the same reason (separate issue).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants