xapi-profiles icon indicating copy to clipboard operation
xapi-profiles copied to clipboard

Fix @context for scopeNote.

Open FeLungs opened this issue 7 years ago • 4 comments

I was playing around with the expanded and compacted forms of a profile I am developing (via https://json-ld.org/playground/) and noticed something strange about scopeNote

...
"rules":[{"location":"$.result.duration","presence":"recommended","scopeNote":{"en": "the Length of..."}]}

compacts to:
{
          "http://www.w3.org/2004/02/skos/core#scopeNote": {},
          "https://w3id.org/xapi/profiles/ontology#location": "$.result.duration",
          "https://w3id.org/xapi/profiles/ontology#presence": "recommended"
        }

and expands to:

{
            "https://w3id.org/xapi/profiles/ontology#location": [
              {
                "@value": "$.result.duration"
              }
            ],
            "https://w3id.org/xapi/profiles/ontology#presence": [
              {
                "@value": "recommended"
              }
            ],
            "http://www.w3.org/2004/02/skos/core#scopeNote": [
              {}
            ]
          }

Where as for prefLabel

...
"prefLabel":{"en":"some label"}
...

compacts to:
"http://www.w3.org/2004/02/skos/core#prefLabel": {
        "@language": "en",
        "@value": "some label"
      }

and expands to:

"http://www.w3.org/2004/02/skos/core#prefLabel": [
          {
            "@value": "some label",
            "@language": "en"
          }
        ],

I tried setting the value of scopeNote to a string and got:

"rules":[{"location":"$.result.duration","presence":"recommended","scopeNote": "the length of..."]}
{
            "https://w3id.org/xapi/profiles/ontology#location": [
              {
                "@value": "$.result.duration"
              }
            ],
            "https://w3id.org/xapi/profiles/ontology#presence": [
              {
                "@value": "recommended"
              }
            ],
            "http://www.w3.org/2004/02/skos/core#scopeNote": [
              {
                "@value": "the length of..."
              }
            ]
          }

When looking into this difference, I noticed that within the @context for the profile specification (https://adlnet.github.io/xapi-profiles/context/profile-context.jsonld) there are different alias definitions for prefLabel and scopeNote:

"prefLabel": {
            "@id": "skos:prefLabel",
            "@container": "@language"
        },

"scopeNote": {
            "@id": "skos:scopeNote"
        },

Yet in the spec, both prefLabel and scopeNote are defined as objects


prefLabel | Object | A Language Map of the preferred names in each language | Required


scopeNote | Object | A Language Map describing usage details for the parts of Statements addressed by this rule. For example, a Profile with a rule requiring result.duration might provide guidance on how to calculate it. | Optional

I believe the @context for scopeNote needs to be updated to

"scopeNote": {
            "@id": "skos:scopeNote"
            "@container": "@language"
        },

TL;DR

  • [ ] Which part/parts of the specification are at issue?

  • @context

  • [ ] What is your understanding of what the spec means in these parts?

  • It is used for aliasing within JSON-LD

  • [ ] Related to your implementation, what's the use case you're trying to achieve? What are the user stories you're trying to support?

  • I would like JSON-LD processors to pick up scopeNote and not have that information lost while following this spec

  • [ ] How you would like the specification to be improved?

  • update scopeNote within @context to

"scopeNote": {
            "@id": "skos:scopeNote"
            "@container": "@language"
        },

FeLungs avatar Nov 22 '17 22:11 FeLungs

@fugu13 this looks like a valid to me. Thoughts? I can submit a PR and update if you agree.

jhaag75 avatar Dec 07 '17 22:12 jhaag75

Yes, this should be updated, it is a bug that prevents automated translation to other serializations.

phtyson avatar Oct 21 '21 16:10 phtyson

Yes, this should be updated, it is a bug that prevents automated translation to other serializations.

Please submit an update and PR if you want this fixed. ADL will review and controls this repo.

jhaag75 avatar Oct 21 '21 17:10 jhaag75

Pull request https://github.com/adlnet/xapi-profiles/pull/253

phtyson avatar Oct 21 '21 18:10 phtyson