[Top] [All Lists]

Re: [ontolog-forum] Labeling relations and grover models (merger of two

To: <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Ed Barkmeyer <edbark@xxxxxxxx>
Date: Wed, 22 May 2013 16:54:32 -0400
Message-id: <519D3088.3010400@xxxxxxxx>
A slight aside.

 John F Sowa wrote:
SBVR is an interesting use of controlled English. But they made the mistake of using the CNL the definitive form.

If the CNL has a well-defined mapping to a logic language, then it is not a mistake to use it normatively.  Creating a well-defined CNL with a well-defined logical interpretation, however, tends to produce either a crude language, or an anglicized version of logical formulae.  To borrow from Dr. Seuss, "That's not easy, Mr. Fox, sir."

It seems that the SBVR folk thought they had (a) defined a CNL and (b) defined a mapping from the CNL to a formal logic representation.  In fact they (a) described a CNL and exemplified careful usage, without ever being clear about grammar rules; and (b) described the mapping of the keywords in the CNL to logic, without describing the interpretation of complex constructs.  So, the formal definitions and axioms in the specification have clear logical interpretations, for which only a certain amount of undocumented logical intuition is required.  On the other hand, the spec gives several examples of business rules in a not-so-carefully written dialect of the CNL, with fully expanded logical interpretations that can only be produced from the example statements using NLP heuristics.

For a simple axiom like "Each X has at least one Y", for example, there is no rule that tells us which quantifier encloses the other.  We, of course, know what the sense of that axiom is.  But "At least one Y of each X is a Z" takes more thinking, and follows a different interpretation rule for quantifiers.  And "if a customer places a volume order for some product, every subsequent order that the custormer places for the same product gets a volume discount" requires rather more interpretation guidance than:  'a' and 'some' are existential quantifiers, and if...then... is an implication.  In fact, in this case, 'a volume discount' is existential, but all the other 'a' and 'some' adjectives have universal intent.  If you are using a CNL normatively, and it allows such a sentence (as SBVR says it does), then you have to explain the rules that produce the logical interpretation of that sentence.  Within the specification, SBVR is very careful to rephrase a sentence like this to expose the proper quantifiers, which is only to say that more "control" in the use of the CNL is required than is described.

In English, 'be', 'have', and 'do' are classified as verbs, but their syntax is distinctly different from "normal" verbs, and they have very little semantic content. They should not be used by themselves as relation names.

Fully agree.  Only some of the uses of those verbs carry specific semantic content.  'is' can mean identity; 'has' can refer to ownership.  Other uses are, in one sense or another, purely 'auxiliary'.  And it is perhaps important to mention that, in a formal language, 'is' and 'has' as independent verbs get one semantic interpretation each.  Every other interpretation requires an additional word in the verb phrase, or some rule about the context of usage.



Edward J. Barkmeyer                        Email: edbark@xxxxxxxx
National Institute of Standards & Technology
Systems Integration Division, Engineering Laboratory
100 Bureau Drive, Stop 8263                Tel: +1 301-975-3528
Gaithersburg, MD 20899-8263                Cel: +1 240-672-5800

"The opinions expressed above do not reflect consensus of NIST, 
 and have not been reviewed by any Government authority."

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>