Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add BT01 schemas #28

Draft
wants to merge 2 commits into
base: semantic-enumerations
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
155 changes: 155 additions & 0 deletions schema/src/BT01/BT01CreditClass.yaml
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@S4mmyb right now this is the BT01 credit class file you had started, except I have modified the ranges to be valid and work with linkml. The issue was we had ranges like schema:Duration and URL, but ranges need to be proper data types that linkml understands OR custom data classes.

I'm still not sure what our best option is for specifying a ISO 8601 Duration datatype. I wonder if this might be an easy contribution to LinkML core data types (they have other 8601 date/time types). Or, for now I have specified this in the description eg "Crediting term duration for the project. An ISO 8601 duration.".

Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
id: https://framework.regen.network/schema/BTCreditClass
name: BTCreditClass
prefixes:
linkml: https://w3id.org/linkml/
rfs: https://framework.regen.network/schema/
schema: http://schema.org/
imports:
- linkml:types
default_curi_maps:
- semweb_context
default_prefix: rfs
default_range: string
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the default range is string I don't think we need to specify range: string below on individual slots


classes:
BT01CreditClass:
class_uri: rfs:BT01CreditClass
slots:
- approvedMethodologies
- coBenefits
- creditGenerationMethod
- creditingTerm
- description
- ecosystemType
- eligibleActivities
- geographicApplicability
- name
- permanencePeriod
- primaryImpact
- sourceRegistry
- url
Methodology:
class_uri: rfs:Methodology
description: Details about a specific methodology.
attributes:
identifier:
description: Unique identifier for the methodology.
name:
description: Name of the methodology.
url:
description: URL to the methodology document.
version:
description: Version number of the methodology.
MethodologyList:
class_uri: rfs:MethodologyList
description: List of methodologies for credit generation.
attributes:
itemListElement:
range: Methodology
multivalued: true
description: "List of methodology items."
PrimaryImpact:
class_uri: rfs:PrimaryImpact
description: Primary impact of the biodiversity project.
attributes:
id:
slot_uri: rfs:id
name:
slot_uri: schema:name
SDGs:
description: List of relevant Sustainable Development Goals for this impact.
range: SDG
multivalued: true
Comment on lines +59 to +62
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@S4mmyb currently SDGs as a slot name doesn't fit our linkml linting configuration (slots should be lower camel case). What about just SDG?

In the past I have tried to avoid using plural wording for technical properties and just stick with singular words everywhere, knowing that some singular properties might indeed have mutliple values, thinking that the schema will specify if they are multi-valued, not the naming itself. Curious what you think about this more generally.

ProjectBenefit:
class_uri: rfs:ProjectBenefit
description: Benefits delivered by the biodiversity project.
attributes:
id:
description: Unique identifier for the project benefit.
required: true
name:
description: Name of the project benefit.
required: true
SDGs:
description: List of relevant Sustainable Development Goals.
range: SDG
multivalued: true
SDG:
class_uri: rfs:SDG
description: Represents a Sustainable Development Goal (SDG).
attributes:
id:
description: Unique identifier for the SDG.
required: true
name:
description: Name of the SDG.
required: true
description:
description: Detailed description of the SDG.
SourceRegistry:
class_uri: rfs:SourceRegistry
description: Details of the registry where the credits are tracked.
attributes:
name:
description: Name of the source registry.
url:
description: URL of the source registry.

slots:
approvedMethodologies:
description: Approved methodologies list for credit generation.
range: MethodologyList
slot_uri: rfs:approvedMethodologies
coBenefits:
description: List of co-benefits associated with the project.
multivalued: true
range: ProjectBenefit
slot_uri: rfs:coBenefits
creditGenerationMethod:
description: Method for generating biodiversity credits.
multivalued: true
slot_uri: rfs:creditGenerationMethod
creditingTerm:
description: Crediting term duration for the project. An ISO 8601 duration.
slot_uri: rfs:creditingTerm
description:
description: Description of the credit class.
required: true
slot_uri: schema:description
ecosystemType:
description: Type of ecosystem the project focuses on.
multivalued: true
slot_uri: rfs:ecosystemType
eligibleActivities:
description: Eligible activities for registered projects.
multivalued: true
slot_uri: rfs:eligibleActivities
geographicApplicability:
description: Geographic applicability of the credit class.
slot_uri: rfs:geographicApplicability
itemListElement:
description: List of methodologies in the methodology list.
multivalued: true
range: Methodology
name:
description: Name of the entity.
slot_uri: schema:name
permanencePeriod:
description: Permanence period of the credits. An ISO 8601 duration.
slot_uri: rfs:permanencePeriod
primaryImpact:
description: Primary impact of the project.
range: PrimaryImpact
slot_uri: rfs:primaryImpact
SDGs:
description: List of relevant Sustainable Development Goals.
multivalued: true
range: SDG
slot_uri: rfs:SDGs
sourceRegistry:
description: Source registry details including name and URL.
range: SourceRegistry
slot_uri: rfs:sourceRegistry
url:
description: Link to the Terrasos Biodiversity Credit documentation.
slot_uri: schema:url
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ default_range: string
classes:
TerrasosProjectInfo:
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops I need to rename this

Suggested change
TerrasosProjectInfo:
BT01ProjectInfo:

is_a: ProjectInfo
class_uri: rfs:TerrasosProjectInfo
class_uri: rfs:BT01ProjectInfo
slots:
# Tebu Factors
- ecologicalConnectivityIndex
Expand Down
2 changes: 2 additions & 0 deletions schema/src/schemas.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ imports:
- ProjectPost
- TerrasosProjectInfo
- taxonomy
- BT01/BT01CreditClass
- BT01/BT01ProjectInfo
default_curi_maps:
- semweb_context
default_prefix: rfs
Expand Down