ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Requesting Opinions on the Benefits of Predicates as

To: "'[ontolog-forum] '" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "Rich Cooper" <rich@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 18 Jun 2014 12:17:44 -0700
Message-id: <009f01cf8b29$fb7e9290$f27bb7b0$@englishlogickernel.com>

Comments below,

-Rich

 

Comments interleaved below

 

On Wed, Jun 18, 2014 at 12:20 PM, Rich Cooper <rich@xxxxxxxxxxxxxxxxxxxxxx> wrote:

Comments below,

-Rich

<snip>

Look at the simple matter of ordering medication.

* If you order it for an outpatient, the medication is dispensed

in a single bottle or bag.  All thirty days worth is together.

* If you order it for an inpatient, the medication is dispensed
daily, one pill a day, necessitating tracking 30 sub-orders.

Two alternative methods for executing a process, depending on the context in which the process finds itself. 

I agree that there are two methods, but I would argue they are two

processes that superficially look the same.  (Isn't the ambiguity in

English fun for software development ?)

 

Yes, exactly!  The ambiguity of such a simple verb as “dispense”, which can be found in WordNet 2.1. as:

 

The verb dispense has 3 senses (first 1 from tagged texts)

                                      

1. (3) distribute, administer, mete out, deal, parcel out, lot, dispense, shell out, deal out, dish out, allot, dole out -- (administer or bestow, as in small portions; "administer critical remarks to everyone present"; "dole out some money"; "shell out pocket money for the children"; "deal a blow to someone")

2. dispense -- (grant a dispensation; grant an exemption; "I was dispensed from this terrible task")

3. administer, dispense -- (give or apply (medications))

 

In the outpatient case, the process is wholly within the Pharmacy,

and the ordering process is by Clinicians. I think part of this is

because the process of dispensing and filling are done inside the 

pharmacy, and because patients administer their own meds,

 

Actually, the nurses get the same bottles of meds that the patients get, but the nurses keep the bottles locked up in their cart.  They push the cart all over the floor from one patient’s bed to the next, and each time, they pull the med bottles from the cart, dispense one or more pills to one patient on scheduled routes, and iterate over all the patients they are assigned. 

 

In the Inpatient case, there are different people, (nurses, patients,

pharmacy clerks and techs) who do different parts of this, and

it has to be done over an extended time period.  The simple act

of addition on the outpatient process becomes individual steps that

each must be managed, recorded, and performed.

 

That management is now done by the nurse in charge of each shift, who coordinates with the other nurses, the pharmacy and refill schedule issues. 

My wife was a nurse for years, though her degree was in accounting.  Later she was a medical auditor at a hospital before she became disabled.  As an experienced shop floor system designer, I listened to the problems she told me and it seems relatively simple to put up a web site internal to the hospital and give each nurse a computer with access to the needed info.  That can both help then figure out whatever they need to, and also measure their work, the patients’ doses, the accuracy of dosage times with specified prescription delivery times, and many other metrics to help the NIC, the DON and the Administrator figure out how to keep things working. 

How to express and represent these two different approaches

requires a more sophisticated approach to time and process.

The orders are similar, and stored (in VistA) in the same collection
of data (ORDERS file#100) but the use of the order and

way to handle time is significantly different.

An Order is a Purchase Order, which splits into numerous Work Orders, each of which specifies the Context in which it operates.  Each WO processor (called an activity in IDEF) uses the various objects connected to its context specification.  I developed a factory work flow management system that tracked each WO by its ID, and each employee starting and stopping each activity by the employee ID, and each instance of a process (action – one performance of an activity) and calculated, over any chosen duration, the throughput in dollars, costs of actions, profitability of the duration, and the contribution of each employee and each activity to total financial net worth. 

Well, as to orders, I was actually discussing currently working software in a hospital, with its own data structures. So the issue needs to be more than just saying there is another solution, but how to merge the existing solution with the more general solution as you have described above. Especially if you have already deployed software, how do you justify an organizations investment into back-fitting this extra code and data?

 

Just putting up a web site with access to the database controlled by authentication of the employee and associating permissions with that authentication is pretty easy stuff.  Given the database exists now in interactive form.  If not, it would be easy to justify interactive access for the nurses and pharmacy crew, auditors, NIC, DON and Administrator and the gain in productivity would easily justify that expense within the usual 3 year planning horizon.  That’s at least a 33% ROI. 

 

In the context of ontolog-forum, I think the rubber meets the road when you start to deal with how to describe what is happening as the process is supported by software, perhaps with a logical model that takes into account time and how the description is being elaborated, and some how make the description integral to the software so it will be maintained as the software is changed.  Interoperability between two logical views is not easy.

 

The best approach to interoperability so far, IMHO, is the EHR which is so well specified in XML as to be exactly interchangeable even with different doctors and nurses recording their subjective observations and conclusions.  The doctors are have trouble getting used to the extra time they have to put in, and the constraints that the EHRs impose on treatment options, but they are gradually getting used to it. 

 

EHR databases of patients’ private information is the obstacle there.  Getting informed consent for every record to be captured in a database is what is needed if you are a medical researcher.  If you are a consumer struggling with insurance companies, or Obamacare, or Medicare, or any of the other information hoarders, you probably resent having your data being known to people who can figure out what to charge you better because they have that data.  That suspicion is going to be there given the current culture. 

 

VistA has explicit data definitions that are used as data is stored, but there still needs to be a way to tie a logical description to the data as it is being created and maintained.  We have transaction processing that is part of database handling, how do we maintain the low level software issues to the logical level ? 

The same can be done in the medical world.  When each pill is delivered to each inpatient, a signal should be given that identifies the nurse, the patient, the pill and the date-time.  That capture into a database over time can track the quality of on-time consumption, for each patient, for each nurse, and for each pill. 

Actually, that signal does occur. It is called the Administration of the drug, and usually has checks and balances based on bar code scanning, expected time of delivery. There are also issues about failure to scan, and reasons why PRN (as needed) medication was administered, if there was pain, pain-level, pain-location, and so forth.

 

Congratulations!  You are at a modern hospital.  There are many without that equipment still. 

But trying to explain an approach to time before a programmer
can work on the system can be seen as a drag on resources.

There isn't a lot of standard vocabulary in the industry that you
can assume is already understood, and many folks devalue

education on basics feeling that getting involved in producing

work is of higher value.

Also, programmers prefer to innovate solutions to problems encountered rather than execute somebody else’s plan for them. 

True enough. Or even if they are willing to execute someone's plan, they may retire without documenting the system, refactor code and data, or otherwise obscure what the original plan was.

 

Companies that solve the problem, such as Google, and a few others, use the approach of empowering their staff to take initiative, to make exploratory projects that evaluate new approaches, and otherwise meet the requirements of the workplace issue by issue.  Traceability is the word used to ensure that each sentence in a requirements document corresponds to some software, event, data packet, or other object in the software architecture and its instances.  That is a much more effective way to develop local solutions to local problems.  Identify the busy people and give them support staff to help the process along, but don’t decree a set of abstractions that have no link to actual requirements. 

How sophisticated an approach to time can we support in software?

Exactly the simplest one each programmer chooses as needed to overcome any obstacle to the program said employee is writing.  People don’t like to be given arbitrary direction and then told to squeeze it out in half the schedule. 

The trick is making sure the other needs are visible so the programmer doesn't simplify out needed information or not even record it. Even the things I did yesterday to optimize a process might cause headaches to me today as I try to give a report to someone monitoring or auditing the process.

 

Yes, reality is a complicated mess full of logical contradictions and full of both rewards and penalties. 

 

You’re up against a politically sensitive situation by demanding elaborations of time without understanding the environment they are working in.

 

I think as the impact of any computer program grows, it only monotonically increases its political sensitivity within an organization over time.

 

Yes, until the shop closes. 

 

-Rich


David Whitten

 

On Wed, Jun 18, 2014 at 11:25 AM, Pat Hayes <phayes@xxxxxxx> wrote:


On Jun 17, 2014, at 9:08 AM, David Whitten <whitten@xxxxxxxxxx> wrote:

> I would like to point out that using July as a time is problematic,

I entirely agree, but didn't want to complicate my response by going into to many issues at the same, er, time.

> as I believe that:
>
> (cl:comment 'C employs P during time interval T'
>         (employs C P July)
> )
>
> would say that July is a time interval.
> To my way of thinking, July is the name of the (infinite) set
> of all time intervals that can be classified as overlapping with
> the month of July in any year.

A class of time intervals, in other words. Makes sense. There are other approaches, of course, but for sure, one needs to have a carefully thought through ontology of times and intervals and dates, and stick to it carefully. Just using words like "July" and hoping for the best, is not going to work.

>
> Thus, the statement (employs IBM Fred July)
> says that IBM employs Fred during the month of July in
> every possible year. (perhaps Fred is a seasonal worker)
>
> This is a different statement by far than saying IBM employs
> Fred for a particular month of July in a particular year.
> I expect also that the 3-D vs 4-D time view would argue
> that it is actually a time-slice of Fred that is employed rather
> than the Fred that exists at all times.

I have come to think that the blood spilled over this 3d/4d contrast is not worth the cost. We all agree that things like persons last through time while retaining their identity: I am the same person now as I was ten years ago. Exactly how you reconcile this with the other obvious fact that things change with time, is really only a matter of notation. If you prefer to write the time parameter as attached to relations or predicates, and think of properties changing with time, then that is one way to do it (often called 3-D); if you prefer to attach the time parameter to object names and think of this as time-slices of things, that is another (4-D). But  it is straightforward to translate between these, and with an expressive enough logic (such as ISO common logic) even to state their equivalence using axioms. As long as we all keep our philosophers on a short leash and stop them snarling at one another, we should have no trouble.

Pat Hayes

>
> David Whitten
> 713-870-3834
>
>
>
>
> On Tue, Jun 17, 2014 at 7:51 AM, Tara Athan <taraathan@xxxxxxxxx> wrote:
> On 6/17/14 1:03 AM, Pat Hayes wrote:
> >> Using the IKL “that” operator and a “during” relationship and the concept “July” (a ‘calendar month’):
> > Whoa. No, this is NOT the right way to do it. In fact, this is meaningless. According to the IKL semantics, (that (employs C P)) denotes a fixed proposition which is true or false. There is no room for any time-dependent variability in its truth value, or for making it depend on some other parameter.
> >
> It may not be the *best* way to do it, but I don't agree that it's wrong
> or meaningless. Using the proposition (that (employs C P)) as an
> argument in a relation is not obstructed by its denotation of a fixed
> proposition which is true or false (in any given interpretation).
>
> Starting off without quantifiers:
>
> (cl:comment 'C employs P'
>     (employs C P) )
>
> (cl:comment 'It holds during time interval T that C employs P'
>     (during (that (employs C P)) T )
>
> Nothing wrong with that - the truth values of these sentences are
> independent of each other.
>
> Now bring on the quantifiers to relate the two
>
> (forall C P
>    (if
>      (cl:comment 'C employs P'
>        (employs C P) )
>      (exists T
> (cl:comment 'It holds during some time interval T that C employs P'
>          (during (that (employs C P)) T )
> ) ) )
>
> Some users may find this clearer than the polymorphic representation.
> Why not let them use it?
> It is still possible to have the polymorphic representation behind the
> scenes for reasoning purposes.
> (forall C P T
>    (iff
> (cl:comment 'It holds during time interval T that C employs P''
>         (during (that (employs C P)) T )
> (cl:comment 'C employs P during time interval T'
>         (employs C P T)
> ) )
>
> Also, using the "that" operator for temporal context is a gateway to
> using it for other contexts/modalities.
> I find the symmetry appealing:
> (cl:comment 'It holds before time interval T that C employs P'
>     (before (that (employs C P)) T)
> (cl:comment 'It holds after time interval T that C employs P'
>     (after (that (employs C P)) T )
> (cl:comment 'It is possible that C employs P'
>     (possible (that (employs C P)) )
> (cl:comment 'It is forbidden that C employs P'
>     (forbidden (that (employs C P)) )
> (cl:comment 'Jane believes that C employs P'
>     (believes Jane (that (employs C P)) )
> (cl:comment 'Omar knows that C employs P'
>     (knows Omar (that (employs C P)) )
> (cl:comment 'Maria asserts that C employs P'
>     (asserts Maria (that (employs C P)) )
> ...
>
> Tara
>
> _________________________________________________________________
> Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
> Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
> Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
> Shared Files: http://ontolog.cim3.net/file/
> Community Wiki: http://ontolog.cim3.net/wiki/
> To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
>
>
>
> _________________________________________________________________
> Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
> Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
> Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
> Shared Files: http://ontolog.cim3.net/file/
> Community Wiki: http://ontolog.cim3.net/wiki/
> To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J

------------------------------------------------------------
IHMC                                     (850)434 8903 home
40 South Alcaniz St.            (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile (preferred)
phayes@xxxxxxx       http://www.ihmc.us/users/phayes




 



_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
 

 


_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J    (01)

<Prev in Thread] Current Thread [Next in Thread>