Skip to content

Frames are indistinguishable from other JSON-LD documents #28

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

Closed
azaroth42 opened this issue Nov 2, 2018 · 4 comments
Closed

Frames are indistinguishable from other JSON-LD documents #28

azaroth42 opened this issue Nov 2, 2018 · 4 comments

Comments

@azaroth42
Copy link
Contributor

Frames are just JSON-LD documents, but result in special processing. #21 is to register a new IANA media type for frames, but is this sufficient or should the document be recognizable without the HTTP response context?

@BigBlueHat
Copy link
Member

This seems like the same situation as when a JSON-LD file typically used as a context document also contains its own data. It's a valuable feature, but does lead to some confusion of intent.

Maybe we need a pros/cons list for the value/risk of using a single JSON-LD document as a context, a frame, and a data document?

@iherman
Copy link
Member

iherman commented Feb 9, 2019

This issue was discussed in a meeting.

  • RESOLVED: Use ld+json with a profile for media type of frames, import frame keywords to syntax with reference out. {: #resolution7 .resolution}
  • RESOLVED: the use of the media type for a frame is RECOMMENDED not a MUST {: #resolution8 .resolution}
View the transcript Define media profile for frames
Adam Soroka: #21
Adam Soroka: #28
Gregg Kellogg: the framing document that did not become a rec has a mimetype in it
… but that was a bad idea– we have profiles!
… we have a profile param that identifies a context
… we don’t require that the context be published with that profile
… should we require that of frames?
… you might want to do that because frames use different keywords
Rob Sanderson: if you push a frame document into a regular JSON-LD proc, it should beef
Gregg Kellogg: [describes framing in general]
Rob Sanderson: ref: https://www.w3.org/TR/json-ld11-framing/ ;)
Ivan Herman: gkellogg: should this be a profile or a separate mediatype?
Ivan Herman: a mediatype points to a specific document that describes that mediatype. those docs are different in this case, so the mediatypes should be different
Gregg Kellogg: using the parameter would allow us to negotiate for a context
David Newbury: thinking about the IIIF use case, being able to request docs as either a context or a frame
Gregg Kellogg: if you reference a context but it comes back as a frame, you could change you inx model to account for that
David Newbury: IIIF use a “context” as we use a “profile”, e.g. to include a version
… but that seems okay because we could do it either way
Gregg Kellogg: we describe the behavior of downloading a context and we would need to account for this there.
Ivan Herman: if you don’t register a new mediatype for frame, we will have to change our docs, so which one requires more work?
Rob Sanderson: if we say separate mediatype, we need tests for that
… frames out there in the wild would now fail
Rob Sanderson: if that is decisive, we should rec that a profile SHOULD be used
… to avoid that
Proposed resolution: Use ld+json with a profile for media type of frames, import frame keywords to syntax with reference out. (Rob Sanderson)
Rob Sanderson: +1
Ivan Herman: +1
Harold Solbrig: +1
Gregg Kellogg: +1
Simon Steyskal: +1
Adam Soroka: +1
David I. Lehn: +1
Jeff Mixter: +1
David Newbury: +1
Benjamin Young: +1
Resolution #7: Use ld+json with a profile for media type of frames, import frame keywords to syntax with reference out. {: #resolution7 .resolution}
Proposed resolution: the use of the media type for a frame is RECOMMENDED not a MUST (Rob Sanderson)
Rob Sanderson: +1
Ivan Herman: +1
Adam Soroka: +1
Gregg Kellogg: +1
Simon Steyskal: +1
David Newbury: +1
David I. Lehn: +1
Harold Solbrig: +1
Resolution #8: the use of the media type for a frame is RECOMMENDED not a MUST {: #resolution8 .resolution}
Jeff Mixter: +1

@iherman
Copy link
Member

iherman commented Feb 21, 2019

Hm. I am a bit bothered, but maybe for no good reasons.

The frame objects allow for, say, something like "@id":{}, right? But that means I can put this into any context whatsover: what does it mean?

In general, there is nothing that distinguish a frame object from any other constituents of a context, so is it absolutely clear what the API does if it encounters such statements as part of normal processing like expansion? If there is already (I presume ignoring) that should be made much more clearly in the document.

@gkellogg
Copy link
Member

The expansion algorithm will throw an error unless it is invoked with a framing option.

There are some other things that are legal for frames that don’t involve keywords that we should describe as well, but the would all be either in frame objects, or immediate values of frame objects.

gkellogg added a commit to w3c/json-ld-syntax that referenced this issue Feb 25, 2019
gkellogg added a commit to w3c/json-ld-syntax that referenced this issue Feb 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants