[Top] [All Lists]

Re: [ontolog-forum] Meaningful labels [was: Fixed labels in software?]

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "doug foxvog" <doug@xxxxxxxxxx>
Date: Fri, 19 Feb 2010 02:51:41 -0000 (GMT)
Message-id: <1182.>
Rob Freeman <lists@xxxxxxxxxxxxxxxxxxx> wrote:
> You might summarize one big point as to contrast the way you are
> looking at the problem, which is to make people conform (with "good
> labels"), and the way I am looking at the problem, which is to make
> computers adapt.    (01)

> Under it all is this idea that "meaning" is multiple and interpretive.    (02)

> On Wed, Feb 17, 2010 at 12:00 PM, David Eddy <deddy@xxxxxxxxxxxxx> wrote:
>> ...
>> IF we accept that one of the major expected  benefits of ontologies
>> is to make it easier for information systems (e.g. software) to
>> interoperate
>> (e.g. exchange accurate, meaningful data), then isn't it necessary to
>> have "meaningful" labels in & around software?    (03)

> Computers just deal with bits. The "meaningful label" problem is
> purely a human one.    (04)

Outside of the concept of using standard ontologies to allow for unintended
inter-operation, i would agree.  However, if people used URIs from standard
ontologies as labels in software, according to the "meanings" accepted as
assigned to those URIs, then a computer can process that "meaning"
according to rules and assertions already made concerning that URI.    (05)

> The way I am understanding your problem is where a programmer ...
> ... based on the way that programmer has interpreted ..., but that
> interpretation might not match the way someone else ... interprets it.    (06)

Since the reference is to ontologies and software, I don't have this
understanding.    (07)

> ...
> Ideally we could find some way for the computer to solve this human
> problem by interpreting labels in ways similar to humans.    (08)

The use of terms from standardized ontologies according to the meanings
defined for those terms would allow a computer program to do this.    (09)

>> Personally I have experienced that "good labels" are extremely useful.    (010)

I agree that this is quite useful for human understanding.  I reccomend
Kari Laitinen's work on "Natural Naming" in computer programming.  In terms
of the use of ontologies, "good labels" would have two meanings -- one
would be that good labels (according to naming standards) are assigned to
terms in the ontology; and the other would be the re-use of labels of
terms from the ontology in other software.    (011)

> The computer won't care, so long as the data is what it expects.    (012)

Computers never care.  And they never expect anything.  8)#    (013)

However, a computer program that does metaprocessing of its program might
calculate that a procedure is violating the assertions made about the
terms labeling the data.  For example if USSpaceFirm's software provides
the value of the variable fo:OrbitalSpeed_fo:InUnits_fo:MPH to a routine
by ESASatelliteFirm to fill a value for
the value could be rejected during project assembly time (or even converted
at runtime).    (014)

> What would be useful is if there were a way to program a computer to
> interpret labels in ways similar to humans. That would prevent
> problems where two humans have interpreted labels in different ways.    (015)

The use of ontological terms in computer programs would reduce this
interpretation task for humans and enable it for computers.    (016)

>> How about if there were a mechanism (clearly yet to be defined) whereby
>> humans (maybe even programs?) could verify what a label means?    (017)

> You mean interpret it in a way similar to the way a human would. A
> label doesn't "mean" anything.    (018)

not unless it created using a standard which requires it to be constructed
in a certain way using terms in an ontology,    (019)

>> Example: (Not necessarily universal, but within the context of a company
>> & its operating subsidiaries)
>> [A]  PostalZip Code   (means the string of numbers or letters used in
>> a legal
>> mailing address)
>> [B]  Postal Code (the 7 character string representing .....)
>> [C]  Zip Code (the 5, 9, 11, or 13 set of digits in a mailing
>> address...)
>> The problem today, of course, is that in a program or database a
>> field labeled Zip Code, depending on how it's technically implemented
>> (typically
>> not know unless you're deep inside the code of the system) could
>> actually also
>> contain Postal (or Post) Codes.
>> Such "minutia" plays havoc with interoperability efforts.    (020)

This seems to be the problem to be addressed.  If i gave the example,
i would compose the name from terms from one or more ontologies,
referring to the ontology with one or more name space designators (defined
somewhere in the code) according to a naming standard.    (021)

>> Currently what labels (both good & bad) mean is walking around in
>> peoples heads & not accessible to automation.    (022)

> I agree. That is the big problem: automating the interpretation process.    (023)

Agreed.    (024)

> I think the way to do that is to look at some set defining the context
> of the label you are using, and pull up other uses of that label with
> similar context sets. As Kuhn says of Wittgenstein "a discussion of
> _some_ of the attributes shared ... often helps us learn how to employ
> the corresponding term".    (025)

There is too much variability here.  It would be one thing to try to mine
existing code for meaning, and another to set up standards for explicating
the meaning.    (026)

> ...    (027)

>>>> Or is there some means to avoid opaque, difficult-to-understand,
>>>> ambiguous labels in software?    (028)

Yes.  A standard for naming could be created, for calculating labels from
terms in ontologies according to certain rules.    (029)

...    (030)

>> I am thinking of the "nouns" in code... not the "verbs" of the actual
>> software language.  The nouns are the business stuff that gets
>> collected, stored & moved around.    (031)

> Yes, exactly. The "verbs" are fixed by their procedural
> interpretation. The "nouns" vary because people will put stuff in them
> according to their own interpretation. If the computer code interprets
> them inflexibly in some other way, you have a problem.    (032)

The computer does not interpret the nouns at all.  It assigns numerical
labels to the values.  A typed language does require that arguments passed
are of types that are compatible with the operation being performed.  But
that is the extent of such interpretation.    (033)

> As I say, as a very rough idea, what you might do is attach sets of
> examples to your labels to match different typical use cases. Then you
> could select a use case for a label according to the best matching set
> of examples.    (034)

Given a set of inputs and associated outputs, there would be an infinite
number of functions which could do the mapping.  Calculating such a
function would not be easy.  If someone who wished to use such software,
ran the inputs against their specification of how they expect the code
to work and determine that the answers generated are those presented in
with the software, this would support the theory that the software would
work as intended.  However, to do this, the coder would already have to
be able to execute the spec, so the need for a second implementation
would be less.    (035)

> ...    (036)

> Consistency is what computers demand, but forcing people to do what
> computers want is not ideal. Even if you "assist" them with lots of
> training and big penalties.    (037)

This sounds like an argument against ontologies.    (038)

> Much better to find a way to assist the computer to interpret data the
> same way as humans. If you try to assist the human to reach the right
> decision by attaching lots of context, why not find a way to assist a
> computer to use that context instead.    (039)

This seems a far harder task.    (040)

>> Perhaps querying the mystical ontology repository could be such a
>> mechanism?    (041)

> I like John's idea because it incorporates at base the idea that no
> single complete theory is possible. So it starts from the premise that
> labels will be associated with multiple meanings.    (042)

This does not follow.  In theory A a man may have only one wife; in theory
B he may have up to 3 wives; in theory C he may have a husband; in theory
D he may have no wives if he is a priest; while in theory E, he is may
only have one wife if he is a priest.  The selection of theory may change
the rules restricting who may marry whom, but it need not be considered as
changing the meaning of "husband" or "wife".    (043)

> That's a good start,
> and light-years ahead of what we have had up to now, as a theoretical
> perspective, anyway.
> But I don't think it is perfect.
> The first crunch will be mapping between those different "meanings" I'm
> sure.    (044)

> I think mapping using sets of attributes (observations about the
> world, by preference) is the way to go. It best fits the way humans do
> it. To do that an OOR might have sets of examples attached to its
> labels, with the examples identifying particular theories, and use
> ad-hoc sets of those examples to make particular choices.    (045)

Specifying the rules for the different theories seems preferable to me.    (046)

> Another crunch will be enumerating enough theories. I would like to
> see that done automatically from sets of examples too. Some kind of
> ad-hoc machine learning.    (047)

An uncountable number of theories could be generated.  Specifying the rules
seems easier to me than designing systems to calculate possible rules from
examples.    (048)

> But I am happy as a start to see widespread adoption of the premise
> that there is no single complete theory.    (049)

I'm not sure that anyone in this discussion is still making such an
argument    (050)

-- doug    (051)

> -Rob    (052)

doug foxvog    doug@xxxxxxxxxx   http://ProgressiveAustin.org    (053)

"I speak as an American to the leaders of my own nation. The great
initiative in this war is ours. The initiative to stop it must be ours."
    - Dr. Martin Luther King Jr.
=============================================================    (054)

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
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (055)

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