Comments (4)
@mbjones What is the best way to connect information in a coverage node to that in a attributeList? e.g. if I have a column header that is a species, or I have a column consisting of different species names, it seems logical that I would want to tie this information to the taxanomic coverage section of the node. I gather I can do this with id
attribute and a <reference>
node? Can you give me a minimal example?
Also, does each EML file have a single coverage node? Does it always appear as a child of a dataset (or equivalent module?) or does it appear in deeper levels (e.g. at the attributeList level, etc).
I imagine the same would naturally apply to cases where time or geographic coordinates appear in attribute elements as well. Therefore I'm also trying to imagine the best user interface to address this -- e.g. declaring a column to have species names automatically fills out the coverage for taxanomic coverage, etc...
from eml.
@cboettig That's correct -- you give an id to the attribute you want to describe, then put a coverage element in the additionalMetadata section, and use the <describes>
element in additionalMetadata to point at the id of the attribute. Although this ability to describe coverage for entities and attributes was designed into EML, we have not really seen it used, and most software that understands EML will probably not pay any attention to the linkage. Most people simply provide overall coverage at the <dataset>
level.
You can repeat the items under the coverage tree if you have discontinuous coverages, such as a temporal coverage from 1990-1993 and 1998-2000, or disjoint spatial areas. Many groups use this to provide bounding boxes for discrete sampling areas that are not contiguous.
from eml.
@mbjones Thanks, that implementation makes sense. Just to make sure I understand, after assigning an id to the <attribute>
I create an additional metadata element like so:
<additionalMetadata>
<describes>1838f0b53178056585f5bda86818ca30</describes>
<metadata>
<coverage>
...
How about if the column values were species names (instead of the column headers), would I denote them as a nominal/enumerated domain and I would put the attribute on the "definition" element? e.g.
<attribute id="1838f0b53178056585f5bda86818ca30">
<attributeName>Species</attributeName>
<attributeDefinition>Species name</attributeDefinition>
<measurementScale>
<nominal>
<nonNumericDomain>
<enumeratedDomain>
<codeDefinition>
<code>coho</code>
<definition>Oncorhynchus kisutch</definition>
and so on for all species in the attribute list? Or would I do better to document at the level of the attribute and list all species? (The latter seems more concise, but also seems to leave the mapping between the species names used in the columns and the semantically precise species names from the columns ambiguous?)
It's a good point that this all might be rather academic if existing software ignores it. It would be good to keep this in mind at least. Is there a list of software that consumes EML? I've only come across metacat and morpho. Harvard Forest tells me they generate their EML using a combination of generic XML editor Oxygen (for stuff above the <entity>
level) and Morpho for the attributes. It would be good to generate EML with an eye to what will make it most powerful for existing platforms that consume it (while still supporting the full power of the schema when desired).
We could generate the <additionalMetadata><describes>
nodes for every species in a column automatically, but perhaps that's not the best way to go.
In light of the 'standard usage', perhaps it would be better to handle this kind of thing using the kind of semantic annotation approaches discussed in #5 (also see issue #13)? e.g. I've always been a bit confused by the division -- for some terms EML appears to give us semantically precise vocabulary for certain things: e.g. the taxonomic, geospatial, and temporal terms in "coverage", as well as the units. On the other hand, perhaps the EML notion of "gram" is less powerful the OBOE notion http://ecoinformatics.org/oboe/oboe.1.0/oboe-standards.owl#Gram because the latter is part of an OWL ontology that enables further reasoning?
Perhaps we wait to write a separate package provides such semantic annotation automatically when you declare column "Species" has species names, etc.
from eml.
Coverage classes are now defined.
- Need to implement some user-friendly constructor files (potentially with wizard cues for missing required definitions)...
- Need to add examples and tests making use of these
- Need to think out and implement functions that can automatically fill these in when possible (e.g. from species names in attributeList, aided by
taxize
. - Longer-term: the semantics integration discussed above.
from eml.
Related Issues (20)
- set_attributes forces all numeric fields to have storageType = "float" HOT 7
- Taxonomic Coverage and bibtex HOT 1
- Species name epithet is not handled the way specified in the EML schema HOT 2
- Error with molePerKilogram in unit list returned by get_unitList() HOT 3
- dataset and datatable entries from README example fail HOT 2
- `shiny_attributes` performance improvments HOT 8
- Revisit how users can find a learn to use the `eml$*` constructors HOT 2
- Add a minimum version requirement on taxadb and wait to release the next version of this package HOT 1
- Web scraping | sapply function | Error in readBin(5L, "raw", 65536L) : Failure when receiving data from the peer HOT 1
- Creating EML elements with XML attributes HOT 2
- Duplicate person when using `write_eml()` HOT 2
- Set attributes for properties, e.g. `<title xml:lang="eng">` HOT 3
- Function to convert DataCite metadata to EML: good fit for this package? HOT 7
- `<![CDATA[` not always recognized HOT 1
- [Units] Discussion about current unit list HOT 5
- `set_coverage()`: Express common names in `commonName` in `taxonomicCoverage` HOT 10
- `set_responsibleParty()`: allow to create organization parties HOT 1
- namespace conflict introduced when importing/exporting EML generated under older schema
- EML::eml_validate conflicts with knb.ecoinformatics.org parser & appears to introduce invalid xml into valid files HOT 1
- EML seems to have trouble with foreign key constraints HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eml.