I've been visiting this forum, on and off, for years, and have enjoyed watching it grow. Now that I have a little time between projects, I will share some ideas that I have borrowed along the way from MrAristotle
, and other people who took the time to objectify their subjective understandings well enough for me to grasp their meaning. No easy task, that. I was hoping pattern people here, could beat the ideas into shape and if they prove worthy, give it a name.
Working with SubjectMatterExpert
s (SMEs) is a gratifying and frustrating part of developing software. The number of SMEs involved exponentially increases these two traits. One SME, and we guide each other with relative ease, far enough into our respective disciplines, to acquire and deal with the gaps in our knowledge. Two or more SMEs and we often struggle much harder to overcome our gaps of knowledge, but it is worth the frustration. More than five SMEs and the struggle can verge on combat, and still the struggle is well
worth the effort. The subject matter takes on a canonical form, and that is what makes it all worth the struggle. Let's call this process discovery
and fruits of the
process well formed concepts.
There are many aspects that go into making discovery a challenge. The psyche plays a large part. The psyche's role won't be addressed in this discussion. The only thing to be addressed among the many
ingredients in the process of discovery is confusion caused by the shifting levels of abstraction that happen during the explanation of a concept. Most of the time a discussion among SMEs, often hard fought resolves itself in a better understanding. But, there are times when the discussion breaks down, or deadlocks or at least becomes so difficult that one SME capitulates for the sake of progress. When this happens because of a contextual variance over critical words, i.e., concepts, caused by
insufficiently defined levels of abstraction, then a significant
opportunity is missed. SME's (with an emphasis on Expert), e.g., airplane assembly mechanics, aerodynamicists, part suppliers, field support engineers, marketing analysts, stress analysts, tooling designers, programmers, geologists, bankers, business men, insurance policy designers, etc., have an enormous amount of episodic knowledge at their subjective disposal. Objectifying this knowledge into words that propagate through air to another ear, and therefore mind, is not so easy when the listener is trying to fix the concept within a context that exists at different level of abstraction. Neither party may have formalized the different levels of abstraction and therefore do not have the Meta concepts well enough defined to be able to use them during the discussion.
A level of abstraction is defined here by example:
(type > instance),
(intention > extension),
(class > object),
(generic concept (partness) > individual concept (part Y)).
Furthermore, the definition must embody the dynamics of communicating concepts from the subjective reality into objective reality so that they might be correctly realized in the listener's subjective reality. (SME's usually laugh at this point, but I remind them that whatever we make on purpose, i.e., not by accident, first begins in subjective reality.) What we think is everything. MrAristotle
proposed a triangle that helps define the mapping between the subjective reality (in our heads stuff) and the objective reality (in our hands stuff). (I offer my apologies to the reader and MrAristotle
because I can't do justice to this wonderful set of ideas.) [You can skip to the character based graphic of the triangles as you read this description.] Imagine an equilateral triangle, with a vertical side on the left. At the upper left vertex is the 'generic concept'. At the lower left vertex is the 'individual concept'. And at the right hand vertex is the actual thing. So if the triangle is used to expose the abstractions around the concept part, then generic partness is at the upper left, the individual part Y is at the lower left, and the actual sheetmetal part is at the middle right vertex. Now connect the vertices of the triangle with directed lines. With the start of the line on individual part Y draw the line with the arrowhead on the actual part Y (the part you can hold in your hand) and name the arrow 'denotation'. With the base on the actual part Y draw a line with the arrowhead on the generic concept 'partness' (upper left) and name this line 'instantiation'. To finish the triangle, from the individual concept of part Y (lower left) draw the line with the arrow head on the generic concept, 'partness' and name the line 'individuation'. Finally, draw a vertical line down the middle of the triangle separating the left two vertices from the right vertex. On the left side of the line is subjective reality (mind stuff) and on the right side is objective reality (physical stuff).
To communicate, we have to use generic and individual concepts to convey our ideas to others using a variety of objective mediums (sound waves, photons, graphite, electrons, etc). We can also have brand new concepts, like 'dumaflaggy', but we will have to communicate the new meaning in terms of common reference, i.e., generic concepts and individual concepts. I guess we could go to our garage and build a dumaflaggy and then hope that others can grock it when they see one. But in large corporations we have to have new ideas all the time that can't be built by one person.
Now let's put this to practice in an example. We are building a system for ACME Corporation, which deals with 'parts' that are designed, manufactured, and supported. Furthermore, a sheet metal fabricator, a part designer, and an information technologist, are talking about 'part Y'. For each SME the generic concept 'part' has much in common and some differences. At a specific moment, when the word, 'part Y' (individual) is used, the designer is thinking in terms of the drawing that represents the part Y. That fabricator is thinking about the company's standard fabrication practice wrt part Y. As a programmer I am think about defining partness well enough to embody both points of view. Therefore, when the designer is explaining partness he is talking in terms of Y's drawing, i.e., the objective instantiation of the subjective part Y as it had occurred to the part's designer. When the fabricator thinks about the part, she is thinking about the part as denoted by the objective standards that address the fabrication practice by which the part comes into being. When I hear part, I am thinking of part Y as the individuation of partness both as built and as coming into being in fabrication. All three of us also refer to the physical part Y that might be sitting on the table in front of them. In fact they all know that it is that part that rings the cash register, and motivates them to understand each others subject areas well enough to overcome their knowledge gaps, and integrate their understandings into a canonical form. The problem arises from the fact that in the midst of the complex differences of the subject areas (part fabrication, part design, and programming), SMEs can use the same concept, part Y, but resolve them to three distinct triangles each with different levels of abstraction. There are three triangles we could call the:
- generic part triangle [generic definition of partness knowledge], the
- part knowledge triangle [ACME company's definition of partness knowledge in the form of standards and practices (usually in book and software)], and the
- part definition triangle[actual part Y definition(s), i.e., Y's drawings, Y's fab plans, etc.].
Notice that the part knowledge triangle and the part definition triangle share the same vertex, [ACME company's definition of partness knowledge]. It is when two triangle's share a vertex, that it is worth getting your SME's to stop talking subject matter, explain the triangles, and start drawing triangles based on their subject matter. It's no small undertaking, not that it takes very long, but because it is so foreign to think about concepts from this perspective.
After years of drawing these triangles I have noticed that the triangles not only can share vertices, they can be contained within other triangles.
Existence dependence is a meaning that can be applied in this case. Therefore, in the part example, the generic part triangle encloses the part knowledge and part definition triangles.
We have developed many good techniques to help us codify the results of discovery; UML, Z, FORML, EXPRESS, etc.. But I haven't found anything that addresses this issue head on. Classification addresses some of it. Perhaps this approach is could be used in the form of patterns.
If you would like to read more about aspects of what was covered here, try
- Conceptual Structures - J.F. Sowa, Addison Wesley Pub.
- On the Epistemological Status of Semantic Networks - Ronald J. Bachman
Alice, what you're driving at above is quite difficult to fathom. I've read the page twice, and I did read Sowa about 20 years ago, but I really don't know where to start. I'm tempted to act like a WikiMaster
and chop out some swathes, but given the obvious care you've put in to this I'd hate to do that without permission. Do you think you could try stating your thesis in just a few words, and then expand upon it gently? There are many wiki pages here that give good examples of such a form, and it would help the wiki community to digest this if you could simplify it. --PeterMerel
Peter, I have no pride of authorship over this. The ideas described here belong as much to you, as they do to me. -- Alice
explained this to me once. It took two hours of interacting at a whiteboard before I had a clue what he was talking about. I found it helped a lot to think about modeling of manufactured parts and their assemblies. I also know that the visual metaphor of the triangles joining is an important aid to understanding. If Alice would mail me an appropriate sequence of sketches, I'd be happy to scan them and add them here. -- WardCunningham
I'll try to state my thesis in just a few words. But I'm a firm believer in 'Making things as simple as possible, but no simpler' (EinsteinPrinciple
Deeply structured knowledge often accumulates in subjective reality, i.e., our minds, in an episodic manner. We try to communicate the structural deposits semantically, as I'm trying to do with written words right now. Natural languages have evolved to allow us to do this more effectively. For example, temporal shifts, 'writing', 'wrote', 'will write'. When it comes to shifts in levels of abstraction, we don't have a common way to denote the shifting of levels. Most of the time we do fine without thinking about and therefore describing the levels of abstraction from which we wish our meaning to be taken. But sometimes when the words we are using get highly overloaded, i.e., when the individual concept of a knowledge triangle shares the same semantic vertex with the generic concept of a definition triangle, it helps the speaker be descriptive if she explicitly addresses the level of abstraction from which her meaning is to be taken.
Generic Concept (GC) Part
* * |
* * |
* GCs for Part Knowledge at Acme Company
* * | *
* * *| *
* * | * *
* * | * *
* * | * Acme Part Knowledge (stress and fatigue rules, sheet metal design
* * * documents, drafting manuals, etc.)
* * | * *
* * | * *
* * *| *
* * Acme Part Knowledge * The Actual Part Y
* * *| as applied to Y's *
* * | * definition *
* * | * *
* * | * Part Y definition (CAD/CAM data, drawings, NC program, etc.)
* * | * *
* * | * *
* * *| *
* * | *
* Part Y Definition
* * |
* * |
Individual Concept of Part (Part Y)
(mind) | (matter)
The device that I have used with some success is the Aristotelian triangle taken in combinations. The triangles above denote Part, Part Knowledge, and Part Definition. Notice how Part Knowledge and Part Definition share a vertex. When a speaker is describing an object or behavior from this subjective stand point, the listener could be thinking:
- instantiation of the actual Part Y definition (a drawing, NC program, etc.),
- individuation of the subjective Part Y's part definition,
- denotation of Acme Part knowledge that bears on Part Y's definition or,
- individuation of a particular concept of Acme part knowledge that bears on
Furthermore, these four perspectives are based on a rich understanding of the outer most Part triangle, (Generic concepts of Part, Individual concepts of Part Y, and the actual Part Y (which probably does not exist yet).
Without the outer triangle the two inner triangles are not needed. If I'm in my own garage and don't have to communicate my thoughts, but can just build Part Y, then I won't need the inner two triangles. But we make our living building information systems that reduce rich knowledge (about part, policy, etc.) to practice more and more in the form of object oriented definition systems. The knowledge definition system is the triangle that is formed entirely in objective reality. I haven't shown it explicitly but if you connect Acme Part Knowledge (generic concepts), Part Y definition (individual concepts about Part Y), and the Actual Part Y you get another Aristotealian triangle that exists entirely on the objective side of the subjective/objective reality line. I call this the mind of the machine triangle. When we build flexible manufacturing centers we are building the organization a crude subjective reality, kinda. In fact our inherent objective, as information systems builders, is to reduce more of our subjective reality to practice in the form of objective knowledge artifacts that govern individual attempts at building parts, insurance policies, financial instruments, etc..
As we attempt to get our KnowledgeDefinitionSystems?
to interact, we come up with ConceptualSchemaLanguages?
like EXPRESS, and XML. This introduces a fourth triangle that fits within the outer Part triangle and sits over the Acme Part Knowledge Triangle. This is the Universal (usually by industry or subject area) Part Knowledge triangle. The individual knowledge vertex of this triangle is, and therefore shares the vertex of, the generic Acme Part Knowledge. Yet another place where words get HIGHLY overloaded from differing levels of abstraction. Just as we are hard at work building objective part definition systems, we are also building part definition exchange systems. The Universal Part Knowledge and objectified part knowledge exchange triangles are NOT shown above, and only partly described in this paragraph.
Does this help?
Either you're too wordy or I'm too SimpleMinded. Try writing your thesis in one sentence and then expanding on it in point form. If the points get too long, turn 'em into pages in their own right. Keep each page small so a simple-minded fellow like me can nibble away at 'em. This way, eventually, one day, even I might get a grip on this thing you're trying to say.
For a seond opinion, I'm about as SimpleMinded
as they come, but I find some glimmer of understanding in your redefinition. And the mention of XML makes me think how communications could be improved by
<concrete knowledge>...</concrete knowledge>
tags. But I admit I don't know what to do with it.
If language is not correct, then what is said is not what is meant; if what is said is not what is meant, then what ought to be done remains undone. Confucius
Language has the greatest potential to be incorrect at the joining of two triangles in subjective reality. My attempt at explaining this is a very good example of what I am trying to explain. As soon as I have the time, I will come back and find the concepts that are causing the most difficulty and show why by using the triangles. -- Alice
Working with artists, authors, and software developers in an attempt to beget a coherent vision for a categorically new (and literary) game/experience, I have many times worked with my cohorts in exactly these co-joined triangles. I sympathize with readers in that you (Alice) have chosen to be exact and use the precise, if rarified, terminology to convey your thesis. However, it is a fairly clear and consise explanation for those familiar with the terms and the academic style.
To paraphrase your concept in the style of Lupo the butcher: The most confusion occurs when people attempting to define a subject are skilled or knowledgeable in the subject, but come to it with differing backgrounds or professions. -- Ivo of piratesoftware.com
Ivo, Thanks for the feedback.
I've revisited this page a couple of times, and I have cringed at what I might find in the way of feedback. I have put these thoughts out in the wrong venue and ended up doing some very strange dancing as a result. Not that I'm complaining. In truth, I'm proud of those times.
Thanks for giving your attention to what I have written. I've edited the first half a little to help the reader get through some pretty dense stuff. Talking about levels of abstraction is like talking about how cake tastes. It's better to just bake one and let the person taste for themselves. I've tried to give you a taste of the level of abstractions cake while I told you how I baked this particular kind, i.e., one around partness and part Y. More needs to be said about how to use the triangles in general. The key thing that motivates me to write this, and use the triangles in practice, is the movement of ideas from SubjectiveReality?
. Each time a lot is left on the cutting room floor of the mind. As humans we trust each other to understand what was not said, written, drawn, or otherwise objectified. Most of the time our luck holds. Machines have no luck. -- Alice
Thank you for the fascinating imagery.
It will take me a while to get through all of it.
It seems to me that the arrows point in the wrong direction.
When I individuate a general concept, I get a more specific concept.
So the "individuation" arrow should point from general to specific.
When I instantiate a general concept, I get a concrete instance.
So the "instantiation" arrow should point from general to concrete.
When I name ("denote") a physical thing, I get a specific concept.
So the "denotation" arrow should point from concrete to specific.
Is this picture close to what you are trying to describe?
Please feel free to modify it or incorporate it above.
. | \
. | \ "instantiation"
. | \
. | \ |
. | __\|
. "individ- | concrete
. uation" | instance
. | /
. | /
. \ | / / "denotation"
V | /
ONE specific |__
IDEAS ........... THINGS
Jasper, thank you for putting arrowheads on the lines and doing a very good job of explaining the triangle. I'm not sure where I have mis-represented the directions in my description above. If you point them out I'll correct them.
To get to the core of what I'm trying to explain, consider what it means when a 'specific concept' is also a 'general concept' but comprehended from a different level of abstraction. Look for how the words used to describe the single vertex do not clearly signify the direction of the arrows at that point. When one person is thinking denotation or individuation the other person is at a different place in the triangles, making sense of the other person's words. It would be better if the words made no sense to the other person, but they do. And since they do make meaningful connections with the words, neither can understand why the other can't see the critical difference they are trying to establish as they attempt to build a rigorous set of associations and generalizations. -- Alice
Alice, this is where you seem to have the arrows pointing the other way:
- With the start of the line on individual part Y draw the line with the arrowhead on the actual part Y (the part you can hold in your hand) and name the arrow 'denotation'.
- With the base on the actual part Y draw a line with the arrowhead on the generic concept 'partness' (upper left) and name this line 'instantiation'.
- To finish the triangle, from the individual concept of part Y (lower left) draw the line with the arrow head on the generic concept, 'partness' and name the line 'individuation'.
Your essay might be easier to read in bullet form. May I please have your permission to bulletize some of the points you make?
November 22, 2003
I'm scratching my head also.
How about: viewpoint (person), description (language), object (thing itself).
Or maybe I'm missing a subtlety.
Language without viewpoint communicates nothing. To share meaning, one must share a viewpoint, or be able to model the other's viewpoint in ones own terms.
I don't know how to view all the little triangles.
I have the same problem with relating to templates and pointers to pointers to pointers in C++.
-- Thank you for your viewpoint. You are right and I am lazy. It's just too much work for me to lay a human scenario over this description. I'm sure it would be just what is needed. -- Alice
Message received. Will comply. Contact me through usual channels. --Bob
See also MeasuringAbstraction