Re: Define/change the range of "supportedProperties" (ISSUE-37)

Hi Markus,

Slightly changing order to have the main arguments on top.

> Let me ask another question. Do you find foaf:primaryTopic
> messy? It's range is owl:Thing as well.

"The primaryTopic property relates a document to the main thing that the document is about."
Since a topic can literally be anything, owl:Thing is the best match.

It's not messy, because it is correct. There are no other ways to model this.
In contrast, we do have other options for properties in Hydra.

> Could you please explain in a bit more detail why it becomes "messy and
> inexact"? It don't see how you loose any precision. You just lose the
> ability to *infer* some things.

Try to draw a diagram. You will see what I mean with messy ;-)
Let me try to illustrate in words:

There is a relationship called hydra:supportedProperty
from hydra:Class to… well, it splits into hydra:SupportedProperty and rdf:Property.
Or perhaps there is a separate class to represent
the union of hydra:SupportedProperty and rdf:Property.
Then there is a relationship called hydra:property
from hydra:SupportedProperty to rdf:Property.

SupportedProperties are not Properties but they have a property property.
Properties can be a supportedProperty but they are not SupportedProperties
and hence have no property property (but can be a property of a SupportedProperty).

I'm really not trolling here, but trying to illustrated the messiness.

> We have to find the right trade-off... almost always, that's the most
> difficult thing.

+1

> That depends what you wanna do with this information. I assume you want to
> use it to create an HTTP request. In that case, you need to have some
> understanding of what foaf:givenName and http:/example.org/xyz mean.

> If you don't know it yet, yes, that's what you should try. Maybe it leads
> you to a description thereof that you can understand. If not, you can't do
> anything with it.

But it would be easier if Hydra just told me.

>>>> You seem to silently assume that people will either give
>>>> a URI that is an rdf:Property or a blank node that is a
>>>> SupportedProperty.
> 
> No, I'm not.

Apologies, I misinterpreted!

> You trade the ability to infer some knowledge for conciser, easier to read descriptions.

Hydra's primary purpose is machine-readability (correct me if I'm wrong);
machines can do much more by having the modeling more strict.
Shouldn't be less clear.

This (and other discussions) bring me to another question:
should we have an ordered list of quality attributes / goals?
Like: if a decision has to be made, X and Y weigh more than A and B?
If we agree on such a list, decisions could be taken more confidently.

> 
> 
>>> Why not resolve the information what it is from the foaf vocab [1].
>>> From that I can learn that it is an rdf:Property _and_ that it is a
>>> http://www.w3.org/2002/07/owl#DatatypeProperty
>>> which clearly indicates that I can't dereference the value?
>>> 
>>> If the client is intended to do so, you could (at least in the case of
>>> a JSON-LD format) define the property as "@type": "@id";
>>> 
>>> Otherwise I would expect clients to understand whether a property must
>>> be be further dereferenced or not from the bare semantics of it.
>>> 
>> Exactly my point; there's no other option except doing that.
>> That's possible, I know. That's not too hard, I know-at at least in
>> most cases.
>> But this assumes that:
>> a) the client can dereference the thing (is URL, server up, reachable,
>> still exists, etc.)
>> b) it can parse the representation (HTML? RDF/XML? Turtle? Or JSON-LD?)
>> c) it will say rdf:Property or a derived class (such as
>> owl:DataProperty)
>> d) if it is "derived class", that I can dereference it until I find it
>> is or isn't an rdf:Property (restart from a)
> 
> All correct, but what can you do in the end with the property or
> supportedProperty if you don't know what it is really about? Can you use it
> without understanding it? I doubt that... I should probably say that
> initially I had exactly the same reservations as you have but I came to the
> conclusion that in practice all of this doesn't really matter as you have to
> do those things anyway.

If the machine knows what it is, it cay say:
- User, I have here a property named X and I don't know what it is, but you need to specify it.
If it doesn't, it can't do anything.

> Right, to better reflect this. I've changed the subject of this thread and
> created ISSUE-37:
> 
>  https://github.com/HydraCG/Specifications/issues/37

Thanks!

Cheers,

Ruben

Received on Tuesday, 11 February 2014 12:12:49 UTC