ediorg / ecc Goto Github PK
View Code? Open in Web Editor NEWECC = EML Congruence Checker
ECC = EML Congruence Checker
Suggested wording: With this option, data URLs in the EML will be ignored. You will be asked to upload a data file for every data entity in the package.
Several checks relate to machine-readability of data, whether code generated from the eml can successfully load the data. Often a human can still use the data even when those checks fail (warn status). Should portal offer a one-glance summary infographic to indicate to users if a dataset is auto-workflow-ready? Or "Programmatically Readable" (@mobb 's term).
Example: maybe the pastaProg buttons would grey-out if there are relevant warns.
Or, a visual summary of the checker report could decorate the left margin of the portal landing page, one row of color for each check, blue, green, or orange (no red since those do not upload). See whiteboard sketch below. (Although that might be all checks, not just machine readability related checks.) Note to @mobb this graphic could be generated from the checker report xml to an svg graphic.
@clnsmth - I have run into a situation where an investigator has submitted a dataset that includes a month field (as MM). This is not a supported dataTimeFormat in PASTA+ but does seem to be included in the ISO 8601 standard (scroll to "Truncated representations" at https://en.wikipedia.org/wiki/ISO_8601). In my case, the format for month would be --MM
. Do you think that we could add these truncated representations to https://github.com/EDIorg/ECC/blob/master/practices/dateTimeFormatString/dateTimeFormatString_list.csv ?
cc @amoeba
be aware of this effort.
The "bdq" is biological data quality, so related to darwin core records. My impression is that they are checking dateTimes in DC records, not in EML data entities (DC-A uses EML, but not the entity module)
tdwg/bdq#143
This is more in the realm of training and awareness but titles of some data set, even from seasoned IMs, can be just appalling. I wonder if there is any sort of check, even if never gets beyond 'info', that would encourage better data set titles.
create a place for the check-queue. Could be in the wiki, eg in a small table.
should hold an approximate schedule for release or when avail on dev.
I bumped into 2 datasets that appear identical; it seems that only the packageIds are different.
https://portal.edirepository.org/nis/metadataviewer?packageid=knb-lter-jrn.2100351001.45
https://portal.edirepository.org/nis/metadataviewer?packageid=knb-lter-jrn.210351001.47
same entity, same md5 hash.
Possibly, rev.47 was intended to be a metadata-only update of rev 45. The diff is below. I don't know if there is any way to trap this; possibly by checking the md5 hash regardless, and alerting the user that "hey, this entity is already assoicated with a packageID, do you really want to upload it again?" But maybe that is too much hand-holding. I contacted the site IM and let him know.
Here is the diff:
bash-3.2$ diff jrn_21000351001_45.xml jrn_210351001_47.xml
2c2
< <eml:eml packageId="knb-lter-jrn.2100351001.45"
---
> <eml:eml packageId="knb-lter-jrn.210351001.47"
21c21
< <alternateIdentifier system="https://doi.org">doi:10.6073/pasta/436280872d7e64504a2fa704190afd12</alternateIdentifier>
---
> <alternateIdentifier system="https://doi.org">doi:10.6073/pasta/b5eb273946c5ca712f841c61ede7eef4</alternateIdentifier>
49a50,53
> <keyword>LTAR</keyword>
> <keywordThesaurus>Research Networks</keywordThesaurus>
> </keywordSet>
> <keywordSet>
64c68
< <keywordThesaurus>LTER VI Proposal Category</keywordThesaurus>
---
> <keywordThesaurus>Research Area</keywordThesaurus>
81c85
< <url function="information">https://lter.jornada.nmsu.edu/content/jornada-experimental-range-permanent-quadrat-chart-data-beginning-1915-plant-cover</url>
---
> <url function="information">https://jornada.nmsu.edu/content/jornada-experimental-range-permanent-quadrat-chart-data-beginning-1915-plant-cover</url>
141c145
< <pubPlace>Jornada Basin LTER</pubPlace>
---
> <pubPlace>Jornada</pubPlace>
208c212
< <url>https://pasta.lternet.edu/package/data/eml/knb-lter-jrn/2100351001/45/10c1bf759b5700581368e64387c2a347</url>
---
> <url>https://pasta.lternet.edu/package/data/eml/knb-lter-jrn/210351001/47/10c1bf759b5700581368e64387c2a347</url>
Background: Our list of preferred dateTimeFormatString is based on ISO
there are datetime strings in this list that pg does not understand. So a plain to_timestamp('2018-08-08 09:00-08','' does not always work.
example dataset: https://portal-s.edirepository.org/nis/reportviewer?packageid=knb-lter-ble.9.1
with the dateTimeFormatString = YYYY-MM-DDThh:mm-hh
The last -hh
is the offset to UTC, and is correct.
the error you get is
ERROR: conflicting values for "mm" field in formatting string Detail: This value contradicts a previous setting for the same field type.
To see what strings posgtres allows, see
https://www.postgresqltutorial.com/postgresql-to_timestamp/
basic sections for documentation.
overview
general description
timeline?
resources (papers, etc)
links out to BPs
Pros:
commonly used.
Con:
not hierarchical on it's own
5 min, summarize bullet pts from 2pp rpt. use in a VTC, or in person.
to circulate beforehand.
Case A
If an eml doc does contain a distribution tree at the entity level, the first url must contain function="download", or use the default of no function attribute, which defaults to "download".
Whether or not the data file for that entity is uploaded thru the url in the eml doc or manually using the form, that eml doc should fail the checker.
Reason: EML BP says the url for an entity should be data, not information.
Case B
If an eml doc does not contain a distribution tree at the entity level, then there is no url element, and no function attribute.
In this case the data file for that entity would have to be uploaded manually using the form.
And pasta would be filling in the whole distribution tree, not just changing the url.
I do not know if pasta handles this case. I have not run a test doc this way.
To save others from a dead end in this maze, Margaret and I did explore the case of pasta correcting the function attribute in the url element.
However, that would be a change of pattern. Presently pasta does not correct other user errors, even when it could be assumed what the error and fix are.
I suggest we not change that pattern.
pubDate is typed to xs:Date or xs:gYear
xs:Date is ISO, so, yyyy-mm-dd (confirm)
xs:gYear is pretty flexible. -- basically any integer (and negative too).
So knb-lter-nwt.735.2 has this:
<pubDate>20111231</pubDate>
It passes the EML parser, but it refers to a year many millennia in the future, not to a date (2011-12-31)
Check action: If content is only a single integer, it must be 4-digit (warn if not)
Because this is for pubDate, its safe to assume we will not be publishing data through the ECC in the year 10000
Checking format of another xs:Date might be more complex, so saving that for later
de facto, this has been true all along - that if the entityName is longer than a certain length, the package cannot be uploaded into pasta. But the check is classified as a warn, implying that the package can go in. This has happened a few times.
Our original premise was that the only ECC-violations that caused "error" (and denial of upload to pasta) were those that meant the data table itself was unusable. And technically, an entityName that is too long does not fit that. But the pattern we have seen in data packages is the same string in entityName and entityDescription -- which is bad practice.
Comment here on whether you think it's OK to elevate the status of this check to "error"
this could be an alert (ie, gentler than a warn -- if there were such a thing)
we are using orcids more often, and encourage researchers to get them. let's check for their presence.
Abstracts should contain full sentences - ideally, dramatically correct.
Logging this suggestion for future reference. EDI is somewhat ambivalent about this right now, because some creators explicitly do not want an email included in datasets.
This might be part of a method to handle the need for a contributor accepted data policy -
e.g., contributors are contacted first.
housekeeping tasks, noticed while creating the ECC-user page for next week's workshop.
it would be lower importance than "warn", so it goes
info - burps back some dataset content
alert - things you might want to fix (or examine in the context of this dataset)
warn - things you should fix
error - things you must fix
Gastil wants to color it peach, or cyan
ask them to comment on this issue.
Not sure why I am getting this message:
Data value '2002-09-30T16:00-08' could not be parsed using formatString 'uuuu-MM-DD'T'hh:mm-hh'.\n
ID: knb-lter-sbc.4012.9,
where: portal-s
report date: 2018-02-05
There is already a suggested check in the spreadsheet (https://docs.google.com/spreadsheets/d/14r-74onIKdq2oUmn5U7itX5bfBkfJ16_BhaqTEaul74/) sticky row 82 for endDate not being in the future. This is different. I suggest comparing the range of dates in dataTables (of dateTime data type) to the asserted temporalCoverage calendarDate beginDate and endDate to warn if these are not congruent.
See for example https://portal.lternet.edu/nis/metadataviewer?packageid=knb-lter-sbc.101.1 has beginDate of 1884-03-23 where Margaret meant 1984-03-23. A warn would have caught that typo.
This check could get over complicated. A simplified scope might be to only apply this check when a single pair of beginDate and endDate are provided at the entity level, comparing to the union of all dataTables. Or only warn when a dataTable exceeds the range, not just does not fill the range of dates. In that case knb-lter-sbc.101.1 would not have been flagged.
ie, not for durations. The EML documentation may not state this, so check, and update if necessary.
dateTimeFormatString
dataTimeFormatCongruence
checksum_optimization
plus three sections for tabs on the google doc
pasta (Duane) wants to pull the list of preferred formats from a URL, eg,
ecc-project/master/head/dateTimeFormats_preferredLIst.txt
It seems like as long as you've got dateTimeFormatString_list.csv, you could add columns for Example and Iso8601, where Iso8601 is the desired date format you'd like the result exported to by your parser.
with open('dateTimeFormatString_list.csv') as f:
lines = [x.strip() for x in f.readlines()]
examples = []
for line in lines:
example = line.replace('YYYY', '1972') \
.replace('MM', '04') \
.replace('DDD', '365') \
.replace('DD', '01') \
.replace('hh', '13', 1) \
.replace('mm', '59', 1) \
.replace('ss', '04', 1) \
.replace('.sss', '.001', 1) \
.replace('hh', '06', 1) \
.replace('mm', '30', 1)
examples.append(example)
with open('examples.txt', 'wb') as f:
f.write('\n'.join(examples))
1972-04-01
1972-04-01 13:59:04.001
1972-04-01T13:59:04.001
1972-04-01 13:59:04.001Z
1972-04-01T13:59:04.001Z
1972-04-01 13:59:04.001+06:30
1972-04-01T13:59:04.001+06:30
1972-04-01 13:59:04.001+0630
1972-04-01T13:59:04.001+0630
1972-04-01 13:59:04.001+06
1972-04-01T13:59:04.001+06
1972-04-01 13:59:04.001-06:30
1972-04-01T13:59:04.001-06:30
1972-04-01 13:59:04.001-0630
1972-04-01T13:59:04.001-0630
1972-04-01 13:59:04.001-06
1972-04-01T13:59:04.001-06
1972-04-01 135904.001
1972-04-01T135904.001
1972-04-01 135904.001Z
1972-04-01T135904.001Z
1972-04-01 135904.001+06:30
1972-04-01T135904.001+06:30
1972-04-01 135904.001+0630
1972-04-01T135904.001+0630
1972-04-01 135904.001+06
1972-04-01T135904.001+06
1972-04-01 135904.001-06:30
1972-04-01T135904.001-06:30
1972-04-01 135904.001-0630
1972-04-01T135904.001-0630
1972-04-01 135904.001-06
1972-04-01T135904.001-06
1972-04-01 13:59:04
1972-04-01T13:59:04
1972-04-01 13:59:04Z
1972-04-01T13:59:04Z
1972-04-01 13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01 13:59:04+0630
1972-04-01T13:59:04+0630
1972-04-01 13:59:04+06
1972-04-01T13:59:04+06
1972-04-01 13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01 13:59:04-0630
1972-04-01T13:59:04-0630
1972-04-01 13:59:04-06
1972-04-01T13:59:04-06
1972-04-01 135904
1972-04-01T135904
1972-04-01 135904Z
1972-04-01T135904Z
1972-04-01 135904+06:30
1972-04-01T135904+06:30
1972-04-01 135904+0630
1972-04-01T135904+0630
1972-04-01 135904+06
1972-04-01T135904+06
1972-04-01 135904-06:30
1972-04-01T135904-06:30
1972-04-01 135904-0630
1972-04-01T135904-0630
1972-04-01 135904-06
1972-04-01T135904-06
1972-04-01 13:59
1972-04-01T13:59
1972-04-01 13:59Z
1972-04-01T13:59Z
1972-04-01 13:59+06:30
1972-04-01T13:59+06:30
1972-04-01 13:59+0630
1972-04-01T13:59+0630
1972-04-01 13:59+06
1972-04-01T13:59+06
1972-04-01 13:59-06:30
1972-04-01T13:59-06:30
1972-04-01 13:59-0630
1972-04-01T13:59-0630
1972-04-01 13:59-06
1972-04-01T13:59-06
1972-04-01 1359
1972-04-01T1359
1972-04-01 1359Z
1972-04-01T1359Z
1972-04-01 1359+06:30
1972-04-01T1359+06:30
1972-04-01 1359+0630
1972-04-01T1359+0630
1972-04-01 1359+06
1972-04-01T1359+06
1972-04-01 1359-06:30
1972-04-01T1359-06:30
1972-04-01 1359-0630
1972-04-01T1359-0630
1972-04-01 1359-06
1972-04-01T1359-06
1972-04-01 13
1972-04-01T13
1972-04-01 13Z
1972-04-01T13Z
1972-04-01 13+06:59
1972-04-01T13+06:59
1972-04-01 13+0659
1972-04-01T13+0659
1972-04-01 13+06
1972-04-01T13+06
1972-04-01 13-06:59
1972-04-01T13-06:59
1972-04-01 13-0659
1972-04-01T13-0659
1972-04-01 13-06
1972-04-01T13-06
1972
19720401
19720401 13:59:04.001
19720401T13:59:04.001
19720401 13:59:04.001Z
19720401T13:59:04.001Z
19720401 13:59:04.001+06:30
19720401T13:59:04.001+06:30
19720401 13:59:04.001+0630
19720401T13:59:04.001+0630
19720401 13:59:04.001+06
19720401T13:59:04.001+06
19720401 13:59:04.001-06:30
19720401T13:59:04.001-06:30
19720401 13:59:04.001-0630
19720401T13:59:04.001-0630
19720401 13:59:04.001-06
19720401T13:59:04.001-06
19720401 135904.001
19720401T135904.001
19720401 135904.001Z
19720401T135904.001Z
19720401 135904.001+06:30
19720401T135904.001+06:30
19720401 135904.001+0630
19720401T135904.001+0630
19720401 135904.001+06
19720401T135904.001+06
19720401 135904.001-06:30
19720401T135904.001-06:30
19720401 135904.001-0630
19720401T135904.001-0630
19720401 135904.001-06
19720401T135904.001-06
19720401 13:59:04
19720401T13:59:04
19720401 13:59:04Z
19720401T13:59:04Z
19720401 13:59:04+06:30
19720401T13:59:04+06:30
19720401 13:59:04+0630
19720401T13:59:04+0630
19720401 13:59:04+06
19720401T13:59:04+06
19720401 13:59:04-06:30
19720401T13:59:04-06:30
19720401 13:59:04-0630
19720401T13:59:04-0630
19720401 13:59:04-06
19720401T13:59:04-06
19720401 135904
19720401T135904
19720401 135904Z
19720401T135904Z
19720401 135904+06:30
19720401T135904+06:30
19720401 135904+0630
19720401T135904+0630
19720401 135904+06
19720401T135904+06
19720401 135904-06:30
19720401T135904-06:30
19720401 135904-0630
19720401T135904-0630
19720401 135904-06
19720401T135904-06
19720401 13:59
19720401T13:59
19720401 13:59Z
19720401T13:59Z
19720401 13:59+06:30
19720401T13:59+06:30
19720401 13:59+0630
19720401T13:59+0630
19720401 13:59+06
19720401T13:59+06
19720401 13:59-06:30
19720401T13:59-06:30
19720401 13:59-0630
19720401T13:59-0630
19720401 13:59-06
19720401T13:59-06
19720401 1359
19720401T1359
19720401 1359Z
19720401T1359Z
19720401 1359+06:30
19720401T1359+06:30
19720401 1359+0630
19720401T1359+0630
19720401 1359+06
19720401T1359+06
19720401 1359-06:30
19720401T1359-06:30
19720401 1359-0630
19720401T1359-0630
19720401 1359-06
19720401T1359-06
19720401 13
19720401T13
19720401 13Z
19720401T13Z
19720401 13+06:59
19720401T13+06:59
19720401 13+0659
19720401T13+0659
19720401 13+06
19720401T13+06
19720401 13-06:59
19720401T13-06:59
19720401 13-0659
19720401T13-0659
19720401 13-06
19720401T13-06
1972-04
197204
1972-365
1972-365 13:59:04.001
1972-365T13:59:04.001
1972-365 13:59:04.001Z
1972-365T13:59:04.001Z
1972-365 13:59:04.001+06:30
1972-365T13:59:04.001+06:30
1972-365 13:59:04.001+0630
1972-365T13:59:04.001+0630
1972-365 13:59:04.001+06
1972-365T13:59:04.001+06
1972-365 13:59:04.001-06:30
1972-365T13:59:04.001-06:30
1972-365 13:59:04.001-0630
1972-365T13:59:04.001-0630
1972-365 13:59:04.001-06
1972-365T13:59:04.001-06
1972-365 135904.001
1972-365T135904.001
1972-365 135904.001Z
1972-365T135904.001Z
1972-365 135904.001+06:30
1972-365T135904.001+06:30
1972-365 135904.001+0630
1972-365T135904.001+0630
1972-365 135904.001+06
1972-365T135904.001+06
1972-365 135904.001-06:30
1972-365T135904.001-06:30
1972-365 135904.001-0630
1972-365T135904.001-0630
1972-365 135904.001-06
1972-365T135904.001-06
1972-365 13:59:04
1972-365T13:59:04
1972-365 13:59:04Z
1972-365T13:59:04Z
1972-365 13:59:04+06:30
1972-365T13:59:04+06:30
1972-365 13:59:04+0630
1972-365T13:59:04+0630
1972-365 13:59:04+06
1972-365T13:59:04+06
1972-365 13:59:04-06:30
1972-365T13:59:04-06:30
1972-365 13:59:04-0630
1972-365T13:59:04-0630
1972-365 13:59:04-06
1972-365T13:59:04-06
1972-365 135904
1972-365T135904
1972-365 135904Z
1972-365T135904Z
1972-365 135904+06:30
1972-365T135904+06:30
1972-365 135904+0630
1972-365T135904+0630
1972-365 135904+06
1972-365T135904+06
1972-365 135904-06:30
1972-365T135904-06:30
1972-365 135904-0630
1972-365T135904-0630
1972-365 135904-06
1972-365T135904-06
1972-365 13:59
1972-365T13:59
1972-365 13:59Z
1972-365T13:59Z
1972-365 13:59+06:30
1972-365T13:59+06:30
1972-365 13:59+0630
1972-365T13:59+0630
1972-365 13:59+06
1972-365T13:59+06
1972-365 13:59-06:30
1972-365T13:59-06:30
1972-365 13:59-0630
1972-365T13:59-0630
1972-365 13:59-06
1972-365T13:59-06
1972-365 1359
1972-365T1359
1972-365 1359Z
1972-365T1359Z
1972-365 1359+06:30
1972-365T1359+06:30
1972-365 1359+0630
1972-365T1359+0630
1972-365 1359+06
1972-365T1359+06
1972-365 1359-06:30
1972-365T1359-06:30
1972-365 1359-0630
1972-365T1359-0630
1972-365 1359-06
1972-365T1359-06
1972-365 13
1972-365T13
1972-365 13Z
1972-365T13Z
1972-365 13+06:59
1972-365T13+06:59
1972-365 13+0659
1972-365T13+0659
1972-365 13+06
1972-365T13+06
1972-365 13-06:59
1972-365T13-06:59
1972-365 13-0659
1972-365T13-0659
1972-365 13-06
1972-365T13-06
1972365
1972365 13:59:04.001
1972365T13:59:04.001
1972365 13:59:04.001Z
1972365T13:59:04.001Z
1972365 13:59:04.001+06:30
1972365T13:59:04.001+06:30
1972365 13:59:04.001+0630
1972365T13:59:04.001+0630
1972365 13:59:04.001+06
1972365T13:59:04.001+06
1972365 13:59:04.001-06:30
1972365T13:59:04.001-06:30
1972365 13:59:04.001-0630
1972365T13:59:04.001-0630
1972365 13:59:04.001-06
1972365T13:59:04.001-06
1972365 135904.001
1972365T135904.001
1972365 135904.001Z
1972365T135904.001Z
1972365 135904.001+06:30
1972365T135904.001+06:30
1972365 135904.001+0630
1972365T135904.001+0630
1972365 135904.001+06
1972365T135904.001+06
1972365 135904.001-06:30
1972365T135904.001-06:30
1972365 135904.001-0630
1972365T135904.001-0630
1972365 135904.001-06
1972365T135904.001-06
1972365 13:59:04
1972365T13:59:04
1972365 13:59:04Z
1972365T13:59:04Z
1972365 13:59:04+06:30
1972365T13:59:04+06:30
1972365 13:59:04+0630
1972365T13:59:04+0630
1972365 13:59:04+06
1972365T13:59:04+06
1972365 13:59:04-06:30
1972365T13:59:04-06:30
1972365 13:59:04-0630
1972365T13:59:04-0630
1972365 13:59:04-06
1972365T13:59:04-06
1972365 135904
1972365T135904
1972365 135904Z
1972365T135904Z
1972365 135904+06:30
1972365T135904+06:30
1972365 135904+0630
1972365T135904+0630
1972365 135904+06
1972365T135904+06
1972365 135904-06:30
1972365T135904-06:30
1972365 135904-0630
1972365T135904-0630
1972365 135904-06
1972365T135904-06
1972365 13:59
1972365T13:59
1972365 13:59Z
1972365T13:59Z
1972365 13:59+06:30
1972365T13:59+06:30
1972365 13:59+0630
1972365T13:59+0630
1972365 13:59+06
1972365T13:59+06
1972365 13:59-06:30
1972365T13:59-06:30
1972365 13:59-0630
1972365T13:59-0630
1972365 13:59-06
1972365T13:59-06
1972365 1359
1972365T1359
1972365 1359Z
1972365T1359Z
1972365 1359+06:30
1972365T1359+06:30
1972365 1359+0630
1972365T1359+0630
1972365 1359+06
1972365T1359+06
1972365 1359-06:30
1972365T1359-06:30
1972365 1359-0630
1972365T1359-0630
1972365 1359-06
1972365T1359-06
1972365 13
1972365T13
1972365 13Z
1972365T13Z
1972365 13+06:59
1972365T13+06:59
1972365 13+0659
1972365T13+0659
1972365 13+06
1972365T13+06
1972365 13-06:59
1972365T13-06:59
1972365 13-0659
1972365T13-0659
1972365 13-06
1972365T13-06
1972-04-01T00:00:00
1972-04-01T13:59:04.001000
1972-04-01T13:59:04.001000
1972-04-01T13:59:04.001000+00:00
1972-04-01T13:59:04.001000+00:00
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:00
1972-04-01T13:59:04.001000+06:00
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:00
1972-04-01T13:59:04.001000-06:00
1972-04-01T13:59:04.001000
1972-04-01T13:59:04.001000
1972-04-01T13:59:04.001000+00:00
1972-04-01T13:59:04.001000+00:00
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:00
1972-04-01T13:59:04.001000+06:00
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:00
1972-04-01T13:59:04.001000-06:00
1972-04-01T13:59:04
1972-04-01T13:59:04
1972-04-01T13:59:04+00:00
1972-04-01T13:59:04+00:00
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:00
1972-04-01T13:59:04+06:00
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:00
1972-04-01T13:59:04-06:00
1972-04-01T13:59:04
1972-04-01T13:59:04
1972-04-01T13:59:04+00:00
1972-04-01T13:59:04+00:00
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:00
1972-04-01T13:59:04+06:00
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:00
1972-04-01T13:59:04-06:00
1972-04-01T13:59:00
1972-04-01T13:59:00
1972-04-01T13:59:00+00:00
1972-04-01T13:59:00+00:00
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:00
1972-04-01T13:59:00+06:00
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:00
1972-04-01T13:59:00-06:00
1972-04-01T13:59:00
1972-04-01T13:59:00
1972-04-01T13:59:00+00:00
1972-04-01T13:59:00+00:00
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:00
1972-04-01T13:59:00+06:00
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:00
1972-04-01T13:59:00-06:00
1972-04-01T13:00:00
1972-04-01T13:00:00
1972-04-01T13:00:00+00:00
1972-04-01T13:00:00+00:00
1972-04-01T13:00:00+06:59
1972-04-01T13:00:00+06:59
1972-04-01T13:00:00+06:59
1972-04-01T13:00:00+06:59
1972-04-01T13:00:00+06:00
1972-04-01T13:00:00+06:00
1972-04-01T13:00:00-06:59
1972-04-01T13:00:00-06:59
1972-04-01T13:00:00-06:59
1972-04-01T13:00:00-06:59
1972-04-01T13:00:00-06:00
1972-04-01T13:00:00-06:00
1972-03-06T00:00:00
1972-04-01T00:00:00
1972-04-01T13:59:04.001000
1972-04-01T13:59:04.001000
1972-04-01T13:59:04.001000+00:00
1972-04-01T13:59:04.001000+00:00
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:00
1972-04-01T13:59:04.001000+06:00
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:00
1972-04-01T13:59:04.001000-06:00
1972-04-01T13:59:04.001000
1972-04-01T13:59:04.001000
1972-04-01T13:59:04.001000+00:00
1972-04-01T13:59:04.001000+00:00
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:30
1972-04-01T13:59:04.001000+06:00
1972-04-01T13:59:04.001000+06:00
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:30
1972-04-01T13:59:04.001000-06:00
1972-04-01T13:59:04.001000-06:00
1972-04-01T13:59:04
1972-04-01T13:59:04
1972-04-01T13:59:04+00:00
1972-04-01T13:59:04+00:00
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:00
1972-04-01T13:59:04+06:00
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:00
1972-04-01T13:59:04-06:00
1972-04-01T13:59:04
1972-04-01T13:59:04
1972-04-01T13:59:04+00:00
1972-04-01T13:59:04+00:00
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:30
1972-04-01T13:59:04+06:00
1972-04-01T13:59:04+06:00
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:30
1972-04-01T13:59:04-06:00
1972-04-01T13:59:04-06:00
1972-04-01T13:59:00
1972-04-01T13:59:00
1972-04-01T13:59:00+00:00
1972-04-01T13:59:00+00:00
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:00
1972-04-01T13:59:00+06:00
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:00
1972-04-01T13:59:00-06:00
1972-04-01T13:59:00
1972-04-01T13:59:00
1972-04-01T13:59:00+00:00
1972-04-01T13:59:00+00:00
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:30
1972-04-01T13:59:00+06:00
1972-04-01T13:59:00+06:00
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:30
1972-04-01T13:59:00-06:00
1972-04-01T13:59:00-06:00
1972-04-01T13:00:00
1972-04-01T13:00:00
1972-04-01T13:00:00+00:00
1972-04-01T13:00:00+00:00
1972-04-01T13:00:00+06:59
1972-04-01T13:00:00+06:59
1972-04-01T13:00:00+06:59
1972-04-01T13:00:00+06:59
1972-04-01T13:00:00+06:00
1972-04-01T13:00:00+06:00
1972-04-01T13:00:00-06:59
1972-04-01T13:00:00-06:59
1972-04-01T13:00:00-06:59
1972-04-01T13:00:00-06:59
1972-04-01T13:00:00-06:00
1972-04-01T13:00:00-06:00
per chat with Mark and Duane, 2 new checks
for entity size presence: [entity]/physical/size
entitySizePresence - statusType = warn
congruence of stated value with size found when pasta downloads the entity
entitySizeCongruence - statusType = error
these are entered in the google spreadsheet sticky rows 96, 97
since one of them has statusType error, we will convene meeting of the ECC working group to discuss and schedule.
These suggested after LTER ASM, IMC sessions.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.