RE: terminology/necessity of hydra:required

On Wednesday, February 05, 2014 6:56 PM, Ruben Verborgh wrote:
> >> If there is a necessity, shouldn't we split them into:
> >> - hydra:requiredProperty with domain hydra:SupportedProperty?
> >> - hydra:requiredMapping with domain hydra:IriTemplateMapping?
> >
> > What would be the advantage of doing so?
> 
> Required properties and required mappings are different things;
> even though they both happen to start with "required".
> Basically, the same reason that all properties are not called
> "hydra:has"
> (even though this example is more detailed).
> 
> Having a property that doesn't have a strict range
> makes me always wonder how well-defined it is.

OK, now I think I got what you mean. The thing is that the range of
"required" is xsd:boolean. So either something is required or it isn't. That
something could either be a SupportedProperty or a IriTemplateMapping. You
seem to have got a little confused. In other words, it's not

  <> :required [ 
    a hydra:SupportedProperty ] .

but

  <> hydra:supportedProperty [ 
    a hydra:Supported Property ;
    hydra:required true ] .

Does this clarify it?


> Another way round would be:
> is there any meaningful superclass shared by SupportedProperty and
> IriTemplateMapping?

I don't think we need to introduce one just for the sake of it.


> > > but it does _have_ a property. How about something like:
> > >     _:something hydra:parameter_:parameter.
> > >     _: parameter hydra:controls _:property.
> >
> > Hmm... I'm not sure I like this. It certainly looks weird when you
> > look at it from a class' perspective (using singulars to better
> > illustrate the difference):
> >
> >  foaf:Person hydra:supportedProperty [
> >    hydra:property foaf:name .
> >    hydra:required true .
> >  ] .
> >
> > vs.
> >
> >  foaf:Person hydra:parameter [
> >    hydra:controls foaf:name .
> >    hydra:required true .
> >  ] .
> >
> >
> > Personally, I find the first much clearer.
> 
> Yes and no. in the first you have the confusion that a
> SupportedProperty is not a Property;
> the hydra:SupportedProperty is the blank node; the hydra:property is
> foaf:name.

There have been discussions (mainly with Sam) to relax this restriction so
that you can also directly point to a property instead of going through the
indirection of SupportedProperty. 


> hydra:Parameter and hydra:controls might not be the right names though.
> 
> > foaf:Person hydra:requiredParameter [
> >    hydra:property foaf:name .
> >    hydra:required true .
> >  ] .
> 
> So a parameter would be a property that receives a value.
> That seems clearer than a SupportedProperty which is not a property.

... and at the same time you would introduce hydra:optionalParameter? I'm
still not convinced of this terminology. "Class" and "parameter" do not
really match IMO.


--
Markus Lanthaler
@markuslanthaler

Received on Thursday, 6 February 2014 17:24:41 UTC