- From: Dietrich Schulten <ds@escalon.de>
- Date: Fri, 18 Dec 2015 12:35:03 +0100
- To: Jindřich Mynarz <mynarzjindrich@gmail.com>
- Cc: public-linked-json@w3.org
- Message-ID: <082ceee2-b718-4c4a-8d86-80c582155695@escalon.de>
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:35:36 UTC