# baseURI: http://publications.europa.eu/ontology/euvoc/euvocShapesVersioning # imports: http://datashapes.org/dash # imports: http://publications.europa.eu/ontology/shapeview @prefix : . @prefix adms: . @prefix atold-ont: . @prefix atold-res: . @prefix cc: . @prefix cdm: . @prefix cmr: . @prefix concept-status: . @prefix dash: . @prefix dc: . @prefix dcam: . @prefix dcat: . @prefix dcmitype: . @prefix dct: . @prefix dcterms: . @prefix dctype: . @prefix eli: . @prefix euvoc: . @prefix euvocShapes: . @prefix event: . @prefix extensionDesctiptions: . @prefix externalImports: . @prefix foaf: . @prefix geo: . @prefix geof: . @prefix geor: . @prefix geosparql: . @prefix geosparqlsf: . @prefix geowgs: . @prefix geowgs84: . @prefix gml: . @prefix gr: . @prefix isocat: . @prefix label-type: . @prefix legalDescriptions: . @prefix lemon: . @prefix lexinfo: . @prefix linguisticDescriptions: . @prefix lvont: . @prefix notation-type: . @prefix ogc: . @prefix ontology: . @prefix org: . @prefix owl: . @prefix owlTime: . @prefix person: . @prefix pim: . @prefix place: . @prefix prov: . @prefix rdaelements: . @prefix rdakit: . @prefix rdf: . @prefix rdfs: . @prefix regap: . @prefix schema: . @prefix sf: . @prefix sh: . @prefix shskos: . @prefix skos: . @prefix skosxl: . @prefix spatialDescriptions: . @prefix spin: . @prefix swa: . @prefix tableDescriptions: . @prefix temporalDescriptions: . @prefix terms: . @prefix tf: . @prefix time: . @prefix tosh: . @prefix tp: . @prefix treaty: . @prefix treaty-classification: . @prefix types: . @prefix tzont: . @prefix use-context: . @prefix v: . @prefix vann: . @prefix vcard: . @prefix voaf: . @prefix void: . @prefix vs: . @prefix wdrs: . @prefix wgs: . @prefix wot: . @prefix xhv: . @prefix xml: . @prefix xsd: . rdf:type owl:Ontology ; rdfs:comment """This is a set of shapes covering a small set of validation rules for \"Versionned Things\" which are instances using: - dct:replaces and dct:isReplacedBy - euvoc:startDate and euvoc:endDate - euvoc:status """ ; rdfs:comment """This table shows the composition of all three Union courts: Court of Justice, the General Court and the Civil Service Tribunal according to the case they are seized with (Articles 251, 254 and 257 of the Treaty on the Functioning of the European Union (TFEU)).

More detailed information can be found in the Statute of the Court of Justice of the European Union common to all three courts, as well as in the respective Rules of Procedure of these courts, available on the website of the Court of Justice of the European Union: These concepts are used for the production of reports of cases before the Court and to publish the case-law on the EUR-Lex site: http://eur-lex.europa.eu/collection/eu-law/eu-case-law.html

The concepts are put in alphabetical order. The columns featuring can be displayed in descending or ascending order.

""" ; rdfs:label "Simple Version Shapes for SKOS-AP-EU" ; owl:imports ; owl:imports ; owl:versionInfo "EuVoc 1.1" ; . :ObjectOfReplaces rdf:type sh:Shape ; rdfs:comment """If C2 replaces C1 then ->C2 has status deprecated or retired ->C1 has end date ->optionally (C1 is repladced by C2)""" ; rdfs:label "If replaces" ; owl:versionInfo "EuVoc 1.1" ; sh:property [ sh:predicate euvoc:endDate ; sh:maxCount 1 ; sh:minCount 1 ; sh:name "end date" ; ] ; sh:property [ sh:predicate euvoc:status ; sh:in ( ) ; sh:maxCount 1 ; sh:name "status" ; ] ; sh:property [ sh:predicate terms:isReplacedBy ; sh:minCount 1 ; sh:name "is replaced by" ; sh:severity sh:Warning ; ] ; sh:sparql [ sh:message "a thing cannot replace itself" ; sh:select """SELECT $this WHERE { ?some dct:replaces $this . filter (?some = ?this) }""" ; ] ; sh:targetObjectsOf terms:replaces ; . :ReifiedPropertyIntervalIntersection rdf:type sh:Shape ; rdfs:comment "Reified property interval intersection; Chech any node which if has second level start/end dates then retrieves their intersections" ; rdfs:label "Reified property interval intersection" ; owl:versionInfo "EuVoc 1.1" ; sh:sparql [ rdfs:comment "this constraint searches for overlapping intervals on reified propoerties" ; sh:message "node {?this} has a reified propoerty with a start/endDate interval [{?s1},{?s2}] overlapping with another interval starting on {?s2}" ; sh:select """select distinct ?this ?s1 ?e1 ?s2 { ?this ?p [ euvoc:startDate ?s1 ; euvoc:endDate ?e1 ; ]. ?this ?p [ euvoc:startDate ?s2 ; ] . filter (?e1 > ?s2 && ?s1 < ?s2) }""" ; sh:severity sh:Warning ; ] ; sh:target [ rdf:type sh:SPARQLTarget ; rdfs:comment "select all the non blank nodes that tahe a start/endDate propoerty used at the second position on a propoerty path" ; sh:select """select distinct ?this { ?this ?p [euvoc:startDate | euvoc:endDate [] ; ] filter (! isBLANK(?this)) }""" ; ] ; . :SubjectOfEndDate rdf:type sh:Shape ; rdfs:comment "If C has an endDate -> it's status must be deprecated or retired " ; rdfs:label "Subject of end date" ; owl:versionInfo "EuVoc 1.1" ; sh:property [ sh:predicate euvoc:status ; sh:in ( ) ; sh:maxCount 1 ; sh:minCount 1 ; sh:name "status" ; ] ; sh:targetSubjectsOf euvoc:endDate ; . :SubjectOfIsReplacedBy rdf:type sh:Shape ; rdfs:comment """If C1 is replaced by C2 then ->C2 has status deprecated or retired ->C1 has end date ->optionally (C2 replaces C1)""" ; rdfs:label "Subject of is replaced by" ; owl:versionInfo "EuVoc 1.1" ; sh:property [ sh:predicate euvoc:endDate ; sh:maxCount 1 ; sh:minCount 1 ; sh:name "end date" ; ] ; sh:property [ sh:predicate euvoc:status ; sh:in ( ) ; sh:maxCount 1 ; sh:minCount 1 ; sh:name "status" ; ] ; sh:sparql [ sh:message "a thing cannot be replaced by itself" ; sh:select """SELECT $this WHERE { $this dct:isReplacedBy ?other filter ($this = ?other) }""" ; ] ; sh:targetSubjectsOf terms:isReplacedBy ; . :SubjectOfStatus rdf:type sh:Shape ; rdfs:comment "If C has status Deprecated or Retired -> it has to have an end date " ; rdfs:label "Subject of status" ; owl:versionInfo "EuVoc 1.1" ; sh:property [ sh:predicate euvoc:endDate ; sh:maxCount 1 ; sh:minCount 1 ; sh:name "end date" ; ] ; sh:target [ rdf:type sh:SPARQLTarget ; sh:select """SELECT ?this WHERE { ?this euvoc:status ?st. FILTER (?st IN ( , ) ) }""" ; ] ; . skos:Concept sh:sparql [ sh:message "A thing cannot replace itself." ; sh:select """SELECT $this WHERE { $this terms:replaces ?other . FILTER ($this = ?other) }""" ; ] ; .