diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f70c616..da09180 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -34,6 +34,7 @@ jobs: vuln-type: 'os,library' - name: Trivy - Stop on Severe Vulnerabilities uses: aquasecurity/trivy-action@master + if: github.event_name == 'pull_request' with: image-ref: '${{ github.event.repository.name }}' format: 'table' diff --git a/app/md/annotation/termlist-header.md b/app/md/annotation/termlist-header.md index 891cb47..32a887e 100644 --- a/app/md/annotation/termlist-header.md +++ b/app/md/annotation/termlist-header.md @@ -16,21 +16,19 @@ : 0.3.0 **Abstract** -: The data model for an Annotation within the DiSSCo infrastructure. This model is inspired by the W3C Web Annotation model. -An annotation can be attached to any digital object in the DiSSCo infrastructure and can contain any of the following motivations: -- adding: The user wants to add new information to the object -- assessing: The user wants to assess the quality of the data in the object -- editing: The user wants to edit an existing value of the object -- commenting: The users wants to make a generic comment on the object -There are several levels on which an annotation can be made: -- The whole object: The annotation is made on the whole object, used when a user wants to create a comment on for example the whole Digital Specimen -- A class: The annotation is made on the whole class, used when a user wants to add for example an additional Identification -- An individual property: The annotation is made on a specific property of the class, used when a user wants to edit a particular fields, for example the collector of a specimen -- A RegionOfInterest: The annotation is made on a specific region of the object. This type of annotation is mainly used when it is attached to a digital entity. For example it can indicate a specific ROI in an image and attach a value to that ROI. - -The value of the annotation can be attached in the body. -This can be in the form of an array of strings. -When a full class is replaced the body can contain the full new class in JSON format. +: +The data model for an Annotation within the DiSSCo infrastructure. This model is inspired by the W3C Web Annotation model. An annotation can be attached to any digital object in the DiSSCo infrastructure, and can contain any of the following motivations: + +adding: The user wants to add new information to the object +assessing: The user wants to assess the quality of the data in the object +editing: The user wants to edit an existing value of the object +commenting: The user wants to make a generic comment on the object +There are several levels on which an annotation can be made: +The whole object: The annotation is made on the whole object, used when a user wants to create a comment on, for example, the whole Digital Specimen +A class: The annotation is made on the whole class, used when a user wants to add, for example, an additional Identification +An individual property: The annotation is made on a specific property of the class, used when a user wants to edit a particular field, for example, the collector of a specimen +A RegionOfInterest: The annotation is made on a specific region of the object. This type of annotation is mainly used when it is attached to a digital media object. For example, it can indicate a specific ROI in an image and attach a value to that ROI. +The value of the annotation can be attached in the body. This can be in the form of an array of strings. When a full class is replaced, the body can contain the full new class in JSON format. The AggregateRating has not been implemented yet. @@ -56,13 +54,13 @@ The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL ### 1.3 Naming Convention This document contains all the terms in use the DiSSCo Digital Objects. Most objects can be directly related to a openDS class, for example the Machine Annotation Service, or the Source System. -However, the DigitalSpecimen and the Digital Entity are more complex objects. +However, the Digital Specimen and the Digital Media are more complex objects. They can contain classes as nested object in itself. In general, class names are capitalized, use the UpperCamelCase naming convention and are singular. For example, the class that represents a Digital Specimen is called `DigitalSpecimen`. The properties of a class start with a lowercase and use the lowerCamelCase naming convention. When a class contains a property which contains a list of another class we use the convention `hasXXX` where XXX is the class name. -For example, the DigitalSpecimen can contain a list of Event objects, so it has a property called `hasEvent`. +For example, the Digital Specimen can contain a list of Event objects, so it has a property called `hasEvent`. When a class is directly nested (not through a list) we use the class name as property name. For example, the Location class contains the property `ods:GeoReference` which contains the Geo Reference class. diff --git a/app/md/create-update-tombstone-event/termlist-header.md b/app/md/create-update-tombstone-event/termlist-header.md index a24f456..f2bc589 100644 --- a/app/md/create-update-tombstone-event/termlist-header.md +++ b/app/md/create-update-tombstone-event/termlist-header.md @@ -47,13 +47,13 @@ The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL ### 1.3 Naming Convention This document contains all the terms in use the DiSSCo Digital Objects. Most objects can be directly related to a openDS class, for example the Machine Annotation Service, or the Source System. -However, the DigitalSpecimen and the Digital Entity are more complex objects. +However, the Digital Specimen and the Digital Media are more complex objects. They can contain classes as nested object in itself. In general, class names are capitalized, use the UpperCamelCase naming convention and are singular. For example, the class that represents a Digital Specimen is called `DigitalSpecimen`. The properties of a class start with a lowercase and use the lowerCamelCase naming convention. When a class contains a property which contains a list of another class we use the convention `hasXXX` where XXX is the class name. -For example, the DigitalSpecimen can contain a list of Event objects, so it has a property called `hasEvent`. +For example, the Digital Specimen can contain a list of Event objects, so it has a property called `hasEvent`. When a class is directly nested (not through a list) we use the class name as property name. For example, the Location class contains the property `ods:GeoReference` which contains the Geo Reference class. diff --git a/app/md/digital-media/termlist-header.md b/app/md/digital-media/termlist-header.md index c14df9c..396b916 100644 --- a/app/md/digital-media/termlist-header.md +++ b/app/md/digital-media/termlist-header.md @@ -52,14 +52,14 @@ appear in all capitals, as shown here. This document contains all the terms in use the DiSSCo Digital Objects. Most objects can be directly related to a openDS class, for example the Machine Annotation Service, or the Source System. -However, the DigitalSpecimen and the Digital Entity are more complex objects. +However, the Digital Specimen and the Digital Media are more complex objects. They can contain classes as nested object in itself. In general, class names are capitalized, use the UpperCamelCase naming convention and are singular. For example, the class that represents a Digital Specimen is called `DigitalSpecimen`. The properties of a class start with a lowercase and use the lowerCamelCase naming convention. When a class contains a property which contains a list of another class we use the convention `hasXXX` where XXX is the class name. -For example, the DigitalSpecimen can contain a list of Event objects, so it has a property called `hasEvent`. +For example, the Digital Specimen can contain a list of Event objects, so it has a property called `hasEvent`. When a class is directly nested (not through a list) we use the class name as property name. For example, the Location class contains the property `ods:GeoReference` which contains the Geo Reference class. diff --git a/app/md/digital-specimen/termlist-header.md b/app/md/digital-specimen/termlist-header.md index 660dc94..f57fdb1 100644 --- a/app/md/digital-specimen/termlist-header.md +++ b/app/md/digital-specimen/termlist-header.md @@ -45,13 +45,13 @@ The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL ### 1.3 Naming Convention This document contains all the terms in use the DiSSCo Digital Objects. Most objects can be directly related to a openDS class, for example the Machine Annotation Service, or the Source System. -However, the DigitalSpecimen and the Digital Entity are more complex objects. +However, the Digital Specimen and the Digital Media are more complex objects. They can contain classes as nested object in itself. In general, class names are capitalized, use the UpperCamelCase naming convention and are singular. For example, the class that represents a Digital Specimen is called `DigitalSpecimen`. The properties of a class start with a lowercase and use the lowerCamelCase naming convention. When a class contains a property which contains a list of another class we use the convention `hasXXX` where XXX is the class name. -For example, the DigitalSpecimen can contain a list of Event objects, so it has a property called `hasEvent`. +For example, the Digital Specimen can contain a list of Event objects, so it has a property called `hasEvent`. When a class is directly nested (not through a list) we use the class name as property name. For example, the Location class contains the property `ods:GeoReference` which contains the Geo Reference class. diff --git a/app/md/opends/home-content.md b/app/md/opends/home-content.md index 35caffe..d6ee565 100644 --- a/app/md/opends/home-content.md +++ b/app/md/opends/home-content.md @@ -1,10 +1,13 @@ Open Digital Specimen (openDS) is a comprehensive data specification that describes the essence of a "Digital Specimen" as implemented by [DiSSCo](https://www.dissco.eu/), a digital surrogate of a specimen on the internet with its related information. The openDS data model documented here is based on the draft [GBIF Unified Model](https://www.gbif.org/composition/HjlTr705BctcnaZkcjRJq/gbif-new-data-model) as well as biodiversity information standards like [Darwin Core](https://www.tdwg.org/standards/) and [ABCD](https://www.tdwg.org/standards/abcd/). -openDS is designed to enhance [FAIR aspects](https://www.go-fair.org/fair-principles/) of specimen data including support for provenance data and machine actionability. +openDS is designed to enhance [FAIR aspects](https://www.go-fair.org/fair-principles/) of specimen data including support for provenance data and machine actionability. +For each digital object we created a terms, guide and resources page. +In the top right you will find a navigation bar where there are dropdowns for each type of documentation we provide. + Getting started[](#getting-started) ----------------------------------- -* [Normative Term List](terms) -* [Quick Reference Guide](quick-reference) +* [Normative Term List Digital Specimen](digital-specimen-terms) +* [Quick Reference Guide Digital Specimen](digital-specimen-guide) * [Json Schema](https://schemas.dissco.tech) provide the original schemas on which this site is generated * The [OpenDS Github](https://github.com/DiSSCo/openDS) provides any additional information available, including examples. * For questions and change requests please create a [Github Issue](https://github.com/DiSSCo/openDS/issues) diff --git a/app/routes.py b/app/routes.py index a7a5aab..424926e 100644 --- a/app/routes.py +++ b/app/routes.py @@ -45,7 +45,7 @@ def digitalSpecimenTerms(): termsByClass=terms_by_class, pageTitle='Digital Specimen Terms (In Progress)', title='Digital Specimen Term List', - slug='digitalSpecimenTermList' + slug='digital-specimen-term-list' ) @@ -64,7 +64,7 @@ def machineAnnotationServiceTerms(): termsByClass=terms_by_class, pageTitle='Machine Annotation Service Terms (In Progress)', title='Machine Annotation Service Term List', - slug='machineAnnotationServiceTermList' + slug='machine-annotation-service-term-list' ) @@ -81,9 +81,9 @@ def digitalMediaTerms(): terms=terms, sssom=sssom_df, termsByClass=terms_by_class, - pageTitle='Digital Entity Terms (In Progress)', - title='Digital Entity Term List', - slug='digitalEntityTermList' + pageTitle='Digital Media Terms (In Progress)', + title='Digital Media Term List', + slug='digital-media-term-list' ) @@ -102,7 +102,7 @@ def annotationTerms(): termsByClass=terms_by_class, pageTitle='Annotation Terms (In Progress)', title='Annotation Term List', - slug='annotationTermList' + slug='annotation-term-list' ) @@ -121,7 +121,7 @@ def createUpdateTombstoneEventTerms(): termsByClass=terms_by_class, pageTitle='Create Update Tombstone Event Terms (In Progress)', title='Create Update Tombstone Event Term List', - slug='createUpdateTombstoneEventTermList' + slug='create-update-tombstone-event-term-list' ) @@ -140,7 +140,7 @@ def dataMappingTerms(): termsByClass=terms_by_class, pageTitle='Data Mapping Terms (In Progress)', title='Data Mapping Term List', - slug='dataMappingTermList' + slug='data-mapping-term-list' ) @@ -159,7 +159,7 @@ def sourceSystemTerms(): termsByClass=terms_by_class, pageTitle='Source System Terms (In Progress)', title='Source System Term List', - slug='sourceSystemTermList' + slug='source-system-term-list' )