diff --git a/src/envo/envo-edit.owl b/src/envo/envo-edit.owl index fc3281f8..5084d913 100644 --- a/src/envo/envo-edit.owl +++ b/src/envo/envo-edit.owl @@ -1,4 +1,5 @@ -Prefix(:=) +Prefix(:=) +Prefix(iso:=) Prefix(owl:=) Prefix(rdf:=) Prefix(xml:=) @@ -3145,8 +3146,12 @@ Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) +Declaration(Class()) Declaration(Class()) Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) @@ -3992,6 +3997,9 @@ Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) @@ -6138,6 +6146,7 @@ AnnotationAssertion(rdfs:comment AnnotationAssertion(rdfs:label "agricultural ecosystem") EquivalentClasses( ObjectUnionOf(ObjectIntersectionOf( ObjectSomeValuesFrom( )) ObjectSomeValuesFrom( ))) SubClassOf( ) +SubClassOf( ObjectSomeValuesFrom( )) # Class: (farm) @@ -7231,20 +7240,6 @@ AnnotationAssertion( "SWEETRealm:IceSheet") AnnotationAssertion( "TGN:21147") AnnotationAssertion( "https://en.wikipedia.org/wiki/Ice_sheet") -AnnotationAssertion(Annotation( "USGS:SDTS") "Arctic pack") -AnnotationAssertion(Annotation( "USGS:SDTS") "ICE FIELD") -AnnotationAssertion(Annotation( "USGS:SDTS") "bay ice") -AnnotationAssertion(Annotation( "USGS:SDTS") "continental glacier") -AnnotationAssertion(Annotation( "USGS:SDTS") "continental ice") -AnnotationAssertion(Annotation( "USGS:SDTS") "glacial tongue") -AnnotationAssertion(Annotation( "ADL:FTT") "ice field") -AnnotationAssertion(Annotation( "ADL:FTT") "ice mass") -AnnotationAssertion(Annotation( "USGS:SDTS") "island ice") -AnnotationAssertion(Annotation( "USGS:SDTS") "pack ice") -AnnotationAssertion(Annotation( "USGS:SDTS") "polar ice") -AnnotationAssertion(Annotation( "USGS:SDTS") "polar ice pack") -AnnotationAssertion(Annotation( "USGS:SDTS") "rock glacier") -AnnotationAssertion(Annotation( "USGS:SDTS") "shelf ice") AnnotationAssertion( "envoPolar") AnnotationAssertion(Annotation( "https://github.com/Vocamp/Virtual-Hackahon-on-Glacier-topic") rdfs:comment "This is not always classified as a glacier in the cryosphere community.") AnnotationAssertion(rdfs:label "ice sheet") @@ -11033,18 +11028,17 @@ SubClassOf( ObjectSomeValuesFrom(< # Class: (biome) -AnnotationAssertion(Annotation( "DOI:10.1186/2041-1480-4-43") Annotation( "https://en.wikipedia.org/wiki/Biome") "A biome is an ecosystem to which resident ecological communities have evolved adaptations.") +AnnotationAssertion(Annotation( "DOI:10.1186/2041-1480-4-43") Annotation( "https://en.wikipedia.org/wiki/Biome") "A biome is an ecosystem which is undergoing climactic ecological succession."@en) AnnotationAssertion( "EcoLexicon:biome") AnnotationAssertion(Annotation( "https://vocab.lternet.edu/vocab/vocab/index.php?tema=809&/biomes") "LTER:809") AnnotationAssertion(Annotation( "WWF:Biome") "major habitat type") AnnotationAssertion(Annotation( "NASA:earthrealm") "EcosytemType") -AnnotationAssertion(rdfs:comment "There has been some concern raised (see Issue #143) about the usefulness of the assertion that organisms have evolved within a given biome. They may have evolved adaptations elsewhere and demonstrating one or the other is often not feasible. Consider relabelling to \"environmental system determined by an ecological community\" or similar.") +AnnotationAssertion(rdfs:comment "In this definition, there is an assumption that no major perturbations are occurring or have occurred in a time frame affects the successional dynamics of the ecosystem. A \"major\" perturbation is one which disrupts the community's ability to restore its (near) equilibrium. Usually, pioneer or early secondary successional processes would be in effect in such scenarios."@en) AnnotationAssertion(rdfs:label "biome") +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) SubClassOf( ) SubClassOf( ObjectSomeValuesFrom( )) -SubClassOf( ObjectSomeValuesFrom( )) SubClassOf( ObjectSomeValuesFrom( )) -SubClassOf( ObjectMinCardinality(2 )) DisjointClasses( ) DisjointClasses( ) @@ -11257,7 +11251,7 @@ AnnotationAssertion( "SPIRE:Terrestrial") AnnotationAssertion( "terrestrial realm") AnnotationAssertion(rdfs:label "terrestrial biome") -EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ObjectUnionOf( ObjectSomeValuesFrom( ))))) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) SubClassOf( ) # Class: (marine biome) @@ -12737,7 +12731,6 @@ AnnotationAssertion( "TGN:83040") AnnotationAssertion( "TGN:83043") AnnotationAssertion( "https://en.wikipedia.org/wiki/City") -AnnotationAssertion( "ENVO") AnnotationAssertion( "ENVO:00000856") AnnotationAssertion(rdfs:label "city") SubClassOf( ) @@ -20628,13 +20621,13 @@ SubClassOf( ObjectComplementOf(Obj # Class: (forest biome) -AnnotationAssertion( "A forest ecosystem in which dominant ecological communities have reached their climax successional state.") +AnnotationAssertion( "A forest ecosystem which is undergoing climactic ecological succession."@en) AnnotationAssertion( "ORCID:0000-0002-4366-3088") AnnotationAssertion( "2013-04-07T14:26:46Z") AnnotationAssertion( "LTER:212") AnnotationAssertion( "SPIRE:Forest") -AnnotationAssertion(rdfs:comment "Preliminary definition.") AnnotationAssertion(rdfs:label "forest biome") +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) SubClassOf( ) # Class: (woodland biome) @@ -20676,27 +20669,26 @@ SubClassOf( (desert biome) -AnnotationAssertion( "A desert biome is a terrestrial biome which loses more liquid water by evapotranspiration than is supplied by precipitation and includes communities adapted to these conditions.") +AnnotationAssertion( "A desert ecosystem which is undergoing climactic ecological succession."@en) AnnotationAssertion( "ORCID:0000-0002-4366-3088") AnnotationAssertion( "2013-04-07T14:26:46Z") AnnotationAssertion( "SPIRE:Desert_or_dune") AnnotationAssertion( "wwfBiome") -AnnotationAssertion(rdfs:comment "Preliminary definition.") AnnotationAssertion(rdfs:label "desert biome") -EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) +SubClassOf( ) SubClassOf( ObjectSomeValuesFrom( )) # Class: (tundra biome) -AnnotationAssertion( "A terrestrial biome which comprises a tundra ecosystem that has reached its climax community.") +AnnotationAssertion( "A tundra ecosystem which is undergoing climactic ecological succession."@en) AnnotationAssertion( "ORCID:0000-0002-4366-3088") AnnotationAssertion( "2013-04-07T14:26:46Z") AnnotationAssertion( "SPIRE:Tundra") AnnotationAssertion( "envoPolar") AnnotationAssertion( "wwfBiome") -AnnotationAssertion(rdfs:comment "Preliminary definition.") AnnotationAssertion(rdfs:label "tundra biome") -SubClassOf( ) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) SubClassOf( ObjectSomeValuesFrom( )) # Class: (mangrove biome) @@ -20869,11 +20861,13 @@ SubClassOf( (broadleaf forest biome) -AnnotationAssertion( "A broadleaf forest in which dominant ecological communities have reached their climax successional state.") +AnnotationAssertion( "A broadleaf forest ecosystem which is undergoing climactic ecological succession."@en) AnnotationAssertion( "ORCID:0000-0002-4366-3088") AnnotationAssertion( "2013-04-07T14:31:01Z") AnnotationAssertion(rdfs:label "broadleaf forest biome") +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) SubClassOf( ) +SubClassOf( ObjectSomeValuesFrom( )) # Class: (mixed forest biome) @@ -20909,6 +20903,7 @@ AnnotationAssertion( "ORCID:0000-0002-4366-3088") AnnotationAssertion( "2013-04-07T14:32:28Z") AnnotationAssertion(rdfs:label "subtropical broadleaf forest biome") +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) SubClassOf( ) SubClassOf( ObjectSomeValuesFrom( )) @@ -21362,12 +21357,11 @@ SubClassOf( (cropland biome) -AnnotationAssertion(Annotation( ) Annotation( ) "A cropland ecosystem in which dominant ecological communities are maintained in a stable state - mimicking a climax community - by human intervention.") +AnnotationAssertion(Annotation( ) Annotation( ) "A cropland ecosystem which is undergoing climactic ecological succession."@en) AnnotationAssertion( "ORCID:0000-0002-4366-3088") AnnotationAssertion( "2013-06-14T11:45:47Z") AnnotationAssertion(rdfs:label "cropland biome") -SubClassOf( ) -SubClassOf( ObjectSomeValuesFrom( )) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) # Class: (village biome) @@ -21376,7 +21370,7 @@ AnnotationAssertion( "2013-06-14T11:45:47Z") AnnotationAssertion(rdfs:comment "Villages are also described as agricultural settlements with greater than 100 persons per square kilometre; however, no upper limit is defined.") AnnotationAssertion(rdfs:label "village biome") -SubClassOf( ) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) # Class: (rangeland biome) @@ -21391,10 +21385,9 @@ SubClassOf( "DOI:10.1111/j.1466-8238.2010.00540.x") Annotation( "DOI:10.1890/070062") "A dense settlement biome is an anthropogenic terrestrial biome which is primarily used for human habitation, recreation, and industry within built structures with little other land use.") AnnotationAssertion( "ORCID:0000-0002-4366-3088") AnnotationAssertion( "2013-06-14T11:45:47Z") -AnnotationAssertion( "ENVO") AnnotationAssertion( "ENVO:01000248") AnnotationAssertion(rdfs:label "dense settlement biome") -SubClassOf( ) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) # Class: (urban biome) @@ -22114,7 +22107,7 @@ SubClassOf( "An anthropogenic environment is an environmental system which is the product of human activity.") AnnotationAssertion(rdfs:comment "Unsatisfactory definition here. Must consider the threshold that makes an environmental system anthropogenic.") AnnotationAssertion(rdfs:label "anthropogenic environment") -EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ObjectSomeValuesFrom( )))) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) SubClassOf( ) # Class: (high osmolarity environment) @@ -25050,7 +25043,7 @@ AnnotationAssertion( "See also: http://www.ecotope.org/anthromes/v1/guide/urban/12_dense_settlements/default.aspx") AnnotationAssertion(rdfs:comment "The thresholds for what makes a settlment \"dense\" can be determined as needed. If there is a specific threshold that should be added to ENVO, please make a new class request.") AnnotationAssertion(rdfs:label "dense settlement"@en) -SubClassOf( ) +SubClassOf( ) # Class: (igneous intrusion) @@ -25993,7 +25986,7 @@ SubClassOf( "A settlement with a low density of buildings and inhabitants.") AnnotationAssertion(rdfs:comment "The thresholds for what makes a settlment \"sparsely populated\" can be determined as needed. These are usually \"sparse\" in relation to urban environments. If there is a specific threshold that should be added to ENVO, please make a new class request.") AnnotationAssertion(rdfs:label "sparsely populated settlement"@en) -SubClassOf( ) +SubClassOf( ) # Class: (rural settlement) @@ -26008,7 +26001,8 @@ SubClassOf( ObjectSomeValuesFrom(< AnnotationAssertion( "A settlement which has been established and is managed through officially sanctioned processes and is recognised as legal by a competent authority.") AnnotationAssertion( "This is merely a defined class and should not have too many subclasses.") AnnotationAssertion(rdfs:label "formal settlement"@en) -SubClassOf( ) +SubClassOf( ) +DisjointClasses( ) # Class: (informal settlement) @@ -26017,21 +26011,22 @@ AnnotationAssertion( "This is merely a defined class and should not have too many subclasses.") AnnotationAssertion(rdfs:comment "Informal settlements need not be illegal.") AnnotationAssertion(rdfs:label "informal settlement"@en) -SubClassOf( ) +SubClassOf( ) # Class: (legal settlement) AnnotationAssertion( "A settlement on land that the inhabitants have a legal claim to.") AnnotationAssertion( "This is merely a defined class and should not have too many subclasses.") AnnotationAssertion(rdfs:label "legal settlement"@en) -SubClassOf( ) +SubClassOf( ) +DisjointClasses( ) # Class: (illegal settlement) AnnotationAssertion(Annotation( "http://stats.oecd.org/glossary/detail.asp?ID=1351") "A settlement on land that the inhabitants have no legal claim to or occupy illegally.") AnnotationAssertion( "This is merely a defined class and should not have too many subclasses.") AnnotationAssertion(rdfs:label "illegal settlement"@en) -SubClassOf( ) +SubClassOf( ) # Class: (primary forest) @@ -26081,8 +26076,7 @@ SubClassOf( ObjectSomeValuesFrom(< AnnotationAssertion(Annotation( "https://en.wikipedia.org/wiki/Village") "A village is a clustered human settlement or community, larger than a hamlet but smaller than a town, with a population ranging from a few hundred to a few thousand. Though often located in rural areas, the term urban village is also applied to certain urban neighbourhoods. Villages are normally permanent, with fixed dwellings; however, transient villages can occur. Further, the dwellings of a village are fairly close to one another, not scattered broadly over the landscape, as a dispersed settlement.") AnnotationAssertion( "This class may be split. \"urban village\" doesn't sit well and prevents relations to village biomes.") AnnotationAssertion(rdfs:label "village"@en) -SubClassOf( ) -SubClassOf( ObjectSomeValuesFrom( )) +SubClassOf( ) # Class: (oligotrophic lake) @@ -29375,7 +29369,7 @@ AnnotationAssertion(Annotation( "https://vocab.lternet.edu/vocab/vocab/index.php?tema=173&/ecosystems") "LTER:173") AnnotationAssertion(rdfs:comment "This class will be primarily filled by inference, any environmental system which necessarily includes living parts should be autoclassified here.") AnnotationAssertion(rdfs:label "ecosystem"@en) -EquivalentClasses( ObjectIntersectionOf( ObjectUnionOf(ObjectSomeValuesFrom( ) ObjectSomeValuesFrom( ) ObjectSomeValuesFrom( ) ObjectSomeValuesFrom( ) ObjectSomeValuesFrom( ) ObjectSomeValuesFrom( )))) +EquivalentClasses( ObjectIntersectionOf( ObjectUnionOf(ObjectSomeValuesFrom( ) ObjectSomeValuesFrom( )))) SubClassOf( ) # Class: (fossil worm burrow) @@ -30637,6 +30631,7 @@ SubClassOf( ObjectSomeValuesFrom(< AnnotationAssertion(Annotation( ) "An ecosystem which 1) is determined by communities of annual crops, perennial woody crops, or by actively tilled land, 2) is primarily used for agricultural activity, and 3) contains no village or larger human settlement.") AnnotationAssertion(rdfs:label "cropland ecosystem"@en) SubClassOf( ) +SubClassOf( ObjectSomeValuesFrom( )) # Class: (woodland ecosystem) @@ -31763,7 +31758,7 @@ SubClassOf( ObjectSomeValuesFrom(< # Class: (desert) -AnnotationAssertion( "A landform which has been rendered barren or partially barren by environmental extremes, especially by low rainfall.") +AnnotationAssertion( "A landform which has been rendered barren or partially barren by environmental extremes, especially by low rainfall, and which loses more liquid water by evapotranspiration than is supplied by precipitation."@en) AnnotationAssertion(rdfs:label "desert"@en) SubClassOf( ) SubClassOf( ObjectSomeValuesFrom( )) @@ -35793,7 +35788,7 @@ SubClassOf(Annotation(rdfs:comment "QCR: 'has participant' max 1 'tectonic plate # Class: (desert ecosystem) -AnnotationAssertion( "An ecosystem in which the composition, structure, and function of resident ecological assemblages are primarily determined by a desert.") +AnnotationAssertion( "An ecosystem in which the composition, structure, and function of resident ecological assemblages are primarily determined by a desert."@en) AnnotationAssertion( ) AnnotationAssertion( "2019-10-17T08:21:08Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "desert ecosystem"@en) @@ -35879,9 +35874,11 @@ SubClassOf( (terrestrial ecosystem) +AnnotationAssertion( "An ecosystem which primarily occurs on land."@en) AnnotationAssertion( ) AnnotationAssertion( "2019-10-21T11:09:58Z"^^xsd:dateTime) AnnotationAssertion(rdfs:label "terrestrial ecosystem"@en) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) SubClassOf( ) # Class: (mediterranean forest) @@ -36166,6 +36163,14 @@ AnnotationAssertion(rdfs:label "b SubClassOf( ) SubClassOf( ObjectSomeValuesFrom( ObjectIntersectionOf( ObjectSomeValuesFrom( )))) +# Class: (ecological succession) + +AnnotationAssertion(Annotation( ) "An ecosystem process during which the species composition of an ecosystem gradually changes as species which are more adapted to the prevailing conditions in the ecosystem replace those which are less adapted."@en) +AnnotationAssertion( ) +AnnotationAssertion( "2023-09-07T13:10:32Z"^^xsd:dateTime) +AnnotationAssertion(rdfs:label "ecological succession"@en) +SubClassOf( ) + # Class: (active anaerobic enrichment culturing unit) AnnotationAssertion( "An active enrichment culturing unit which contains environmental material maintained under conditions with no free oxygen.") @@ -36183,6 +36188,31 @@ AnnotationAssertion( "active sulphate-reducing enrichment culturing unit"@en) SubClassOf( ) +# Class: (climactic ecological succession) + +AnnotationAssertion(Annotation( ) "An ecological succession process during which 1) organisms in ecological communities possess high adaptation to the conditions in the ecosystem, 2) participant communities largely fill available niches, 3) individual organisms are typically replaced by others of the same species, 4) a near equilibrium is maintained between gross primary production and total respiration and across biogeochemical cycles."@en) +AnnotationAssertion( ) +AnnotationAssertion( "2023-09-07T13:35:09Z"^^xsd:dateTime) +AnnotationAssertion(rdfs:label "climactic ecological succession"@en) +SubClassOf( ) + +# Class: (anthropised ecosystem) + +AnnotationAssertion( "An ecosystem which is formed as a result of human activity or impact."@en) +AnnotationAssertion( ) +AnnotationAssertion( "2023-09-07T16:56:05Z"^^xsd:dateTime) +AnnotationAssertion(rdfs:label "anthropised ecosystem"@en) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) +SubClassOf( ) + +# Class: (human settlement) + +AnnotationAssertion( "An anthropised ecosystem which is determined by the presence of humans and their constructions."@en) +AnnotationAssertion( ) +AnnotationAssertion( "2023-09-07T16:58:25Z"^^xsd:dateTime) +AnnotationAssertion(rdfs:label "human settlement"@en) +EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ) ObjectSomeValuesFrom( ))) + # Class: (tropical biome) AnnotationAssertion( "A biome which is subject to tropical climatic conditions.") @@ -44851,6 +44881,37 @@ AnnotationAssertion(rdfs:comment AnnotationAssertion(rdfs:label "artificial satellite") SubClassOf( ) +# Class: (stream pool) + +AnnotationAssertion(Annotation( ) "A water body which is created in a stream by local scour or impoundment and has some structural control."@en) +AnnotationAssertion( ) +AnnotationAssertion( "2023-08-25T:17:42.901Z"^^xsd:dateTime) +AnnotationAssertion( "pool"@en) +AnnotationAssertion(rdfs:comment "Pool water depth is above average for the stream. If if all the running water in the stream was shut off, areas in the stream that still hold water are pools. Pool water velocity is below average for the reach, causing fine sediments to deposit in pools. Pools are generally longer than they are wide (unless they are plunge pools), and are 1.5 x deeper at their maximum depth than they are at their crest"@en) +AnnotationAssertion(rdfs:label "stream pool"@en) +SubClassOf( ) +SubClassOf( ObjectSomeValuesFrom( )) + +# Class: (stream run) + +AnnotationAssertion(Annotation( ) "A hydroform which is that part of a stream where water flows swiftly and uniformly with low surface water agitation."@en) +AnnotationAssertion( ) +AnnotationAssertion( "2023-08-25T:17:42.901Z"^^xsd:dateTime) +AnnotationAssertion( "run"@en) +AnnotationAssertion(rdfs:label "stream run"@en) +SubClassOf( ) +SubClassOf( ObjectSomeValuesFrom( )) + +# Class: (step pool) + +AnnotationAssertion(Annotation( ) Annotation( ) "A stream pool which is formed as a result of high-gradient, steep streams where water cascades over a rock or woody snag."@en) +AnnotationAssertion( ) +AnnotationAssertion( "2023-08-25T:17:42.901Z"^^xsd:dateTime) +AnnotationAssertion(rdfs:comment "Due to the gradient and surrounding geology, this pattern continues down the stream: step (drop), pool, step, pool, etc."@en) +AnnotationAssertion(rdfs:label "step pool"@en) +SubClassOf( ) +SubClassOf( ObjectSomeValuesFrom( )) + # Class: (adfreezing) AnnotationAssertion(Annotation( "https://www.merriam-webster.com/dictionary/adfreezing") "Adfreezing is a freezing process during which two objects adhere to each other via ice.") @@ -47124,6 +47185,7 @@ AnnotationAssertion( "https://www.worldwildlife.org/ecoregions/at1315") AnnotationAssertion(rdfs:label "Namib Desert Ecoregion"@en) ClassAssertion( ) +ClassAssertion( ) ObjectPropertyAssertion( ) # Individual: (Nama Karoo Ecoregion) diff --git a/src/envo/patterns/biome.yaml b/src/envo/patterns/biome.yaml new file mode 100644 index 00000000..d6b7b1da --- /dev/null +++ b/src/envo/patterns/biome.yaml @@ -0,0 +1,36 @@ +pattern_name: biome patterns +pattern_iri: http://purl.obolibrary.org/obo/envo/biome + +description: >- + + A biome is an ecosystem that participates in some climactic ecological succession, ie it is resilient to perturbations + It should be possible to infer that class with "biome" in its label should be classified as a 'biome'. + Does this pattern generate biomes from all ecosystems, or does it check the patterns of classes that are already present? + +classes: + biome: ENVO:00000428 + ecosystem: ENVO:01001110 + climactic ecological succession: ENVO:01001827 + +relations: + participates in: RO:0000056 + +vars: + participant: "'ecosystem'" + +# TODO: this will create names that include 'ecosystem' in the label, like 'desert ecosystem biome' +# we would prefer to REPLACE 'ecosystem' with 'biome' +name: + text: "%s biome" + vars: + - participant + +def: + text: "An %s that is undergoing climactic ecological succession." + vars: + - participant + +equivalentTo: + text: "%s and ('participates in' some 'climactic ecological succession')" + vars: + - participant diff --git a/src/envo/patterns/ecosystem.yaml b/src/envo/patterns/ecosystem.yaml new file mode 100644 index 00000000..d0b6679c --- /dev/null +++ b/src/envo/patterns/ecosystem.yaml @@ -0,0 +1,34 @@ +pattern_name: ecosystem patterns +pattern_iri: http://purl.obolibrary.org/obo/envo/ecosystem + +description: >- + + An ecosystem is any environmental system which has both biotic and abiotic parts. + Ecosystems are typically defined by some entity that "determines" them. For example, + a desert ecosystem is determined by the presence of a desert - if the desert wasn't there, + it wouldn't be a desert ecosystem. + +classes: + ecosystem: ENVO:01001110 + material entity: BFO:0000040 + +relations: + determined by: RO:0002507 + +vars: + determinant: "'material entity'" + +name: + text: "%s ecosystem" + vars: + - determinant + +def: + text: "An ecosystem in which the composition, structure, and function of resident ecological assemblages are primarily determined by a(n) %s." + vars: + - determinant + +equivalentTo: + text: "ecosystem and ('determined by' some %s)" + vars: + - determinant