- From: ☮ elf Pavlik ☮ <perpetual-tripper@wwelves.org>
- Date: Fri, 10 Oct 2014 10:31:48 +0200
- To: Dietrich Schulten <ds@escalon.de>, "public-hydra@w3.org" <public-hydra@w3.org>
- Message-ID: <54379974.3040308@wwelves.org>
On 10/10/2014 09:52 AM, Dietrich Schulten wrote:
> Hi elf,
Hi Dietrich :)
>
> comments inline.
>
> Am 09.10.2014 09:33, schrieb ☮ elf Pavlik ☮:
>> On 10/09/2014 07:17 AM, Dietrich Schulten wrote:
>>> Properties like schema:review allow list or single values, but
>>> normally that is represented by an item of the target type or an
>>> array thereof. If I make the value of review a link, it seems
>>> perfectly okay if the link dereferences a Review or a Review[].
>>> But can it point to a hydra:Collection?
>> have your read https://github.com/HydraCG/Specifications/issues/41
>> ?
>
> I did and from my understanding, the discussion seemed related to my
> question but there was no agreement about the solution yet. I am not
> well versed with turtle and rdf, too, so I must admit I struggle to
> follow the discussion there. At hydra-cg people with ReST and RDF
> background must learn to communicate somehow :)
I believe we can do it :)
Still IMO you may want to have decent understanding of RDF *especially*
if you want to participate in Hydra standardization work. I recommend
starting with http://www.w3.org/TR/2014/NOTE-rdf11-primer-20140624/
>
>
>>>
>>> Would it be feasible to let the link point to the hydra:member
>>> attribute of a hydra:Collection using a fragment identifier? I
>>> found the discussion below, but although it was resolved to
>>> support fragment identifiers, the jsonld spec does not mention
>>> that solution.
>>>
>>> https://github.com/json-ld/json-ld.org/issues/107
>>>
>>> How can I use a fragment identifier with json-ld? Would the
>>> following link on the review attribute be correct with a context
>>> having @vocab schema.org and a hydra: term? { "@type": "Product",
>>> "name": "Kenmore White 17\" Microwave", "review": { "@id":
>>> "http://api.example.com/reviews#hydra:member" ... }
>
>> can you please provide us with excerpt of a document you would
>> publish on http://api.example.com/reviews
>
>> to my understanding it would need to include an object with "@id":
>> "#hydra:member" somewhere
>
>
>
> I see I need to correct the above to this:
>
> {
> "@type": "Product",
> "@id": "http://api.example.com/products/1",
> "name": "Kenmore White 17\" Microwave",
> "review": {
> "@id": "http://api.example.com/products/1/reviews#hydra:member"
> }
> ...
> }
>
>
> What I mean to say here is: "in the resource /products/1/reviews there
> is a fragment identified by the id hydra:member. That is where the
> "review" value can be retrieved". The # is not part of the identifier,
> but part of the URL syntax.
> A target document could be a hydra:Collection having a search property
> to motivate using the hydra:Collection here:
>
> {
> "@context": {
> "@vocab": "http://schema.org",
> "hydra": "http://www.w3.org/ns/hydra/core#",
> "xsd": "http://www.w3.org/2001/XMLSchema#"
> },
> "@id": "http://api.example.com/products/1/reviews",
> "@type": "hydra:Collection",
> "hydra:member": [
> {
> "@id": "http://api.example.com/products/1/review/1",
> "@type": "Review",
> "reviewRating": 5,
> "reviewBody": "This is the best 17\" microwave you can buy!"
> },
> {
> "@id": "http://api.example.com/products/1/review/2",
> "@type": "Review",
> "reviewRating": 1,
> "reviewBody": "Meh."
>
> }
> ],
> "hydra:search": {
> "template": "http://api.example.com/products/1/review/{item}",
> "mapping": [
> {
> "variable": "item",
> "property": "xsd:integer", <-- is that OK?
> "required": true
> }
> ]
> }
> }
>
> - From the way I am used to URL fragment identifiers, I thought this
> might allow me to use a hydra:Collection and point to its member
> property, so as to satisfy the expectation of schema:review to have
> one or many schema:Review items as value.
>
> Would that be possible?
In RDF (not only schema.org vocab) when you have subject - predicate -
object by default you can make any number of of statements using
different objects for the same subject - predicate pair. So in JSON-LD
each property can accept either array or single object.
Now let's take your example to JSON-LD playground: http://bit.ly/1tgYc73
As you see according to specified context "hydra:member" extends to
"http://www.w3.org/ns/hydra/core#member" and to my understanding has
completely nothing to do with
"http://api.example.com/products/1/reviews#hydra:member"
Have you had chance to read http://www.w3.org/TR/webarch/ which explains
topics like URI Opacity?
I think that after finalizing hydra:IriTemplate design we will get back
on hydra:Collection + paging. Myself I also still work on finding my way
in RDF world but other people in this group have *very deep*
understanding of it (you can find Markus as one of RDF1.1 spec editors
and together with Gregg co-authored JSON-LD spec) + lots of hands on
experience (eg. https://github.com/gkellogg ,
https://github.com/RubenVerborgh etc.) While I also would like to use
hydra:Collection *ASAP*, we may need to stay patient and take little
more time to design it as good as we can!
>
> Best regards,
> Dietrich
>
HTH
Received on Friday, 10 October 2014 08:34:10 UTC