RE: Questions about new collection design

On 5 Feb 2015 at 10:22, Dietrich Schulten wrote:
> Hi Markus, hi Tomasz,
> 
> Am 03.02.2015 um 21:26 schrieb Markus Lanthaler:
>> On 3 Feb 2015 at 14:38, Dietrich Schulten wrote:
>>> Am 25.01.2015 um 23:31 schrieb Markus Lanthaler:
>>> Question: How to materialize the :knows relationship?
>> 
>> It would look somewhat like this (please note the additional knownBy
>> property):
>> 
>>   {
>>      "@context": { "knownBy": { "@reverse": "foaf:knows", "@type": "@id"
}
>> },
>>      "@id": "/alice/friends",
>>      "@type": "Collection",
>>      "member": [
>>        {"@id":"/bob", "foaf:name": "Robert Rumbaugh", "knownBy": "/alice"
},
>>        {"@id":"/zelda", "foaf:name": "Zelda Zackney", "knownBy": "/alice"
}
>>      ]
>>   }
>>
>> Would be interesting to see how well compression works here
>> 
> 
> OK, now that both you and Tomasz tell me i have to use @reverse I think
> I'll give in and accept that this is the way the collection design works
> :) When used with a hydra:Collection, I need to add reverse properties
> to make the :X :hasProperty :A assertion.

Reverse properties are just a syntactic shortcut. So effectively you do make
the assertions you want to make.


> Thanks to both of you, anyway.
> 
> I hate to spoil the party, but honestly, I do not like the design. I

Why not?


> tend not to use it in hydra-java for the actual collection, at least not
> by default. I feel that using this design in services without RDF
> backend will seriously prevent adoption.

Can you explain why? I know its adds some complexity but if you don't care
about RDF anyway, what's the problem?


> IMO it *must* be possible to say
> 
> "foaf:knows" : { "@id": "/alice/friends" }

By definition it is not. There's nothing we can do about that. You would
need to change FOAF to allow that. Other vocabularies don't suffer from this
problem - Schema.org being the most popular. Since it doesn't use rdfs:range
you can make such statements and don't need to use the indirection via
hydra:collection.


> We stray too far from plain json-ld and also from the simple way other
> hypermedia types point to collections.

Because other hypermedia types assume much smarter clients (humans) than we
do.


> I have several other reasons, but I'll stop here.

I would be very interested in hearing them. So please share them if you find
some time.


Cheers,
Markus


--
Markus Lanthaler
@markuslanthaler

Received on Thursday, 5 February 2015 21:13:53 UTC