Module Documentation: eml-software
Back to EML Contents
The eml-software module - Software specific information

The eml-software module contains general information that describes software resources. This module is intended to fully document software that is needed in order to view a resource (such as a dataset) or to process a dataset. The software module is also imported into the eml-methods module in order to document what software was used to process or perform quality control procedures on a dataset.

The eml-software module, like other modules, may be "referenced" via the <references> tag. This allows a software resource to be described once, and then used as a reference in other locations within the EML document via its ID.

Module details
Recommended Usage: All datasets where software was used in the analysis or creation of the dataset.
Stand-alone: yes
Imports: eml-documentation, eml-resource, eml-access, eml-project, eml-physical
Imported By:
View an image of the schema: eml-software image

Element Definitions:

software  This element has no default value.
Content of this field: Description of this field:
Type: SoftwareType
The software element contains general information about a software resource that is being documented. This field is intended to give information for software tools that are needed to interpret a dataset, software that was written to process a resource, or software as a resource in itself. It is based on eml-resource and Open Software Description (OSD) a W3C submission. There can be multiple implementations within a software package because a physical software package can run on multiple hardware and/or operating systems. See implementation element documentation for a more thorough explanation.
implementation  This element has no default value.
Content of this field: Description of this field:
Elements: Use: How many:
A sequence of (
distributionrequiredunbounded
sizeoptional
languageoptionalunbounded
operatingSystemoptionalunbounded
machineProcessoroptionalunbounded
virtualMachineoptional
diskUsageoptional
runtimeMemoryUsageoptional
programmingLanguageoptionalunbounded
checksumoptional
dependencyoptionalunbounded
)
Implementation describes the hardware, operating system resources a package runs on. Note, a package can have multiple implementations. So for example, a package may be written in java and the package may run on numerous hardware and/or operating systems like Pentium/Linux, Pentium/NT and so on. Hardware and Software descriptions that have different requirements can be placed here.
Example(s):
Please see the examples for each sub-element of the implementation type.
distribution  This element has no default value.
Content of this field: Description of this field:
Type: phys:PhysicalDistributionType
This field provides information on how the resource is distributed online and offline. Connections to online systems can be described as URLs and as a list of relevant connection parameters.
size  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The physical size of an implementation on disk.
Example(s):
100 Megabytes
language  This element has no default value.
Content of this field: Description of this field:
Elements: Use: How many:
A sequence of (
LanguageValuerequired
LanguageCodeStandardoptional
)
The International Language of the software implementation.
LanguageValue  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The actual value for the language or a code for the language.
Example(s):
english
eng
LanguageCodeStandard  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The International Language Code being used in the field languageValue. See http://www.loc.gov/standards/iso639-2/
Example(s):
ISO639-2
operatingSystem  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The operating system(s) an implementation runs on.
Example(s):
Linux
Windows 95
Windows NT4
Windows XP
Sun Solaris 2.8
Mac OS X
machineProcessor  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The Machine Processor required for executing the implementation.
Example(s):
Pentium II
Intel 486
SUN Sparc
Motorola
virtualMachine  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The virtual machine that the implementation requires.
Example(s):
Java Virtual Machine 1.2
diskUsage  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The minimum amount of Disk Space required to install this implementation.
Example(s):
220 Megabytes
15 MB
100 kB
runtimeMemoryUsage  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The minimum amount of memory required to run an implementation.
Example(s):
32 Megabytes
128 MB
programmingLanguage  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The computer programming language the software package was programmed in.
Example(s):
C++
Java
C
C#
Perl
Cobol
Fortran
Lisp
Visual Basic
VBA
Bourne Shell Script
checksum  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
The generated checksum value of a software package that is a self-contained module.
Example(s):
$sum software.jar 27021 22660
licenseURL  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
URL where the license can be found
license  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
Text of the license
version  This element has no default value.
Content of this field: Description of this field:
Type: res:NonEmptyStringType
String value corresponding to the major, minor, custom, and build version.
project  This element has no default value.
Content of this field: Description of this field:
Type: proj:ResearchProjectType
This field is a description of the project with which this software product is related. Please see the eml-project module for more information.
dependency  This element has no default value.
Content of this field: Description of this field:
Elements: Use: How many:
A sequence of (
actionrequired
softwarerequired
)
The dependency element is recursive. It is a sub-element of the software Element but it also has as a sub-element its parent element Software Package. Dependency has been made optional because to make it mandatory does not allow the recursion to end. Dependency has also been made a sub-element of implementation because there can be both implementation and package level dependencies within a package.
action  This element has no default value.
Content of this field: Description of this field:
Type: Action
This element and its enumerations of assert and install can be used as commands by a software application to carry out these actions on software package dependencies. This is a change from how we have used all previous elements within eml. Up until now all other elements have been simply metadata designed to describe data, literature citations, etc... with the Action element we can use this module as a command to carry out the action.

Attribute Definitions:

id

Type: res:IDType

Use: optional

system

Type: res:SystemType

Use: optional

scope

Type: res:ScopeType

Use: optional

Default value: document

Complex Type Definitions:

SoftwareType 
Content of this field: Description of this field:
Elements: Use: How many:
A choice of (
A sequence of (
res:ResourceGroup  
implementationrequiredunbounded
dependencyoptionalunbounded
A choice of (
licenseURLrequired
OR
licenserequired
)
versionrequired
projectoptional
)
OR
res:ReferencesGroup  
)
Attributes: Use: Default Value:
idoptional
systemoptional
scopeoptionaldocument

Simple Type Definitions:

Action

Derived from: xs:string (by xs:restriction)

Allowed values:

  • install
  • assert

This element and its enumerations of assert and install can be used as commands by a software application to carry out these actions on software package dependencies. This is a change from how we have used all previous elements within eml. Up until now all other elements have been simply metadata designed to describe data, literature citations, etc... with the Action element we can use this module as a command to carry out the action.

Group Definitions:

Web Contact: jones@nceas.ucsb.edu