- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Fri, 13 Mar 2015 18:44:09 +0100
- To: <public-hydra@w3.org>
On 8 Mrz 2015 at 10:51, Dietrich Schulten wrote:
> Am 04.03.2015 um 22:54 schrieb Markus Lanthaler:
>> On 27 Feb 2015 at 07:26, Dietrich Schulten wrote:
>>> Seen that way I think I can make peace with our collection design :)
>>
>> Good :-)
>
> ;-)
>
> That doesn't mean I find the collection design particularly elegant. But
> as a vocabulary, we probably have no other means in hydra right now.
>
> What makes it not elegant is the fact that we now have two linking
> facilities, and clients must check both to find all related remote items
> of the current context.
Yes, that's quite unfortunate but unfortunately outside of our control.
> To make it easier for clients to find their way
> through our related collections, one could @index them by the property
> each collection manages.
That makes it easier for humans looking at the data (or for programmers which program against the JSON structure). For clients it shouldn't make any difference.
> It would be much easier to find the
> :acceptedOffer and :review link if the value of :collection were an
> indexed json object as shown below. If everybody agrees that @index
> would be very helpful here, we could make it a SHOULD, so clients can
> generally rely on the index.
You can easily achieve the same with some pre-processing on the client-side.. this is also something I would like to address in JSON-LD framing in the future. Unfortunately, I don't have the time to work on that at the moment :-(
> {
> "@context": {
> "@vocab": "http://schema.org",
> "hydra:collection": {
> "@container": "@index"
> }
> },
> "@id": "http://example.com/store",
> "hydra:collection":
> {
> "http://schema.org/acceptedOffer": {
> "@id": "http://example.com/store/acceptedOffers",
> "hydra:manages": {
> "hydra:property": "acceptedOffer",
> "hydra:subject": "http://example.com/store"
> }
> },
> "http://schema.org/review": {
> "@id": "http://example.com/store/reviews",
> "hydra:manages": {
> "hydra:property": "review",
> "hydra:subject": "http://example.com/store"
> }
> }
> }
> }
>
> We might even say that a hydra client may expect as index:
> - an absolute http URL,
> - a curie (whose prefix is in the @context) or
> - a non-URI or curie value that should be prefixed by the default vocab
> prefix defined by @vocab.
And this really shows how brittle it is to rely on such "hacks".
> I think that is as good as it gets with the current json-ld spec.
>
> But I still hope that we can have the elegant way some day, see subject
> "Enhance json-ld to allow remote collections" :)
This is not a JSON-LD issue but an RDF issue IMO. You can't address a set of arcs (links) in RDF. You have to introduce an intermediary node (collection) to work around the limitation.
--
Markus Lanthaler
@markuslanthaler
Received on Friday, 13 March 2015 17:45:03 UTC