- From: Simon Steyskal <simon.steyskal@wu.ac.at>
- Date: Tue, 27 Sep 2016 08:02:20 +0200
- To: Miika Alonen <miika.alonen@csc.fi>
- Cc: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>, "public-rdf-sha." <public-rdf-shapes@w3.org>
Hi! >> 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; >> ] > I dont see how that would work. For each value of ex:identifier, ex:A checks whether there exists at least 1 ex:related triple also referring to it. So for: > 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" . "12.1234/example.2345" and "12.123/example.4321" don't have a respective ex:related counterpart, hence, produce a validation result. > There can also be multiple Datasets > and Documents are expected have references to non existing datasets could you elaborate on that? what validation results should be returned/do you expect given your example? simon --- DDipl.-Ing. Simon Steyskal Institute for Information Business, WU Vienna www: http://www.steyskal.info/ twitter: @simonsteys Am 2016-09-27 07:42, schrieb Miika Alonen: > 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] > > > > 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 Tuesday, 27 September 2016 06:03:11 UTC