- From: Jindřich Mynarz <mynarzjindrich@gmail.com>
- Date: Fri, 18 Dec 2015 12:40:10 +0100
- To: public-linked-json@w3.org
- Message-ID: <CAE=8Bu8DQ0p=r2m4zsePXQBg+xV+0Bk_xpT5D7qQjnr1jeJ8WA@mail.gmail.com>
I see. When I compact my data: { "@id": "http://mynarz.net/#jindrich", "http://xmlns.com/foaf/0.1/knows": [ "http://ruben.verborgh.org/#me", "http://richard.cyganiak.de/foaf.rdf#cygri" ] } With this @context: { "@context": { "foaf": "http://xmlns.com/foaf/0.1/", "http://xmlns.com/foaf/0.1/knows": { "@type": "@id" } } } I get this: { "@context": { "foaf": "http://xmlns.com/foaf/0.1/", "http://xmlns.com/foaf/0.1/knows": { "@type": "@id" } }, "@id": "http://mynarz.net/#jindrich", "foaf:knows": [ "http://ruben.verborgh.org/#me", "http://richard.cyganiak.de/foaf.rdf#cygri" ] } Objects of foaf:knows are not explicitly marked as IRIs (e.g., {"@id": " http://ruben.verborgh.org/#me"}), because this is inferred from the @context. Permalink: http://json-ld.org/playground/#startTab=tab-compacted&json-ld=%7B%22%40id%22%3A%22http%3A%2F%2Fmynarz.net%2F%23jindrich%22%2C%22http%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2Fknows%22%3A%5B%22http%3A%2F%2Fruben.verborgh.org%2F%23me%22%2C%22http%3A%2F%2Frichard.cyganiak.de%2Ffoaf.rdf%23cygri%22%5D%7D&context=%7B%22%40context%22%3A%7B%22foaf%22%3A%22http%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%22%2C%22http%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2Fknows%22%3A%7B%22%40type%22%3A%22%40id%22%7D%7D%7D Thanks! - Jindřich On Fri, Dec 18, 2015 at 12:35 PM, Dietrich Schulten <ds@escalon.de> wrote: > Your source json-ld is already expanded, so compaction only will be > sufficient. > Expansion means: removing the @context by applying its term definitions. > > You can experiment in the json-ld playground [1] > > There are a number of json ld api implementations, if your language is > among them, you probably wouldn't implement the api yourself. > > [1] http://json-ld.org/playground/ > Am 18.12.2015 10:15 schrieb Jindřich Mynarz <mynarzjindrich@gmail.com>: > > Hi all, > > Markus, thank you for the solution, and Dietrich, thank you for implying > an explanation. > > However, I wonder if it's not possible to coerce objects as IRIs ( > http://www.w3.org/TR/json-ld/#h3_type-coercion) *and* compact the > property IRI in a single operation of the JSON-LD API. > > Currently, I understand I need to do the following to coerce objects as > IRIs and compact the property IRI. > > Starting with this JSON-LD: > > { > "@id": "http://mynarz.net/#jindrich", > "http://xmlns.com/foaf/0.1/knows": [ > "http://ruben.verborgh.org/#me", > "http://richard.cyganiak.de/foaf.rdf#cygri" > ] > } > > I need to jam this @context in: > > { > "@context": { > "http://xmlns.com/foaf/0.1/knows": { > "@type": "@id" > } > } > } > > Then I can expand (http://www.w3.org/TR/json-ld-api/#expansion) the > JSON-LD and compact (http://www.w3.org/TR/json-ld-api/#compaction) the > result of expansion with the following @context if compact IRIs are desired: > > { > "@context": { > "foaf": "http://xmlns.com/foaf/0.1/" > } > } > > Is that a correct approach? > > - Jindřich > > -- > Jindřich Mynarz > http://mynarz.net/#jindrich > > On Fri, Dec 18, 2015 at 9:24 AM, Adrian Pohl <pohl@hbz-nrw.de> wrote: > >> Sorry for prematurely sending the former mail. Thinking about what I >> wanted to say, my intended response isn't that relevant to this thread. As >> I am already writing this, I will just mention it anyway. >> >> I just recently stumbled over the ability to define both @type and >> @container in the context, e.g. >> >> { >> "@context": { >> "foaf": "http://xmlns.com/foaf/0.1/", >> "foaf:knows": { >> "@type": "@id", >> "@container": "@set" >> } >> }, >> "@id": "http://mynarz.net/#jindrich", >> "http://xmlns.com/foaf/0.1/knows": [ >> "http://ruben.verborgh.org/#me", >> "http://richard.cyganiak.de/foaf.rdf#cygri" >> ] >> } >> >> Actually, this doesn't make a big difference in this case. It would make >> sense, though, if you had some foaf:knows triples with only one object and >> also wanted these to be delivered as an array for the sake of homogeneity... >> >> All the best >> Adrian >> >> >> >> Am 18.12.2015 um 09:13 schrieb Adrian Pohl: >> >>> Hello Jindřich, >>> >>> with this context: >>> >>> Am 17.12.2015 um 23:53 schrieb Markus Lanthaler: >>> >>>> Hi Jindřich, >>>> >>>> >>>> On Thursday, December 17, 2015 11:04 AM, Jindřich Mynarz wrote: >>>> >>>>> I found that some services return JSON-LD, in which IRIs are serialized >>>>> as literals. For example, consider the following example: >>>>> >>>>> { >>>>> "@id": "http://mynarz.net/#jindrich", >>>>> "http://xmlns.com/foaf/0.1/knows": [ >>>>> "http://ruben.verborgh.org/#me", >>>>> "http://richard.cyganiak.de/foaf.rdf#cygri" >>>>> ] >>>>> } >>>>> >>>>> The objects of foaf:knows are serialized as literals, even though they >>>>> are IRIs. >>>>> >>>>> Now, if I want to recover the objects of foaf:knows as IRIs, the >>>>> following context is of no use: >>>>> >>>>> { >>>>> "@context": { >>>>> "foaf": "http://xmlns.com/foaf/0.1/", >>>>> "foaf:knows": {"@type": "@id"} >>>>> } >>>>> } >>>>> >>>> >>>> What about this context: >>>> >>>> "@context": { >>>> "http://xmlns.com/foaf/0.1/knows": { "@type": "@id" } >>>> } >>>> >>>> Result: http://tinyurl.com/hadcx4d >>>> >>>> >>>> HTH, >>>> Markus >>>> >>>> >>>> -- >>>> Markus Lanthaler >>>> @markuslanthaler >>>> >>>> >>>> >>> >> >
Received on Friday, 18 December 2015 11:41:03 UTC