Closed
Description
I'm trying to create an "identity frame" for some data that uses "@container": "@graph"
. The data looks like this:
{
"@context": {
"@version": 1.1,
"id": "@id",
"claim": {"@id": "ex:claim", "@container": "@graph"},
"name": "ex:name",
"proof": {"@id": "ex:proof", "@type": "@id", "@container": "@graph"},
"signer": {"@id": "ex:signer", "@type": "@id"},
"subject": {"@id": "ex:subject", "@type": "@id"},
"knows": {"@id": "ex:knows", "@type": "@id"}
},
"id": "ex:cred",
"issuer": {
"id": "ex:issuer",
"name": "Foo"
},
"subject": {
"id": "ex:subject",
"name": "the subject",
"knows": {
"id": "ex:issuer",
"name": "Someone else"
}
},
"proof": {
"@type": "ex:Proof",
"name": "the proof",
"signer": {
"id": "ex:subject",
"name": "something different"
}
}
}
And the frame like this:
{
"@context": {
"@version": 1.1,
"id": "@id",
"claim": {"@id": "ex:claim"},
"name": "ex:name",
"proof": {"@id": "ex:proof", "@type": "@id"},
"signer": {"@id": "ex:signer", "@type": "@id"},
"subject": {"@id": "ex:subject", "@type": "@id"},
"knows": {"@id": "ex:knows", "@type": "@id"}
},
"subject": {
"@embed": "@always"
},
"proof": {}
}
A link to the playground is here: http://tinyurl.com/yaewmkk5
The goal is for the output to match the input, but it does not. Does anyone know what tweaks are necessary to accomplish this? Do we have proper support for framing blank node named graphs? From looking at the jsonld.js implementation, it seemed like only non-blank node named graphs were supported... and the spec doesn't seem to give any examples with blank nodes. It seems we have both a spec and an implementation gap here. If not, could someone share a working example?