From d46d670a84b9556208ae8a30726b98cba670bc8d Mon Sep 17 00:00:00 2001 From: smessie Date: Fri, 22 Mar 2024 13:08:17 +0100 Subject: [PATCH] Add SHACL shape for DCAT-AP Feeds --- shape.ttl | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ spec.bs | 2 +- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 shape.ttl diff --git a/shape.ttl b/shape.ttl new file mode 100644 index 0000000..71f709d --- /dev/null +++ b/shape.ttl @@ -0,0 +1,54 @@ +@prefix dcatapfeeds: . +@prefix sh: . +@prefix owl: . +@prefix tree: . +@prefix as: . +@prefix : . +@prefix xsd: . +@prefix rdf: . +@prefix rdfs: . +@prefix vcard: . + +dcatapfeeds: owl:imports . + +dcatapfeeds:ActivityShape a sh:NodeShape ; + sh:xone ( dcatapfeeds:UpsertShape dcatapfeeds:DeleteShape ) . + +dcatapfeeds:UpsertShape a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties (rdf:type) ; + sh:targetClass as:Create, as:Update ; + sh:property [ + sh:path as:object ; + sh:node dcatapfeeds:EntityShape ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property dcatapfeeds:PublishedPropertyShape . + +dcatapfeeds:DeleteShape a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties (rdf:type) ; + sh:targetClass as:Delete ; + sh:property [ + sh:path as:object ; + sh:nodeKind sh:IRI ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property dcatapfeeds:PublishedPropertyShape . + +dcatapfeeds:PublishedPropertyShape a sh:PropertyShape ; + sh:path as:published ; + sh:datatype xsd:dateTime ; + sh:minCount 0 ; + sh:maxCount 1 . + + +dcatapfeeds:EntityShape a sh:NodeShape ; + sh:xone ( :Catalog_Shape :Dataset_Shape :Distribution_Shape :DataService_Shape :Agent_Shape :Kind_Shape :LicenseDocument_Shape ) . + +:Kind_Shape a sh:NodeShape ; + rdfs:label "Kind"@en ; + rdfs:comment “Placeholder shape for vcard:Kind, currently not present in DCAT-AP v3 shapes” ; + sh:targetClass vcard:Kind . diff --git a/spec.bs b/spec.bs index 899dee0..bd471e7 100644 --- a/spec.bs +++ b/spec.bs @@ -18,7 +18,7 @@ Abstract: # Publishing changes about DCAT-AP entities # {#feed} -A DCAT-AP Feed is a Linked Data Event Stream with ActivityStream entities Create, Update and Deletes in it about the DCAT-AP entities in a catalog. +A DCAT-AP Feed is a Linked Data Event Stream with ActivityStream entities Create, Update and Delete in it about the DCAT-AP entities in a catalog. DCAT-AP Feeds uses the [[!activitystreams-vocabulary]] to indicate the type of change. Three type of activities can be described: * a Create (i) or an Update (ii), both upserting a set of quads, packaged in a named graph, in the harvester, and