update yaml and implement graph/yaml consistency check. Add local bootstrap assets

This commit is contained in:
Markus Döring 2015-01-13 14:33:37 +01:00
parent ab2da327ee
commit 626b4239b8
8 changed files with 2105 additions and 1961 deletions

5
assets/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

6
assets/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

5
assets/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,8 @@
Location:
definition: 'A spatial region or named place.'
comment: ''
details: http://dublincore.org/usage/terms/history/#Location-001
type:
definition: 'The nature or genre of the resource. For Darwin Core, recommended best practice is to use the name of the class that defines the root of the record.'
comment: 'Examples: "StillImage", "MovingImage", "Sound", "PhysicalObject", "Event", "Text". For discussion see http://terms.tdwg.org/wiki/dwc:type'

View File

@ -1 +1 @@
- Record-level Terms: - DC_type - DC_modified - DC_language - DC_license - DC_rightsHolder - DC_accessRights - DC_bibliographicCitation - DC_references - institutionID - collectionID - datasetID - institutionCode - collectionCode - datasetName - ownerInstitutionCode - basisOfRecord - informationWithheld - dataGeneralizations - dynamicProperties - Occurrence: - occurrenceID - catalogNumber - recordNumber - recordedBy - individualCount - sex - lifeStage - reproductiveCondition - behavior - establishmentMeans - occurrenceStatus - preparations - disposition - associatedMedia - associatedReferences - associatedSequences - associatedTaxa - otherCatalogNumbers - occurrenceRemarks - Organism: - organismID - organismName - organismScope - associatedOccurrences - associatedOrganisms - previousIdentifications - organismRemarks - MaterialSample: - materialSampleID - Event: - eventID - fieldNumber - eventDate - eventTime - startDayOfYear - endDayOfYear - year - month - day - verbatimEventDate - habitat - samplingProtocol - samplingEffort - fieldNotes - eventRemarks - DC_Location: - locationID - higherGeographyID - higherGeography - continent - waterBody - islandGroup - island - country - countryCode - stateProvince - county - municipality - locality - verbatimLocality - minimumElevationInMeters - maximumElevationInMeters - verbatimElevation - minimumDepthInMeters - maximumDepthInMeters - verbatimDepth - minimumDistanceAboveSurfaceInMeters - maximumDistanceAboveSurfaceInMeters - locationAccordingTo - locationRemarks - decimalLatitude - decimalLongitude - geodeticDatum - coordinateUncertaintyInMeters - coordinatePrecision - pointRadiusSpatialFit - verbatimCoordinates - verbatimLatitude - verbatimLongitude - verbatimCoordinateSystem - verbatimSRS - footprintWKT - footprintSRS - footprintSpatialFit - georeferencedBy - georeferencedDate - georeferenceProtocol - georeferenceSources - georeferenceVerificationStatus - georeferenceRemarks - GeologicalContext: - geologicalContextID - earliestEonOrLowestEonothem - latestEonOrHighestEonothem - earliestEraOrLowestErathem - latestEraOrHighestErathem - earliestPeriodOrLowestSystem - latestPeriodOrHighestSystem - earliestEpochOrLowestSeries - latestEpochOrHighestSeries - earliestAgeOrLowestStage - latestAgeOrHighestStage - lowestBiostratigraphicZone - highestBiostratigraphicZone - lithostratigraphicTerms - group - formation - member - bed - Identification: - identificationID - identificationQualifier - typeStatus - identifiedBy - dateIdentified - identificationReferences - identificationVerificationStatus - identificationRemarks - Taxon: - taxonID - scientificNameID - acceptedNameUsageID - parentNameUsageID - originalNameUsageID - nameAccordingToID - namePublishedInID - taxonConceptID - scientificName - acceptedNameUsage - parentNameUsage - originalNameUsage - nameAccordingTo - namePublishedIn - namePublishedInYear - higherClassification - kingdom - phylum - class - order - family - genus - subgenus - specificEpithet - infraspecificEpithet - taxonRank - verbatimTaxonRank - scientificNameAuthorship - vernacularName - nomenclaturalCode - taxonomicStatus - nomenclaturalStatus - taxonRemarks - ResourceRelationship: - resourceRelationshipID - resourceID - relatedResourceID - relationshipOfResource - relationshipAccordingTo - relationshipEstablishedDate - relationshipRemarks - MeasurementOrFact: - measurementID - measurementType - measurementValue - measurementAccuracy - measurementUnit - measurementDeterminedBy - measurementDeterminedDate - measurementMethod - measurementRemarks
- Record-level: - DC_type - DC_modified - DC_language - DC_license - DC_rightsHolder - DC_accessRights - DC_bibliographicCitation - DC_references - institutionID - collectionID - datasetID - institutionCode - collectionCode - datasetName - ownerInstitutionCode - basisOfRecord - informationWithheld - dataGeneralizations - dynamicProperties - Occurrence: - occurrenceID - catalogNumber - recordNumber - recordedBy - individualCount - sex - lifeStage - reproductiveCondition - behavior - establishmentMeans - occurrenceStatus - preparations - disposition - associatedMedia - associatedReferences - associatedSequences - associatedTaxa - otherCatalogNumbers - occurrenceRemarks - Organism: - organismID - organismName - organismScope - associatedOccurrences - associatedOrganisms - previousIdentifications - organismRemarks - MaterialSample: - materialSampleID - LivingSpecimen: - PreservedSpecimen: - FossilSpecimen: - Event: - eventID - fieldNumber - eventDate - eventTime - startDayOfYear - endDayOfYear - year - month - day - verbatimEventDate - habitat - samplingProtocol - samplingEffort - fieldNotes - eventRemarks - HumanObservation: - MachineObservation: - DC_Location: - locationID - higherGeographyID - higherGeography - continent - waterBody - islandGroup - island - country - countryCode - stateProvince - county - municipality - locality - verbatimLocality - minimumElevationInMeters - maximumElevationInMeters - verbatimElevation - minimumDepthInMeters - maximumDepthInMeters - verbatimDepth - minimumDistanceAboveSurfaceInMeters - maximumDistanceAboveSurfaceInMeters - locationAccordingTo - locationRemarks - decimalLatitude - decimalLongitude - geodeticDatum - coordinateUncertaintyInMeters - coordinatePrecision - pointRadiusSpatialFit - verbatimCoordinates - verbatimLatitude - verbatimLongitude - verbatimCoordinateSystem - verbatimSRS - footprintWKT - footprintSRS - footprintSpatialFit - georeferencedBy - georeferencedDate - georeferenceProtocol - georeferenceSources - georeferenceVerificationStatus - georeferenceRemarks - GeologicalContext: - geologicalContextID - earliestEonOrLowestEonothem - latestEonOrHighestEonothem - earliestEraOrLowestErathem - latestEraOrHighestErathem - earliestPeriodOrLowestSystem - latestPeriodOrHighestSystem - earliestEpochOrLowestSeries - latestEpochOrHighestSeries - earliestAgeOrLowestStage - latestAgeOrHighestStage - lowestBiostratigraphicZone - highestBiostratigraphicZone - lithostratigraphicTerms - group - formation - member - bed - Identification: - identificationID - identificationQualifier - typeStatus - identifiedBy - dateIdentified - identificationReferences - identificationVerificationStatus - identificationRemarks - Taxon: - taxonID - scientificNameID - acceptedNameUsageID - parentNameUsageID - originalNameUsageID - nameAccordingToID - namePublishedInID - taxonConceptID - scientificName - acceptedNameUsage - parentNameUsage - originalNameUsage - nameAccordingTo - namePublishedIn - namePublishedInYear - higherClassification - kingdom - phylum - class - order - family - genus - subgenus - specificEpithet - infraspecificEpithet - taxonRank - verbatimTaxonRank - scientificNameAuthorship - vernacularName - nomenclaturalCode - taxonomicStatus - nomenclaturalStatus - taxonRemarks - ResourceRelationship: - resourceRelationshipID - resourceID - relatedResourceID - relationshipOfResource - relationshipAccordingTo - relationshipEstablishedDate - relationshipRemarks - MeasurementOrFact: - measurementID - measurementType - measurementValue - measurementAccuracy - measurementUnit - measurementDeterminedBy - measurementDeterminedDate - measurementMethod - measurementRemarks

View File

@ -20,7 +20,7 @@
<meta name="DC.license" content="http://creativecommons.org/licenses/by/4.0/legalcode">
<meta name="DC.language" content="en">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../assets/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../assets/main.css">
</head>
@ -69,7 +69,7 @@
<nav class="col-sm-2 terms-sidebar">
<ul class="nav nav-stacked">
#for $group in $groups
<li><a href="#$group.name">$group.name</a></li>
<li><a href="#$group.name_simple">$group.name</a></li>
#end for
</ul>
</nav>
@ -82,7 +82,7 @@
#def showTerm($t, $isProperty)
#if $t.uri is not None
#if $isProperty
<dl id="$t.name" class="dl-horizontal term-dl">
<dl id="$t.name_simple" class="dl-horizontal term-dl">
#else
<dl class="dl-horizontal class-dl">
#end if
@ -94,19 +94,19 @@
#end if
<dt>Definition</dt><dd>$t.definition</dd>
<dt>Comment</dt><dd>$t.comment</dd>
<dt>Reference</dt><dd><a href="http://terms.tdwg.org/wiki/$t.fullname">http://terms.tdwg.org/wiki/$t.fullname</a></dd>
<dt>Reference</dt><dd><a href="http://terms.tdwg.org/wiki/$t.name_prefixed">http://terms.tdwg.org/wiki/$t.name_prefixed</a></dd>
<dt>History</dt><dd><a href="$t.version">$t.version</a></dd>
</dl>
#end if
#end def
#for $group in $groups
<section id="$group.name" class="class-section">
<section id="$group.name_simple" class="class-section">
<header class="well">
<h2>$group.name</h2>
<ul class="list-inline term-index">
#for $term in $group.terms
<li><a href="#$term.name">$term.name</a></li>
<li><a href="#$term.name_simple">$term.name</a></li>
#end for
</ul>
</header>
@ -130,8 +130,8 @@
</footer>
<!-- Scripts -->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../assets/jquery.min.js"></script>
<script type="text/javascript" src="../assets/bootstrap.min.js"></script>
<script type="text/javascript">
\$("body").scrollspy({
target: ".terms-sidebar",

View File

@ -13,6 +13,8 @@ from rdflib.namespace import RDFS
DWC=Namespace("http://rs.tdwg.org/dwc/terms/")
DC=Namespace("http://purl.org/dc/terms/")
DWCA=Namespace("http://rs.tdwg.org/dwc/terms/attributes/")
REC_LEVEL=DWC.term("Record-level")
def buildHtml():
data=parseTerms()
@ -26,60 +28,81 @@ def buildDownloads():
print """building downloads"""
print """TBD"""
def veriyfCompleteness(graph, yaml):
print """veriyf graph completeness"""
print """TBD"""
def anchorLinks(x):
print """TBD"""
def getTermDef(name, g):
t={}
t["name"]=name
t["fullname"]="dwc:"+name
if name.startswith("DC_"):
name=name[3:]
uri=DC[name]
t["name"]="dcterms:"+name
t["name_simple"]=name
t["name_prefixed"]=t["name"]
t["fullname"]=t["name"]
elif name.find(" ") > 0:
uri=None
uri=DC.term(name)
else:
uri=DWC[name]
t["name"]=name
t["name_simple"]=name
t["name_prefixed"]="dwc:"+name
uri=DWC.term(name)
if uri==REC_LEVEL:
uri=None
t["uri"]=uri
if uri is not None:
t["label"]=g.value(subject=uri, predicate=RDFS.label)
t["class"]=g.value(subject=uri, predicate=DWCA.organizedInClass)
t["definition"]=g.value(subject=uri, predicate=RDFS.comment)
t["comment"]=g.value(subject=uri, predicate=DC.description)
t["version"]=g.value(subject=uri, predicate=DC.hasVersion)
if t["definition"] is None:
raise AssertionError("Unknown term definition "+str(uri))
return t
def parseTerms():
with open('term_order.yaml', 'r') as f:
order = yaml.load(f)
with open('dc.yaml', 'r') as dcf:
dc = yaml.load(dcf)
g = Graph()
g.parse("../terms/dwc_normative.rdf")
# we remove the abstract dwc term accordingTo
g.remove((DWC.accordingTo,None,None))
g.remove((DWC+"",None,None))
if (DWC+"", None, None) in g:
raise AssertionError("DWC NS in here")
with open('dc.yaml', 'r') as dcf:
dc = yaml.load(dcf)
for t in dc:
uri=DC[t]
g.add( (uri, RDFS.comment, Literal(dc[t]["definition"])) )
g.add( (uri, DC.description, Literal(dc[t]["comment"])) )
g.add( (uri, DC.hasVersion, URIRef(dc[t]["details"])) )
# before we continue verify we have all terms covered in both the order yaml and the graph
veriyfCompleteness(g, order)
with open('term_order.yaml', 'r') as f:
terms = yaml.load(f)
data={}
groups=[]
for groupData in order:
group=getTermDef(sorted(groupData.keys())[0], g)
groups.append(group)
group["terms"]=[]
for t in sorted(groupData.values())[0]:
group["terms"].append(getTermDef(t, g))
for group in terms:
groupTerm=getTermDef(sorted(group.keys())[0], g)
groupTerm["terms"]=[]
if group.values() is not None and sorted(group.values())[0] is not None:
for t in sorted(group.values())[0]:
groupTerm["terms"].append(getTermDef(t, g))
groups.append(groupTerm)
data["groups"]=groups
# finally verify we have all terms covered in both the order yaml and the graph
verifyCompleteness(g, groups)
return data
def verifyCompleteness(graph, groups):
terms={}
for g in groups:
if "uri" in g:
terms[str(g["uri"])]=1
for t in g["terms"]:
terms[str(t["uri"])]=1
print """%s terms defined""" % len(terms)
for s in graph.subjects():
if s not in (DWC.accordingTo, DWC.term("")) and str(s) not in terms:
raise AssertionError("Term missing from terms_order.yaml: "+s)
print """All terms exist in both the graph and yaml"""
if __name__ == "__main__":

View File

@ -20,7 +20,7 @@
<meta name="DC.license" content="http://creativecommons.org/licenses/by/4.0/legalcode">
<meta name="DC.language" content="en">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../assets/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../assets/main.css">
</head>
@ -68,12 +68,17 @@
<div class="container-fluid">
<nav class="col-sm-2 terms-sidebar">
<ul class="nav nav-stacked">
<li><a href="#Record-level Terms">Record-level Terms</a></li>
<li><a href="#Record-level">Record-level</a></li>
<li><a href="#Occurrence">Occurrence</a></li>
<li><a href="#Organism">Organism</a></li>
<li><a href="#MaterialSample">MaterialSample</a></li>
<li><a href="#LivingSpecimen">LivingSpecimen</a></li>
<li><a href="#PreservedSpecimen">PreservedSpecimen</a></li>
<li><a href="#FossilSpecimen">FossilSpecimen</a></li>
<li><a href="#Event">Event</a></li>
<li><a href="#dcterms:Location">dcterms:Location</a></li>
<li><a href="#HumanObservation">HumanObservation</a></li>
<li><a href="#MachineObservation">MachineObservation</a></li>
<li><a href="#Location">dcterms:Location</a></li>
<li><a href="#GeologicalContext">GeologicalContext</a></li>
<li><a href="#Identification">Identification</a></li>
<li><a href="#Taxon">Taxon</a></li>
@ -88,18 +93,18 @@
</div>
<section id="Record-level Terms" class="class-section">
<section id="Record-level" class="class-section">
<header class="well">
<h2>Record-level Terms</h2>
<h2>Record-level</h2>
<ul class="list-inline term-index">
<li><a href="#dcterms:type">dcterms:type</a></li>
<li><a href="#dcterms:modified">dcterms:modified</a></li>
<li><a href="#dcterms:language">dcterms:language</a></li>
<li><a href="#dcterms:license">dcterms:license</a></li>
<li><a href="#dcterms:rightsHolder">dcterms:rightsHolder</a></li>
<li><a href="#dcterms:accessRights">dcterms:accessRights</a></li>
<li><a href="#dcterms:bibliographicCitation">dcterms:bibliographicCitation</a></li>
<li><a href="#dcterms:references">dcterms:references</a></li>
<li><a href="#type">dcterms:type</a></li>
<li><a href="#modified">dcterms:modified</a></li>
<li><a href="#language">dcterms:language</a></li>
<li><a href="#license">dcterms:license</a></li>
<li><a href="#rightsHolder">dcterms:rightsHolder</a></li>
<li><a href="#accessRights">dcterms:accessRights</a></li>
<li><a href="#bibliographicCitation">dcterms:bibliographicCitation</a></li>
<li><a href="#references">dcterms:references</a></li>
<li><a href="#institutionID">institutionID</a></li>
<li><a href="#collectionID">collectionID</a></li>
<li><a href="#datasetID">datasetID</a></li>
@ -116,7 +121,7 @@
<dl id="dcterms:type" class="dl-horizontal term-dl">
<dl id="type" class="dl-horizontal term-dl">
<dt>Name</dt><dd>dcterms:type</dd>
<dt>Label</dt><dd></dd>
<dt>Identifier</dt><dd><a href="http://purl.org/dc/terms/type">http://purl.org/dc/terms/type</a></dd>
@ -127,7 +132,7 @@
<dt>History</dt><dd><a href="http://dublincore.org/usage/terms/history/#typeT-001">http://dublincore.org/usage/terms/history/#typeT-001</a></dd>
</dl>
<dl id="dcterms:modified" class="dl-horizontal term-dl">
<dl id="modified" class="dl-horizontal term-dl">
<dt>Name</dt><dd>dcterms:modified</dd>
<dt>Label</dt><dd></dd>
<dt>Identifier</dt><dd><a href="http://purl.org/dc/terms/modified">http://purl.org/dc/terms/modified</a></dd>
@ -138,7 +143,7 @@
<dt>History</dt><dd><a href="http://dublincore.org/usage/terms/history/#modified-003">http://dublincore.org/usage/terms/history/#modified-003</a></dd>
</dl>
<dl id="dcterms:language" class="dl-horizontal term-dl">
<dl id="language" class="dl-horizontal term-dl">
<dt>Name</dt><dd>dcterms:language</dd>
<dt>Label</dt><dd></dd>
<dt>Identifier</dt><dd><a href="http://purl.org/dc/terms/language">http://purl.org/dc/terms/language</a></dd>
@ -149,7 +154,7 @@
<dt>History</dt><dd><a href="http://dublincore.org/usage/terms/history/#languageT-001">http://dublincore.org/usage/terms/history/#languageT-001</a></dd>
</dl>
<dl id="dcterms:license" class="dl-horizontal term-dl">
<dl id="license" class="dl-horizontal term-dl">
<dt>Name</dt><dd>dcterms:license</dd>
<dt>Label</dt><dd></dd>
<dt>Identifier</dt><dd><a href="http://purl.org/dc/terms/license">http://purl.org/dc/terms/license</a></dd>
@ -160,7 +165,7 @@
<dt>History</dt><dd><a href="http://dublincore.org/usage/terms/history/#license-002">http://dublincore.org/usage/terms/history/#license-002</a></dd>
</dl>
<dl id="dcterms:rightsHolder" class="dl-horizontal term-dl">
<dl id="rightsHolder" class="dl-horizontal term-dl">
<dt>Name</dt><dd>dcterms:rightsHolder</dd>
<dt>Label</dt><dd></dd>
<dt>Identifier</dt><dd><a href="http://purl.org/dc/terms/rightsHolder">http://purl.org/dc/terms/rightsHolder</a></dd>
@ -171,7 +176,7 @@
<dt>History</dt><dd><a href="http://dublincore.org/usage/terms/history/#rightsHolder-002">http://dublincore.org/usage/terms/history/#rightsHolder-002</a></dd>
</dl>
<dl id="dcterms:accessRights" class="dl-horizontal term-dl">
<dl id="accessRights" class="dl-horizontal term-dl">
<dt>Name</dt><dd>dcterms:accessRights</dd>
<dt>Label</dt><dd></dd>
<dt>Identifier</dt><dd><a href="http://purl.org/dc/terms/accessRights">http://purl.org/dc/terms/accessRights</a></dd>
@ -182,7 +187,7 @@
<dt>History</dt><dd><a href="http://dublincore.org/usage/terms/history/#accessRights-002">http://dublincore.org/usage/terms/history/#accessRights-002</a></dd>
</dl>
<dl id="dcterms:bibliographicCitation" class="dl-horizontal term-dl">
<dl id="bibliographicCitation" class="dl-horizontal term-dl">
<dt>Name</dt><dd>dcterms:bibliographicCitation</dd>
<dt>Label</dt><dd></dd>
<dt>Identifier</dt><dd><a href="http://purl.org/dc/terms/bibliographicCitation">http://purl.org/dc/terms/bibliographicCitation</a></dd>
@ -193,7 +198,7 @@
<dt>History</dt><dd><a href="http://dublincore.org/usage/terms/history/#bibliographicCitation-002">http://dublincore.org/usage/terms/history/#bibliographicCitation-002</a></dd>
</dl>
<dl id="dcterms:references" class="dl-horizontal term-dl">
<dl id="references" class="dl-horizontal term-dl">
<dt>Name</dt><dd>dcterms:references</dd>
<dt>Label</dt><dd></dd>
<dt>Identifier</dt><dd><a href="http://purl.org/dc/terms/references">http://purl.org/dc/terms/references</a></dd>
@ -706,6 +711,63 @@
<dt>History</dt><dd><a href="http://rs.tdwg.org/dwc/terms/history.html#materialSampleID-2013-05-25">http://rs.tdwg.org/dwc/terms/history.html#materialSampleID-2013-05-25</a></dd>
</dl>
</section>
<section id="LivingSpecimen" class="class-section">
<header class="well">
<h2>LivingSpecimen</h2>
<ul class="list-inline term-index">
</ul>
</header>
<dl class="dl-horizontal class-dl">
<dt>Name</dt><dd>LivingSpecimen</dd>
<dt>Label</dt><dd>Living Specimen</dd>
<dt>Identifier</dt><dd><a href="http://rs.tdwg.org/dwc/terms/LivingSpecimen">http://rs.tdwg.org/dwc/terms/LivingSpecimen</a></dd>
<dt>Definition</dt><dd>A specimen that is alive.</dd>
<dt>Comment</dt><dd></dd>
<dt>Reference</dt><dd><a href="http://terms.tdwg.org/wiki/dwc:LivingSpecimen">http://terms.tdwg.org/wiki/dwc:LivingSpecimen</a></dd>
<dt>History</dt><dd><a href="http://rs.tdwg.org/dwc/terms/history.html#LivingSpecimen-2014-10-23">http://rs.tdwg.org/dwc/terms/history.html#LivingSpecimen-2014-10-23</a></dd>
</dl>
</section>
<section id="PreservedSpecimen" class="class-section">
<header class="well">
<h2>PreservedSpecimen</h2>
<ul class="list-inline term-index">
</ul>
</header>
<dl class="dl-horizontal class-dl">
<dt>Name</dt><dd>PreservedSpecimen</dd>
<dt>Label</dt><dd>Preserved Specimen</dd>
<dt>Identifier</dt><dd><a href="http://rs.tdwg.org/dwc/terms/PreservedSpecimen">http://rs.tdwg.org/dwc/terms/PreservedSpecimen</a></dd>
<dt>Definition</dt><dd>A specimen that has been preserved.</dd>
<dt>Comment</dt><dd></dd>
<dt>Reference</dt><dd><a href="http://terms.tdwg.org/wiki/dwc:PreservedSpecimen">http://terms.tdwg.org/wiki/dwc:PreservedSpecimen</a></dd>
<dt>History</dt><dd><a href="http://rs.tdwg.org/dwc/terms/history.html#PreservedSpecimen-2014-10-23">http://rs.tdwg.org/dwc/terms/history.html#PreservedSpecimen-2014-10-23</a></dd>
</dl>
</section>
<section id="FossilSpecimen" class="class-section">
<header class="well">
<h2>FossilSpecimen</h2>
<ul class="list-inline term-index">
</ul>
</header>
<dl class="dl-horizontal class-dl">
<dt>Name</dt><dd>FossilSpecimen</dd>
<dt>Label</dt><dd>Fossil Specimen</dd>
<dt>Identifier</dt><dd><a href="http://rs.tdwg.org/dwc/terms/FossilSpecimen">http://rs.tdwg.org/dwc/terms/FossilSpecimen</a></dd>
<dt>Definition</dt><dd>A preserved specimen that is a fossil.</dd>
<dt>Comment</dt><dd></dd>
<dt>Reference</dt><dd><a href="http://terms.tdwg.org/wiki/dwc:FossilSpecimen">http://terms.tdwg.org/wiki/dwc:FossilSpecimen</a></dd>
<dt>History</dt><dd><a href="http://rs.tdwg.org/dwc/terms/history.html#FossilSpecimen-2014-10-23">http://rs.tdwg.org/dwc/terms/history.html#FossilSpecimen-2014-10-23</a></dd>
</dl>
</section>
<section id="Event" class="class-section">
<header class="well">
@ -906,7 +968,45 @@
</dl>
</section>
<section id="dcterms:Location" class="class-section">
<section id="HumanObservation" class="class-section">
<header class="well">
<h2>HumanObservation</h2>
<ul class="list-inline term-index">
</ul>
</header>
<dl class="dl-horizontal class-dl">
<dt>Name</dt><dd>HumanObservation</dd>
<dt>Label</dt><dd>Human Observation</dd>
<dt>Identifier</dt><dd><a href="http://rs.tdwg.org/dwc/terms/HumanObservation">http://rs.tdwg.org/dwc/terms/HumanObservation</a></dd>
<dt>Definition</dt><dd>An output of a human observation process.</dd>
<dt>Comment</dt><dd></dd>
<dt>Reference</dt><dd><a href="http://terms.tdwg.org/wiki/dwc:HumanObservation">http://terms.tdwg.org/wiki/dwc:HumanObservation</a></dd>
<dt>History</dt><dd><a href="http://rs.tdwg.org/dwc/terms/history.html#HumanObservation-2014-10-23">http://rs.tdwg.org/dwc/terms/history.html#HumanObservation-2014-10-23</a></dd>
</dl>
</section>
<section id="MachineObservation" class="class-section">
<header class="well">
<h2>MachineObservation</h2>
<ul class="list-inline term-index">
</ul>
</header>
<dl class="dl-horizontal class-dl">
<dt>Name</dt><dd>MachineObservation</dd>
<dt>Label</dt><dd>Machine Observation</dd>
<dt>Identifier</dt><dd><a href="http://rs.tdwg.org/dwc/terms/MachineObservation">http://rs.tdwg.org/dwc/terms/MachineObservation</a></dd>
<dt>Definition</dt><dd>An output of a machine observation process.</dd>
<dt>Comment</dt><dd></dd>
<dt>Reference</dt><dd><a href="http://terms.tdwg.org/wiki/dwc:MachineObservation">http://terms.tdwg.org/wiki/dwc:MachineObservation</a></dd>
<dt>History</dt><dd><a href="http://rs.tdwg.org/dwc/terms/history.html#MachineObservation-2014-10-23">http://rs.tdwg.org/dwc/terms/history.html#MachineObservation-2014-10-23</a></dd>
</dl>
</section>
<section id="Location" class="class-section">
<header class="well">
<h2>dcterms:Location</h2>
<ul class="list-inline term-index">
@ -961,10 +1061,10 @@
<dt>Name</dt><dd>dcterms:Location</dd>
<dt>Label</dt><dd></dd>
<dt>Identifier</dt><dd><a href="http://purl.org/dc/terms/Location">http://purl.org/dc/terms/Location</a></dd>
<dt>Definition</dt><dd></dd>
<dt>Definition</dt><dd>A spatial region or named place.</dd>
<dt>Comment</dt><dd></dd>
<dt>Reference</dt><dd><a href="http://terms.tdwg.org/wiki/dcterms:Location">http://terms.tdwg.org/wiki/dcterms:Location</a></dd>
<dt>History</dt><dd><a href=""></a></dd>
<dt>History</dt><dd><a href="http://dublincore.org/usage/terms/history/#Location-001">http://dublincore.org/usage/terms/history/#Location-001</a></dd>
</dl>
@ -2460,8 +2560,8 @@
</footer>
<!-- Scripts -->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../assets/jquery.min.js"></script>
<script type="text/javascript" src="../assets/bootstrap.min.js"></script>
<script type="text/javascript">
$("body").scrollspy({
target: ".terms-sidebar",