As a methodologist and software engineer, I’ve designed CASE tools that collect and impose organization on meta-data at all levels of detail.
As a enterprise architect, I’ve worked in an environment that uses planning-level data. In a planning context, you need a method for quickly characterizing the problem space at the enterprise level. I’ve stumbled on to a way to do that.
How to Troubleshoot Apps for the Modern Connected Worker
Practical Ontology For Enterprise Data Management
1. Practical Ontology for
Enterprise Data Management
5 W's:
An enterprise needs to know
what data they own,
who uses it,
when it is updated,
where it is stored and used,
why it is useful.
2. Practical . . . Ontology
Practical Ontology
Delivers value What exists
Easy to use Relationships
Scope:
Enterprise – produces a set
of products and services
for a specific market / constituency
3. Simple Technique
The message
is the
feature.
Everything follows from that.
4. The message is the feature.
Generally, enterprise ITS organizations
spend most of their resources integrating
purchased components, not building them.
Business processes communicate
by sending messages.
If you analyze those messages,
you discover almost everything
about the data.
5. Three Kinds of Message
Request – Response
: Work Order
Please deliver cake to customer.
Question – Answer
: Query
What is order’s delivery-address?
Publish – Subscribe
: Notice
Oven has reached preheat-temperature.
6. Request – Response :
What = What action is requested?
(Write English sentence.)
Who = Actor requesting, actor responding.
Where = Components (are proxies for actors)
When = Task Delegation / Hand-off
Why = Business Process Workflow
7. Question – Answer :
What:
What is the question? (Write it in English)
What is the expected form of the answer?
Who = Client is asking System of Record
Where = Components (proxies for actors)
When and Why:
Details needed for operation (task in workflow)
Details aggregated into metrics
8. Publish – Subscribe :
What = Business Event Fact (Write it in English)
Who = Who publishes? Who needs to know?
Where = Components that proxy for who.
When = Other actor needs to know:
Asset Changes
Account Changes
Outages
Work started / completed / suspended
Why = Audit / Tracking (Metric) / Trigger
9. Five Message H's: How . . .
How often = frequency of message
How fast = response time needed
How long = record retention period
How much = Mega / Giga / Tera / Peta – Bytes
How do:
How protected = encryption / access control
How transported = infrastructure used
How formatted = XSD / . . .
10. Message ==> Nouns ==>
1.Write the message out as a full sentence.
2.Underline the nouns.
3.Analyze the nouns: Each noun refers to . . .
Entity: Identifiable / Countable
Entity Attribute: Describes some entity.
Attribute Categories: Example: Color Green
Entity-Owned Collection: Set, Bag, or List of . . .
Entity is defined by its supertypes and attributes
11. Entity Facts
What is the operational meaning of a data record?
Who
. . . is entity custodian? (business process)
. . . has access to which fields?
Where is entity record? (system of record)
When is the entity data changed? (life-cycle: business events)
Why is it useful? (ROI / ROA)
Clients that query
Business metrics derived
Compliance with rules / regulations / best practice
12. Message ==> Capability
Request – Response
==> Ability to provide a service / product
Question – Answer
==> Ability to interpret the query and answer it
Publish – Subscribe
==> Publisher is qualified observer
. . . (sufficient for an internal notice)
==> Publisher is authority for that event data
. . . (necessary for wider audience)
13. Capability ==> Function / Feature
What capability?
User Story / Use Case
Given . . . When . . . Then . . .
Who = Which business process provides?
Where = Which application / component provides?
When = Business Process Task (business event)
that requires capability
Why = Business benefit (faster / better / cheaper)
14.
Structured English Notations
(natural language structured for processing)
SQL – Data Description Language
Interface Description Languages
CORBA IDL
Java Interface declaration / equivalent in language X
Web Service Description Language (WSDL)
Business Process / Workflow Description
Business Process Modeling Notation (BPMN)
Business Process Execution Language (BPEL)
Miscellaneous XML
XML Schema Document (XSD)
Web Ontology Language (OWL)
Resource Description Framework (RDF)
ALICE (Chat-Bot NLP: translate queries to standard form)
15. Examples in Hum
• Hum is not a product. It is an experiment.
• Open source - written in Smalltalk.
• Examples to show basic concepts.
• Point is that you can do this kind of thing
using structured natural language
as the notation.
• 5x8 cards will work almost as well
16. Each of these statements
Plan Tree indicates a message.
Goal: <imperative statement>
Post-Condition: <assertion statement>
Preconditions:
• <assertion statement>
• <assertion statement>
Action:
• <role> : <imperative statement>
17. Plan Tree - Example
Goal: Bake a cake according to recipe.
Post-Condition: Cake is baked per recipe.
Preconditions:
• Oven is at preheat-temperature per recipe.
• Cake batter is in a prepared cake pan.
Action:
• Cook : Bake in oven for bake-time given in recipe.
19. Role-Action : Example
Role: Cook.
Action: Bake in oven for bake-time given in recipe.
• Open the oven door.
• Place the pan in the oven.
• Close the oven door.
• Oven: Bake for the bake-time given in recipe.
Message delegates step to automated oven (role).
20. Noun Relations
Dictionary: <title indicates context>
• A <noun> is a <noun>.
• <noun> attributes include <noun>, . . .
• <noun> categories include <noun>, . . .
• <noun> contains a <collection> of <plural noun>.
• ...
21. Noun Relations - Example
Dictionary: Baker’s vocabulary.
• A mixing-bowl is a container.
• Recipe attributes include temperature, duration, . . .
• Cake-type categories include layer-cake, bunt-cake.
• Recipe contains a list of steps.
• A temperature is a measurement.
Yellow nouns above could be in a base vocabulary.
22. Base Vocabulary
Dictionary: Base vocabulary.
• A weight is a measure.
• Measure attributes include quantity, precision,
unit-of-measure, method.
• Unit-of-measure categories include Wh,VAh,V.
• Wh is shorthand for Watt-hours.
• ...
(Could be open source like OpenCyc.)
23. Dialogs and Use Cases
Dialog: <arbitrary title giving overview>.
Context: <name-of-context for disambiguation>.
(Vignette -- starts with a specific user statement)
• U: <user statement>
• S: <system response>
• <role> : <action statement>
24. Dialog - Example
Dialog: User authentication.
Context: New session.
U: [User arrives with cookie.]
S: Hello [user name]. What would you like to do?
Context: Expect user request.
U: I want to pay my bill.
S: Your balance is [user account balance].
Would you like to pay by credit card or PayPal?
25. Summary
• Enterprise ITS needs to know what data it owns
and who uses it, when, where, and why.
• Enterprise actors communicate with messages.
• By analyzing message nouns and context,
we discover ontology content.
• Structured English provides human readable
information that is also machine readable
once the nouns are identified.
Editor's Notes
As a methodologist and software engineer, I&#x2019;ve designed CASE tools that collect and impose organization on meta-data at all levels of detail.\nAs a enterprise architect, I&#x2019;ve worked in an environment that uses planning-level data.In a planning context, you need a method for quickly characterizing the problem space at the enterprise level.I&#x2019;ve stumbled on to a way to do that.\nBut first, for orientation, you can&#x2019;t go wrong thinking about the journalist&#x2019;s 5W&#x2019;s.When we are collecting data about Enterprise&#x2019;s data,we need to knowwhat . . ., who . . ., when . . ., where . . ., and why . . . \n\n
Here are my short definitions of the words practical, ontology, and enterprise.\n
Here is the essence of my working method.If you don&#x2019;t remember anything else I say today,just remember &#x201C;The message is the feature.&#x201D;\nEverything else follows from that.\n
Why do I say &#x201C;The message is the feature.&#x201D; ???\nI work in a corporate ITS organization.\nIn that context, we rarely produce software products.\nWe mostly work on integrating products that we purchased.\nBut, what does that really mean?\nBusiness units communicate with each other by sending messages.If you analyze that message traffic, you discover almost everything you need to know.\n
At the most basic level, there are just three kinds of message.\nRequest - Response . . . Whether it is called a purchase order, work ticket, job ticket, reservation, or whatever; in essence it is a work order request that some product or service be done or delivered.\nQuestion - Answer . . . One business unit is requesting data from another business unit that is the custodian of that data.\nPublish - Subscribe . . . The business unit that is the authorized observer announces a business event. It &#x201C;publishes&#x201D; it. Other units that have an interest in that kind of event may &#x201C;subscribe&#x201D; to those announcements.\n\n
The five W&#x2019;s may be refined according to the type of message.\nIn every case, you should write the message out a a well-formed English sentence. (Of course, if your organization works in some other language, you should use that language.)\nFor example:\nThe who should relate to the role or actor that sends and receives the message.\nThe where should relate to the computer applications or services that are acting as the electronic proxies for those actors.\nThe when and why should relate back to a workflow. The why is the workflow -- At &#x201C;run time&#x201D; the work flow will typically be triggered by a higher-level &#x201C;master&#x201D; work-order.The task will usually represent a delegation of some work from one organization to another.\n
For the &#x201C;Question - Answer&#x201D; message, the most important fact is the &#x201C;who&#x201D; -- Who is the &#x201C;system of record&#x201D; for the data involved?\n
For &#x201C;Publish -- Subscribe&#x201D; the you want to know who is responsible for publishing.\nAll kinds of business events need to be published.Don&#x2019;t confused data events with business events, the data got changed for a reason.The business event is the reason, and that is what you want to capture.\n
The operations folks are more interested in the five H&#x2019;s rather than five W&#x2019;s.\nOh, I cheated. The &#x201C;How to do it?&#x201D; question breaks down into several other questions.\nAs you are analyzing messages, you will need to pick up answers to these questions as well.\n
Here is the simple technique. \nThis is &#x201C;Object Oriented Analysis 101&#x201D;.\nThere are three steps:\nOne: Write the message out as a complete sentence.Two: Underline the nouns.Three: Figure out that the noun is referencing using entity-relationship concepts.\n
In the noun side of the ontology, you focus on the nouns that refer to entities.\n
You can analyze the message content to discover the capabilities that are implicit in the messages.\nObviously, if a business unit is requesting a product or service from another unit, the other unit is expected to have the capability of producing that product or service.\n
Going somewhat beyond the message, you can identify the function required.\nThese might go into a business architecture or technical architecture.\n
The nice thing about standards is that there are so many to choose from.\nThe not so nice thing is that information is often lost or even garbled in the process of translating from one notation to another.\nI prefer to work in structured English, it has the advantage of flexibility and being both human-readable and machine-readable.And, I believe, there is less information loss.\n
I am going to demonstrate the ideas I&#x2019;ve been talking about \nin a structured English notation.\nThe particular notation that you use does not really matter.\nThe main point is that you have a way to capture different kinds of business process knowledge.\n\nYou also don&#x2019;t need an expensive tool.\n5x8 cards will work almost as well as most of the meta-data systems that you might buy.\n\n
This is a structured English notation for defining plans.\nYou can use this notation to identify work that may proceed in parallel workflows.\nIf you diagram this, you get a kind of precedence chart or state-transition diagram.\n
Here is an example.\nThe nouns are underlined.\nA syntax analyzer would warn that some of the nouns have no antecedent in the post-condition.\n\nYou can take the algebra out of a programming notation, but you cannot take the programming out.\n
This is a structured English notation for defining procedures -- a sequence of tasks that are assigned to a single role.\n
Here is an example of that notation.\nNote that the primary actor can delegate a task to another role.\n\n
Structured English become executable once the nouns are known.\nIn natural language, nouns represent variables that are assigned values at run-time.\nThis notation provides the means of identifying the nouns and their relationships.\n
Here is an example.\nSome nouns may belong to a base vocabulary.\nThe base vocabulary contains terms that are common to all business situations.\nThe base could also be extended to include terms that are common to a given industry.\n\n
In the business world, a number is not a mathematical abstraction.\nIt always represents a measurement with a unit of measure and some limited precision.\nThis illustrates one of the differences between computer programming and business programming.\nIn computer programming, someone would be concerned with how this concept would be represented in the hardware.\nIn business programming, we simply require that the run time will do the right thing.\n
This is a structured English notation for defining dialogs, protocols, and use case scenarios.\n\n
Here is an example.\nThis basic idea is that it reads like a stage play.\n&#x201C;He said&#x201D; . . . &#x201C;She said&#x201D; plus some direction about what is happening in the background.\n\nI derived this notation from a chat-bot notation called &#x201C;ALICE&#x201D;.\nIn essence, this part of the system would execute like a chat-bot.\nBut, with some refinement, it can be used as any kind of event-driven production system.\n\nIn the context of an ontology, this notation provides a way to capture this kind of message exchange.\n\n