Just my pence about my FOL familiarity.
It was a great book of Lucien Felix "Elementary Mathematics A Modern Introduction".
2010/11/9 John F. Sowa <sowa@xxxxxxxxxxx>
On 11/9/2010 1:24 AM, Alex Shkotin wrote:The first point I'd emphasize is that IT systems have been successfully
> What do we need for our information systems to communicate properly?
> Integration? Alignment? Unification? Information system education?
communicating for over a century. Originally by punched cards, then
by paper tape, magnetic tape, direct connection, and telephone.
When Arpanet was started in 1969, there had been a long history
of experience in data communication. And the latest conventions
for the WWW are still based on extensions to those protocols.
Those physical formats and layouts are very important for the
technology. And they will remain buried in systems for ages
But you never, ever want those formats to have the slightest
influence on the semantics. The decision to force OWL into the
same straitjacket as RDF was hopelessly misguided. In fact, even
the decision to force decidability down the throats of every
ontologist was another profoundly misguided technology-driven
decision. (Note the subtle semantic distinction between profound
and merely hopeless.)
Use whatever notation is appropriate for your application. But you
> What kind of language and dictionary we need to write question? SPARQL?
> What kind of language and dictionary we need to write answer? XML, CSV?
must design the overall system in such a way that the choice for one
application is *invisible* to anybody who is designing or using some
Of course, there may be some cases where real-time constraints make it
necessary to avoid a conversion routine between two systems. But that
is a very low-level optimization that should never affect the semantics.
For example, when was the last time that you thought about the packet
transmissions for your applications? Some system programmers worry
about those things a lot. But they're invisible at the semantic level.
When you are thinking about semantics, any thought about the
> Where is your SPARQL end point at least?
difference between SPARQL, SQL, or some bit-level access to data
is totally irrelevant. Please remember that commercial DB systems
provide all those ways of accessing the data if some programmer
who works down at the bit level needs them. But anybody who is
working on semantics should never think about them (except in
those very rare cases when they go down to the subbasement to
talk with system programmers about real-time constraints.)
Not necessarily. Sometimes you learn their language, they learn
> JS: "but every application will have... different vocabularies, and different
> dialects." Inside. But with a stranger we usually change language to common.
your language, or you bring a translator with you.
But it's essential to distinguish three kinds of languages:
natural languages, computer languages, and logic.
For NLs, translation is never exact because they all have hidden
ontology buried down in their lowest levels. For computer languages,
the level of exactness depends on the amount of buried ontology.
Some computer systems (such as the TCP/IP protocols) do translation
from strings to packets very fast because they don't impose any
constraints on the ontology. Therefore, programmers above the
lowest system levels never think about those translations.
For other systems, such as poorly designed software, the ontology
changes in subtle ways with every release and patch to any system.
(I won't name any names, but we've seen such things all too often.)
But first order logic was *discovered* independently by Frege and
Peirce 130 years ago, and *exact* translation between their notations
and all the modern notations for FOL is guaranteed.
Note the word 'discover'. Frege and Peirce did not *invent* FOL.
My comment is that FOL was standardized by an authority that is
even higher than ISO -- namely, God. (Please note the Bible,
John 1,1: "In the beginning was the logos, and the logos was
with God, and God was the logos.")
Nobody has to learn FOL, because it's buried inside their native
language, whatever it may be. But some notations for FOL are less
readable than others. That's why I recommend controlled NLs for
But learning to write FOL is nontrivial, even in a controlled NL.
The reason for the difficulty is that people are used to the
flexibility of their native languages with all that built-in
ontology. To write pure FOL requires a very strict discipline
to distinguish the logic from the implicit ontology.
Bottom line: The distinction between logic and ontology is so
important that you should never confuse people with extraneous
issues about bit strings, angle brackets, or even decidability.
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
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 (01)