stuff.owl
type: Ontology
comment: This is the second version of an ontology about stuffkinds (v1.0, d.d. 11-04-2012, v1.5, d.d. 25-6-2014), developed by C. Maria Keet. A paper describing details is submitted. For questions and comments, please write an email to mkeet@cs.uct.ac.za.

colloidFormingRelation
type: ObjectProperty
comment: this one is for the colloids, which also takes care of the surface tension etc. (and does not necessarily involve a chemical reaction like with the solutions)
domain: ContinuousMedium
range: DispersedPhase
sub property of: stuffFormingRelation

containedPortionOf
type: ObjectProperty
comment: see annotation scatteredPortionOf and piecePortionOf. difference: the container.
sub property of: scatteredPortionOf

hasGranuleType
type: ObjectProperty
comment: terms like 'has grain' and 'has granular part' tend to be used for this relation as well. but lots of stuffs use bases that are not of one single type/grain/level of granularity (i.e., not only atoms or only molecules or only multi-molecular object). What one does do, is define the basis for analysis, with an implict 'we don't look any more fine-grained than that, and this is out level of analysis', like, say, the H2O molecules water is composed of, not the p-orbitals or neutrons of those water molecules. then there's one thing with asserting 'we go as far as the molecules, not below' for some kind/category of stuff and another one to assert that SugaryWater is composed of (or has component) water and sugar, which is asserting the composition at the molecule level and as macroscopic stuffs, and based on that analysis at that level, it is a solution.
range: PhysicalObject
domain: Stuff
sub property of: topObjectProperty

hasSubStuff
type: ObjectProperty
comment: concerning hasComponent and composedOf: is hasComponent == composedOf? Somehow, the composedOf seem 'essential', whereas an hasComponent less so, but I can't nail it down. vodka has component alcohol, but it is not composed of alcohol. One is an object-centred view with a 'z happens to have x and y as components', the other a process-centred view with an 'we put x and y together to obtain z'. Example: wine happens to have alcohol thanks to the fermentation, but for whipped cream, we put air and cream together. This deserves closer scrutiny.
range: Stuff
domain: Stuff
sub property of: hasPart

piecePortionOf
type: ObjectProperty
comment: a part that is of the same stuffkind as its whole, 'scattered', and they have designated terms for it. Example: the slice of bread was part of the loaf of bread. but the whole is a countable object, not a stuffkind, unless one considers 'bread' as a stuffkind, not as loaf of bread. English langauge is a bit awkward with this example: one can count one brood, two broden in Dutch, which does not have a quantity designator like 'loaf' of bread, and is more alike the pie and piece of the pie and counting one pie, two pies in English. How this is different from scattered portion? differentiate between named pieces and 'natural' contiguous portion
sub property of: scatteredPortionOf

portionOf
type: ObjectProperty
type: TransitiveProperty
comment: Note that the domain and range are not simply Stuff: with HomogenousMixedStuff one can take portions up to some minimal amout that maintains the existence of that stuffFormingRelation and still have portions of the same kind of stuff. For PureStuff, that goes down to the BasisType. On the other hand, with HeterogenousMixedStuff, one cannot guarantee that the portion taken is of the same stuffkind as the whole amount; e.g., a piece of wood, and making a portion of the floem, which is different, or settled suspensions (like the yeast at the bottom of the bottle of witbier) that would have to be homogenised before talking of portions. Note that we still can talk about subquantities of that, but not 'portion' in the strict sense. Note that, when any of the portions, or portions of the portions, loses some molecules due to some reaction or radioactive degradation (not due to phase change), then the original quantity ceases to exist. according to philosphers. Given that that happens pretty much continuously, then in the strict sense, there isn't much point in talking of portions. Practically, they are useful though ('naive chemistry', if you will)
comment: a part that is of the same stuffkind as its whole. (not reflected as such in the OWL ontology, due to expressiveness limtations) Example: the top-half of the wine in my glass and the bottom-half are portions of the whole amount of wine in my wine glass (assume this is instantaneous division [recolelction motin of molecules]), the wine in the wineglass was/is a portion of the amount that was in the wine bottle, etc.
sub property of: subQuantityOf
range: Class
  union of: HomogeneousMixture
  union of: PureStuff
domain: Class
  union of: HomogeneousMixture
  union of: PureStuff

scatteredPortionOf
type: ObjectProperty
comment: like portion, but then the temporal aspect to it: some portion x of y was a contiguous part of y at time t and that portion x is now on the moon at time t' (with t'>t). Mundane example: the wine in the wine glass you just poured from the wine in the wine bottle, the slice of bread that you just sliced from the loaf of bread. For the modelling, it might perhaps be useful to have two subproperties: one for (sub)portions that each come with its container, and one that does not. It's one thing to talk of lumps, puddles, slices etc. that merely give a vague indication of the amount and are 'selfstanding' amounts, and another that needs to have the container recorded with it, like a silo of grain, cup of tea, sachet of sugar.
sub property of: portionOf

solutionFormingRelation
type: ObjectProperty
comment: this one is for chemically dissolving one stuff in another
range: Solute
domain: Solvent
sub property of: stuffFormingRelation

stuffFormingRelation
type: ObjectProperty
comment: the stuffFormingRelation is now (over?)loaded with the semantics of representing the notions that there is a relation forming between the objects in the stuff, like, surface tension of the particles in the colloid, H-bond, and so on, and the ratio as regards to how things are mixed (e.g., we only have lemonade when we have them in a mixture of water:sugar:lemonjuice in the ratio of, say, 8:1:1, that is, proportional amounts in ml, grams, whatever).
domain: Class
  union of: ContinuousMedium
  union of: DispersedPhase
  union of: Solute
  union of: Solvent
range: Class
  union of: ContinuousMedium
  union of: DispersedPhase
  union of: Solute
  union of: Solvent

subQuantityOf
type: ObjectProperty
comment: used in, in particular, the conceptual data modelling literature. See its subproperties for comments
domain: Stuff
range: Stuff

hasDataValue
type: DatatypeProperty
comment: the range should be 'any data type', but it doesn't allow that anymore, in the sense that when I specilfy elsewhere in an axiom that it is, say, string, then it gives me an error, though theoretically [conceptually, if you will] it shouldn't. tried literal, tried anyType (rejected outright) and tried anyURI. workaround: removed range specification.
domain: Abstract

AssociationalColloid
type: Class
subclass of: Colloid
comment: like hydrophibic/hydrophilic. micellar colloids, like soap. Optionally, one can add properties like the aggregation number (amount of molecules in the micels), which is normally a range, due to the critical micelle concentration adn so on.

Bulk
type: Class
subclass of: Stuff
subclass of: Class
  union of: MixedStuff
  union of: StructuredPureStuff
subclass of: Class
  intersection of: Class
    union of: Restriction
      on property: hasGranuleType
      some values from: Class
        union of: Molecule
        union of: MultiMoleculeParticle
    union of: Restriction
      on property: hasSubStuff
      some values from: Stuff
  intersection of: Class
    union of: Restriction
      on property: hasGranuleType
      all values from: Class
        union of: Molecule
        union of: MultiMoleculeParticle
    union of: Restriction
      on property: hasSubStuff
      all values from: Stuff
comment: Bulk goods, like (a silo of) soy beans, coffee, nuts, pet food, tea, whole grains, sugar. This term is typically used in the food industry. Flour and honey are indeed kinds of stuff, but, on the face of it, one can count each nut and cookie. However, the latter are, in that context, meant to go only in amounts, not individual nuts or cookies; e.g., a bag of nuts, a packet of cookies. This is just a matter of scale: the basis type of the latter is the nut or cookie instead of the countable molecule, and it goes in quantities, like a bag of peanuts or packet of cookies. In addition, bulk can come as StructuredPureStuff (sugar), HomogenousMixedStuff (the processed peanut butter with the stabilizer and possibly also sugar, not the ones from the health shop that settle and separate in peanut paste and oil on top), and HeterogenousMixedStuff, like pet food and breakfast cereals. Actually, it can be anything, except UnstructuredPureStuff

Colloid
type: Class
equivalent class: Class
  intersection of: HomogeneousMixture
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: StuffState
      intersection of: Restriction
        some values from: ContinuousMedium
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: StuffState
      intersection of: Restriction
        some values from: DispersedPhase
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasNrOfPhase
    some values from: Datatype
      on datatype: int
      with restrictions:
        min inclusive: 2
subclass of: HomogeneousMixture
comment: one can nag about the surfactants and stabilizers and enhancers. For instance, for whipping cream in homebaking, one can add the powder to keep the whipped cream stiff for longer (i.e., stabilise the colloid).
comment: homogenous mixture with intermediate particle size. One stuff, the so-called 'dispersed medium', is microscopically dispersed evenly throughout another stuff, called the 'continuous medium' (note: there's >1 phase, whereas a solution has =1 phase; because of that, we cannot have colloid isa solution). Examples: milk, mayonaise, agar, fog Colloids can be distinguished from solutions using the Tyndall effect. (A beam of light passing through a true solution is not visible, but light passing through a colloid will be reflected by the larger particles and the light beam will be visible.) it should be noted that the two stuffs are in a colloidFormingRelation. This is done separately over at the ContinuousMedium and DispersedPhase classes, because it is not inherent in the stuffs themselves.

ContinuousMedium
type: Class
subclass of: StuffRole
subclass of: Restriction
  on property: colloidFormingRelation
  some values from: DispersedPhase
disjoint with: DispersedPhase
comment: also called dispersion medium

DispersedPhase
type: Class
subclass of: StuffRole
comment: the colloidFormingRelation is between the DispersedPhase and the ContinuousMedium and not their respective bearers (stuffs), because if you put the stuffs together just like that, you won't get the colloid; put differently, they have to be mixed in a particular way for it to become a homogenous mixture. E.g., opening a cup of cream and exposing it to an amount of air won't get you whipped cream, and putting the right amount of egg yolk and oil in the mixing bowl does not instantly become mayonnaise. It only work if the stuff that plays the role of dispersed phase is added gradually to the continuous medium in order to become a stable colloid. The same stuff can play eitehr role, depending on the colloid to be formed

DispersionColloid
type: Class
subclass of: Colloid
comment: the most common type of colloids (cf. the other two)

Emulsion
type: Class
equivalent class: Class
  intersection of: DispersionColloid
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Liquid
      intersection of: Restriction
        some values from: ContinuousMedium
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Liquid
      intersection of: Restriction
        some values from: DispersedPhase
    qualified cardinality: 1
subclass of: DispersionColloid
comment: continuous medium: liquid dispersed phase: liquid Examples: milk, mayonnaise, hand cream http://en.wikipedia.org/wiki/Colloid

Foam
type: Class
equivalent class: Class
  intersection of: DispersionColloid
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Gas
      intersection of: Restriction
        some values from: DispersedPhase
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Liquid
      intersection of: Restriction
        some values from: ContinuousMedium
    qualified cardinality: 1
subclass of: DispersionColloid
comment: continuous medium: liquid dispersed phase: gas Examples: whipped cream, shaving cream http://en.wikipedia.org/wiki/Colloid

Gel
type: Class
equivalent class: Class
  intersection of: DispersionColloid
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Liquid
      intersection of: Restriction
        some values from: DispersedPhase
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Solid
      intersection of: Restriction
        some values from: ContinuousMedium
    qualified cardinality: 1
subclass of: DispersionColloid
comment: continuous medium: solid dispersed phase: liquid Examples: agar, gelatin, jelly http://en.wikipedia.org/wiki/Colloid

HeterogeneousMixture
type: Class
subclass of: MixedStuff
subclass of: Restriction
  on property: hasStuffDistribution
  on class: UnevenDistribution
  qualified cardinality: 1
subclass of: Restriction
  on property: hasGranuleType
  on class: Class
    union of: Molecule
    union of: MultiMoleculeParticle
  min qualified cardinality: 2
subclass of: Restriction
  on property: hasSubStuff
  on class: Class
    union of: MixedStuff
    union of: PureStuff
  min qualified cardinality: 2
disjoint with: HomogeneousMixture
comment: Combination of different stuffs (of which at least one with a fairly large particle size) that don't react, and can be separated by purely physical means (filtration, etc). Contrast with homogenously mixed stuffs like colloids and solutions where its components are evenly distributed across the stuff. portion in the sense of taking a 'part'/section of this heterogenous stuff, then it generally is the case that the subquantity is not of the same stuffkind as the whole quantity, only when the portion is carefully constructed and the so-called stuff-forming relation still holds.

HomogeneousMixture
type: Class
subclass of: MixedStuff
subclass of: Restriction
  on property: hasStuffDistribution
  on class: EvenDistribution
  qualified cardinality: 1
subclass of: Restriction
  on property: hasGranuleType
  all values from: Class
    union of: Atom
    union of: Ion
    union of: Molecule
comment: the mixed stuffs are evenly distributed across the amount of matter (macroscopic sameness). Some would call only a solution a homogeneous mixture, not colloids, because solutions have one phase only, whereas colloids have at least 2. We take an inclusive approach here, and refine further in the two subclasses.

LiquidAerosol
type: Class
equivalent class: Class
  intersection of: DispersionColloid
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Gas
      intersection of: Restriction
        some values from: ContinuousMedium
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Liquid
      intersection of: Restriction
        some values from: DispersedPhase
    qualified cardinality: 1
subclass of: DispersionColloid
comment: continuous medium: gas dispersed phase: liquid Examples: fog mist, hair sprays http://en.wikipedia.org/wiki/Colloid

MicellarColloid
type: Class
subclass of: AssociationalColloid
comment: A careful reader will observe tehre is no distinction between this and the Associational colloid. The distinction is largely due to terminology in food physics and physics & colloid chemistry.

MixedStuff
type: Class
subclass of: Stuff
subclass of: Class
  intersection of: Stuff
  intersection of: Restriction
    on property: hasSubStuff
    on class: Stuff
    min qualified cardinality: 2
disjoint with: PureStuff
comment: Note: categorisation according to components, with their role. We do not include 'phase mixtures', like having an ice cube (solid water) in a glass of liquid water; in that case, it is still the pure stuff water. For colloids, one does have to take into account the state of the stuff to define different kinds of colloids, but the point is that they are composed of different kinds of stuff.
comment: Core differences between mixtures and compouds: the proportions of the components may vary, the individual components are observable, and the components can be separated by physical means. [Silberberg, 4th ed, p73]
disjoint union of: HeterogeneousMixture
disjoint union of: HomogeneousMixture

MolecularColloid
type: Class
subclass of: Colloid
comment: Colloid where the molecules are so big they have the behaviour of that of the intermediate particle size in the other colloids. Example: latex (and other starchy things, with big polymers)

Molecule
type: Class
subclass of: PhysicalObject
subclass of: Restriction
  on property: hasPart
  some values from: Atom
comment: has as part two or more chemically bonded atoms (but if I say >=2 in the axiom, then it's not simple anymore, adn have to give up transitivity, which I don't want to)
comment: The instances of this class are sort of a hack so as to stay within first order logc. Strictly speaking, the molecues that are here included as example are classes, not individuals (an individual H2O molecule in your body is), but typically we do not care about one individual such molecule. also, putting them as indivisuals in the ontology, when we have, say, hasConstituent =1 Molecule, we're actually talking of type of molecule, not an individual one. but pushing everything one level down, we get the desired behaviour of the reasoner....

MultiMoleculeParticle
type: Class
subclass of: PhysicalObject
comment: Multi-molecular particle, like those in a suspension, the droplets in a colloid (i.e, not the sub-atomic particles)
comment: see annotation to Molecule that this class' instances is a bit of a hack.

NumberOfPhases
type: Class
subclass of: AbstractRegion
subclass of: Restriction
  on property: hasDataValue
  some values from: nonNegativeInteger
comment: alternative way of modelling the number of phases, the other one being with the data type

Paste
type: Class
subclass of: Suspension
comment: suspension with less dispersion medium and the dispersed phase is connected

PureBulk
type: Class
equivalent class: Class
  intersection of: PureStuff
  intersection of: Restriction
    on property: hasGranuleType
    all values from: MultiMoleculeParticle
  intersection of: Restriction
    on property: hasGranuleType
    on class: MultiMoleculeParticle
    qualified cardinality: 1
subclass of: PureStuff
comment: there should be a 'has basis type exactly *one type of* multimoleculeparticle' , not just one single individual multimoleculeparticle.
comment: difference with StructuredPureStuff and UnstructuredPureStuff: basis type, which is a multi-molecular object/particle. Examples: a silo of soy beans, a packet of tea biscuits, a bag of cashew nuts

PureStuff
type: Class
equivalent class: Class
  intersection of: Stuff
  intersection of: Restriction
    on property: hasGranuleType
    on class: Class
      union of: Atom
      union of: Molecule
      union of: MultiMoleculeParticle
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasStuffDistribution
    on class: EvenDistribution
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      union of: PureBulk
      union of: StructuredPureStuff
      union of: UnstructuredPureStuff
    qualified cardinality: 1
subclass of: Stuff
comment: Called 'Unstructed stuff' in Donnelly & Bittner, Phil Stud, 2009, and 'discrete stuff' by Barnett, Phil Rev, 2004. They are refined here.
comment: Composed of the same kind of molecules. For instance, Water, which consists of H2O molecules only, Alcohol, consisting of ethanol molecules only, etc, manganese and likewise for the other elements. This primarily serves as a useful theoretical category, i.e., it is an idealised case, as in reality the 'pure stuffs' are only pure with respect to the measuring device with which one would be able to detect an impurity.
disjoint union of: PureBulk
disjoint union of: StructuredPureStuff
disjoint union of: UnstructuredPureStuff

Sol
type: Class
equivalent class: Class
  intersection of: DispersionColloid
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Liquid
      intersection of: Restriction
        some values from: ContinuousMedium
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Solid
      intersection of: Restriction
        some values from: DispersedPhase
    qualified cardinality: 1
subclass of: DispersionColloid
comment: continuous medium: liquid dispersed phase: solid Examples: pigmented ink, blood http://en.wikipedia.org/wiki/Colloid

SolidAerosol
type: Class
equivalent class: Class
  intersection of: DispersionColloid
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Gas
      intersection of: Restriction
        some values from: ContinuousMedium
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Solid
      intersection of: Restriction
        some values from: DispersedPhase
    qualified cardinality: 1
subclass of: DispersionColloid
comment: continuous medium: gas dispersed phase: solid Examples: smoke, cloud, solid particulates http://en.wikipedia.org/wiki/Colloid

SolidFoam
type: Class
equivalent class: Class
  intersection of: DispersionColloid
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Gas
      intersection of: Restriction
        some values from: DispersedPhase
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Solid
      intersection of: Restriction
        some values from: ContinuousMedium
    qualified cardinality: 1
subclass of: DispersionColloid
comment: continuous medium: solid dispersed phase: gas Examples: aerogel, styrofoam http://en.wikipedia.org/wiki/Colloid

SolidHeterogeneousMixture
type: Class
equivalent class: Class
  intersection of: HeterogeneousMixture
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Solid
    min qualified cardinality: 2
subclass of: HeterogeneousMixture
comment: the solid version of a suspension (heterogenous mixture, not homogenised). Example: wood has a compartmentalisation of the components (cellulose, hemicellulose, ligning, and other stuffs called 'extractives' [plant hormone, waxes, terpenes, etc.]).

SolidSol
type: Class
equivalent class: Class
  intersection of: DispersionColloid
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Solid
      intersection of: Restriction
        some values from: ContinuousMedium
    qualified cardinality: 1
  intersection of: Restriction
    on property: hasSubStuff
    on class: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Solid
      intersection of: Restriction
        some values from: DispersedPhase
    qualified cardinality: 1
subclass of: DispersionColloid
comment: continuous medium: solid dispersed phase: solid Examples: cranberry glass http://en.wikipedia.org/wiki/Colloid

Solute
type: Class
subclass of: StuffRole
subclass of: Restriction
  on property:
    inverse of: solutionFormingRelation
  some values from: Solvent
disjoint with: Solvent
comment: A substance dissolved in another substance (the solvent)

Solution
type: Class
equivalent class: Class
  intersection of: HomogeneousMixture
  intersection of: Restriction
    on property: hasSubStuff
    some values from: Class
      intersection of: Stuff
      intersection of: Restriction
        some values from: Solute
      intersection of: Restriction
        on property: hasGranuleType
        all values from: Class
  intersection of: Restriction
    on property: hasSubStuff
    some values from: Class
      intersection of: Stuff
      intersection of: Restriction
        some values from: Solvent
      intersection of: Restriction
        on property: hasGranuleType
        all values from: Class
  intersection of: Restriction
    on property: hasNrOfPhase
    some values from: Datatype
      on datatype: int
      with restrictions:
        max inclusive: 1
subclass of: HomogeneousMixture
comment: the "and hasNrOfPhase some integer[> "0"^^integer]" and "and hasNrOfPhase some integer[=< "1"^^integer]" is because the interface didn't accept =1
comment: Combination of at least two stuffs where the mixing occurs at the molecular level (i.e., involves some chemical reaction), and therewith may form a new substance (a compound). a solution's composition is uniform. note that solutions can exist in all three physical states (i.e., not just in the liquid state, as it is used in the vernacular). We ignore here the 'dilute solution' [http://goldbook.iupac.org/D01739.html] which has a non-crisp cut-off point ("sum of amount fractions of all the solutes is small compared to 1", according to the GoldBook)

Solvent
type: Class
subclass of: StuffRole
comment: A substance in which another substance (the solute) is dissolved
comment: The solutionFormingRelation is a bit of a catch-all for the chemical reactions that occur when te solute is dissolved in the solvent

StructuredPureStuff
type: Class
equivalent class: Class
  intersection of: PureStuff
  intersection of: Restriction
    on property: hasGranuleType
    all values from: Molecule
  intersection of: Restriction
    on property: hasGranuleType
    on class: Molecule
    qualified cardinality: 1
subclass of: PureStuff
disjoint with: UnstructuredPureStuff
comment: synonym: Compound
comment: Stuff that consists of the same kind of molecules (give or take the finer-grained conformation changes, temporary dissociations of, say, H, the occasional D in the 'H2O' etc.). Examples: an amount of water (H2O), an amount of tablesugar (glucose-fructose), silica/silicon dioxide (SiO2), vitamin A, etc.
comment: there should be a 'has basis type exactly *one type of* molecule' (ok, we ignore the minor impurities here), not just one single individual molecule.

Stuff
type: Class
subclass of: PhysicalEndurant
subclass of: Restriction
  on property: hasState
  all values from: StuffState
subclass of: Restriction
  on property: hasState
  on class: StuffState
  max qualified cardinality: 3
comment: Synonym: Amount of Matter
disjoint union of: MixedStuff
disjoint union of: PureStuff

StuffRole
type: Class
subclass of: Role
subclass of: Restriction
  on property: srInheresIn
  some values from: Stuff
comment: The role a stuff plays in a mixture.

StuffState
type: Class
subclass of: State
comment: This should be refined. On the one hand, we can have, say, water in the solid state, in the liquid state and in the gaseous state. On the other hand, when considering colloids, then one of the two stuffs is in one state and the other either in the same state or in another state, regardless the actual stuff type (like whether it is liquid sunflower oil or lineseed oil, or CO2 gas or air). That is, for colloids, the state the stuff is in when mixing is the defining characteristics. Here, with the stuffs, we are interested in the state in general, not the state of a stuff.

Suspension
type: Class
equivalent class: Class
  intersection of: HeterogeneousMixture
  intersection of: Restriction
    on property: hasSubStuff
    some values from: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Liquid
      intersection of: Restriction
        some values from: ContinuousMedium
  intersection of: Restriction
    on property: hasSubStuff
    some values from: Class
      intersection of: Stuff
      intersection of: Restriction
        on property: hasState
        some values from: Solid
      intersection of: Restriction
        some values from: DispersedPhase
subclass of: HeterogeneousMixture
subclass of: Class
  intersection of: Restriction
    on property: hasGranuleType
    some values from: Molecule
  intersection of: Restriction
    on property: hasGranuleType
    some values from: MultiMoleculeParticle
comment: heterogenous mixture of larger particles in a liquid, and that substance naturally separates (i.e., separation due to sedimentation, creaming, flocculation, or coalescence, unless 'stabilized' and 'homogenised' [as regularly happens in the production process]). E.g. tomato juice, mud. TBA: the particle size of the solid is usually >1 micron

UnstructuredPureStuff
type: Class
equivalent class: Class
  intersection of: PureStuff
  intersection of: Restriction
    on property: hasGranuleType
    all values from: Atom
  intersection of: Restriction
    on property: hasGranuleType
    on class: Atom
    qualified cardinality: 1
subclass of: PureStuff
comment: synonym: Element
comment: Stuff that consists of the same kind of atoms. Examples: an amount of helium, an amount of gold Realistically, there may well be undetectable impurities, and so on, but we don't care about that here
comment: this definition is actually meant as 'has basis type exactly *one type of* atom', not just one single individual atom.