Thanks @vmedina
For your entertainment, attached is a short technical document I wrote back in 1997 as part of the GALEN-IN-USE project, on the subject of how Bypasses, shunts and fistulae might be modelled. It was motivated by the empirical discovery that, in trials, terminology and classification experts from different centres had devised several entirely different and mutually incompatible ontological patterns for substantially the same representational task. The range of solutions owed much to differences in local surface language and clinical terming conventions.
VUM10 Modelling of Bypasses.doc (91.5 KB)
That ancient document explains my overarching concern here : if some procedures involving a bypass represent that structure as a noun (a bypass structure) whilst others embed the same semantics but as a verb (a bypassing procedure or method) then there are two problems:
Firstly, you can’t create a single grouper under which all procedures involving a bypass can autoclassify
Secondly, even if the precoordinated content applies the idiosyncratic convention systematically, you’ve introduced semantic redundancy into the wider postcoordinating ontology: some users will reasonably but mistakenly assume that the correct way to model the creation of a bypass or anastomosis is as per the construction of many other surgical structures including pouches and stomas (<<410614008|Construction|), and the natural mirror of the pattern used in procedures to remove or revise an existing bypass|anastomosis|shunt|fistula|stoma (e.g. 173597007 Removal of bypass of esophagus), none of which currently involve a bypassing|shunting|fistulating|stomatising “method” (verb).
At the time, I therefore came to the conclusion that because you couldn’t have an ontology that didn’t include both
a) the generalised pattern:
{260686004|Method|=129376004|Construction - action|,
405813007|Procedure site - Direct|= <<123037004|Body structure|}
b) 41796003 Anastomosis (morphologic abnormality) for the purpose of modelling lesions at such surgically created sites
…then sadly you couldn’t have the following in the same ontology:
c) an 257741005 Anastomosis - action (qualifier value).
In a computable and postcoordinating ontology, consistency of representation and ruthless removal of compositional semantic redundancy is essential.
As has been said many times, however, bypasses, shunts and anastomoses have further complexity because their proximal and distal points of origin and sometimes also the expected direction of flow all need to be independently (but optionally) representable.
When an ontology within which anastomoses|bypasses|shunts|fistulae can ONLY exist and be referenced as structures is combined with an OWL formalism in which modelling can be indefinitely nested, the general pattern I arrived at for representing the construction of one of these structures was (using an intermediate representation):
MAIN constructing
ACTS_ON (anastomosis|bypass|shunt|fistula structure
CONNECTS_PROXIMALLY body structure
CONNECTS_DISTALLY body structure)
…which is therefore also a pattern that can be dropped seamlessly into these related kinds of procedures:
RUBRIC: ‘Removal of thrombus from fem-pop bypass’
MAIN removing
ACTS_ON (thrombus lesion
HAS_LOCATION (bypassing structure
CONNECTS_PROXIMALLY femoral artery
CONNECTS_DISTALLY popliteal artery))
RUBRIC "Repair after previous bypass from femoral or popliteal artery to infrapopliteal arteries"
MAIN repairing
ACTS_ON (bypass structure
CONNECTS_PROXIMALLY deep femoral artery
CONNECTS_DISTALLY infrapopliteal artery)
The initial problem with the current solution before us therefore is that, in the context of the above regularly structured decompositions of the semantics, it essentially attempts to declare a defined attribute:
'245854003 |Proximal anastomosis (qualifier value) |'
== constructing ACTS_ON (anatomical structure CONNECTS_PROXIMALLY
…but using a logical equivalence construct that is intrinsically problematic (aka non-computable) because it isn’t supported by OWL 2 DL.
A still more challenging problem arises however if we also need to be able to represent the structure being bypassed, for example in:
RUBRIC "Allograft bypass of coronary artery narrowing"
MAIN constructing
USING allograft vein
ACTS_ON (bypassing structure
AROUND coronary artery narrowing)
In the same way as above, you might attempt to solve this in a similar way, perhaps by declaring:
'bypassing - action'
== constructing ACTS_ON (bypassing structure
…but now, by introducing something that looks like an action verb|method, we’ve got something that linguistically looks dangerously like it could also be used as either of the following:
MAIN bypassing - action
ACTS_ON internal iliac artery thrombus
CONNECTS_PROXIMALLY common iliac artery
CONNECTS_DISTALLY femoral artery
MAIN bypassing - action
AROUND internal iliac artery thrombus
CONNECTS_PROXIMALLY common iliac artery
CONNECTS_DISTALLY femoral artery
…but these would then not be transformable, either between each other or (critically) to and from the canonical design of:
MAIN constructing
ACTS_ON (bypassing structure
CONNECTS_PROXIMALLY femoral artery
CONNECTS_DISTALLY popliteal artery
AROUND internal iliac artery thrombus)
because, if we were to expand “bypassing” as per its definition, we would get:
IF
'bypassing - action'
== constructing ACTS_ON (bypassing structure
THEN
MAIN bypassing - action
ACTS_ON internal iliac artery thrombus
CONNECTS_PROXIMALLY common iliac artery
CONNECTS_DISTALLY femoral artery
becomes
MAIN constructing
ACTS_ON (bypassing structure
ACTS_ON internal iliac artery thrombus)
CONNECTS_PROXIMALLY femoral artery
CONNECTS_DISTALLY popliteal artery
AND
MAIN bypassing - action
AROUND internal iliac artery thrombus
CONNECTS_PROXIMALLY common iliac artery
CONNECTS_DISTALLY femoral artery
becomes
MAIN constructing
ACTS_ON (bypassing structure
AROUND internal iliac artery thrombus)
CONNECTS_PROXIMALLY femoral artery
CONNECTS_DISTALLY popliteal artery
…which, though lexically similar to the human reader, are both structurally and semantically entirely different and so won’t/can’t autoclassify as equivalent.
And that’s my fundamental problem here : although the suggested solution puts “the words” into a structure, it does so only by increasing precoordinated and ECL query design idiosyncrasy in the overall ontology design whilst also increasing the level of non-transformable semantic duplication/redundancy in postcoordinating (and ECL design) settings.