Computing philosophy

- An approach in engineering and computing philosophy: the pw server


6. Philosophical, pragmatic or pw issues


First the philosophical part:
In the discussion above we assumed perhaps implicitly a direct relation between (natural) language and 'external things'(1). But this must not be the case. The relation between both is under steady philosophical discussion (and modern biology and esp. brain science have at least some impact on this...). Just a few references for this discussion to show that things might be further complicated are Wittgenstein, Tugendhat, Giere (see Links below). This question concerns the whole project pw. Can we represent our knowledge and our reasoning to acquire this knowledge externally by write down statements and formalize them in an appropriate language to process it for consistency? This is what the pw project tries to show, but ...

Some practical issues in pw(2):
Logical (or syntactical) formalization of many sentences or even bigger parts of texts is hard work, even if supported by some SW. In pw you transform a few sentences per SE (a short 'thought' in pw) into atomic sentences TS but it happens, that not all atomic sentences adhere to the defined SE type (e.g. WW, DW or EW). This will especially happen if we import standard philosophical texts. The current workaround is, that we allow one exception TS per TSString, which must then be evaluated to default. These will produce complications in later computation steps, but on the other hand I have already many cases where even one exception isn't enough. How to handle this, is open for now, but will sure have possible affects on the server computation.
NB: There are also other exception types due to other reasons, but I will not go into details here...

There will be an impact in 3rd level, e.g. the server computation, by the planned possibility, to allow for some user-defined changes of the PWR. This would mean a possibility for the user to change the base rules. These PWRoverrides will be defined in 2BR level and take effect in 3BR. As these aren't defined yet the impacts are hard to estimate.
This goes hand in hand with another topic, the backtracking of a session on level x by a session run on level x+1, to try to check, if the assumptions in x 'had been consistent' with the session on level x+1. Both are not even implemented in PWR, so just keep this in mind for now. As discussion starts I'll provide details on this. The connection to the predicate logic(s) is, as mentioned above, that we have to develop a generic base on the Predicate logics to be able to process any Predicate logic that is allowed to be defined by the user. So if there are possibilities for users, to change base rules (in ways and extensions TBD), we have to take them into account too (maybe not (all) in the first version of pwSrv ...).

Now let us delay discussion of future problems and give a more current problem. Given some sentences SE formalized into atomic sentences TSx in a propositional logic. Each TSx number stands for his natural language atomic sentence.
What if two sentences TSx and TSy are the same or the same, by differing only using other synonyms(we leave out here the next problem of contexts)? Then they should have/get the same TS number x ! Otherwise it can happen that they get different valuations, what cannot be possible, if they have the identical number and further on, in a logical formula it makes a big difference if You have a formula 'p and q -> r' or 'p and q -> p', eg. p and r should have been the same.
A further problem is, that perhaps every user knows his sentences, but not by heart these of others. How should he identify same sentences if he doesn't know them. So the current/first workaround/idea seems best, to try to hold a mapping table for every users SE-TS, where he/she maps his/her identical atomic sentences by some rules TBD. Here NLP approaches will really be helpfull too. So take a look now to the last chapter!

Links:
L. Wittgenstein: 'Philosophische Untersuchungen', Suhrkamp, Frankfurt am Main, 1984
R. Giere: R. Giere and look for physical models...
E. Tugendhat: 'Vorlesungen zur Einfuehrung in die sprachanalytische Philosophie', Suhrkamp, Frankfurt am Main, 1984 *
* Tugendhat finishes his lecture stating that 'The question, what does it mean, to understand an expression in a language, seems, if we are honest, is as misty as ever.'


7. NLP


Natural language processing is a science trying to combine mathematical, computational and linguistic approaches to resolve natural language statements for further processing depending on some applications needs. First usable applications derived from it in recent years. It is not pure science any more. A set of such tools is normally able to provide, on a given theoretical framework (the grammars list below), the processing of natural language texts, e.g. :
tokenizing
syntax checking
and parsing
with a resulting grammatical tree structure of the sentences.

There are a bunch of approaches and combinations ranging from strict grammar models till plain statistical algorithms, each with its special strengths and weaknesses. Some known grammar types, which have also presumably a set of (experimental or mature) SW supporting it, are:
- categorical Grammars, Bar-Hillel 1953, Lambeck 1958,
- type-driven Semantics, Richard Montague 1974
- (non-) combinatory type-logical grammar
- combinatory type-logical grammar: is more statistics ...
- tree-adjoining gr.
- lexical functional gr.
- head driven phrase structure gr.
- attribute-value gr.
- general phrase structure gr. (trying CFG)
- linear indexed gr.
- extended push down automata (new Chomsky hierarchy type )
- mildly context sensitive gr. (Joshi 1988)
- controlled natural language (instead of OWL)
- Phrase-strucuture gr.
- dependency gr.
With only one further comment: Why are there so many grammars? Every natural language has a quite elaborated base grammar every educated speaker knows, with a number of rules, which is big, but manageable. The problems are the exceptions and other ugly features as ambiguous words combined with the amount if existing or possible words which produces complexity (like famous German infinte-length word production rule as 'Donau-Dampfaschiffahrtsgesellschafts-Kapitaen....'). For parsing a text we would like to have an exact 'generating' grammar in EBNF as a base. Such grammars are build by some scientists, but get so big that they cannot be really used and maintained. So there are actually more than these n grammar variants in science, to try to overcome the problems to get NLP into a mature usable condition. Which of the grammar approaches(1) above fits our purposes (best)?

Most of the available tools out there adhere to one of such a category above. So we have to combine aspects of the usability of their grammar model, the underlying SW of the tool and matching it further with the SW environment we plan to use! Plus remember the target to generate our FOLogic from that !

We will not start a discussion on NLP here, but make first a step back: A problem using such NLP SW will be, that these tools have their own processing chain. It starts with a set of sentences in files or a stream of signs and ends up with a parsed tree structure, in case also some Predicate logic variant conversion.
The problem is, that we'll presumably need some room for sentence adaptation for logical issues(2) in between this chain (see thee logic chapters above). This is provided in pw's TSStrings for propositional logic and will presumably also be needed for the creation of predicate logic sentences. The NLP tools unwrap the grammatical structure (in case even semantic) but not the logical! I will not say that there are no overlaps, but it isn't the same! So if we use them (possibly only supporting our, otherwise plain manual work) we need either of the following variants(3):
a) revise pw workflow (nat. language, default Propositional logic, a Predicate logic...) to fit NLP workflow or
b) get one of these tools to integrate in the pw workflow (some conversion process from/and to pw will not be the problem! ): but can this NLP tool process pw's propositional logic atomic sentences given the context S ? This will be hard work...
c) Process the sentences SE right from the start into predicate logic? Then we have to abandon the propositional logic level2 computation or try to remap level2 later to the generated NLP predicate logic version: seems not to be a good solution ...
d) There are also some good NLP frameworks and libraries out there. Perhaps it is worthwhile to try such a variant, e.g. don't try to find the ideal tool but use such a framework to get done what we need.

The next problem with many 'real' grammars is, that they often take only the actual sentence to process into account. They cannot good handle contexts. If they can, they are (at least often) not working any more on pure grammatical laws but more with probabilities. These provide good results, but they don't work 'exact'. An argument contra to this would be: are texts 'exact', especially philosophical ones? We should in case discuss the exactness(4) needed for us! If we take NLP tools into account, we should also look at possible combinations of hard-core grammars with some weaker (probability) algorithms.
NB: the automatic handling of contexts inside pw is not resolved yet too.

Detailed NLP requirements cannot really be stated now it seems. If we use such tool(s) the decisions are triggered by (depending on) our programming language selection, the predicate logic(s) to support and other decisions (see above). In case the usage of NLP has to fit in the whole design(5) as outlined above. The NLPs environment and especially its programming language or API should be the same as our pwSrvs! So both have to be evaluated together.

In case we have to decide on another important point. At which level we want to use NLP support? Do we want a syntactical representation or even a semantic(6) of sentences SE and their closures? This is also connected concerning the decision in the predicate logic part concerning the usage of some model theoretic approach...
A final point: as pw sentences SE should be able to assert any topic, e.g. it's own predicte logic or it's tool processing it's sentences in NLP th NLP tool must itself be open source too. Otherwise we would refer to a black box.


Links:
For further infos on grammars check the wiki and also google for ‘unification’.
On NLP frameworks look for keywords like: NLTK, GATE
There are also many libraries (as for java) available: search for NLP libraries or similar...

8. Summary

In case I overestimated my competences please correct me or convince me concerning a given topic beeing outlined not correctly. Any suggestions or participation in a discussion point are recommended.
mail to: eme37@lycos.com

Here the first discussion list topics summarized without the details level:
1. Architecture model of pwSrv(1)
1. pwSrv services list(2)
1. Architecture/Infrastructure Topics(3) 2. Programming language(1)
2. SW requirements(2)
3. hosting of the development(1)
4. Problems of propositional logic vs. Predicate logic(1)
4. crossing the boundaries of logics(2)
4. meta-level sentences(3)
5. FOL version(1)
5. limitations in the expressiveness of FOL(2)
5. more predicate logic requirements(3)
5. generic EBNF for 'any' FOL(4)?
5. Normalization(5)
6. language and 'external things'(1)
6. Some practical issues in pw(2)
7. Which NLP grammar approaches(1) fits ?
7. NLP sentence adaptation for logical issues(2)
7. working variants(3) with pw workflow
7. exactness(4) of NLP needed
7. NLP has to fit in the whole design(5)
7. a syntactical representation or even a semantic(6)?

Any necessary information concerning the pw project, especially updated rules PWR, will be provided asap as the discussion will need.

Last update 12.07.09

previous page (3)
pwSrv development and collaboration
pw home