Archive for May, 2010

An Anatomy of Flowers

May 30, 2010

After a meeting in St. Louis on ontology and phylogeny, I spent a couple of days in Missouri State University. Mary Schaeffer,, toni Kazic and I spent an afternoon talking about modelling flowers and the difficulties therein. They wanted to talk about plants in the style of the Plant Ontology (PO) and only use is-a and part-of relationships. The problem was that the variety of combinations of putting bits of flowers together was making building a description of flowers rather tricky. for example, a Perianth is usually both a calyx and a corolla, but may have only one of these horls — so how do you build an anatomy that takes all of this in to account?

Being me, I said "be compositional". As a consequence, I’ve been dabbling over the past few years, in my copious spare time, building a bit of an ontology for the anatomy of flowers. Having started-off knowing nothing about flowers, I’ve now got the stage of being able to bluff my way through talking about flowers; well angiosperm at least. I’ve been helped greatly by David Rhyderheard in our School who is an expert amateur botanist. we’ve spent several hours in my office disssecting flowers and doing some moderately detailed descriptions of their anatomies using my flower ontology.

The initial meeting was in 2006. I thought about it for a few years and have been playing about for a couple of years—and it really has been in my spare time! I make no great claims for the ontology, but it has been an interesting problem. I make no great claims for it and it has no real use case except that of stimulating my own interest.

The basic approach is as follows:-

  1. I made a little hierarchy of bits of flowers (sepals, petals; stamen (anthers, filaments, etc.); carpels (style, stigma, stypes, etc.).
  2. These bits can be assembled in to bigger units , such as a calyx is an assembly of sepals; a corrrolla is an assembly of petals; an androecium is an assembly of stamen. Each of these assemblies is a whorl.
  3. In this way, I can say things about petals and corolla separately. A corolla may be made of five separate petals (apopetalous) or five fused petals (sympetalous) and this fusion may have several properties. we can separate these out in to a hierarchy of qualities that inhere in all these pieces and assemblies of pieces.
  4. A perianth is made of a calyx or corolla, but one may be missing. Obviusly, male and female "whorls" can be present together or singly to make a single sex or haemaphrodite flower.
  5. A flower is made of one or more of these whorls (calyx, corolla, androecium, gynoecium). There’s a legion of qualities to add even more variety. In fact, as long as there is one whorl, you have a flower; some flowers can have many of one whorl. So, flower can be described as has part some (calyx or corolla or androecium or gynoecium). Stamen, for example, can have only a filament and miss the anther altogether.
  6. I haven’t done inflorescence yet, but this a group of flowers; again there is variety in how they are joined together fromm the sunflower to the elderberrry type of inflorescence.

An example of one of my anatomical descriptions of a flower is:

Class: RanunculusRepens

    Annotations: [in flower.owl]
        comment "Common buttercup",
        label "Ranunculus Repens"@
    SubClassOf: [in flower.owl]
        * ActinomorphicFlower,
        * ApopetalousFlower,
        * AposepalousFlower,
        * HeterosporangiateFlower,
         and (hasFlowerSymmetry some RadialFlowerSymmetry)
         and (hasPart some 
             and (hasAndroecialFusion some Apostemonous)
             and (hasPart some 
                 and (hasPart some Filament)
                 and (hasPart some 
                     and (hasAntherAttachment some AdnateAntherAttachment)
                     and (hasDehiscenceType some LongitudinalDehiscence)))))))
         and (hasPart some 
             and (hasGynoecialFusion some Apocarpous)
             and (hasPart some 
                 and (hasPart some Carpel)
                 and (hasPart some Style)
                 and (hasPart some 
                     and (hasStickiness some Stickiness)
                     and (hasStigmaShape some HookedStigmaShape)))
                 and (hasPart only 
                     or Stigma
                     or Style))))
             and (hasSexualPartArrangement some SpiralArrangement)))
         and (hasPart exactly 1 (Perianth
         and (hasPart some 
             and (hasSepalousity some Aposepalos)
             and (hasPart exactly 5 (Sepal
             and (hasColour some Green)
             and (hasRegion some 
                 and (hasForm some Truncate)))
             and (hasRegion some 
                 and (hasSepalPetalFeature some Entire)
                 and (hasSepalPetalFeature some Membranous)))
             and (hasRegion some 
                 and (hasSepalPetalFeature some Pubescent)
                 and (hasSurfaceSelector some LowerSurfaceSelector)))
             and (hasRegion some 
                 and (hasSepalPetalFeature some Smooth)
                 and (hasSurfaceSelector some UpperSurfaceSelector)))
             and (hasRegion some 
                 and (hasForm some Truncate)))
             and (hasSepalPetalFeature some PalmatelyNetted)
             and (hasSepalPetalShape some Ovate)))))
         and (hasPart some 
             and (hasPetalousity some Apopetalos)
             and (hasPart exactly 5 (Petal
             and (hasColour some Yello)
             and (hasRegion some 
                 and (hasForm some Acute)))
             and (hasRegion some 
                 and (hasSepalPetalFeature some Entire)))
             and (hasRegion some 
                 and (hasForm some Acute)))
             and (hasSepalPetalFeature some PalmatelyNetted)
             and (hasSepalPetalShape some Obovate)
             and (hasPart exactly 1 Nectary)))))
         and (hasPerianthArrangement some AlternatingPerianthArrangement)
         and (hasPart only 
             or Corolla))))

(In this Manchester OWL Syntax description, the inferred superclasses are indicated by the &quote;*" symbol.) This is not a particularly rich description, but it does capture some of the main features of the British common buttercup. I’ve captured what bits are present and limited those with universal quantifications. I’ve got many of the qualities of things. My descriptions of regions of things is poor. I’ve used Alan Rector’s "selector pattern" for choosing between things like upper and lower surfaces. I’ve not done patterns on surfaces or veination as yet. I’ve started putting in some textual definitions, but this is currently woefully inadequate. A version of the flower anatomy ontology may be downloaded.

Flowers are a good example of the separation between the continuant (the thing itself) and the quality that inheres in the independent continuant. take a petal which can be: A colour, colours at different regions of the petal’s surface, have a texture, a shape, different shape features at the base and tit, have features at the ffringes or margins. I also would like a way of saying things like "the petal is white and flushed pink towards the tip", but I’ve not worked out a way yet (though I’ve not even really thought about it). Colour, texture and so on can also be diffeerent on upper and lower surface. Once petals are joined in a corolla, we have another range of qualities. Doing this without separation of aspects of the flower and then taking what Alan rector calls a "conceptual lego" approach this modelling would be even more difficult than at present.

I’ve made quite a lot of use of cardinality constraints. I want to say that the buttercup (usually) has five petals. I’d also like to be able to say that the number of petals is the same as the number of sepals, but I cannot do this in OWL alone. Flower anatomy is full of vagueness — words like "few" and "numerous" are rife in flower books. Words like "usually" are standard in definitions of flower types in books like New Flora of the British Isles
By Clive Stace. a mechanism for optionality would be really useful. Coping with this kind of things in a strict regime like OWL is hard.

Anyway, this “lego” approach has enabled me to describe a few flowers–the main limitation is time, not the ability of the ontology(the botanical ability of the ontologist is, however, a limitation.) . There are more posts to follow about the ability to make a strict ontology of something like flowers where there is such variety and gradation. Evolution doesn’t make modelling easy and one must question how well an evolved system such as a broad range of species sits in the narrow view offered by most ontological approaches and knowledge representation languages.

The Family History Knowledge Base

May 4, 2010

During my sabatical at the University of Sheffield, I was talking to Debora Field, who was asking me how good OWL2 would be at describing and inferring family relationships. I said that I thought it would probably be OK, especially as OWL2 includes sub-property chains: My parent’s brothers are my uncles; etc.

I offered to make a little example KB using OWL2 and some individuals from my family. I sort of got a bit carried away and, with my Mum’s help, I put some 450 of my ancestors, relations, etc. in to this KB. I used only asserted facts about parentage and some sparse assertion of sibling relationships and attempted to infer all the others using properties, property hierarchies, sub-property chains, property charactreistics, together with domain and range constraints on properties.

Well it sort of works. From only three assertion about the individual for myself (I’m object of two and the subject of one), I can entail some 500 or so more facts about my family relationships to other named individuals in the FHKB. A simple example is to make a transitive hasAncestor super-property of the intransitive hasParent property; All my ancestors in the KB are then inferred. We have Margaret Rever isMotherOf Robert; from the inverse of isMotherOf we find that robert hasMother Margaret; hasMother implies hasParent and that then implies robert hasAncester Margaret; as Margaret hasParent Charles Herbert, we can also infer that Robert hasAncester Charles Herbert through the transitivity. The property hierarchy drives most of the inferences on individuals.

Similarly, using the classes person, man and woman (classes defined as a person with sex of either male or female) as domain and range constraints means that the types of individuals can be inferred.

OWL’s sub-property chains enable a lot of inference:

  • isUncleOf is implied by isBrotherOf and isParentOf
  • isGrrandparentOf is implied by isParentOf and isParentOf
  • isgrandFatherOf is implied by isFatherOf and isParentOf

and many more. isBloodrelationOf is quite nice; it is implied by hasAncestor and isAncestorOf. All by farthest ancestor’s descendents are my blood relations. I have to be careful — I don’t wish to make isrelationOf transitive; not all my relations relations are my relations. My first cousin’s father is my own father’s brother, but my first cousin’s mother is not a blood relation of mine, though she is a blood relation of my first cousin (I’m not specifying which first cousin I’m using; it is not important).

I have properties covering parentage; grandparents, great grandparents; in laws; aunts, uncles, cousins, second cousins and removes. I’ve also done spouse relationships and marriages. An example of the FHKB can be downloaded.

What doesn’t work are cousins and distinguishing between full and half-siblings. More on this later;it is worthy of a separate post. This is, of course, somewhat disappointing, but makes for some good examples about the limitations of OWL.

Simon Jupp and I have given a tutorial in the form of a three hour tutorial—slides illustrated with demonstrations. The materials for this tutorial are available. It appears to have gone very well, with a lot of good feedback. As usual, a first presentation such as this reveals many missing aspects of the tutorial. We do, however, have the basis for a two-day face to face tutorial based on this work–the first go at this was given in December 2009 and more will come.

this is another in the series of my pet ontology projects. It has led to a new advanced OWL tutorial, and may well be a replacement for the Pizza tutorial. More will follow.