Skip to content

Verifying a RO 'part has characteristic' pattern #867

@ddooley

Description

@ddooley

I have a case where a material entity benefits from inheriting one or more characteristics of a "reference material", but since this leads to contradiction if using the functional "has characteristic" object property directly, I've had to use parent "part has characteristic" instead as a workaround. I'm checking here to see that this is ok practice (in lieu of making "has characteristic" non-functional. Simply put (and using the new "has characteristic value" proposed in #845 ) an instance of an ingredient, if also logically subclassed (typed) to a reference material, inherits all the 'part has characteristic' relations that the reference material has (these characteristics are never subject to change). In this regard, an instance of a characteristic and its value(s) (if in more than one unit) is more like a truthful statement that can be shared by as many entities as the truth holds for. Instances are shown as boxes with dashed borders.

Image

But I'm mindful that characteristics are considered specifically dependent continuants, not generically dependent. But reference materials, like units, are abstract (even a 1kg reference material mass no longer has to reference some block of metal in paris due to the universal constant basis of SI units now). My standards example is an "ISO 1 reference material" (https://www.iso.org/standard/80702.html) class which by definition is always material at 20 Celsius. Below is an example of reference drinking water at 20 Celsius (along with ice at -18 Celsius), and a recipe s1:drinking_water ingredient at the reference temperature.

Image

Here I have to use "part has characteristic" to avoid a reasoning error with the functional "has characteristic".

This all works well with protege hermit/pellet/ELK, and is even able to reason that if a collection of ingredients is at ISO 1 reference material temperature, then each ingredient is as well. Of course this is important to define the initial conditions for cooking various recipes, and so is tested within the context of our FoodOn Recipe 2.0 ontology model.

I did see RO "has prototype" and tried using that, but the inheritance of "part has characteristic" is a much simpler subclass inheritance method.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions