Re: Schema.org properties having a collection as value and hydra:Collection

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi elf,

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 :)

> 
>> 
>> 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?

Best regards,
Dietrich

- -- 
Dietrich Schulten
Escalon System-Entwicklung
Bubenhalde 10
74199 Untergruppenbach
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)

iEYEARECAAYFAlQ3kEgACgkQuKLNitGfiZPsugCffkv/wAc6Zqsc6BmJHEUauO6l
AUIAoJRG7G7Rq3kGco8MlHhX8wSx7AGO
=ogsv
-----END PGP SIGNATURE-----

Received on Friday, 10 October 2014 07:53:13 UTC