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
edi.1133.20
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
9 '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.
1 '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.
1 '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.
1 '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
11 words found.
EML Best Practices, v.2, p. 13
14
fundingPresence
warn
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
funding not found
Searches will want to display datasets by funder or grant id.
Include the funding source, please.
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.
152 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
Entity Report
Entity Name:
current_year_feather_catch.csv
Entity Identifier:
#
Identifier
Status
Quality Check
Name
Description
Expected
Found
Explanation
Suggestion
Reference
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
30
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.
'numHeaderLines' element: 1
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.
Warn the user if the numberOfRecords check is not present
A number of records element is expected for this entity
numberOfRecords element found
This is a valuable check that we have the correct table.
8
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 3386304 and size unit specified as 'bytes'. Please note that a size element specified with a unit other than 'byte' will not be tested for congruence.
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.
9
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.
10
dateTimeFormatString
valid
Type:
metadata
System:
knb
On failure:
warn
dateTime/formatString specified in metadata is from a preferred set of values
Certain features of dateTime data formats are preferred, eg, ISO 8601, 4-digit years.
This check looks at metadata to see if the dateTime format is in that preferred list.
A formatString value that is a member of the preferred set is expected.
YYYY-MM-DD hh:mm:ss
A preferred format string was found.
Modify the dateTime/formatString, selecting from among the preferred values one that best matches the data format
11
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
12
displayDownloadData
info
Type:
data
System:
knb
On failure:
info
Display downloaded data
Display the first kilobyte of data that is downloaded
Succeeded in accessing URL: <![CDATA[https://raw.githubusercontent.com/SRJPE/jpe-feather-edi/main/data/current_year_feather_catch.csv]]>
15
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.
2680f649284d9fad4dec6ed271591457
2680f649284d9fad4dec6ed271591457
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.
16
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.
3386304
3386304
Examining the entity size is a method for checking that this is the correct entity.
Check the entity size.
17
databaseTableCreated
valid
Type:
metadata
System:
knb
On failure:
error
Database table created
Status of creating a database table
A database table is expected to be generated from the EML attributes.
A database table was generated from the attributes description
Data are examined and possible record delimiters are displayed
If no record delimiter was specified, we assume that \r\n is the delimiter. Search the first row for other record delimiters and see if other delimiters are found.
No other potential record delimiters expected in the first row.
No other potential record delimiters were detected. A valid record delimiter was previously detected
No errors expected during data loading or data loading was not attempted for this data entity
Error inserting data at row 99.
<![CDATA[For attribute name "totalLength", data value 73.0 is not the expected data type of 'BIGINT': For input string: "73.0"]]>
21
headerRowAttributeNames
info
Type:
congruency
System:
lter
On failure:
info
Header row is displayed alongside attribute names
Compare the content of the data header row to the content of EML attribute names.
No expectation, information only
Found for headerRowAttributeNames check
<![CDATA[*** HEADER ROWS ***
ProjectDescriptionID,trapVisitID,visitTime,siteName,subSiteName,visitType,catchRawID,commonName,run,fishOrigin,lifeStage,forkLength,totalLength,n,actualCount,releaseID
*** ATTRIBUTE LIST ***
ProjectDescriptionID,trapVisitID,visitTime,siteName,subSiteName,visitType,catchRawID,commonName,run,fishOrigin,lifeStage,forkLength,totalLength,n,actualCount,releaseID]]>
Customer should evaluate the findings
22
dateFormatMatches
warn
Type:
congruency
System:
lter
On failure:
warn
Date format in metadata matches data
dateTime/formatString in attribute metadata is from the preferred list, and the data matches. A non-match generates only a warn.
Format string is preferred, and all data values match the format string
Found for dateFormatMatches check
'2024-01-02T10:17:40Z' is not congruent with the formatString 'YYYY-MM-DD hh:mm:ss' as specified in the metadata. regex: ^(\d\d\d\d)-(01|02|03|04|05|06|07|08|09|10|11|12)-(0[1-9]|[1-2]\d|30|31) ([0-1]\d|2[0-4]):([0-5]\d):([0-5]\d)$'2024-01-02T10:17:40Z' is not congruent with the formatString 'YYYY-MM-DD hh:mm:ss' as specified in the metadata. regex: ^(\d\d\d\d)-(01|02|03|04|05|06|07|08|09|10|11|12)-(0[1-9]|[1-2]\d|30|31) ([0-1]\d|2[0-4]):([0-5]\d):([0-5]\d)$\n
One or more datetime values found in the data do not match the format string specified in the metadata.
Dates should be consistently formatted and match the formatString in metadata.
23
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: <![CDATA[file:///home/pasta/local/data/edi.1133.20/c142ed6d5527bb824d113c7d64b54215]]>
Entity Report
Entity Name:
current_year_feather_recapture.csv
Entity Identifier:
#
Identifier
Status
Quality Check
Name
Description
Expected
Found
Explanation
Suggestion
Reference
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
34
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.
'numHeaderLines' element: 1
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.
Warn the user if the numberOfRecords check is not present
A number of records element is expected for this entity
numberOfRecords element found
This is a valuable check that we have the correct table.
8
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 28718 and size unit specified as 'bytes'. Please note that a size element specified with a unit other than 'byte' will not be tested for congruence.
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.
9
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.
10
dateTimeFormatString
valid
Type:
metadata
System:
knb
On failure:
warn
dateTime/formatString specified in metadata is from a preferred set of values
Certain features of dateTime data formats are preferred, eg, ISO 8601, 4-digit years.
This check looks at metadata to see if the dateTime format is in that preferred list.
A formatString value that is a member of the preferred set is expected.
YYYY-MM-DD hh:mm:ss
A preferred format string was found.
Modify the dateTime/formatString, selecting from among the preferred values one that best matches the data format
11
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
12
displayDownloadData
info
Type:
data
System:
knb
On failure:
info
Display downloaded data
Display the first kilobyte of data that is downloaded
Succeeded in accessing URL: <![CDATA[https://raw.githubusercontent.com/SRJPE/jpe-feather-edi/main/data/current_year_feather_recapture.csv]]>
15
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.
54d9ac74619e9004311c42e062e89d9d
54d9ac74619e9004311c42e062e89d9d
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.
16
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.
28718
28718
Examining the entity size is a method for checking that this is the correct entity.
Check the entity size.
17
databaseTableCreated
valid
Type:
metadata
System:
knb
On failure:
error
Database table created
Status of creating a database table
A database table is expected to be generated from the EML attributes.
A database table was generated from the attributes description
Data are examined and possible record delimiters are displayed
If no record delimiter was specified, we assume that \r\n is the delimiter. Search the first row for other record delimiters and see if other delimiters are found.
No other potential record delimiters expected in the first row.
No other potential record delimiters were detected. A valid record delimiter was previously detected
No errors expected during data loading or data loading was not attempted for this data entity
The data table loaded successfully into a database
24
numberOfRecords
valid
Type:
congruency
System:
knb
On failure:
warn
Number of records in metadata matches number of rows loaded
Compare number of records specified in metadata to number of records found in data
185
185
The expected number of records (185) was found in the data table.
25
headerRowAttributeNames
info
Type:
congruency
System:
lter
On failure:
info
Header row is displayed alongside attribute names
Compare the content of the data header row to the content of EML attribute names.
No expectation, information only
Found for headerRowAttributeNames check
<![CDATA[*** HEADER ROWS ***
ProjectDescriptionID,catchRawID,trapVisitID,commonName,releaseID,run,fishOrigin,lifeStage,forkLength,n,visitTime,visitType,siteName,subSiteName,markType,markColor,markPosition,markCode
*** ATTRIBUTE LIST ***
ProjectDescriptionID,catchRawID,trapVisitID,commonName,releaseID,run,fishOrigin,lifeStage,forkLength,n,visitTime,visitType,siteName,subSiteName,markType,markColor,markPosition,markCode]]>
Customer should evaluate the findings
26
dateFormatMatches
warn
Type:
congruency
System:
lter
On failure:
warn
Date format in metadata matches data
dateTime/formatString in attribute metadata is from the preferred list, and the data matches. A non-match generates only a warn.
Format string is preferred, and all data values match the format string
Found for dateFormatMatches check
'2024-01-11T12:22:42Z' is not congruent with the formatString 'YYYY-MM-DD hh:mm:ss' as specified in the metadata. regex: ^(\d\d\d\d)-(01|02|03|04|05|06|07|08|09|10|11|12)-(0[1-9]|[1-2]\d|30|31) ([0-1]\d|2[0-4]):([0-5]\d):([0-5]\d)$'2024-01-06T11:11:48Z' is not congruent with the formatString 'YYYY-MM-DD hh:mm:ss' as specified in the metadata. regex: ^(\d\d\d\d)-(01|02|03|04|05|06|07|08|09|10|11|12)-(0[1-9]|[1-2]\d|30|31) ([0-1]\d|2[0-4]):([0-5]\d):([0-5]\d)$\n
One or more datetime values found in the data do not match the format string specified in the metadata.
Dates should be consistently formatted and match the formatString in metadata.
Entity Report
Entity Name:
current_year_feather_release.csv
Entity Identifier:
#
Identifier
Status
Quality Check
Name
Description
Expected
Found
Explanation
Suggestion
Reference
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
32
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.
'numHeaderLines' element: 1
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.
Warn the user if the numberOfRecords check is not present
A number of records element is expected for this entity
numberOfRecords element found
This is a valuable check that we have the correct table.
8
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 3865 and size unit specified as 'bytes'. Please note that a size element specified with a unit other than 'byte' will not be tested for congruence.
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.
9
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.
10
dateTimeFormatString
valid
Type:
metadata
System:
knb
On failure:
warn
dateTime/formatString specified in metadata is from a preferred set of values
Certain features of dateTime data formats are preferred, eg, ISO 8601, 4-digit years.
This check looks at metadata to see if the dateTime format is in that preferred list.
A formatString value that is a member of the preferred set is expected.
YYYY-MM-DD hh:mm:ss
A preferred format string was found.
Modify the dateTime/formatString, selecting from among the preferred values one that best matches the data format
11
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
12
displayDownloadData
info
Type:
data
System:
knb
On failure:
info
Display downloaded data
Display the first kilobyte of data that is downloaded
Succeeded in accessing URL: <![CDATA[https://raw.githubusercontent.com/SRJPE/jpe-feather-edi/main/data/current_year_feather_release.csv]]>
15
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.
91af1dee0a105fcbf54ac56f3ae83b5e
91af1dee0a105fcbf54ac56f3ae83b5e
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.
16
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.
3865
3865
Examining the entity size is a method for checking that this is the correct entity.
Check the entity size.
17
databaseTableCreated
valid
Type:
metadata
System:
knb
On failure:
error
Database table created
Status of creating a database table
A database table is expected to be generated from the EML attributes.
A database table was generated from the attributes description
Data are examined and possible record delimiters are displayed
If no record delimiter was specified, we assume that \r\n is the delimiter. Search the first row for other record delimiters and see if other delimiters are found.
No other potential record delimiters expected in the first row.
No other potential record delimiters were detected. A valid record delimiter was previously detected
No errors expected during data loading or data loading was not attempted for this data entity
The data table loaded successfully into a database
24
numberOfRecords
valid
Type:
congruency
System:
knb
On failure:
warn
Number of records in metadata matches number of rows loaded
Compare number of records specified in metadata to number of records found in data
25
25
The expected number of records (25) was found in the data table.
25
headerRowAttributeNames
info
Type:
congruency
System:
lter
On failure:
info
Header row is displayed alongside attribute names
Compare the content of the data header row to the content of EML attribute names.
No expectation, information only
Found for headerRowAttributeNames check
<![CDATA[*** HEADER ROWS ***
projectDescriptionID,releaseID,releaseTime,commonName,markedRun,markedFishOrigin,sourceOfFishSite,releaseSite,releaseSubSite,nReleased,testDays,appliedMarkType,appliedMarkColor,appliedMarkPosition,appliedMarkCode,IncludeInAnalysis
*** ATTRIBUTE LIST ***
projectDescriptionID,releaseID,releaseTime,commonName,markedRun,markedFishOrigin,sourceOfFishSite,releaseSite,releaseSubSite,nReleased,testDays,appliedMarkType,appliedMarkColor,appliedMarkPosition,appliedMarkCode,IncludeInAnalysis]]>
Customer should evaluate the findings
26
dateFormatMatches
warn
Type:
congruency
System:
lter
On failure:
warn
Date format in metadata matches data
dateTime/formatString in attribute metadata is from the preferred list, and the data matches. A non-match generates only a warn.
Format string is preferred, and all data values match the format string
Found for dateFormatMatches check
'2024-01-10T12:30:00Z' is not congruent with the formatString 'YYYY-MM-DD hh:mm:ss' as specified in the metadata. regex: ^(\d\d\d\d)-(01|02|03|04|05|06|07|08|09|10|11|12)-(0[1-9]|[1-2]\d|30|31) ([0-1]\d|2[0-4]):([0-5]\d):([0-5]\d)$'2024-01-17T12:51:00Z' is not congruent with the formatString 'YYYY-MM-DD hh:mm:ss' as specified in the metadata. regex: ^(\d\d\d\d)-(01|02|03|04|05|06|07|08|09|10|11|12)-(0[1-9]|[1-2]\d|30|31) ([0-1]\d|2[0-4]):([0-5]\d):([0-5]\d)$\n
One or more datetime values found in the data do not match the format string specified in the metadata.
Dates should be consistently formatted and match the formatString in metadata.
Entity Report
Entity Name:
current_year_feather_trap.csv
Entity Identifier:
#
Identifier
Status
Quality Check
Name
Description
Expected
Found
Explanation
Suggestion
Reference
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
29
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.
'numHeaderLines' element: 1
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.
Warn the user if the numberOfRecords check is not present
A number of records element is expected for this entity
numberOfRecords element found
This is a valuable check that we have the correct table.
8
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 77724 and size unit specified as 'bytes'. Please note that a size element specified with a unit other than 'byte' will not be tested for congruence.
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.
9
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.
10
dateTimeFormatString
valid
Type:
metadata
System:
knb
On failure:
warn
dateTime/formatString specified in metadata is from a preferred set of values
Certain features of dateTime data formats are preferred, eg, ISO 8601, 4-digit years.
This check looks at metadata to see if the dateTime format is in that preferred list.
A formatString value that is a member of the preferred set is expected.
YYYY-MM-DD hh:mm:ss
A preferred format string was found.
Modify the dateTime/formatString, selecting from among the preferred values one that best matches the data format
11
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
12
displayDownloadData
info
Type:
data
System:
knb
On failure:
info
Display downloaded data
Display the first kilobyte of data that is downloaded
Succeeded in accessing URL: <![CDATA[https://raw.githubusercontent.com/SRJPE/jpe-feather-edi/main/data/current_year_feather_trap.csv]]>
15
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.
22c928c21fc4e0f227fd71fc31521e5a
22c928c21fc4e0f227fd71fc31521e5a
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.
16
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.
77724
77724
Examining the entity size is a method for checking that this is the correct entity.
Check the entity size.
17
databaseTableCreated
valid
Type:
metadata
System:
knb
On failure:
error
Database table created
Status of creating a database table
A database table is expected to be generated from the EML attributes.
A database table was generated from the attributes description
Data are examined and possible record delimiters are displayed
If no record delimiter was specified, we assume that \r\n is the delimiter. Search the first row for other record delimiters and see if other delimiters are found.
No other potential record delimiters expected in the first row.
No other potential record delimiters were detected. A valid record delimiter was previously detected
No errors expected during data loading or data loading was not attempted for this data entity
The data table loaded successfully into a database
24
numberOfRecords
valid
Type:
congruency
System:
knb
On failure:
warn
Number of records in metadata matches number of rows loaded
Compare number of records specified in metadata to number of records found in data
432
432
The expected number of records (432) was found in the data table.
25
headerRowAttributeNames
info
Type:
congruency
System:
lter
On failure:
info
Header row is displayed alongside attribute names
Compare the content of the data header row to the content of EML attribute names.
No expectation, information only
Found for headerRowAttributeNames check
<![CDATA[*** HEADER ROWS ***
projectDescriptionID,trapVisitID,visitTime,siteName,subSiteName,visitType,fishProcessed,trapFunctioning,counterAtEnd,rpmRevolutionsAtStart,rpmRevolutionsAtEnd,includeCatch,waterTemp,turbidity
*** ATTRIBUTE LIST ***
projectDescriptionID,trapVisitID,visitTime,siteName,subSiteName,visitType,fishProcessed,trapFunctioning,counterAtEnd,rpmRevolutionsAtStart,rpmRevolutionsAtEnd,includeCatch,waterTemp,turbidity]]>
Customer should evaluate the findings
26
dateFormatMatches
warn
Type:
congruency
System:
lter
On failure:
warn
Date format in metadata matches data
dateTime/formatString in attribute metadata is from the preferred list, and the data matches. A non-match generates only a warn.
Format string is preferred, and all data values match the format string
Found for dateFormatMatches check
'2024-01-01T10:14:49Z' is not congruent with the formatString 'YYYY-MM-DD hh:mm:ss' as specified in the metadata. regex: ^(\d\d\d\d)-(01|02|03|04|05|06|07|08|09|10|11|12)-(0[1-9]|[1-2]\d|30|31) ([0-1]\d|2[0-4]):([0-5]\d):([0-5]\d)$'2024-01-01T11:13:34Z' is not congruent with the formatString 'YYYY-MM-DD hh:mm:ss' as specified in the metadata. regex: ^(\d\d\d\d)-(01|02|03|04|05|06|07|08|09|10|11|12)-(0[1-9]|[1-2]\d|30|31) ([0-1]\d|2[0-4]):([0-5]\d):([0-5]\d)$\n
One or more datetime values found in the data do not match the format string specified in the metadata.
Dates should be consistently formatted and match the formatString in metadata.
Entity Report
Entity Name:
feather.zip
Entity Identifier:
#
Identifier
Status
Quality Check
Name
Description
Expected
Found
Explanation
Suggestion
Reference
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
11
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.
'numHeaderLines' element: 1
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.
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 2722498 and size unit specified as 'bytes'. Please note that a size element specified with a unit other than 'byte' will not be tested for congruence.
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
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
10
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.
Succeeded in accessing URL: <![CDATA[https://raw.githubusercontent.com/SRJPE/jpe-feather-edi/main/data/feather.zip]]>
12
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.
fd1dc345aee4b97426061f39c793fd9b
fd1dc345aee4b97426061f39c793fd9b
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.
13
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.
2722498
2722498
Examining the entity size is a method for checking that this is the correct entity.