- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Wed, 14 May 2014 12:45:39 -0700
- To: Markus Lanthaler <markus.lanthaler@gmx.net>
- Cc: "<public-hydra@w3.org>" <public-hydra@w3.org>
On May 14, 2014, at 12:17 PM, "Markus Lanthaler" <markus.lanthaler@gmx.net> wrote: > >> On Wednesday, May 14, 2014 12:49 AM Gregg Kellogg wrote: >> On May 13, 2014, at 11:22 AM, Markus Lanthaler wrote: >>>>> </gregg/knowsCollection> :manages [ >>>>> :subject </gregg/> ; >>>>> :property foaf:knows >>>>> ] . >>>> In your example, the seeAlso would presumably directly reference the >>>> collection, but would need to extract some useful properties of that >>>> collection, perhaps like this: >>>> >>>> </gregg> a foaf:Person; >>>> rdfs:seeAlso </gregg/friends> . >>>> </gregg/friends> a hydra:Collection; >>>> :manages [ >>>> :property foaf:knows; >>>> :subject </gregg> >>>> ] . >>> >>> That's indeed what I had in mind. >> >> So as not to bring in semantics from VOID, and potentially further > complicate Hydra, I >> think your :manages proposal is probably the most effective. > > The only thing I'm not entirely happy about yet is the usage of rdfs:seeAlso > as I find it too vague. Granted, the definition of rdfs:seeAlso fits quite > well (see below) but the way it is used in practice doesn't really reflect > this IMO. > > "rdfs:seeAlso is an instance of rdf:Property that is used to indicate a > resource > that might provide additional information about the subject resource. > > A triple of the form S rdfs:seeAlso O states that the resource O may > provide > additional information about S. It may be possible to retrieve > representations > of O from the Web, but this is not required. When such representations > may > be retrieved, no constraints are placed on the format of those > representations. > > The rdfs:domain of rdfs:seeAlso is rdfs:Resource. The rdfs:range of > rdfs:seeAlso > is rdfs:Resource. > > So I'm a bit on the fence. What are your thoughts on this? What about > something like a hydra:moreData or hydra:moreInformation property which > would be a sub-property of rdfs:seeAlso. Shall we require its values to be > dereferenceable, i.e., set its range to hydra:Resource and thus make it a > hydra:Link? I think we can live with the vagueness, and keep the spirit of sameAs if we use an API constraint with a property-path to describe the semantics of a specific relationship. For instance, foaf:know is an indirect property described through sameAs/manages/property such that it's value is restricted to foaf:knows. There are certainly other ways to do this, but from an API perspective, it's not the semantics of sameAs that matter, but the path that goes through it to a specifically identified Collection. >> Now, how to describe that in >> Hydra, so that a client looking for foaf:knows relationships will follow > the sameAs links, or >> do you think that's baked in so that _all_ Collection indirections are > down through >> rdf:seeAlso? Is there still a notion that foaf:knows, in some sense, is a > SupportedProperty, >> or perhaps an IndirectSupportedProperty? Maybe the Constraint/propertyPath > description >> handles this. > > That's a very good point. I think it still is a SupportedProperty because in > the collection members you use that property. I think what we really need to > think about is whether we need to separate the enumeration of supported > properties of a class in general and the constraints that apply when a class > is used in "expects". The assumption I made in the beginning was that, > within a single Web API, a class is always used the same way when it appears > in "expects" (and that it only appears in one or very few operations' > "expects" property). I'm not so sure about that anymore. > > Regarding your second question: yes, I do think that the Constraints design > we talked about previously helps in this regard but just if it is for > sending data. I haven't really thought about the reading/finding data case > enough yet. Do we really need to express this upfront? Can we expect the > client to find it itself? Or does this introduce too much complexity on the > client side? I have to thinker about that a bit more. What are your > thoughts? As a client, I need to know where to find foaf:knows relationships for a given class, and that the class supports foaf:knows through some indirection. Given a collection managing foaf:knows, I need to interact with it to add or remove members that manifest such a relationship. Gregg > -- > Markus Lanthaler > @markuslanthaler > >
Received on Wednesday, 14 May 2014 19:46:10 UTC