- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Thu, 6 Feb 2014 18:24:07 +0100
- To: <public-hydra@w3.org>
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