- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Mon, 24 Mar 2014 10:40:45 -0700
- To: Markus Lanthaler <markus.lanthaler@gmx.net>
- Cc: "<public-hydra@w3.org>" <public-hydra@w3.org>
On Mar 24, 2014, at 8:14 AM, "Markus Lanthaler" <markus.lanthaler@gmx.net> wrote: > > Changing the subject line > >> On Friday, March 21, 2014 5:45 PM, Gregg Kellogg wrote: >>> On Mar 21, 2014, at 7:52 AM, Markus Lanthaler wrote: >>>> On Wednesday, March 19, 2014 10:44 PM, Gregg Kellogg wrote: >>>> </GreggKellogg> a foaf:Person; >>>> foaf:knows >>>> [a foaf:Person; is hydra:member of </GreggKellogg/colleagues>], >>>> </MarkusLanthaler> . >>>> >>>> <MarkusLanthaler> a foaf:Person . >>> >>> Hmm... I think this is a bit too clever and still creates a triple >>> that you don't want. >> >> The notation is clever, just because Turtle doesn't allow me to express >> this. The notation in JSON-LD is straightforward IMO. > > I think I disagree. You point to a blank node which is only there to be > referenced by the collection (in contrast to point to the collection) that > you are actually looking for. That's a bit too much magic IMHO. > > >> The concept of indirecting through another resource is basically a >> property path; it may be sophisticated, but it avoids asserting >> unnecessary triples (at least with IRI subjects). It does create >> additional BNode-subject triples, but in the context of Linked Data, >> these can be seen as necessary "semantic glue", and are easily >> filtered. > > Well, everything is "easily filtered".. it doesn't really matter whether > it's a blank node or not I'd say. > [...] > >>> While I don't really like the specific blank node solution you are >>> proposing, I find the principle quite interesting. We could avoid the >>> blank node, and thus a triple we don't want, entirely but just >>> including a member of collection directly: >>> >>> { >>> "@context": { >>> "foaf": "http://xmlns.com/foaf/0.1/", >>> "hydra": "http://www.w3.org/ns/hydra/core", >>> "memberOf": { "@reverse": "hydra:member" } >>> }, >>> "@id" "GreggKellogg", >>> "foaf:knows": { >>> "@id": "MarkusLanthaler, >>> "memberOf": "GreggKellogg/colleagues" >>> } >>> } >>> >>> WDYT? >> >> This would work fine, except for empty collections. > > Good point! > > >> I would settle on >> this as a compromise if the BNode-based relationship I suggested is not >> palatable. Personally, I think the use of a BNode is a better call to >> dereference the memberOf relation to get values, whereas filling in on >> value might not make it clear that it is just a single representative >> member of such a collection. > > I don't have a problem with the blank node per se but find the use of a > reverse property quite confusing in this instance. Maybe we should consider > creating a more explicit description of the collection instead. Something > along the lines of > > "@id" "/GreggKellogg/colleagues", > "managing": { > "subject": "/GreggKellogg/", > "property": "foaf:knows" > }, > "member": [ > { "@id": "/MarkusLanthaler" } > ] > > We could then even define a simple inference rule such as ?member => > ?subject ?property ?member That works for describing the collection itself, but not the reference to the collection. What did you have in mind here? Perhaps an operation? >> Considered as a SPARQL query, the use of a BNode indirection is >> something like the following: >> >> SELECT ?member ?p ?o >> WHERE { >> </GreggKellogg> a foaf:Person . >> ?container hydra:member ?member . >> ?member ?p ?o . >> } >> >> Which has a certain appeal to me. > > I'm not sure what you want to illustrate with this SPARQL query.. copy and > paste error? It's missing </GreggKellogg> foaf:knows ?member . What it's attempting to illustrate is I can get all the triples that where the subject has a foaf:knows relationship with the person. It also gets the collection which references them, although I didn't use it in the query results. The point is using variables here, which we can't do in turtle, so bnodes are the closest approximation. But, if I'm a lone voice in the wilderness, let's just move on. Gregg >> I'd like to hear other people's thoughts on the merits of a direct >> collection relationship vs. an indirect relationship, and the problem >> that asserting a Collection as the value of a property who's range is >> something else presents. > > Me too. I'll send a separate mail to public-lod and public-vocabs (of course > cc'ing this group) to get more opinions. > > > > -- > Markus Lanthaler > @markuslanthaler >
Received on Monday, 24 March 2014 17:41:17 UTC