- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Tue, 28 Jan 2014 18:53:18 -0500
- To: public-hydra@w3.org
- Message-ID: <52E842EE.3090907@openlinksw.com>
On 1/28/14 12:59 PM, Gregg Kellogg wrote: > On Jan 28, 2014, at 9:31 AM, Ruben Verborgh<ruben.verborgh@ugent.be> wrote: > >> >Dear all, >> > >> >TL;DR: Since the range of the following properties is not a list, I think they should be singular: >> >- hydra:mappings >> >- hydra:members >> >- hydra:operations >> >- hydra:statusCodes >> >- hydra:supportedClasses >> >- hydra:supportedOperations >> >- hydra:supportedProperties >> >This mail argues why plural properties are not a good idea. >> > >> >In the RDF data model, a property creates a relation between a subject and an object. >> >For instance, :subject :hasP :object means that “subject has object as P". >> >We see examples of that in all popular vocabularies. Examples: >> >RDF – :me rdf:type foaf:Person, foaf:Agent. >> >FOAF – :me foaf:interest, :Web, :Hypermedia. >> >Dublin Core – ;document dc:hasPart :part1, :part2. >> > >> >As you can see, it doesn't matter whether one or multiple properties are expected: >> >multiple objects can be attached to the same subject; but all are different relations. >> >The property is singular because it describes a relation between two (singular) things. >> >The only time we would encounter a plural, is if the object is a list/collection. >> > >> >If we look at Hydra, this is not defined as one would expect: >> > { >> > "@id": "hydra:mappings", >> > "@type": "rdf:Property", >> > "comment": "The variable-to-property mappings of the IRI template.", >> > "domain": "hydra:IriTemplate", >> > "label": "mappings", >> > "range": "hydra:IriTemplateMapping", >> > "status": "testing" >> > }, >> > >> >This can lead to situations such as >> > :Template hydra:template "/issues{?q}" ; >> > hydra:mappings :q. >> > :q a hydra:IriTemplateMapping; >> > hydra:property hydra:freetextQuery; >> > hydra:required true; >> > hydra:variable "q" . >> > >> >So the “mappings” of /issues{?q} is actually a single mapping. >> >Or in other words: /issues{?q} has "mappings” :q, >> >but :q is only a single mapping, not a collection of mappings. >> >Let me trim down the example to show this contradiction better: >> > :Template hydra:mappings :q. >> > :q a hydra:IriTemplateMapping. >> >Either :q should be hydra:IriTemplateMappings, >> >or the property should be singular: "hydra:mapping". >> > >> >The case of “statusCodes” shows to how much confusion this leads: >> >we have both a “statusCode” and a ”statusCodes” property. >> >The situation would be that a resource can lead to “statusCodes" X, Y, Z, >> >each of which have a “statusCode” 200, 400, 500, respectively. >> >I think the correct way is that “statusCodes” becomes “status”, >> >and that the current statusCode remains the way it is. >> > >> >I would strongly suggest that all of the aforementioned properties are turned into singular; >> >that would align Hydra with the best practices of all other vocabularies. >> >I know that changing this can be a pain, but I think it's important we do this. > +1. IMO, best practice for RDF predicate names is to be singular; schema.org made many mistakes in this area, and now there are typically both plural and singular versions which mean the same thing. > > Gregg > +1 -- Regards, Kingsley Idehen Founder & CEO OpenLink Software Company Web: http://www.openlinksw.com Personal Weblog: http://www.openlinksw.com/blog/~kidehen Twitter Profile: https://twitter.com/kidehen Google+ Profile: https://plus.google.com/+KingsleyIdehen/about LinkedIn Profile: http://www.linkedin.com/in/kidehen
Attachments
- application/pkcs7-signature attachment: S/MIME Cryptographic Signature
Received on Tuesday, 28 January 2014 23:53:40 UTC