From a1a54d870f89a94827e68624999460ef3d15426f Mon Sep 17 00:00:00 2001 From: S4mmyb Date: Thu, 15 Jun 2023 13:41:40 -0600 Subject: [PATCH 1/8] added C04 credit class metadata, ops, amended shacl graphs --- .../C04-ruuts-credit-class.jsonld | 156 +++++++++++++ shacl/common.ttl | 2 +- .../credit-classes/C04-ruuts-credit-class.ttl | 208 ++++++++++++++++++ 3 files changed, 365 insertions(+), 1 deletion(-) create mode 100644 jsonld/credit-classes/C04-ruuts-credit-class.jsonld create mode 100644 shacl/credit-classes/C04-ruuts-credit-class.ttl diff --git a/jsonld/credit-classes/C04-ruuts-credit-class.jsonld b/jsonld/credit-classes/C04-ruuts-credit-class.jsonld new file mode 100644 index 0000000..79a2360 --- /dev/null +++ b/jsonld/credit-classes/C04-ruuts-credit-class.jsonld @@ -0,0 +1,156 @@ +{ + "@context": { + "schema": "http://schema.org/", + "regen": "https://schema.regen.network#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "schema:itemListElement": { + "@container": "@list" + }, + "schema:url": { + "@type": "schema:URL" + }, + "regen:sectoralScope": { + "@container": "@list" + }, + "regen:offsetGenerationMethod": { + "@container": "@list" + }, + "regen:projectActivities": { + "@container": "@list" + }, + "regen:ecosystemType": { + "@container": "@list" + } + }, + "@type": "regen:C04-CreditClass", + "schema:name": "", + "schema:description": "", + "schema:url": { + "@type": "schema:URL", + "@value": "" + }, + "regen:sourceRegistry": { + "schema:name": "", + "schema:url": { + "@type": "schema:URL", + "@value": "" + } + }, + "regen:sectoralScope": [ + { + "@type": "xsd:string", + "@value": "" + } + ], + "regen:offsetGenerationMethod": [ + { + "@type": "xsd:string", + "@value": "" + } + ], + "regen:measuredGHGs": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:coBenefits": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:geographicApplicability": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:eligibleActivities": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:landOwnershipType": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:ecosystemType": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:creditingTerm": { + "@type": "schema:activityDuration", + "@value": "" + }, + "regen:lookbackPeriod": { + "@type": "schema:activityDuration", + "@value": "" + }, + "regen:aggregatedProjects": null, + "regen:monitoringFrequency": "", + "regen:verificationMethod": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:verificationFrequency": "", + "regen:approvedMethodologies": { + "@type": "schema:ItemList", + "schema:itemListElement": [ + { + "schema:name": "", + "schema:url": "", + "schema:identifier": "", + "schema:version": "" + } + ], + "schema:url": "" + }, + "regen:creditClassDocument": { + "schema:name": "", + "schema:url": { + "@type": "schema:URL", + "@value": "" + } + }, + "regen:bufferPoolTypes": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:bufferPoolAccounts": { + "@type": "schema:ItemList", + "schema:itemListElement": [ + { + "schema:name": "", + "regen:walletAddress": "", + "regen:poolAllocation": "", + "schema:url": "" + } + ] + }, + "regen:additionalityApproach": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:leakageApproach": [ + { + "@type:": "xsd:string", + "@value": "" + } + ], + "regen:permanencePeriod": { + "@type": "schema:activityDuration", + "@value": "" + } +} diff --git a/shacl/common.ttl b/shacl/common.ttl index 93e5199..61cf5c3 100644 --- a/shacl/common.ttl +++ b/shacl/common.ttl @@ -81,4 +81,4 @@ regen:RequiredUrlPropertyShape sh:path schema:url ; sh:maxCount 1 ; sh:minLength 1 ; sh:datatype schema:URL ; -. \ No newline at end of file +. diff --git a/shacl/credit-classes/C04-ruuts-credit-class.ttl b/shacl/credit-classes/C04-ruuts-credit-class.ttl new file mode 100644 index 0000000..91ab0a6 --- /dev/null +++ b/shacl/credit-classes/C04-ruuts-credit-class.ttl @@ -0,0 +1,208 @@ +@prefix schema: . +@prefix sh: . +@prefix xsd: . +@prefix regen: . +@prefix dash: . +@prefix rdf: . + +regen:C04-CreditClassShape a sh:NodeShape ; + sh:targetClass regen:C04-CreditClass ; + sh:property [ + sh:path schema:description ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:datatype xsd:string ; + ] ; + sh:property [ + sh:path schema:name ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:datatype xsd:string ; + ] ; + sh:property [ + sh:path schema:url ; + sh:datatype schema:URL ; + ] ; + sh:property [ + sh:path regen:sourceRegistry ; + sh:node regen:NameUrlShape ; + ] ; + sh:property [ + sh:path regen:sectoralScope ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path regen:offsetGenerationMethod ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path regen:measuredGHGs ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path regen:coBenefits ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path regen:geographicApplicability ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path regen:eligibleActivities ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path regen:landOwnershipType ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path regen:ecosystemType ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path schema:creditingTerm ; + sh:node schema:activityDuration ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + ] ; + sh:property [ + sh:path schema:lookbackPeriod ; + sh:node schema:activityDuration ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + ] ; + sh:property [ + sh:path schema:aggregatedProjects ; + sh:node schema:Boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + ] ; + sh:property [ + sh:path schema:monitoringFrequency ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + ] ; + sh:property [ + sh:path regen:verificationMethod ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path schema:verificationFrequency ; + sh:node schema:activityDuration ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + ] ; + sh:property regen:ApprovedMethodologiesPropertyShape ; + sh:property regen:bufferPoolAccountsShape ; + sh:property [ + sh:path regen:verificationMethod ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path regen:additionalityApproach ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path regen:leakageApproach ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + sh:property [ + sh:path schema:permanencePeriod ; + sh:node schema:activityDuration ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + ] ; +. From afee0efafd98a954b849fb64d5b969bd48b92887 Mon Sep 17 00:00:00 2001 From: S4mmyb Date: Thu, 15 Jun 2023 13:45:32 -0600 Subject: [PATCH 2/8] ops file for credit class --- .../C04-ruuts-credit-class.jsonld | 199 ++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld diff --git a/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld b/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld new file mode 100644 index 0000000..ac819d1 --- /dev/null +++ b/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld @@ -0,0 +1,199 @@ +{ + "@context": { + "schema": "http://schema.org/", + "regen": "https://schema.regen.network#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "schema:itemListElement": { + "@container": "@list" + }, + "schema:url": { + "@type": "schema:URL" + }, + "regen:sectoralScope": { + "@container": "@list" + }, + "regen:offsetGenerationMethod": { + "@container": "@list" + }, + "regen:projectActivities": { + "@container": "@list" + }, + "regen:ecosystemType": { + "@container": "@list" + } + }, + "@type": "regen:C04-CreditClass", + "schema:name": "Ruuts Credit Class for Soil Carbon Sequestration through Regenerative Grazing", + "schema:description": "The Credit Class and its accompanying methodology provide farmers with a measuring and monitoring process for soil organic carbon sequestration in regenerative grazing systems, enabling them to generate carbon credits that also include robust ecological co-benefits such as water infiltration and biodiversity.", + "schema:url": { + "@type": "schema:URL", + "@value": "" + }, + "regen:sourceRegistry": { + "schema:name": "Regen Registry", + "schema:url": { + "@type": "schema:URL", + "@value": "app.regen.network" + } + }, + "regen:sectoralScope": [ + { + "@type": "xsd:string", + "@value": "Livestock & Manure Management" + } + ], + "regen:offsetGenerationMethod": [ + { + "@type": "xsd:string", + "@value": "Carbon Removal" + } + ], + "regen:measuredGHGs": [ + { + "@type:": "xsd:string", + "@value": "Carbon Dioxide (CO2)" + }, + { + "@type:": "xsd:string", + "@value": "Nitrous Oxide (NO2)" + }, + { + "@type:": "xsd:string", + "@value": "Methane (CH4)" + } + ], + "regen:coBenefits": [ + { + "@type:": "xsd:string", + "@value": "Water Infultration" + }, + { + "@type:": "xsd:string", + "@value": "Biodiversity" + } + ], + "regen:geographicApplicability": [ + { + "@type:": "xsd:string", + "@value": "Global" + } + ], + "regen:eligibleActivities": [ + { + "@type:": "xsd:string", + "@value": "Improved Grazing" + }, + { + "@type:": "xsd:string", + "@value": "Rotational Grazing" + } + ], + "regen:landOwnershipType": [ + { + "@type:": "xsd:string", + "@value": "Public" + }, + { + "@type:": "xsd:string", + "@value": "Private" + } + ], + "regen:ecosystemType": [ + { + "@type:": "xsd:string", + "@value": "Pasture" + }, + { + "@type:": "xsd:string", + "@value": "Native Grasslands" + }, + { + "@type:": "xsd:string", + "@value": "Savannas" + }, + { + "@type:": "xsd:string", + "@value": "Integrated Crop-Livestock (ICL)" + } + ], + "regen:creditingTerm": { + "@type": "schema:activityDuration", + "@value": "P10Y" + }, + "regen:lookbackPeriod": { + "@type": "schema:activityDuration", + "@value": "P-14Y" + }, + "regen:aggregatedProjects": null, + "regen:monitoringFrequency": "", + "regen:verificationMethod": [ + { + "@type:": "xsd:string", + "@value": "Ruuts Internal Quality Assurance" + }, + { + "@type:": "xsd:string", + "@value": "Third-Party ISO 14064-3 Verification" + } + ], + "regen:verificationFrequency": { + "@type": "schema:activityDuration", + "@value": "P5Y" + }, + "regen:approvedMethodologies": { + "@type": "schema:ItemList", + "schema:itemListElement": [ + { + "schema:name": "Ruuts Protocol Soil Carbon Sequestration Methodology v1", + "schema:url": "", + "schema:identifier": "", + "schema:version": "V1.0" + } + ], + "schema:url": "" + }, + "regen:creditClassDocument": { + "schema:name": "Ruuts Credit Class for Soil Carbon Sequestration through Rotational Grazing", + "schema:url": { + "@type": "schema:URL", + "@value": "" + } + }, + "regen:bufferPoolAccounts": { + "@type": "schema:ItemList", + "schema:itemListElement": [ + { + "schema:name": "Credit Class (Pooled) Buffer Pool", + "regen:walletAddress": "", + "regen:poolAllocation": "5%", + "schema:url": "" + }, + { + "schema:name": "Monte Dinero Project-Specific Buffer", + "regen:walletAddress": "", + "regen:poolAllocation": "15%", + "schema:url": "" + } + ] + }, + "regen:additionalityApproach": [ + { + "@type:": "xsd:string", + "@value": "Common Practice Analysis" + }, + { + "@type:": "xsd:string", + "@value": "Regulatory Additionality" + } + ], + "regen:leakageApproach": [ + { + "@type:": "xsd:string", + "@value": "Activity Shifting Leakage" + } + ], + "regen:permanencePeriod": { + "@type": "schema:activityDuration", + "@value": "P20Y" + } +} From 06a7b04ed42c43dac7d395b7650b0d272be65808 Mon Sep 17 00:00:00 2001 From: S4mmyb Date: Thu, 15 Jun 2023 22:19:35 -0600 Subject: [PATCH 3/8] updated credit class jsonld to conform to shacl graph --- Dockerfile | 2 +- .../C04-ruuts-credit-class.jsonld | 53 +++--- .../C04-ruuts-credit-class.jsonld | 163 ++++++------------ shacl/common.ttl | 1 + .../credit-classes/C04-ruuts-credit-class.ttl | 33 ++-- 5 files changed, 96 insertions(+), 156 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3a013c2..0b20175 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,4 +7,4 @@ RUN ./verify_jena.sh ENV PATH="${PATH}:/app/apache-jena/bin/" ENV PYTHONUNBUFFERED=1 COPY . . -ENTRYPOINT ["/app/shacl_validate.py"] +ENTRYPOINT ["/app/shacl_validate.py"] \ No newline at end of file diff --git a/jsonld/credit-classes/C04-ruuts-credit-class.jsonld b/jsonld/credit-classes/C04-ruuts-credit-class.jsonld index 79a2360..9fa209b 100644 --- a/jsonld/credit-classes/C04-ruuts-credit-class.jsonld +++ b/jsonld/credit-classes/C04-ruuts-credit-class.jsonld @@ -15,11 +15,29 @@ "regen:offsetGenerationMethod": { "@container": "@list" }, - "regen:projectActivities": { + "regen:measuredGHGs": { + "@container": "@list" + }, + "regen:coBenefits": { + "@container": "@list" + }, + "regen:eligibleActivities": { + "@container": "@list" + }, + "regen:landOwnershipType": { "@container": "@list" }, "regen:ecosystemType": { "@container": "@list" + }, + "regen:verificationMethod": { + "@container": "@list" + }, + "regen:additionalityApproach": { + "@container": "@list" + }, + "regen:leakageApproach": { + "@container": "@list" } }, "@type": "regen:C04-CreditClass", @@ -60,12 +78,7 @@ "@value": "" } ], - "regen:geographicApplicability": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], + "regen:geographicApplicability": "", "regen:eligibleActivities": [ { "@type:": "xsd:string", @@ -93,14 +106,20 @@ "@value": "" }, "regen:aggregatedProjects": null, - "regen:monitoringFrequency": "", + "regen:monitoringFrequency": { + "@type": "schema:frequency", + "@value": "" + }, "regen:verificationMethod": [ { "@type:": "xsd:string", "@value": "" } ], - "regen:verificationFrequency": "", + "regen:verificationFrequency": { + "@type": "schema:frequency", + "@value": "" + }, "regen:approvedMethodologies": { "@type": "schema:ItemList", "schema:itemListElement": [ @@ -113,27 +132,13 @@ ], "schema:url": "" }, - "regen:creditClassDocument": { - "schema:name": "", - "schema:url": { - "@type": "schema:URL", - "@value": "" - } - }, - "regen:bufferPoolTypes": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], "regen:bufferPoolAccounts": { "@type": "schema:ItemList", "schema:itemListElement": [ { "schema:name": "", "regen:walletAddress": "", - "regen:poolAllocation": "", - "schema:url": "" + "regen:poolAllocation": "" } ] }, diff --git a/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld b/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld index ac819d1..018a0f7 100644 --- a/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld +++ b/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld @@ -15,11 +15,29 @@ "regen:offsetGenerationMethod": { "@container": "@list" }, - "regen:projectActivities": { + "regen:measuredGHGs": { + "@container": "@list" + }, + "regen:coBenefits": { + "@container": "@list" + }, + "regen:eligibleActivities": { + "@container": "@list" + }, + "regen:landOwnershipType": { "@container": "@list" }, "regen:ecosystemType": { "@container": "@list" + }, + "regen:verificationMethod": { + "@container": "@list" + }, + "regen:additionalityApproach": { + "@container": "@list" + }, + "regen:leakageApproach": { + "@container": "@list" } }, "@type": "regen:C04-CreditClass", @@ -27,94 +45,43 @@ "schema:description": "The Credit Class and its accompanying methodology provide farmers with a measuring and monitoring process for soil organic carbon sequestration in regenerative grazing systems, enabling them to generate carbon credits that also include robust ecological co-benefits such as water infiltration and biodiversity.", "schema:url": { "@type": "schema:URL", - "@value": "" + "@value": "https://library.regen.network/v/regen-registry-credit-classes/regen-registry-credit-classes-1/ruuts-credit-class-for-soil-carbon-sequestration-through-regenerative-grazing" }, "regen:sourceRegistry": { "schema:name": "Regen Registry", "schema:url": { "@type": "schema:URL", - "@value": "app.regen.network" + "@value": "https://library.regen.network/v/regen-registry-guide/" } }, "regen:sectoralScope": [ - { - "@type": "xsd:string", - "@value": "Livestock & Manure Management" - } + "Livestock & Manure Management" ], "regen:offsetGenerationMethod": [ - { - "@type": "xsd:string", - "@value": "Carbon Removal" - } + "Carbon Removal" ], "regen:measuredGHGs": [ - { - "@type:": "xsd:string", - "@value": "Carbon Dioxide (CO2)" - }, - { - "@type:": "xsd:string", - "@value": "Nitrous Oxide (NO2)" - }, - { - "@type:": "xsd:string", - "@value": "Methane (CH4)" - } + "Carbon Dioxide (CO2)", + "Nitrous Oxide (NO2)", + "Methane (CH4)" ], "regen:coBenefits": [ - { - "@type:": "xsd:string", - "@value": "Water Infultration" - }, - { - "@type:": "xsd:string", - "@value": "Biodiversity" - } - ], - "regen:geographicApplicability": [ - { - "@type:": "xsd:string", - "@value": "Global" - } + "Water Infultration", + "Biodiversity" ], + "regen:geographicApplicability": "Global", "regen:eligibleActivities": [ - { - "@type:": "xsd:string", - "@value": "Improved Grazing" - }, - { - "@type:": "xsd:string", - "@value": "Rotational Grazing" - } + "Improved Grazing", + "Rotational Grazing" ], "regen:landOwnershipType": [ - { - "@type:": "xsd:string", - "@value": "Public" - }, - { - "@type:": "xsd:string", - "@value": "Private" - } + "Public", + "Private" ], "regen:ecosystemType": [ - { - "@type:": "xsd:string", - "@value": "Pasture" - }, - { - "@type:": "xsd:string", - "@value": "Native Grasslands" - }, - { - "@type:": "xsd:string", - "@value": "Savannas" - }, - { - "@type:": "xsd:string", - "@value": "Integrated Crop-Livestock (ICL)" - } + "Pasture", + "Native Grasslands", + "Integrated Cro-Livestock (ICL)" ], "regen:creditingTerm": { "@type": "schema:activityDuration", @@ -124,73 +91,47 @@ "@type": "schema:activityDuration", "@value": "P-14Y" }, - "regen:aggregatedProjects": null, - "regen:monitoringFrequency": "", + "regen:aggregatedProjects": true, + "regen:monitoringFrequency": { + "@type": "schema:frequency", + "@value": "Annual" + }, "regen:verificationMethod": [ - { - "@type:": "xsd:string", - "@value": "Ruuts Internal Quality Assurance" - }, - { - "@type:": "xsd:string", - "@value": "Third-Party ISO 14064-3 Verification" - } + "Ruuts Internal Quality Assurance", + "Third-Party ISO 14064-3 Verification" ], "regen:verificationFrequency": { - "@type": "schema:activityDuration", - "@value": "P5Y" + "@type": "schema:frequency", + "@value": "Five year" }, "regen:approvedMethodologies": { "@type": "schema:ItemList", "schema:itemListElement": [ { "schema:name": "Ruuts Protocol Soil Carbon Sequestration Methodology v1", - "schema:url": "", + "schema:url": "https://library.regen.network/v/methodology-library/published-methodologies/ruuts-methodology-for-soil-carbon-sequestration", "schema:identifier": "", "schema:version": "V1.0" } ], - "schema:url": "" - }, - "regen:creditClassDocument": { - "schema:name": "Ruuts Credit Class for Soil Carbon Sequestration through Rotational Grazing", - "schema:url": { - "@type": "schema:URL", - "@value": "" - } + "schema:url": "https://www.google.com" }, "regen:bufferPoolAccounts": { "@type": "schema:ItemList", "schema:itemListElement": [ { "schema:name": "Credit Class (Pooled) Buffer Pool", - "regen:walletAddress": "", - "regen:poolAllocation": "5%", - "schema:url": "" - }, - { - "schema:name": "Monte Dinero Project-Specific Buffer", - "regen:walletAddress": "", - "regen:poolAllocation": "15%", - "schema:url": "" + "regen:walletAddress": "regen17pmq7hp4upvmmveqexzuhzu64v36re3w3447n7dt46uwp594wtpsuuh7f6", + "regen:poolAllocation": "5%" } ] }, "regen:additionalityApproach": [ - { - "@type:": "xsd:string", - "@value": "Common Practice Analysis" - }, - { - "@type:": "xsd:string", - "@value": "Regulatory Additionality" - } + "Common Practice Analysis", + "Regulatory Additionality" ], "regen:leakageApproach": [ - { - "@type:": "xsd:string", - "@value": "Activity Shifting Leakage" - } + "Activity Shifting Leakage" ], "regen:permanencePeriod": { "@type": "schema:activityDuration", diff --git a/shacl/common.ttl b/shacl/common.ttl index 61cf5c3..bf17666 100644 --- a/shacl/common.ttl +++ b/shacl/common.ttl @@ -1,3 +1,4 @@ +@prefix schema: . @prefix sh: . @prefix regen: . @prefix xsd: . diff --git a/shacl/credit-classes/C04-ruuts-credit-class.ttl b/shacl/credit-classes/C04-ruuts-credit-class.ttl index 91ab0a6..f540e38 100644 --- a/shacl/credit-classes/C04-ruuts-credit-class.ttl +++ b/shacl/credit-classes/C04-ruuts-credit-class.ttl @@ -8,14 +8,14 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:targetClass regen:C04-CreditClass ; sh:property [ - sh:path schema:description ; + sh:path schema:name ; sh:minCount 1 ; sh:maxCount 1 ; sh:minLength 1 ; sh:datatype xsd:string ; ] ; sh:property [ - sh:path schema:name ; + sh:path schema:description ; sh:minCount 1 ; sh:maxCount 1 ; sh:minLength 1 ; @@ -75,14 +75,7 @@ regen:C04-CreditClassShape a sh:NodeShape ; ] ; sh:property [ sh:path regen:geographicApplicability ; - sh:node dash:ListShape ; - sh:property [ - sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; - sh:datatype xsd:string ; - sh:minLength 1 ; - ] ; - sh:minCount 1 ; - sh:maxCount 1 ; + sh:datatype xsd:string ; ] ; sh:property [ sh:path regen:eligibleActivities ; @@ -118,29 +111,29 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:maxCount 1 ; ] ; sh:property [ - sh:path schema:creditingTerm ; + sh:path regen:creditingTerm ; sh:node schema:activityDuration ; sh:minCount 1 ; sh:maxCount 1 ; sh:minLength 1 ; ] ; sh:property [ - sh:path schema:lookbackPeriod ; + sh:path regen:lookbackPeriod ; sh:node schema:activityDuration ; sh:minCount 1 ; sh:maxCount 1 ; sh:minLength 1 ; ] ; sh:property [ - sh:path schema:aggregatedProjects ; + sh:path regen:aggregatedProjects ; sh:node schema:Boolean ; sh:minCount 1 ; sh:maxCount 1 ; sh:minLength 1 ; ] ; sh:property [ - sh:path schema:monitoringFrequency ; - sh:datatype xsd:string ; + sh:path regen:monitoringFrequency ; + sh:datatype schema:frequency ; sh:minCount 1 ; sh:maxCount 1 ; sh:minLength 1 ; @@ -157,15 +150,15 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:maxCount 1 ; ] ; sh:property [ - sh:path schema:verificationFrequency ; - sh:node schema:activityDuration ; + sh:path regen:verificationFrequency ; + sh:node schema:frequency ; sh:minCount 1 ; sh:maxCount 1 ; sh:minLength 1 ; ] ; sh:property regen:ApprovedMethodologiesPropertyShape ; - sh:property regen:bufferPoolAccountsShape ; - sh:property [ + sh:property regen:BufferPoolAccountsShape ; + sh:property [ sh:path regen:verificationMethod ; sh:node dash:ListShape ; sh:property [ @@ -199,7 +192,7 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:maxCount 1 ; ] ; sh:property [ - sh:path schema:permanencePeriod ; + sh:path regen:permanencePeriod ; sh:node schema:activityDuration ; sh:minCount 1 ; sh:maxCount 1 ; From bc198df343cda18547fbeee8ff0cc7373e977ebc Mon Sep 17 00:00:00 2001 From: S4mmyb Date: Tue, 20 Jun 2023 12:16:21 -0600 Subject: [PATCH 4/8] updated with @blushi's suggestions --- .../C04-ruuts-credit-class.jsonld | 120 +++++------------- .../C04-ruuts-credit-class.jsonld | 54 ++++---- .../credit-classes/C04-ruuts-credit-class.ttl | 2 +- 3 files changed, 57 insertions(+), 119 deletions(-) diff --git a/jsonld/credit-classes/C04-ruuts-credit-class.jsonld b/jsonld/credit-classes/C04-ruuts-credit-class.jsonld index 9fa209b..d2efac9 100644 --- a/jsonld/credit-classes/C04-ruuts-credit-class.jsonld +++ b/jsonld/credit-classes/C04-ruuts-credit-class.jsonld @@ -38,88 +38,46 @@ }, "regen:leakageApproach": { "@container": "@list" + }, + "regen:creditingTerm": { + "@type": "schema:activityDuration" + }, + "regen:lookbackPeriod": { + "@type": "schema:activityDuration" + }, + "regen:permanencePeriod": { + "@type": "schema:activityDuration" + }, + "regen:monitoringFrequency": { + "@type": "schema:frequency" + }, + "regen:verificationFrequency": { + "@type": "schema:frequency" } }, "@type": "regen:C04-CreditClass", "schema:name": "", "schema:description": "", - "schema:url": { - "@type": "schema:URL", - "@value": "" - }, + "schema:url": "", "regen:sourceRegistry": { "schema:name": "", - "schema:url": { - "@type": "schema:URL", - "@value": "" - } + "schema:url": "" }, - "regen:sectoralScope": [ - { - "@type": "xsd:string", - "@value": "" - } - ], - "regen:offsetGenerationMethod": [ - { - "@type": "xsd:string", - "@value": "" - } - ], - "regen:measuredGHGs": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], - "regen:coBenefits": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], + "regen:sectoralScope": [""], + "regen:offsetGenerationMethod": [""], + "regen:measuredGHGs": [""], + "regen:coBenefits": [""], "regen:geographicApplicability": "", - "regen:eligibleActivities": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], - "regen:landOwnershipType": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], - "regen:ecosystemType": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], - "regen:creditingTerm": { - "@type": "schema:activityDuration", - "@value": "" - }, - "regen:lookbackPeriod": { - "@type": "schema:activityDuration", - "@value": "" - }, + "regen:eligibleActivities": [""], + "regen:landOwnershipType": [""], + "regen:ecosystemType": [""], + "regen:creditingTerm": "", + "regen:lookbackPeriod": "", + "regen:permanencePeriod": "", "regen:aggregatedProjects": null, - "regen:monitoringFrequency": { - "@type": "schema:frequency", - "@value": "" - }, - "regen:verificationMethod": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], - "regen:verificationFrequency": { - "@type": "schema:frequency", - "@value": "" - }, + "regen:monitoringFrequency": "", + "regen:verificationFrequency": "", + "regen:verificationMethod": ["" ], "regen:approvedMethodologies": { "@type": "schema:ItemList", "schema:itemListElement": [ @@ -142,20 +100,6 @@ } ] }, - "regen:additionalityApproach": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], - "regen:leakageApproach": [ - { - "@type:": "xsd:string", - "@value": "" - } - ], - "regen:permanencePeriod": { - "@type": "schema:activityDuration", - "@value": "" - } + "regen:additionalityApproach": [""], + "regen:leakageApproach": [""] } diff --git a/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld b/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld index 018a0f7..3c09681 100644 --- a/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld +++ b/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld @@ -38,21 +38,30 @@ }, "regen:leakageApproach": { "@container": "@list" + }, + "regen:creditingTerm": { + "@type": "schema:activityDuration" + }, + "regen:lookbackPeriod": { + "@type": "schema:activityDuration" + }, + "regen:permanencePeriod": { + "@type": "schema:activityDuration" + }, + "regen:monitoringFrequency": { + "@type": "schema:frequency" + }, + "regen:verificationFrequency": { + "@type": "schema:frequency" } }, "@type": "regen:C04-CreditClass", "schema:name": "Ruuts Credit Class for Soil Carbon Sequestration through Regenerative Grazing", "schema:description": "The Credit Class and its accompanying methodology provide farmers with a measuring and monitoring process for soil organic carbon sequestration in regenerative grazing systems, enabling them to generate carbon credits that also include robust ecological co-benefits such as water infiltration and biodiversity.", - "schema:url": { - "@type": "schema:URL", - "@value": "https://library.regen.network/v/regen-registry-credit-classes/regen-registry-credit-classes-1/ruuts-credit-class-for-soil-carbon-sequestration-through-regenerative-grazing" - }, + "schema:url": "https://library.regen.network/v/regen-registry-credit-classes/regen-registry-credit-classes-1/ruuts-credit-class-for-soil-carbon-sequestration-through-regenerative-grazing", "regen:sourceRegistry": { "schema:name": "Regen Registry", - "schema:url": { - "@type": "schema:URL", - "@value": "https://library.regen.network/v/regen-registry-guide/" - } + "schema:url": "https://library.regen.network/v/regen-registry-guide/" }, "regen:sectoralScope": [ "Livestock & Manure Management" @@ -83,27 +92,16 @@ "Native Grasslands", "Integrated Cro-Livestock (ICL)" ], - "regen:creditingTerm": { - "@type": "schema:activityDuration", - "@value": "P10Y" - }, - "regen:lookbackPeriod": { - "@type": "schema:activityDuration", - "@value": "P-14Y" - }, + "regen:creditingTerm": "P10Y", + "regen:lookbackPeriod": "P-14Y", + "regen:permanencePeriod": "P20Y", "regen:aggregatedProjects": true, - "regen:monitoringFrequency": { - "@type": "schema:frequency", - "@value": "Annual" - }, + "regen:monitoringFrequency": "Annual", + "regen:verificationFrequency": "Five year", "regen:verificationMethod": [ "Ruuts Internal Quality Assurance", "Third-Party ISO 14064-3 Verification" ], - "regen:verificationFrequency": { - "@type": "schema:frequency", - "@value": "Five year" - }, "regen:approvedMethodologies": { "@type": "schema:ItemList", "schema:itemListElement": [ @@ -114,7 +112,7 @@ "schema:version": "V1.0" } ], - "schema:url": "https://www.google.com" + "schema:url": "" }, "regen:bufferPoolAccounts": { "@type": "schema:ItemList", @@ -132,9 +130,5 @@ ], "regen:leakageApproach": [ "Activity Shifting Leakage" - ], - "regen:permanencePeriod": { - "@type": "schema:activityDuration", - "@value": "P20Y" - } + ] } diff --git a/shacl/credit-classes/C04-ruuts-credit-class.ttl b/shacl/credit-classes/C04-ruuts-credit-class.ttl index f540e38..cfafb89 100644 --- a/shacl/credit-classes/C04-ruuts-credit-class.ttl +++ b/shacl/credit-classes/C04-ruuts-credit-class.ttl @@ -198,4 +198,4 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:maxCount 1 ; sh:minLength 1 ; ] ; -. +. \ No newline at end of file From 6d72d8341cc6fbe3aa12e37bb6a4909e24911e6c Mon Sep 17 00:00:00 2001 From: S4mmyb Date: Thu, 22 Jun 2023 10:54:02 -0600 Subject: [PATCH 5/8] changed verificationMethod to verificationMethods --- jsonld/credit-classes/C04-ruuts-credit-class.jsonld | 4 ++-- ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld | 4 ++-- shacl/credit-classes/C04-ruuts-credit-class.ttl | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jsonld/credit-classes/C04-ruuts-credit-class.jsonld b/jsonld/credit-classes/C04-ruuts-credit-class.jsonld index d2efac9..f4cc974 100644 --- a/jsonld/credit-classes/C04-ruuts-credit-class.jsonld +++ b/jsonld/credit-classes/C04-ruuts-credit-class.jsonld @@ -30,7 +30,7 @@ "regen:ecosystemType": { "@container": "@list" }, - "regen:verificationMethod": { + "regen:verificationMethods": { "@container": "@list" }, "regen:additionalityApproach": { @@ -64,7 +64,7 @@ "schema:url": "" }, "regen:sectoralScope": [""], - "regen:offsetGenerationMethod": [""], + "regen:offsetGenerationMethods": [""], "regen:measuredGHGs": [""], "regen:coBenefits": [""], "regen:geographicApplicability": "", diff --git a/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld b/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld index 3c09681..f79504b 100644 --- a/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld +++ b/ops/C04/credit-class-metadata/C04-ruuts-credit-class.jsonld @@ -30,7 +30,7 @@ "regen:ecosystemType": { "@container": "@list" }, - "regen:verificationMethod": { + "regen:verificationMethods": { "@container": "@list" }, "regen:additionalityApproach": { @@ -98,7 +98,7 @@ "regen:aggregatedProjects": true, "regen:monitoringFrequency": "Annual", "regen:verificationFrequency": "Five year", - "regen:verificationMethod": [ + "regen:verificationMethods": [ "Ruuts Internal Quality Assurance", "Third-Party ISO 14064-3 Verification" ], diff --git a/shacl/credit-classes/C04-ruuts-credit-class.ttl b/shacl/credit-classes/C04-ruuts-credit-class.ttl index cfafb89..989df58 100644 --- a/shacl/credit-classes/C04-ruuts-credit-class.ttl +++ b/shacl/credit-classes/C04-ruuts-credit-class.ttl @@ -139,7 +139,7 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:minLength 1 ; ] ; sh:property [ - sh:path regen:verificationMethod ; + sh:path regen:verificationMethods ; sh:node dash:ListShape ; sh:property [ sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; From b0ef4576ac44c065909b5fb6b4884329bcc6f1cc Mon Sep 17 00:00:00 2001 From: S4mmyb Date: Thu, 22 Jun 2023 11:29:17 -0600 Subject: [PATCH 6/8] removed duplicate verification method --- shacl/credit-classes/C04-ruuts-credit-class.ttl | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/shacl/credit-classes/C04-ruuts-credit-class.ttl b/shacl/credit-classes/C04-ruuts-credit-class.ttl index 989df58..3b167ba 100644 --- a/shacl/credit-classes/C04-ruuts-credit-class.ttl +++ b/shacl/credit-classes/C04-ruuts-credit-class.ttl @@ -158,17 +158,6 @@ regen:C04-CreditClassShape a sh:NodeShape ; ] ; sh:property regen:ApprovedMethodologiesPropertyShape ; sh:property regen:BufferPoolAccountsShape ; - sh:property [ - sh:path regen:verificationMethod ; - sh:node dash:ListShape ; - sh:property [ - sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; - sh:datatype xsd:string ; - sh:minLength 1 ; - ] ; - sh:minCount 1 ; - sh:maxCount 1 ; - ] ; sh:property [ sh:path regen:additionalityApproach ; sh:node dash:ListShape ; From b282ed6d3148e498063116790ad4ae1d2aabcd16 Mon Sep 17 00:00:00 2001 From: blushi Date: Wed, 9 Aug 2023 13:17:09 +0200 Subject: [PATCH 7/8] refactor: remove C04 class example and refactor ttls --- .../C04-ruuts-credit-class.jsonld | 105 ------------------ .../credit-classes/C04-ruuts-credit-class.ttl | 81 ++++++-------- shacl/credit-classes/credit-class.ttl | 2 +- 3 files changed, 37 insertions(+), 151 deletions(-) delete mode 100644 jsonld/credit-classes/C04-ruuts-credit-class.jsonld diff --git a/jsonld/credit-classes/C04-ruuts-credit-class.jsonld b/jsonld/credit-classes/C04-ruuts-credit-class.jsonld deleted file mode 100644 index f4cc974..0000000 --- a/jsonld/credit-classes/C04-ruuts-credit-class.jsonld +++ /dev/null @@ -1,105 +0,0 @@ -{ - "@context": { - "schema": "http://schema.org/", - "regen": "https://schema.regen.network#", - "xsd": "http://www.w3.org/2001/XMLSchema#", - "schema:itemListElement": { - "@container": "@list" - }, - "schema:url": { - "@type": "schema:URL" - }, - "regen:sectoralScope": { - "@container": "@list" - }, - "regen:offsetGenerationMethod": { - "@container": "@list" - }, - "regen:measuredGHGs": { - "@container": "@list" - }, - "regen:coBenefits": { - "@container": "@list" - }, - "regen:eligibleActivities": { - "@container": "@list" - }, - "regen:landOwnershipType": { - "@container": "@list" - }, - "regen:ecosystemType": { - "@container": "@list" - }, - "regen:verificationMethods": { - "@container": "@list" - }, - "regen:additionalityApproach": { - "@container": "@list" - }, - "regen:leakageApproach": { - "@container": "@list" - }, - "regen:creditingTerm": { - "@type": "schema:activityDuration" - }, - "regen:lookbackPeriod": { - "@type": "schema:activityDuration" - }, - "regen:permanencePeriod": { - "@type": "schema:activityDuration" - }, - "regen:monitoringFrequency": { - "@type": "schema:frequency" - }, - "regen:verificationFrequency": { - "@type": "schema:frequency" - } - }, - "@type": "regen:C04-CreditClass", - "schema:name": "", - "schema:description": "", - "schema:url": "", - "regen:sourceRegistry": { - "schema:name": "", - "schema:url": "" - }, - "regen:sectoralScope": [""], - "regen:offsetGenerationMethods": [""], - "regen:measuredGHGs": [""], - "regen:coBenefits": [""], - "regen:geographicApplicability": "", - "regen:eligibleActivities": [""], - "regen:landOwnershipType": [""], - "regen:ecosystemType": [""], - "regen:creditingTerm": "", - "regen:lookbackPeriod": "", - "regen:permanencePeriod": "", - "regen:aggregatedProjects": null, - "regen:monitoringFrequency": "", - "regen:verificationFrequency": "", - "regen:verificationMethod": ["" ], - "regen:approvedMethodologies": { - "@type": "schema:ItemList", - "schema:itemListElement": [ - { - "schema:name": "", - "schema:url": "", - "schema:identifier": "", - "schema:version": "" - } - ], - "schema:url": "" - }, - "regen:bufferPoolAccounts": { - "@type": "schema:ItemList", - "schema:itemListElement": [ - { - "schema:name": "", - "regen:walletAddress": "", - "regen:poolAllocation": "" - } - ] - }, - "regen:additionalityApproach": [""], - "regen:leakageApproach": [""] -} diff --git a/shacl/credit-classes/C04-ruuts-credit-class.ttl b/shacl/credit-classes/C04-ruuts-credit-class.ttl index 3b167ba..fe4c780 100644 --- a/shacl/credit-classes/C04-ruuts-credit-class.ttl +++ b/shacl/credit-classes/C04-ruuts-credit-class.ttl @@ -7,50 +7,6 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:targetClass regen:C04-CreditClass ; - sh:property [ - sh:path schema:name ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minLength 1 ; - sh:datatype xsd:string ; - ] ; - sh:property [ - sh:path schema:description ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minLength 1 ; - sh:datatype xsd:string ; - ] ; - sh:property [ - sh:path schema:url ; - sh:datatype schema:URL ; - ] ; - sh:property [ - sh:path regen:sourceRegistry ; - sh:node regen:NameUrlShape ; - ] ; - sh:property [ - sh:path regen:sectoralScope ; - sh:node dash:ListShape ; - sh:property [ - sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; - sh:datatype xsd:string ; - sh:minLength 1 ; - ] ; - sh:minCount 1 ; - sh:maxCount 1 ; - ] ; - sh:property [ - sh:path regen:offsetGenerationMethod ; - sh:node dash:ListShape ; - sh:property [ - sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; - sh:datatype xsd:string ; - sh:minLength 1 ; - ] ; - sh:minCount 1 ; - sh:maxCount 1 ; - ] ; sh:property [ sh:path regen:measuredGHGs ; sh:node dash:ListShape ; @@ -156,7 +112,6 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:maxCount 1 ; sh:minLength 1 ; ] ; - sh:property regen:ApprovedMethodologiesPropertyShape ; sh:property regen:BufferPoolAccountsShape ; sh:property [ sh:path regen:additionalityApproach ; @@ -187,4 +142,40 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:maxCount 1 ; sh:minLength 1 ; ] ; +. + +regen:BufferPoolAccountShape a sh:NodeShape ; + sh:property [ + sh:path schema:name ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + ] ; + sh:property [ + sh:path regen:walletAddress ; + sh:datatype xsd:string ; + sh:minCount 1 ; + ] ; + sh:property [ + sh:path regen:poolAllocation ; + sh:datatype xsd:string ; + sh:minCount 1 ; + ] ; +. + +regen:BufferPoolAccountsShape sh:path regen:bufferPoolAccounts ; + sh:node dash:ItemList ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:property [ + sh:path schema:itemListElement ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:node regen:BufferPoolAccountShape ; + sh:minCount 1 ; + ] ; + ] . \ No newline at end of file diff --git a/shacl/credit-classes/credit-class.ttl b/shacl/credit-classes/credit-class.ttl index a842141..0a87968 100644 --- a/shacl/credit-classes/credit-class.ttl +++ b/shacl/credit-classes/credit-class.ttl @@ -7,7 +7,7 @@ @prefix rdfs: . regen:CreditClassShape a sh:NodeShape ; - sh:targetClass regen:CreditClass, regen:C01-CreditClass, regen:C02-CreditClass, regen:C03-CreditClass; + sh:targetClass regen:CreditClass, regen:C01-CreditClass, regen:C02-CreditClass, regen:C03-CreditClass, regen:C04-CreditClass; sh:property [ sh:path schema:name ; sh:minCount 1 ; From fc2b0810e844d07b55469d29293124677166a383 Mon Sep 17 00:00:00 2001 From: blushi Date: Wed, 9 Aug 2023 13:28:19 +0200 Subject: [PATCH 8/8] fix: use verificationMethod or plural --- .../credit-classes/C04-ruuts-credit-class.ttl | 11 ------- shacl/credit-classes/credit-class.ttl | 30 ++++++++++++++----- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/shacl/credit-classes/C04-ruuts-credit-class.ttl b/shacl/credit-classes/C04-ruuts-credit-class.ttl index fe4c780..2dd01db 100644 --- a/shacl/credit-classes/C04-ruuts-credit-class.ttl +++ b/shacl/credit-classes/C04-ruuts-credit-class.ttl @@ -94,17 +94,6 @@ regen:C04-CreditClassShape a sh:NodeShape ; sh:maxCount 1 ; sh:minLength 1 ; ] ; - sh:property [ - sh:path regen:verificationMethods ; - sh:node dash:ListShape ; - sh:property [ - sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; - sh:datatype xsd:string ; - sh:minLength 1 ; - ] ; - sh:minCount 1 ; - sh:maxCount 1 ; - ] ; sh:property [ sh:path regen:verificationFrequency ; sh:node schema:frequency ; diff --git a/shacl/credit-classes/credit-class.ttl b/shacl/credit-classes/credit-class.ttl index 0a87968..6f2131a 100644 --- a/shacl/credit-classes/credit-class.ttl +++ b/shacl/credit-classes/credit-class.ttl @@ -46,13 +46,29 @@ regen:CreditClassShape a sh:NodeShape ; sh:maxCount 1 ; ] ; sh:property regen:OffsetGenerationMethodPropertyShape ; - sh:property [ - sh:path regen:verificationMethod ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minLength 1 ; - sh:datatype xsd:string ; - ] ; + sh:or ( + [ + sh:property [ + sh:path regen:verificationMethod ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minLength 1 ; + sh:datatype xsd:string ; + ] ; + ] [ + sh:property [ + sh:path regen:verificationMethods ; + sh:node dash:ListShape ; + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; + sh:minLength 1 ; + ] ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] ; + ] + ) ; sh:property regen:ApprovedMethodologiesPropertyShape ; sh:property [ sh:path regen:certifications;