- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Tue, 29 Jul 2014 21:35:42 -0400
- To: <public-linked-json@w3.org>
Hi Philippe,
On Monday, July 28, 2014 5:16 PM, Philippe Duchesne wrote:
> I am using jsonld-java in a project to expose content of a triple
> store to a webapp using a legacy JSON object structure. To achieve
> that, i use framing, and I need a context with @reverse properties.
Cool. Would be cool if you could provide a link to that app.
> I have implemented two features for which I would like to get feedback
> from this mailing list :
> 1. the support for @reverse properties in the framing algorithm
> implementation
Great. I had that on my to do list for quite some time now but haven't found the time to implement it yet. This is definitely something we'll need to support.
> 2. an extension of the compacting algorithm to allow the definition
> of multiple reverse statements for the same property, but different
> target types
What exactly do you mean by target?
(A) <---- reverse of property --- (B)
Is (A) the "target" or (B)? If it is (B) the value of the property in JSON, then there's only one possible type, namely a IRI.
> In particular, the second feature involves an extension of the spec
> that re-uses the @type property of reverse statements. I would need
> confirmation from people with a deeper understanding of the spec that
> this is a correct approach.
>
> These features are available in the fork
> https://github.com/pduchesne/jsonld-java/tree/FRAMING_REVERSE .
> Tests for both features are in
> https://github.com/pduchesne/jsonld-java/blob/FRAMING_REVERSE/core/src/test/java/com/github/jsonldjava/core/JsonLdFramingTest.java .
> Inputs, frames and outputs for both tests are in
> https://github.com/pduchesne/jsonld-java/tree/FRAMING_REVERSE/core/src/test/resources/custom (framing-reverse-*.jsonld) .
The second feature is covered in
https://github.com/pduchesne/jsonld-java/blob/FRAMING_REVERSE/core/src/test/resources/custom/framing-reverse-0002-frame.jsonld
but I don't see why you need to "change the compaction algorithm" or the context for that matter if you are specifying the type inline anyway:
articles": {"@reverse":"ex:containedIn", "@container": "@set", "@type": "ex:Article"},
and
"articles": {
"@type": "ex:Article"
}
are both kind of saying the same thing. So why do you include ex:Article in the context as well (the resulting document includes @type: ex:Article as well)? Anyway, using @type this way is incorrect. In the context, @type can just be used to set the type of literals, i.e., strings. You can't use it to type nodes (objects).
Cheers,
Markus
--
Markus Lanthaler
@markuslanthaler
Received on Wednesday, 30 July 2014 01:36:14 UTC