Filter handling on the metamodel

To continue my question on the call

assuming we have the definition of sh:hasValue which according to the spec
is

SELECT $this ($this AS ?subject) $predicate
WHERE {
FILTER NOT EXISTS { $this $predicate $hasValue . }
}



Using a variation of example 9 from the spec we have the following shape
definition

ex:FilteredExampleShape
a sh:Shape ;
sh:filterShape [
  sh:property [
   sh:predicate ex:requiredProperty ;
   sh:hasValue ex:requiredValue ;
  ] ] ;
sh:property [
  sh:predicate ex:someProperty ;
  sh:hasValue ex:someValue ;
] .


My comment was the the sparql query for sh:hasValue in the filterShape will
have to be inverted and the final sparql query should look like

SELECT $this ($this AS ?subject) $predicate
WHERE {
FILTER EXISTS { $this ex:requiredProperty ex:requiredValue . }  # filter
(note the missing NOT)
FILTER NOT EXISTS { $this ex:someProperty ex:someValue . }  # constraint
}

I didn't invest a lot of thought in filters yet but when I tried to
implement them, this is where I stumbled upon and postponed. Are there
other ways to achieve this? e.g. with SPARQL MINUS?

Best,
Dimitris
-- 
Dimitris Kontokostas
Department of Computer Science, University of Leipzig & DBpedia Association
Projects: http://dbpedia.org, http://rdfunit.aksw.org, http://
http://aligned-project.eu
Homepage:http://aksw.org/DimitrisKontokostas
Research Group: AKSW/KILT http://aksw.org/Groups/KILT

Received on Thursday, 25 February 2016 21:19:30 UTC