- From: Simon Steyskal <simon.steyskal@wu.ac.at>
- Date: Wed, 28 Sep 2016 09:29:59 +0200
- To: Miika Alonen <miika.alonen@csc.fi>
- Cc: "public-rdf-sha." <public-rdf-shapes@w3.org>
Hi! > ex:Document_3 > rdf:type ex:Document ; > # This should be invalid > ex:identifier "foo" ; ex:Document_3 isn't reported because there doesn't exist any "<subject> ex:related "foo" ." triple. Why should ex:Document_3 be invalid? simon --- DDipl.-Ing. Simon Steyskal Institute for Information Business, WU Vienna www: http://www.steyskal.info/ twitter: @simonsteys Am 2016-09-28 09:09, schrieb Miika Alonen: > Hi, > > I tried this but it doesnt seem to work. > > Full example: > > ex:A > rdf:type sh:Shape ; > sh:property [ > sh:class ex:Dataset ; > sh:minCount 1 ; > sh:path [ > sh:inversePath ex:identifier ; > ] ; > ] ; > sh:targetObjectsOf ex:related ; > . > > > ex:Dataset_1 > rdf:type ex:Dataset ; > ex:identifier "123" ; > . > ex:Foo > rdf:type ex:SomethingElse ; > ex:identifier "foo" ; > . > ex:Document_1 > rdf:type ex:Document ; > # This is the only triple that is reported to be invalid "Less than 1 > values". > ex:related "abc" ; > . > ex:Document_2 > rdf:type ex:Document ; > ex:related "123" ; > . > ex:Document_3 > rdf:type ex:Document ; > # This should be invalid > ex:identifier "foo" ; > . > > Tested this with TBC. > > - Miika > > ----- Original Message ----- > From: "Simon Steyskal" <simon.steyskal@wu.ac.at> > To: "Miika Alonen" <miika.alonen@csc.fi> > Cc: "public-rdf-sha." <public-rdf-shapes@w3.org> > Sent: Wednesday, 28 September, 2016 08:28:04 > Subject: Re: Validating instances based on other instances > > Hi! > > ex:A a sh:Shape ; > sh:targetObjectsOf ex:related ; > sh:property [ > sh:path [ sh:inversePath ex:identifier ] ; > sh:minCount 1; > sh:class ex:Dataset ; > ] . > > should do the trick. > > HTH, simon > > --- > DDipl.-Ing. Simon Steyskal > Institute for Information Business, WU Vienna > > www: http://www.steyskal.info/ twitter: @simonsteys > > Am 2016-09-27 14:19, schrieb Miika Alonen: >> It works - thanks. Not so trivial :) >> >> Is it also possible to include Class reference to this workaround? In >> case the identifier predicate is used by multiple types, for example: >> >> ex:Dataset1 a ex:Dataset ; ex:identifier "1" . >> >> ex:Dataset2 a ex:SomethingElse ; ex:identifier "2" . >> >> ex:Document1 ex:related "2" . (INVALID) >> >> - Miika. >> >> ------------------------- >> >> FROM: "Dimitris Kontokostas" <kontokostas@informatik.uni-leipzig.de> >> TO: "Miika Alonen" <miika.alonen@csc.fi> >> CC: "public-rdf-sha." <public-rdf-shapes@w3.org> >> SENT: Tuesday, 27 September, 2016 09:18:03 >> SUBJECT: Re: Validating instances based on other instances >> >> A minor adjustment / property swap >> ex:A a sh:Shape ; >> sh:targetObjectsOf EX:RELATED ; >> sh:property [ >> sh:path [ sh:inversePath EX:IDENTIFIER ] >> sh:minCount 1; >> ] >> >> this shape would report >> >> "12.123/example.1234" -> valid >> "20.234/undefined.2234" -> invalid >> "null" -> invalid >> >> On Tue, Sep 27, 2016 at 8:42 AM, Miika Alonen <miika.alonen@csc.fi> >> wrote: >> >>> I dont see how that would work. There can also be multiple Datasets >>> and Documents are expected have references to non existing datasets >>> eg: >>> >>> ex:Dataset1 ex:identifier "12.123/example.1234" . >>> ex:Dataset2 ex:identifier "12.1234/example.2345" . >>> ex:Dataset3 ex:identifier "12.123/example.4321" . >>> >>> ex:Document1 ex:related "12.123/example.1234" . >>> ex:Document1 ex:related "20.234/undefined.2234" . >>> ex:Document1 ex:related "null" . >>> >>> This again is example of "bad" data that could be cleaned - but >>> there are many use cases where resources are "linked" using literal >>> references. >>> >>> - Miika >>> >>> ------------------------- >>> >>> FROM: "Dimitris Kontokostas" <kontokostas@informatik.uni-leipzig.de> >>> TO: "Miika Alonen" <miika.alonen@csc.fi> >>> CC: "public-rdf-sha." <public-rdf-shapes@w3.org> >>> SENT: Monday, 26 September, 2016 22:20:25 >>> SUBJECT: Re: Validating instances based on other instances >>> >>> Hi Miika, >>> >>> a workaround could be something like >>> >>> ex:A a sh:Shape ; >>> sh:targetObjectsOf ex:identifier ; >>> sh:property [ >>> sh:path [ sh:inversePath ex:related ] >>> sh:minCount 1; >>> ] >>> >>> On Mon, Sep 26, 2016 at 6:34 PM, Miika Alonen <miika.alonen@csc.fi> >>> wrote: >>> >>>> Hi all, >>>> >>>> Question about how to validate instance literals (or irirefs) >>>> based on other instance values. >>>> >>>> I have a use case where i have literals that should be same as >>>> some other literals, for example: >>>> >>>> VALID DATA: >>>> >>>> ex:Dataset ex:identifier "doi:10.3972/example.0145.db" . >>>> >>>> ex:Document ex:related "doi:10.3972/example.0145.db" . >>>> >>>> INVALID DATA: >>>> >>>> ex:Dataset ex:identifier "doi:10.3972/example.0145.db" . >>>> >>>> ex:Document ex:related "doi:null" . >>>> >>>> Is there other ways to validate this than Sparql constraints. I >>>> know i could do something like: >>>> >>>> <http://example.com/ns# [1]> sh:prefix "ex" . >>>> >>>> ex:DocumentShape >>>> a sh:Shape ; >>>> sh:targetClass ex:DocumentType ; >>>> sh:sparql [ >>>> sh:message "Values must be dataset identifiers" ; >>>> sh:select """ >>>> SELECT $this ?value >>>> WHERE { >>>> $this ex:related ?value . >>>> ?identifier ex:identifier ?value . >>>> } >>>> """ ; >>>> ] . >>>> >>>> ETC ... but sparql seems bit overkill and it is hard to write. Is >>>> there or could there be other ways to produce these queries? For >>>> example property paths where first resource would be the starting >>>> point of the property path, eg: >>>> >>>> sh:DocumentShape >>>> a sh:Shape . >>>> sh:targetClass ex:DocumentType ; >>>> sh:property [ >>>> sh:predicate ex:related ; >>>> sh:equals ( ex:DatasetType ex:identifier ); >>>> ] . >>>> >>>> - Miika >>> >>> -- >>> >>> Dimitris Kontokostas >>> Department of Computer Science, University of Leipzig & DBpedia >>> Association >>> Projects: http://dbpedia.org [2], http://rdfunit.aksw.org [3], >>> http://aligned-project.eu [4] >>> >>> Homepage: http://aksw.org/DimitrisKontokostas [5] >>> >>> Research Group: AKSW/KILT http://aksw.org/Groups/KILT [6] >> >> -- >> >> Dimitris Kontokostas >> Department of Computer Science, University of Leipzig & DBpedia >> Association >> Projects: http://dbpedia.org [2], http://rdfunit.aksw.org [3], >> http://aligned-project.eu [4] >> >> Homepage: http://aksw.org/DimitrisKontokostas [5] >> >> Research Group: AKSW/KILT http://aksw.org/Groups/KILT [6] >> >> >> >> Links: >> ------ >> [1] http://example.com/ns# >> [2] http://dbpedia.org >> [3] http://rdfunit.aksw.org >> [4] http://aligned-project.eu >> [5] http://aksw.org/DimitrisKontokostas >> [6] http://aksw.org/Groups/KILT
Received on Wednesday, 28 September 2016 07:30:30 UTC