- From: Dietrich Schulten <ds@escalon.de>
- Date: Fri, 13 Nov 2015 23:29:18 +0100
- To: Thomas Hoppe <thomas.hoppe@n-fuse.de>
- Cc: Hydra <public-hydra@w3.org>
- Message-ID: <376e151b-3a47-407f-8ae4-c3b7da2cc16a@escalon.de>
A while back we were toying with the idea of a mechanism for dynamic lists of allowed values coming from the backend: https://github.com/HydraCG/Specifications/issues/82 At the time we stopped the discussion to see what SHACL will bring. I still think it would be a cool feature. Certainly part of the discussion how we can describe expected values. Best regards, Dietrich Am 13.11.2015 22:24 schrieb Thomas Hoppe <thomas.hoppe@n-fuse.de>: On 11/11/2015 03:57 PM, Karol SzczepaĆski wrote: >>>>> - currently, all properties are literals; if having properties >>>>> with relations to other resources, question araises of how to tell >>>>> the client on where to get the values from; if no explicit pointer >>>>> is set client may search the API documentation for a given >>>>> supported class and try to find a suitable method, but something >>>>> explicitely defined may disambiguate it (i.e. custom >>>>> search-as-you-type operation accepting an user input that will be >>>>> use as a free text query). Something like OWLs allValuesFrom but >>>>> pointing to an operation might come in handy. >>>> I solve this by the context. If a value is a relation, I just do: >>>> creator:{ >>>> @type:"@id", >>>> @id:"dct:creator" >>>> } >>>> vs. >>>> creator:"dct:creator" >>>> if its just a literal. >>> I'm not sure how does it fit to the improvement suggested. Type >>> coertion says the client that a value should be expanded into an >>> IRI, but it's just an JSON-LD feature. >>> I would like to bind a custom operation to be used by client when >>> obtaining possible values for an object relation (in OWL). I was >>> thinking about using hydra:operations of a hydra:Resource (of which >>> type is hydra:SupportedProperty), but it wouldn't be contextual. >> It's a JSON-LD feature yes, i just tried to translate it into other >> serializations and it's indeed not possible. >> I don't quite understand this. You want to point the client to an >> operation it can call to obtain possible values as far as I understand? > Yes. Imagine a situation that you want to create an edit form for > entity of type Product and that type defines a property named > Category, which accepts as an value another resource of type Category. > In business applications it's quite a common approach to have a simple > text-box that shows a list of entities matching a given text on > search-as-you-type behavior. I could imagine that a property Category > could define an operation that client could use for that purpose. I > was thinking about using hydra:Resource's hydra:operation predicate to > have that connection between hydra:SupportedProperty instance and > hydra:Operation instance. Yes, that's definitely a common case, I currently have this in many situations and the intelligence to make this connection is baked into the client. The "best" idea I came up with so far is to leverage rdfs:domain and rdfs:range of a class definition (be it in a an API resource or even a vocabulary). But this is of course too narrow. Hmm, a property defining an operation does not sound straight forward to me and with the current means of hydra this would not be possible to express. However I can image a construct in hydra, maybe not in core but maybe in an accompanying vocab where we would have a predicate that allows to point to an operation that can provide possible values for a given property. What do you think? BG, Thomas
Received on Friday, 13 November 2015 22:30:05 UTC