- From: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>
- Date: Wed, 21 Sep 2016 15:28:34 +0300
- To: Miika Alonen <miika.alonen@csc.fi>
- Cc: "public-rdf-sha." <public-rdf-shapes@w3.org>
- Message-ID: <CA+u4+a3x=z_2QEmOzQbvH_ws5pgV80H9tbj+ztoYMbYepmEbpQ@mail.gmail.com>
Hi Miika, we will need to make sure we are talking about validating or non-validating behavior here. in the example you specify it is clear that what you suggest changes the way SHACL performs validation SHAPE GRAPH: > ex:InExampleShape > a sh:Shape ; > sh:targetNode ex:RainbowPony ; > sh:property [ > sh:predicate ex:htmlColor ; > sh:in (ex:Pink ex:Purple) ; > ] . > ex:Pink sh:value "#FDD7E4" . > ex:Pink sh:name "Pink" . > ... (END OF SHAPE GRAPH) > Faulty RDF example: > ex:MyColor ex:htmlColor '#00000' . > Correct RDF: > ex:MyColor ex:htmlColor '#FDD7E4' . meaning that with this suggestion sh:in would behave differently when there exists an sh:value/name in the shapes graph. Personally I would be against such a direction but not sure what others have to say. If this proposal was only about labeling checkboxes / drop-down menus it would be easier to get integrated imho However, I am not a UI guy and cannot evaluate this proposal in depth, e.g. is only this sufficient, with which shacl constructs could these annotations be combined with (besides sh:in), etc Best, Dimitris On Wed, Sep 21, 2016 at 10:03 AM, Miika Alonen <miika.alonen@csc.fi> wrote: > Hi Holger. Thanks for the response! > > > I think the broader topic that you are touching on is "literals as > > subjects". If RDF would allow literals in the subject position of a > > triple then people could write > "#FF0000" rdfs:label "red" . > > I dont think that this issue is related to the "literals as > subject"-topic. Desired RDF output here was: "ex:MyColor ex:htmlColor > '#FF0000'.". Documenting the use of literals should be seen as separate > issue. There are multiple ways of doing this with RDF - but none is > documented within the SHACL scope. > > > I believe the RDF 1.1 WG had discussed this topic at length and decided > > against literals as subjects. The alternative with the current RDF would > > be to "reify" these colors into objects, e.g. > ex:Red > a ex:Color ; > > rdfs:label "red" ; > ex:htmlColor "#FF0000" . > That would follow the > standard practices in RDF. > > I agree with this "things vs. strings"-argument - but changing the > existing data is not always an option. There can also be numerous > variations of how the "reified" literal is documented, for example label > can be expressed with rdfs:label, dcterms:title, dc:title, skos:prefLabel > or whatever. Usually this means that there are too many options to create > something generic - for example dynamic form. > > In RDF there are multiple ways for documenting literals, for example > reification or using "things instead of strings" or creating SKOS scheme > for the values. Thats just it ... too many options. > > > Even in your own solution below there is no real > connection between > the Shape and the ex:MyAnnotation node, so what is > SHACL-specific here > that couldn't be solved elsewhere? > Annotation could be linked to any shape or property with an id, for > example: "ex:MyAnnotation sh:shape ex:InExample ." or other way around > "ex:InExample sh:annotation ex:MyAnnotation ." > > ... and then queried with sparql, for example: > > SELECT ?value ?name WHERE { ex:InExample sh:property ?prop . ?prop > sh:in*/rdf:rest/rdf:first ?value . ex:MyAnnotation sh:shape ex:InExample . > ex:MyAnnotation sh:value ?value . ex:MyAnnotation sh:name ?name . } > > Reason why i am suggesting something like this is that it would only mean > changes to the "Non-Validating Constraint Characteristics"-chapter ... > meaning not too much work on tight schedule. > > Actually I would prefer solution supporting "reified" values documented in > the SHACL graph for example: > > SHAPE GRAPH: > > ex:InExampleShape > a sh:Shape ; > sh:targetNode ex:RainbowPony ; > sh:property [ > sh:predicate ex:htmlColor ; > sh:in (ex:Pink ex:Purple) ; > ] . > > ex:Pink sh:value "#FDD7E4" . > ex:Pink sh:name "Pink" . > > ... (END OF SHAPE GRAPH) > > Faulty RDF example: > > ex:MyColor ex:htmlColor '#00000' . > > Correct RDF: > > ex:MyColor ex:htmlColor '#FDD7E4' . > > I think that this would not contradict with RDF practices since it would > be Literals "reified" in the shape graph... RDF data would still be simple > literals. However, i understand if this is too much work at this point :) > > br, > Miika > > > > -------------------------------------------------------------------------- > > On 15/09/2016 17:48, Miika Alonen wrote: > > This is turning into a monolog but here's one suggestion for > > documenting the semantics of the enumerations (sh:in values) in the > > SHAPE graph: > > > > ex:InExampleShape > > a sh:Shape ; > > sh:targetNode ex:RainbowPony ; > > sh:property [ > > sh:predicate ex:htmlColor ; > > sh:in ('#FDD7E4' '#800080' ex:Whatever) ; > > ] . > > > > ex:MyAnnotation a sh:Annotation . > > ex:MyAnnotation sh:value "#FDD7E4" . > > ex:MyAnnotation sh:name "Pig Pink" . > > ex:MyAnnotation sh:description "Typical color of a pig" . > > > > ex:MyAnnotation2 a sh:Annotation . > > ex:MyAnnotation2 sh:value ex:Whatever . > > ex:MyAnnotation2 dcterms:description "For some reason this annotation > > includes additional metadata" . > > ... > > > > I really think that there should be a standard way to do this. If > > there is no way to document literal values in sh:in-list, those values > > will not be documented (or documented in various ways - which still is > > a serious pitfall). Including something like this to the specification > > should not be an issue because sh:Annotation (or whatever class name) > > would not be processed by the validators. Annotations would be used in > > other use cases - like general documentation or in form generation. > > > > - Miika > > -- Dimitris Kontokostas Department of Computer Science, University of Leipzig & DBpedia Association Projects: http://dbpedia.org, http://rdfunit.aksw.org, http://aligned-project.eu Homepage: http://aksw.org/DimitrisKontokostas Research Group: AKSW/KILT http://aksw.org/Groups/KILT
Received on Wednesday, 21 September 2016 12:29:31 UTC