soilfoodwebontology / sfwo

The Soil Food Web Ontology is a formal conceptual model of soil trophic ecology.
7 stars 0 forks source link

Add diets as trophic qualities (traits) #93

Open nleguillarme opened 1 year ago

nleguillarme commented 1 year ago

The Ontology for Biomedical Investigations (OBI) ontology proposes a RDF data model for trait values : http://obi-ontology.org/docs/data-intro/

Traits are represented as suclasses of the PATO:quality class. PATO currently provides a class trophic quality with two subclasses prototrophic and auxotrophic

The proposal is to import the class trophic quality into SFWO and create a new branch in the ontology that would mirror the organismal section of the ontology (heterotroph > carnivore > insectivore) with adjectives (heterotrophic > carnivorous > insectivorous) corresponding to traits.

Then, organismal classes could be axiomatize with traits as follows: carnivore = organism and has_quality carnivorous

This would make annotating trophic trait datasets with SFWO easier and more consistent with existing trait ontologies. Also, this would make SFWO more consistent with T-SITA, where e.g. detritivorous is a diet which is a trait.

Archilegt commented 1 year ago

The has_quality relation is not appropriate for this axiomatization. It was thought for relating qualities denoted by nouns to bearers that are also nouns, with the quality specifically depending on the bearer for its existence. Example: "this apple has quality this red color".

The primary direction of the trophic quality axiomatization should be from nouns denoting material entities (organisms) to adjectives denoting the abstract concept (trophic qualities). The material entity should bear the main, most intuitive definition. Example: carnivore = animal or plant and eats animal tissues carnivorous = is_quality_of carnivore

nleguillarme commented 1 year ago

I agree there is this "depending on the bearer for its existence" constraint in the definition, but this seems good to me as a first approximation, and given that there does not seem to be a more appropriate term.

Perhaps there is some misunderstanding on my part, but it seems to me that your example is not an illustration of your point. Do you mean we should axiomatize carnivore as both: carnivore = eats some animal tissues carnivore = has_quality some carnivorous (which is fine with me, knowing that OWL will infer that carnivorous = quality_of some carnivore, since quality of is the inverse property of has_quality).

Archilegt commented 1 year ago

Hi, @nleguillarme.

it seems to me that your example is not an illustration of your point

My point is:

The primary direction of the trophic quality axiomatization should be from nouns denoting material entities (organisms) to adjectives denoting the abstract concept (trophic qualities). The material entity should bear the main, most intuitive definition.

The noun denoting the material entity is: carnivore. Therefore, the most intuitive definition goes to carnivore, as above:

carnivore = animal or plant and eats animal tissues

The adjective denoting the abstract concept (trophic quality) is: carnivorous. Therefore, the trophic quality adjective is axiomatized with the relation quality_of the material entity noun, as above: carnivorous = quality_of carnivore

You wrote:

Do you mean we should axiomatize carnivore as both: carnivore = eats some animal tissues carnivore = has_quality some carnivorous (which is fine with me, knowing that OWL will infer that carnivorous = quality_of some carnivore, since quality of is the inverse property of has_quality).

No, I meant: carnivore = eats some animal tissues carnivorous = quality_of carnivore e.g., the intuitive definition of the noun is stated and the derivative definition of the adjective is also stated, and then what OWL should infer is: carnivore = has_quality some carnivorous

Bio-ontology axiomatization should follow the flow of sense in languages, where nouns act as nuclei of synsets from which adjectives are derived (defined). This is important for making any bio-ontology compatible with "wordnets", and wordnets are important because they are increasingly mapped across languages and they hold consistent meaning across languages (ca. 94% semantic consistency). For the SFWO, that means that trait adjectives should always be explicitly derived from trait nouns, and then the reverse can be left to OWL inference.

A separate but related problem, which has not been implemented yet (my fault actually, as I was meant to stir this), is an upper classification of individual and species "traits" into 1) characters, 2) attributes, and 3) relacters as per Dubois (2017). That upper classification should make traits easier to understand and to model. From the point of view of individual organisms, all trophic quality traits are traits of the relacter type, e.g., the organism interacts with some other organism or resource in its environment for nourishment. Therefore, trophic traits are not just individual- or species-level traits, but traits which involve two material entities and are characteristic to both and their interaction. That is different from character (1) "traits", which are properties intrinsic to individual organisms that do not depend on any extrinsic information. Sooner or later, tailored relations will be needed to model the difference between "organism has_quality red color" (character state, intrinsic trait) and "organism has_quality carnivorous" (relacter, trophic quality trait). Simplest would be has_character, has_attribute, has_relacter. Tailored relations would allow using bio-ontologies to automatically construct species diagnoses and identification keys while filtering "non-character traits" out.

Reference: Dubois, A. (2017): Diagnoses in zoological taxonomy and nomenclature. Bionomina, 12 (1): 63-85. https://doi.org/10.11646/bionomina.12.1.8

Archilegt commented 1 year ago

If Taxon different from organism #90 is implemented, then: carnivore = taxon and eats some animal tissues carnivorous = quality_of carnivore

To be inferred: carnivore = has_quality some carnivorous

nleguillarme commented 1 year ago

I've made some inference tests, and carnivorous = quality_of carnivore is not working.

Also, I don't think it is semantically correct. carnivorous = quality_of some carnivore basically means 'everything that is a quality of a carnivore is an instance of carnivorous'.

With carnivore = has_quality some carnivorous, we can infer that something that has quality carnivorous is a carnivore, and that a carnivore has_quality some carnivorous.