Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermediate Language (DC 2014)

528 views

Published on

Bosch, Eckert. Towards Description Set Profiles for RDF Using SPARQL as Intermediate Language (DC 2014)

Published in: Technology
  • Be the first to comment

2014.10 - Towards Description Set Profiles for RDF Using SPARQL as Intermediate Language (DC 2014)

  1. 1. build your own constraint language in 20 min DC 2014 Thomas Bosch, Kai Eckert thomas.bosch@gesis.org kai@informatik.uni-mannheim.de
  2. 2. DSP validation DSP specification http://dublincore.org/documents/200 8/03/31/dc-dsp/ SPIN mapping https://github.com/dcmi/DSP-SPIN-Mapping RDF Validator purl.org/net/rdfval-demo
  3. 3. OWL 2 validation OWL 2 specification http://www.w3.org/TR/owl2-syntax SPIN mapping https://github.com/boschthomas/OWL2 -SPIN-Mapping RDF Validator purl.org/net/rdfval-demo
  4. 4. R-28-OBJECT-PROPERTY- RANGE DSP, OWL 2, SPIN, SPARQL
  5. 5. constraint (DSP) :postalAddress a dsp:DescriptionTemplate ; dsp:minOccur 1 ; dsp:maxOccur "infinity” ; dsp:resourceClass :PostalAddress ; dsp:statementTemplate [ a dsp:NonLiteralStatementTemplate ; dsp:minOccur 1 ; dsp:maxOccur "infinity" ; dsp:property :addressCountry ; dsp:nonLiteralConstraint [ a dsp:NonLiteralConstraint ; dsp:valueClass :Country ] ] .
  6. 6. valid data :myAddress a :PostalAddress ; :addressCountry :netherlands . :netherlands a :Country .
  7. 7. invalid data :myAddress a :PostalAddress ; :addressCountry :amsterdam . :amsterdam a :Locality . :myAddress a :PostalAddress ; :addressCountry :amsterdam .
  8. 8. constraint (OWL2) :addressCountry a owl:ObjectProperty ; rdfs:range :Country .
  9. 9. validation validator purl.org/net/rdfval-demo executable examples R-28-OBJECT-PROPERTY-RANGE
  10. 10. SPIN template :ObjectPropertyRange a spin:ConstructTemplate ; rdfs:subClassOf spin:ConstructTemplates ; spin:labelTemplate "violation source" ; spin:body [ a sp:Construct ; sp:text """ CONSTRUCT {...} WHERE {...} """ ; ] .
  11. 11. WHERE clause WHERE { ?OPE rdfs:range ?CE . ?x ?OPE ?this . ?this a owl:Thing . FILTER NOT EXISTS { ?this a ?CE } . BIND ( CONCAT(...) AS ?violationMessage ) . }
  12. 12. CONSTRUCT query CONSTRUCT { _:cv a spin:ConstraintViolation ; spin:violationRoot ?this ; rdfs:label ?violationMessage ; spin:violationPath ?OPE . }
  13. 13. how to connect your data to SPIN ? owl:Thing spin:constraint [ a :ObjectPropertyRange ] .
  14. 14. limitations RDF representation (constraints, data)
  15. 15. future work validate further constraint languages (e.g ShEx) extend existing constraint languages (DSP)

×