- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Wed, 27 Feb 2019 11:49:09 -0800
- To: Stian Soiland-Reyes <soiland-reyes@manchester.ac.uk>
- Cc: Angelo Veltens <angelo.veltens@online.de>, Linked JSON <public-linked-json@w3.org>
- Message-Id: <8E9779B8-00F8-4A99-9F8C-4625470AA42A@greggkellogg.net>
> On Feb 27, 2019, at 8:07 AM, Stian Soiland-Reyes <soiland-reyes@manchester.ac.uk> wrote: > > On second thought I think this is a bug in the JSON-LD Playground as > @requireAll should override that behavior as I described. It matches the specification text, but there is some room to modify or improve this. Currently the Frame Matching Algorithm [1] says the following: In general, a node object matches a frame if it meets the matches on @type, or @id, or if it matches given one of several different properties (or all properties, if the require all flag <https://www.w3.org/TR/json-ld11-framing/#dfn-require-all-flag> is present.). Because `@type` is present, we match using that only. If neither `@type` nor `@id` are present in the frame, matching is done on properties. `@requireAll` does, indeed, require that all stated properties be present to match, which happens if you remove `@type`. Otherwise, if `@requireAll` is false, it matches on _any_ property present in the frame. Gregg [1] https://www.w3.org/TR/json-ld11-framing/#frame-matching > On Wed, 27 Feb 2019 15:56:41 +0000, Stian Soiland-Reyes <soiland-reyes@manchester.ac.uk> wrote: >> The frames are matched on @type if that is provided, otherwise on >> pattern. >> >> If you delete "@type": "Person" it will probably do what you intend at >> the risk of including other objects that have familyName and givenName. >> >> On Wed, 27 Feb 2019 11:56:48 +0100, Angelo Veltens <angelo.veltens@online.de> wrote: >>> Hi all, I have a question regarding framing. >>> >>> I have an input graph containing 2 Persons, and a frame for a Person >>> with a specific givenName and familyName. (perma-link below) >>> >>> My expectation would be, that the result contains only the Person that >>> matches the example frame, but in fact, I get both Persons, just that >>> the Person, which does not match the frame has givenName and familyName >>> set to null. >>> >>> Am I misunderstanding what framing is supposed to do? >>> >>> Here is what I am doing as a perma-link to the playground: >>> >>> https://json-ld.org/playground/#startTab=tab-framed&json-ld=%7B%22%40context%22%3A%7B%22%40version%22%3A1.1%2C%22%40vocab%22%3A%22https%3A%2F%2Fschema.org%2F%22%7D%2C%22%40graph%22%3A%5B%7B%22%40id%22%3A%221%22%2C%22%40type%22%3A%22Person%22%2C%22name%22%3A%22John%20Doe%22%2C%22givenName%22%3A%22John%22%2C%22familyName%22%3A%22Doe%22%7D%2C%7B%22%40id%22%3A%222%22%2C%22%40type%22%3A%22Person%22%2C%22name%22%3A%22Jane%20Doe%22%2C%22givenName%22%3A%22Jane%22%7D%5D%7D&frame=%7B%22%40context%22%3A%7B%22%40version%22%3A1.1%2C%22%40vocab%22%3A%22https%3A%2F%2Fschema.org%2F%22%7D%2C%22%40type%22%3A%22Person%22%2C%22%40requireAll%22%3Atrue%2C%22givenName%22%3A%22John%22%2C%22familyName%22%3A%22Doe%22%7D&context=%7B%22%40context%22%3A%7B%22%40version%22%3A1.1%2C%22%40vocab%22%3A%22https%3A%2F%2Fschema.org%2F%22%7D%2C%22%40type%22%3A%22Person%22%2C%22%40requireAll%22%3Atrue%2C%22givenName%22%3A%22John%22%2C%22familyName%22%3A%22Doe%22%7D >>> >>> Thanks in advance! >>> >>> Kind regards, >>> Angelo >>> >> Attachment: pEpkey.asc (application/pgp-keys) >
Received on Wednesday, 27 February 2019 19:49:34 UTC