1 | packageIdPattern | valid |
Type: | metadata |
System: | lter |
On failure: | error |
| packageId pattern matches "scope.identifier.revision" | Check against LTER requirements for scope.identifier.revision | 'scope.n.m', where 'n' and 'm' are integers and 'scope' is one of an allowed set of values | knb-lter-cap.710.1 | | | |
2 | emlVersion | valid |
Type: | metadata |
System: | lter |
On failure: | error |
| EML version 2.1.0 or beyond | Check the EML document declaration for version 2.1.0 or higher | eml://ecoinformatics.org/eml-2.1.0 or higher | https://eml.ecoinformatics.org/eml-2.2.0 | Validity of this quality report is dependent on this check being valid. | | |
3 | schemaValid | valid |
Type: | metadata |
System: | knb |
On failure: | error |
| Document is schema-valid EML | Check document schema validity | schema-valid | Document validated for namespace: 'https://eml.ecoinformatics.org/eml-2.2.0' | Validity of this quality report is dependent on this check being valid. | | |
4 | parserValid | valid |
Type: | metadata |
System: | knb |
On failure: | error |
| Document is EML parser-valid | Check document using the EML IDs and references parser | Validates with the EML IDs and references parser | EML IDs and references parser succeeded | Validity of this quality report is dependent on this check being valid. | | |
5 | schemaValidDereferenced | valid |
Type: | metadata |
System: | lter |
On failure: | error |
| Dereferenced document is schema-valid EML | References are dereferenced, and the resulting file validated | schema-valid | Dereferenced document validated for namespace: 'https://eml.ecoinformatics.org/eml-2.2.0' | Validity of this quality report is dependent on this check being valid. | | |
6 | keywordPresent | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| keyword element is present | Checks to see if at least one keyword is present | Presence of one or more keyword elements | 20 'keyword' element(s) found | | | |
7 | methodsElementPresent | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| A 'methods' element is present | All datasets should contain a 'methods' element, at a minimum a link to a separate methods doc. | presence of 'methods' at one or more xpaths. | 1 'methods' element(s) found | | | EML Best Practices, p. 28 |
8 | coveragePresent | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| coverage element is present | At least one coverage element should be present in a dataset. | At least one of geographicCoverage, taxonomicCoverage, or temporalCoverage is present in the EML. | 3 'coverage' element(s) found | | | |
9 | geographicCoveragePresent | info |
Type: | metadata |
System: | lter |
On failure: | info |
| geographicCoverage is present | Check that geographicCoverage exists in EML at the dataset level, or at least one entity's level, or at least one attribute's level. | geographicCoverage at least at the dataset level. | 3 'geographicCoverage' element(s) found | Many but not all datasets are appropriate to have spatial coverage. | If sampling EML is used within methods, does that obviate geographicCoverage? Or should those sites be repeated or referenced? | EML Best Practices v.2, p. 22-23. "One geographicCoverage element should be included, whose boundingCoordinates describe the extent of the data....Additional geographicCoverage elements may be entered at the dataset level if there are significant distances between study sites and it would be confusing if they were grouped into one bounding box." 6 decimal places. |
10 | taxonomicCoveragePresent | info |
Type: | metadata |
System: | lter |
On failure: | info |
| taxonomicCoverage is present | Check that taxonomicCoverage exists in EML at the dataset level, or at least one entity's level, or at least one attribute's level. | taxonomicCoverage at least at the dataset level. | 3 'taxonomicCoverage' element(s) found | Only when taxa are pertinent to the dataset will they have taxonomicCoverage. | Could search title, abstract, keywords for any taxonomic name (huge). Could search keywordType="taxonomic". | EML Best Practices v.2, p. 25 |
11 | temporalCoveragePresent | info |
Type: | metadata |
System: | lter |
On failure: | info |
| temporalCoverage is present | Check that temporalCoverage exists in EML at the dataset level, or at least one entity's level, or at least one attribute's level. | temporalCoverage at least at the dataset level. | 1 'temporalCoverage' element(s) found | LTER wants to search datasets by time; the best place to search is the dataset level temporal coverage. | Most datasets have a temporal range. | EML Best Practices v.2, p. 24 |
12 | pastaDoiAbsent | valid |
Type: | metadata |
System: | lter |
On failure: | error |
| An alternateIdentifier with a DOI system attribute that looks like it is generated by PASTA should not be present | Reject the data package if it contains an alternateIdentifier DOI that looks like PASTA generated it. | No PASTA DOIs are expected to be found in the uploaded data package | No PASTA DOI alternateIdentifier elements found | PASTA DOI values might appear in an uploaded data package (by various mechanisms). PASTA will assign a DOI after the upload has completed successfully, so an initial one should not be there. | | |
13 | titleLength | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| Dataset title length is at 5 least words. | If the title is shorter than 5 words, it might be insufficient. Title word count between 7 and 20 including prepositions and numbers. | Between 7 and 20 words | 18 words found. | | | EML Best Practices, v.2, p. 13 |
14 | fundingPresence | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| check to see if funding element is present | Checks to see if the funding element is included. | the funding element is expected to be included | NSF Awards: CAP I: DEB-9714833, CAP II: DEB-0423704, CAP III: DEB-1026865, CAP IV: DEB-1832016 | | | |
15 | datasetAbstractLength | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| Dataset abstract element is a minimum of 20 words | Check the length of a dataset abstract and warn if less than 20 words. | An abstract is 20 words or more. | 121 words found. | | | EML Best Practices |
16 | duplicateEntityName | valid |
Type: | metadata |
System: | lter |
On failure: | error |
| There are no duplicate entity names | Checks that content is not duplicated by other entityName elements in the document | entityName is not a duplicate within the document | No duplicates found | Data Manager requires a non-empty, non-duplicate entityName value for every entity | Declare a non-empty entityName and ensure that there are no duplicate entityName values in the document | |
1 | entityNameLength | valid |
Type: | metadata |
System: | knb |
On failure: | warn |
| Length of entityName is not excessive (less than 100 char) | length of entity name is less than 100 characters | entityName value is 100 characters or less | 19 | | | |
2 | entityDescriptionPresent | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| An entity description is present | Check for presence of an entity description. | EML Best practices pp. 32-33, "...should have enough information for a user..." | true | With entityName sometimes serving as a file name rather than a title, it is important to be very descriptive here. | | |
3 | numHeaderLinesPresent | info |
Type: | metadata |
System: | knb |
On failure: | info |
| 'numHeaderLines' element is present | Check for presence of the 'numHeaderLines' element. | Document contains 'numHeaderLines' element. | No 'numHeaderLines' element found | If data file contains header lines, 'numHeaderLines' must be specified. | Add 'numHeaderLines' element if needed. | |
4 | numFooterLinesPresent | info |
Type: | metadata |
System: | knb |
On failure: | info |
| 'numFooterLines' element is present | Check for presence of the 'numFooterLines' element. | Document contains 'numFooterLines' element. | No 'numFooterLines' element found | If data file contains footer lines, 'numFooterLines' must be specified. | Add 'numFooterLines' element if needed. | |
5 | fieldDelimiterValid | info |
Type: | metadata |
System: | knb |
On failure: | error |
| Field delimiter is a single character | Field delimiters should be one character only | A single character is expected | null | A fieldDelimiter value is not checked for binary entities or entities with an externally defined format | | http://knb.ecoinformatics.org/software/eml/eml-2.1.0/eml-physical.html#fieldDelimiter |
6 | recordDelimiterPresent | info |
Type: | metadata |
System: | knb |
On failure: | warn |
| Record delimiter is present | Check presence of record delimiter. Check that the record delimiter is one of the suggested values. | A record delimiter from a list of suggested values: \n, \r, \r\n, #x0A, #x0D, #x0D#x0A | null | A recordDelimiter value is not checked for binary entities or entities with an externally defined format | | http://knb.ecoinformatics.org/software/eml/eml-2.1.0/eml-physical.html#recordDelimiter |
7 | entitySizePresence | valid |
Type: | metadata |
System: | knb |
On failure: | warn |
| Check for presence of an entity size element | Look for entity size element as a prep for checking congruence, and if not present, generate a warn. Note that to be most useful (i.e, to check congruence), entity size should contain the most precise measure of size, which is "byte" (the default unit); however, the presence or name of the entity size unit is NOT checked. | Entity size is present. If unit="byte" or unit is omitted (default = byte), then congruence can be checked. | Found entity size element with value of 72811380 and size unit specified as 'byte'. | Examining the entity size is prep for checking congruence. Including the element is best practice, and if not present, a warn is generated. To be most useful, entity size should contain the most precise measure of size, which is "byte" (the default unit). | Include an entity size in bytes | Example success: knb-lter-sbc.3.12. Example of size in units other than byte: knb-lter-mcr.6.56. |
8 | integrityChecksumPresence | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| A physical/authentication element is present and specifies a method attribute with a value of MD5 or SHA-1 | Check for presence of a physical/authentication element containing a checksum or hash value for an integrity check (e.g. MD5, SHA-1). Warn if an entity does not have a physical/authentication element, or if none of the physical/authentication elements specify a method attribute with a value of MD5 or SHA-1. | At least one physical/authentication element with a method attribute specifying MD5 or SHA-1 and containing a checksum or hash value that can be used to perform an integrity check on the data. | true | PASTA will use this value to check the integrity of the data it downloads from your site. In addition, PASTA is planning to compare the contributor-supplied checksum/hash value documented
in the physical/authentication element to the checksum/hash value of this entity downloaded from previous revisions of this data package. If PASTA already has a copy of this entity, it will be able
to avoid an unnecessary download of the entity from your site, resulting in faster processing of the new data package revision when you update it in PASTA. | Add a physical/authentication element and store the entity checksum or hash value in it using a method such as MD5 or SHA-1. | |
9 | attributeNamesUnique | valid |
Type: | metadata |
System: | knb |
On failure: | warn |
| Attribute names are unique | Checks if attributeName values are unique in the table. Not required by EML. | Unique attribute names. | true | A good table does not have duplicate column names. | | EML Best Practices |
10 | displayDownloadData | info |
Type: | data |
System: | knb |
On failure: | info |
| Display downloaded data | Display the first kilobyte of data that is downloaded | Up to one kilobyte of data should be displayed | Cannot display NON-PLAIN TEXT DATA | | | |
11 | urlReturnsData | valid |
Type: | congruency |
System: | knb |
On failure: | error |
| URL returns data | Checks whether a URL returns data. Unless the URL is specified to be function="information", the URL should return the resource for download. | A data entity that matches the metadata | true | | | http://knb.ecoinformatics.org/software/eml/eml-2.1.0/eml-resource.html#UrlType |
12 | onlineURLs | valid |
Type: | congruency |
System: | knb |
On failure: | error |
| Online URLs are live | Check that online URLs return something | true | true | Succeeded in accessing URL: https://data.gios.asu.edu/datasets/cap/vacant_lots.geojson | | |
13 | integrityChecksum | valid |
Type: | congruency |
System: | lter |
On failure: | error |
| Compare the metadata checksum for an entity to the checksum of the downloaded entity | Two possible responses: valid if checksums match; error if checksums do not match. | 278f26510ad05e1b3b22916048a79aff | 278f26510ad05e1b3b22916048a79aff | Matching checksums will ensure data integrity during upload to the repository. | If the found integrity hash value does not match the expected integrity hash value, there may have been a loss of integrity in the data download. Check that the hash method and hash value documented in the metadata are the correct values. | |
14 | entitySizeCongruence | valid |
Type: | congruency |
System: | knb |
On failure: | error |
| Check that the entity size in the Level 0 metadata matches the one PASTA+ generates. | Compare raw file size of file to [entity]/physical/size element in metadata. Return error if not matching. | 72811380 | 72811380 | Examining the entity size is a method for checking that this is the correct entity. | Check the entity size. | |
1 | entityNameLength | valid |
Type: | metadata |
System: | knb |
On failure: | warn |
| Length of entityName is not excessive (less than 100 char) | length of entity name is less than 100 characters | entityName value is 100 characters or less | 15 | | | |
2 | entityDescriptionPresent | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| An entity description is present | Check for presence of an entity description. | EML Best practices pp. 32-33, "...should have enough information for a user..." | true | With entityName sometimes serving as a file name rather than a title, it is important to be very descriptive here. | | |
3 | numHeaderLinesPresent | info |
Type: | metadata |
System: | knb |
On failure: | info |
| 'numHeaderLines' element is present | Check for presence of the 'numHeaderLines' element. | Document contains 'numHeaderLines' element. | No 'numHeaderLines' element found | If data file contains header lines, 'numHeaderLines' must be specified. | Add 'numHeaderLines' element if needed. | |
4 | numFooterLinesPresent | info |
Type: | metadata |
System: | knb |
On failure: | info |
| 'numFooterLines' element is present | Check for presence of the 'numFooterLines' element. | Document contains 'numFooterLines' element. | No 'numFooterLines' element found | If data file contains footer lines, 'numFooterLines' must be specified. | Add 'numFooterLines' element if needed. | |
5 | fieldDelimiterValid | info |
Type: | metadata |
System: | knb |
On failure: | error |
| Field delimiter is a single character | Field delimiters should be one character only | A single character is expected | null | A fieldDelimiter value is not checked for binary entities or entities with an externally defined format | | http://knb.ecoinformatics.org/software/eml/eml-2.1.0/eml-physical.html#fieldDelimiter |
6 | recordDelimiterPresent | info |
Type: | metadata |
System: | knb |
On failure: | warn |
| Record delimiter is present | Check presence of record delimiter. Check that the record delimiter is one of the suggested values. | A record delimiter from a list of suggested values: \n, \r, \r\n, #x0A, #x0D, #x0D#x0A | null | A recordDelimiter value is not checked for binary entities or entities with an externally defined format | | http://knb.ecoinformatics.org/software/eml/eml-2.1.0/eml-physical.html#recordDelimiter |
7 | entitySizePresence | valid |
Type: | metadata |
System: | knb |
On failure: | warn |
| Check for presence of an entity size element | Look for entity size element as a prep for checking congruence, and if not present, generate a warn. Note that to be most useful (i.e, to check congruence), entity size should contain the most precise measure of size, which is "byte" (the default unit); however, the presence or name of the entity size unit is NOT checked. | Entity size is present. If unit="byte" or unit is omitted (default = byte), then congruence can be checked. | Found entity size element with value of 15346019 and size unit specified as 'byte'. | Examining the entity size is prep for checking congruence. Including the element is best practice, and if not present, a warn is generated. To be most useful, entity size should contain the most precise measure of size, which is "byte" (the default unit). | Include an entity size in bytes | Example success: knb-lter-sbc.3.12. Example of size in units other than byte: knb-lter-mcr.6.56. |
8 | integrityChecksumPresence | valid |
Type: | metadata |
System: | lter |
On failure: | warn |
| A physical/authentication element is present and specifies a method attribute with a value of MD5 or SHA-1 | Check for presence of a physical/authentication element containing a checksum or hash value for an integrity check (e.g. MD5, SHA-1). Warn if an entity does not have a physical/authentication element, or if none of the physical/authentication elements specify a method attribute with a value of MD5 or SHA-1. | At least one physical/authentication element with a method attribute specifying MD5 or SHA-1 and containing a checksum or hash value that can be used to perform an integrity check on the data. | true | PASTA will use this value to check the integrity of the data it downloads from your site. In addition, PASTA is planning to compare the contributor-supplied checksum/hash value documented
in the physical/authentication element to the checksum/hash value of this entity downloaded from previous revisions of this data package. If PASTA already has a copy of this entity, it will be able
to avoid an unnecessary download of the entity from your site, resulting in faster processing of the new data package revision when you update it in PASTA. | Add a physical/authentication element and store the entity checksum or hash value in it using a method such as MD5 or SHA-1. | |
9 | attributeNamesUnique | valid |
Type: | metadata |
System: | knb |
On failure: | warn |
| Attribute names are unique | Checks if attributeName values are unique in the table. Not required by EML. | Unique attribute names. | true | A good table does not have duplicate column names. | | EML Best Practices |
10 | displayDownloadData | info |
Type: | data |
System: | knb |
On failure: | info |
| Display downloaded data | Display the first kilobyte of data that is downloaded | Up to one kilobyte of data should be displayed | Cannot display NON-PLAIN TEXT DATA | | | |
11 | urlReturnsData | valid |
Type: | congruency |
System: | knb |
On failure: | error |
| URL returns data | Checks whether a URL returns data. Unless the URL is specified to be function="information", the URL should return the resource for download. | A data entity that matches the metadata | true | | | http://knb.ecoinformatics.org/software/eml/eml-2.1.0/eml-resource.html#UrlType |
12 | onlineURLs | valid |
Type: | congruency |
System: | knb |
On failure: | error |
| Online URLs are live | Check that online URLs return something | true | true | Succeeded in accessing URL: https://data.gios.asu.edu/datasets/cap/vacant_lots.zip | | |
13 | integrityChecksum | valid |
Type: | congruency |
System: | lter |
On failure: | error |
| Compare the metadata checksum for an entity to the checksum of the downloaded entity | Two possible responses: valid if checksums match; error if checksums do not match. | d9f4652ea0214df4a96b352c371e4767 | d9f4652ea0214df4a96b352c371e4767 | Matching checksums will ensure data integrity during upload to the repository. | If the found integrity hash value does not match the expected integrity hash value, there may have been a loss of integrity in the data download. Check that the hash method and hash value documented in the metadata are the correct values. | |
14 | entitySizeCongruence | valid |
Type: | congruency |
System: | knb |
On failure: | error |
| Check that the entity size in the Level 0 metadata matches the one PASTA+ generates. | Compare raw file size of file to [entity]/physical/size element in metadata. Return error if not matching. | 15346019 | 15346019 | Examining the entity size is a method for checking that this is the correct entity. | Check the entity size. | |