W3C home > Mailing lists > Public > public-rif-wg@w3.org > May 2009

Review of FLD

From: Chris Welty <cawelty@gmail.com>
Date: Mon, 18 May 2009 15:55:06 -0400
Message-ID: <4A11BD1A.20803@gmail.com>
To: "Public-Rif-Wg (E-mail)" <public-rif-wg@w3.org>


In the abstract and overview, I think the standard-speak used is too 
constraining regarding the requirement of future dialects to implement FLD:

"The actual dialects are required to specialize this framework to produce their 
syntaxes and semantics. "

I suggest this be slightly weakened to use "should" instead of the implied 
"must", ie "...dialects should be derived from RIF-FLD by specialization..."

In general, the text is pretty good about saying that FLD may need to be updated 
  in light of new dialects, but I still think our message is that FLD *should* 
be used, not *must* be used, in the specification of new dialects.

Of course one could argue that FLD is only making this requirement of dialects 
that wish to be called "logic" dialects, but as with the naming of "not", which 
came down to sort of "who gets the right to call their negation 'not'", I can 
imagine some group wishing to say they have a "logic" dialect even though it is 
incompatible with FLD.

1. Overview

"All logic RIF dialects are required to be derived from RIF-FLD by specialization, "


2.2 Alphabet

"Definition (Alphabet). The alphabet of the presentation language of RIF-FLD 
consists of the following disjoint subsets of symbols: "

Common Logic allows variable symbols and constant symbols to overlap.  Do the 
subsets need to be disjoint?  All these types of things can be distinguished by 
their syntactic context.

"A countably infinite set of quantifiers...where n ≥ 1"

It seems strange to include the variables as part of the set of quantifiers. 
WHy aren't the quantifiers just Exists, Forall, ...

2.4 Terms

"Positional terms in RIF-FLD generalize the regular notion of a term used in 
first-order logic. For instance, the above definition allows variables 
everywhere, as in ?X(?Y ?Z(?V "12"^^xs:integer)), where ?X, ?Y, ?Z, and ?V are 
variables. Even ?X("abc"^^xs:string ?W)(?Y ?Z(?V "33"^^xs:integer)) is a 
positional term (as in HiLog [CKW93]). "

This idea goes back at least as far as Enderton, 1972, and has been used in 
implemented systems such as SNePS and Conceptual Graphs in the 80s.  Since 
Enderton published in '72 what was already a "well known encoding" of predicate 
variables in FOL, I don't think it's accurate to say this "generalizes...FOL". 
The fact is that this IS perfectly first-order.

Thus it seems reasonable to just say something like:

"Positional terms in RIF-FLD are quite general, and allow variables everywhere, 
as in ?X(?Y ?Z(?V "12"^^xs:integer)), where ?X, ?Y, ?Z, and ?V are variables. 
Even ?X("abc"^^xs:string ?W)(?Y ?Z(?V "33"^^xs:integer)) is a positional term 
(as in HiLog [CKW93], SNePS [SR87], and Common Logic [CL07]). "

The SNePS reference is:

Shapiro, Stuart C., & Rapaport, William J. (1987), "SNePS Considered as a Fully 
Intensional Propositional Semantic Network" [PDF], in Nick Cercone & Gordon 
McCalla (eds.), The Knowledge Frontier: Essays in the Representation of 
Knowledge (New York: Springer-Verlag): 262-315.

I fixed a number of formatting problems w/ subscripts.  If outside a <tt>, 
subscripts for 1 look like a |

3.2 Truth Values

"RIF dialects can have additional truth values. For instance, the semantics of 
some versions of NAF, such as well-founded negation, requires three truth 
values: t, f, and u (undefined), where f <t u <t t. Handling of contradictions 
and uncertainty usually requires at least four truth values: t, u, f, and i 
(inconsistent). In this case, the truth order is partial: f <t u <t t and f <t i 
<t t. "

Since the document says the inverse operator needs to be defined, I suggest you 
define it here for these two examples.

3.6 Interpretation of Non-document Formulas

In a <t,u,f> valued dialect, I'm unsure what happens in this case:

Exists(?x) P(?x)
Exists(?x) P(a) :- P(?x)

If this entails anything other than P(a), then we would have a hidden extension.


In general as reading I tried to think of myself using FLD to define a full 
first order (+ datatypes) dialect, but I was not able to get a clear idea of it, 
so I'm left unsure whether it would work.  I didn't notice anything in 
particular (other than noted above) that would prevent it, but the document is 
long and contains a lot of concepts and I never got to the point where I 
understood the whole thing at once.  As I read, though, things did make sense 
and I thought the flow of information was appropriate.

I did not look at the XML syntax section (4).

I note that, like BLD, FLD avoids any notion of error.  I understand why we did 
that for BLD, but wonder if more expressive and complicated dialects will want 
it, and whether FLD should support it.

Dr. Christopher A. Welty                    IBM Watson Research Center
+1.914.784.7055                             19 Skyline Dr.
cawelty@gmail.com                           Hawthorne, NY 10532
Received on Monday, 18 May 2009 19:55:50 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:47:56 UTC