Computing philosophy

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

Content:
0. Introduction
1. Architecture model of pwSrv
2. Programming and tools for pwSrv
3. Hosting of pwSrv
4. Propositional logic problems
5. Predicate logic
6. Philosophical, pragmatic or pw issues
7. NLP
8. Summary


0. Introduction

On these pages I want to open discussion on how to design the next steps in the pw project, especially the pw server (pwSrv). The points will be introduced not in a detailed level, as it is not an introduction into the whole project itself, e.g. the basic ideas and terms should be known. Details remain for discussions later. In case visit the home page and check the intro there, in case some abbreviations and/or test the existing pw client version. The pw homepage link and links in general see end of the chapters.
First I'll give below a short sketch of the current project status. In the next pages I'll discuss the pwSrv plans in more depth and open the discussion concerning tools, languages and similar stuff. Then I'll present some open logical and philosophical issues that will affect the pwSrv design and finish with a new topic that covers all topics so far: the possible usage of NLP (natural language processing) tools for pw.
The consistency computation of sentences in pw is planned to evolve in following 4 steps or levels:
1: plain intuitive natural language (without definitions of logical connectives and semantics, e.g. truth values)
2: formal propositional logic
3: first order predicate logic (as default, presumably with equality, optionally axiomatized)
4: user defined (presumably any needed extensions of level 3 as modal logics, higher order logics,...)
Between every level there will be some upgrade procedure needed for checks, to prepare computation and other stuff.

Till now the first level is finished. The upgrade to and the second level are partly finished and the next steps in the client version are quite clear. The services planned to be hosted on the server are explained in more depth on the next pages.
If You think the clients coding will be useful for the pwSrv, I'll provide it. Otherwise check the next client version. ( I'll publish the 1st level coding part along with the next client version presumably in the next months).

The general rules and those for the transition from one step to another can be summarized thus:

in level 1:
- we are on natural language level
- there are only generic base definitions and characterizations in PWR to enable further interpretation of central terms later
- the reasoning and closures are plain intuitively
- default transformations of the SE into propositional atomic formulas are available for reference to support the intuitive closures
upgrade to level2:
- selection of rules that should hold for the 2nd level propositional logic computation level as defined in PWR (DPWR)
- some (semi-)automatic conversions and checks
in level 2:
- choosing and evaluation of further sentences is possible, now TS
- consistency computation on the level of atomic sentences with user defined propositional logic(s)
- this is the default computation with some variants as PWR allows
- ...we skip other details...
upgrade to level 3:
...TBD...
in level 3:
- the default will presumably be a FOL (first order predicate logic), but here we have more variability, as the server should read the whole logic(s) first, plus the processing rules
- how far this can be made configurable has to be seen…
upgrade to level 4 and level 4:
..TBD..as it will be presumably nearly completely user defined...

One reason why to start the discussion on pwSrv issues now, is the connection between the clients propositional logic(s) and the servers default predicate logic(s) and the transitions (starting from the natural language in English, over atomic sentences into predicate logic). The other reason is to give time to discuss basic conceptual issues before start programming.

The pwSrv deveolpment and collaboration is now hosted on launchpad.

Some organizational stuff:
The chapters are numbered and give us the high level topic of further discussion. Any discussion topics in there are printed bold and have also a number. Any detailed discussion topics will later get a third number to be able to reference them. So we'll get a list of discussion topics numbered x.y.zz for the future.

Links:
pw home
pwSrv development and collaboration
Contact - mail to: eme37@lycos.com


1. Architecture model of pwSrv


The pw server from a architecture point of view should have roughly following design: After the clients session on level 2 is computed and upgraded to a level 3, all session information should be send in a zipped format to the server for processing. An evaluation of sentences in level3 by the user isn't planed for now, e.g. such a step occurs only on level 1 and 2. The pwSrv should have only evaluation functionality.
The pwSrv will be reached on the Internet via authentication. It will unpack the users session, check, process the session and present the results. Users will able to save their session on the server and should be able to incrementally update them. As we presumably don't use any classical database you can regard this architecture as classical 2-tier Client-Server with newer thin client technology on server side :-). That means, both client and server will process only files.
There was a first testing design effort some years ago based on UML and Java. We now start from scratch and a step earlier as mentioned above. Perhaps the package and directory design is worthwhile still to mention:
A- pwSrvRuntime = the static Server part
B- pwSrvRules = dynamic rules to be computed on the server map to computing rules
C- pwSrvObjects = dynamic objects to be computed on the server map to SE objects but might target some rules
Here the word 'compute' has a generic meaning. Details are left for discussion...

The base architecture of pwSrv(1) can be also part discussions, but I assume, that there will not be much to discuss. For detailed discussion and topics see the following list of services that pwSrv should provide.

pwSrv services list(2):
Following a list of services or functions that the pwSrv should provide for the users. The list isn't necessarily complete or finished, but should give a closer look into the planned functionality (3BR level only).
For the user functionality (in the workflow order):
- some basic user interface with help, infos, manuals and for the session processing functionality (in HTML)
- standard Logon functionality
- upload a packed session file for processing on the server
- queue the user request till processing resources are free (parallel session processing can be discussed...)
- extract the files into a subdirectory and eventually scan for viruses
- read in the processing instructions
- create or configure the processing environment for the given Predicate logic(s) and other variable features
- run all syntactical checks and in case of failure reply the error(list) online or via email
- in case pre-computation of some intermediate results might improve performance do this or reload it from saved session versions (this might be already derived closures for a given logic or similar..,)
- in case something cannot be processed, lookup other services in the Internet from an internal list to export part of the functionality to other logics servers (therefore we may need format converter for these parts) and wait for processing results...
- run the own consistency checks and provide detail results via HTML or email
- optional save the current session for an upgrade processing instead of a completely new run, if the user chooses to
- reset to idle status and wait for next request or process a corrected version of the current session via an incremental upload of files by the user

Some Admin functionality needed (needs not all to be programmed):
- to manage a list of users and superusers and their accounts data, register user, delete a user,...
- some standard monitoring tools to check pwSrv status if necc.
- possibility to abort session processing in case of problems
- restart pwSrv
- external debugging possibility will be useful
- upgrade of a pwSrv version
- a change list, bug list for problem tracking and release changes (see Hosting in chapter 3)
There are more possibilities for the future, but this should suffice for now.

Architecture/Infrastructure Topics(3):
Here now some architecture points of discussion with first recommendations.

- Formats:
plain ASCII files, in case XMLs for configuration and processing

- HW/OS:
as the server should be hosted not in our competency alone, I assume usage of Open Source SW as possible, e.g. a Linux derivate, but it will also depend on the selection of the programming language...

- Backup/Persistence:
The hosting provider should serve the regular backup of the pwSrv project; the saving of actual sessions will presumably be file based (same as the incoming session information from the users)

-Versioning and builds:
will presumably be done on a dev/test server separately; the versioning should be adapted to the infrastructure provided by the hosting provider

Concerning the programming language(s), SW and tools see now the next chapter.


Links:
-

next page (2)
pwSrv development and collaboration
pw home