Module Documentation: eml-software
Back to EML Contents
The eml-software module contains general information that describes software resources.

Element Definitions:

software
Content of this field: Description of this field:
Type: SoftwareType
Attributes: Required?: Default Value:

Description:
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.
Example:
Please see the examples for each subelement of the 'software' type.
implementation
Content of this field: Description of this field:
Elements: Required?: How many:
A sequence of (
distributionOptionalMultiple Times
sizeOptionalMultiple Times
languageOptionalMultiple Times
operatingSystemOptionalMultiple Times
machineProcessorOptionalMultiple Times
virtualMachineOptionalMultiple Times
diskUsageOptionalMultiple Times
runtimeMemoryUsageOptionalMultiple Times
programmingLanguageOptionalMultiple Times
checksumOptionalMultiple Times
dependencyOptionalMultiple Times
)
Attributes: Required?: Default Value:

Description:
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:
Please see the examples for each subelement of the 'implementation' type.
distribution
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:

Example:
filename.jar
size
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:

Example:
100 Megabytes
language
Content of this field: Description of this field:
Elements: Required?: How many:
A sequence of (
LanguageValueOptionalMultiple Times
LanguageCodeStandardOptionalMultiple Times
)
Attributes: Required?: Default Value:

Description:

Example:
LanguageValue
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
The value could be just a text string like english or french or it could be an International Language code like ISO 639-2.
Example:
'english' or 'en'
LanguageCodeStandard
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
See www.loc.gov/standards/iso639-2/
Example:
'que' for Quechua, 'eng' for English and so on...
operatingSystem
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
see summary
Example:
Windows 95, Window NT, Windows XP, Sun Solaris 2.8
machineProcessor
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
see summary
Example:
Pentium II, Intel 486, SUN Sparc
virtualMachine
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
see summary
Example:
Java Virtual Machne 1.2
diskUsage
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
see summary
Example:
220 Megabytes
runtimeMemoryUsage
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
see summary
Example:
32 Megabytes
programmingLanguage
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
see summary
Example:
C++, Java, C, C#, Perl, Cobol, Fortran, Lisp, Visual Basic, VBA, Bourne Shell Script etc....
checksum
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
see summary
Example:
$sum software.jar 27021 22660
licenseURL
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:
license
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:
version
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:

Description:
String value corresponding to the major, minor, custom, and build version.
Example:
access
Content of this field: Description of this field:
Type: acc:AccessType
Attributes: Required?: Default Value:
project
Content of this field: Description of this field:
Type: proj:ResearchProjectType
Attributes: Required?: Default Value:
references
Content of this field: Description of this field:
Type: xs:string
Attributes: Required?: Default Value:
dependency
Content of this field: Description of this field:
Elements: Required?: How many:
A sequence of (
actionOptionalMultiple Times
softwareOptionalMultiple Times
)
Attributes: Required?: Default Value:

Description:
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. Dependecy 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.
Example:
action
Content of this field: Description of this field:
Type: Action
Attributes: Required?: Default Value:

Attribute Definitions:

id

Type: xs:string

Use: optional

system

Type: xs:string

Use: optional

scope

Type: res:ScopeType

Use: optional

Complex Type Definitions:

SoftwareType
Content of this field: Description of this field:
Elements: Required?: How many:
A choice of (
A sequence of (
implementationOptionalMultiple Times
dependencyOptionalMultiple Times
A choice of (
licenseURLOptionalMultiple Times
OR
licenseOptionalMultiple Times
)
versionOptionalMultiple Times
accessOptionalMultiple Times
projectOptionalMultiple Times
)
OR
referencesOptionalMultiple Times
)
Attributes: Required?: Default Value:
idoptional
systemoptional
scopeoptional

Simple Type Definitions:

Action

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

Allowed values:

  • install
  • assert


Description:
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.
Example:

Web Contact: jones@nceas.ucsb.edu