World Wide Logic language description

First draft of syntax: http://ourproject.org/docman/view.php/858/10178/wwl.txt

Toolset structure: tools

Implementation guidelines: implementation

What is the purpose

WWL is a language, which prime purpose is to allow people to share their tastes. It's secondary purpose is creation of databases, which are not centrally kept on some server, but updated by many users, who all keep their parts on their own pages. Most of those databases are meant to contain information about objects on web - web pages, manuals, scientific works etc.

General description

Users create wwl pages, which contain some urls and relations between them. Relations might be that some url is better than another or some constant (anchor) goodness level. They might, anyway, give much deeper information, like complex relations between scientific works - some prove others, when some are contradictory and some are simpler or more readable than others. This allows to build a structure of related pages, which is poorly achieved even by best search engines today. Database is meant to be kept free and open - this means that there is less privacy than some people might want for that purpose, but it also allows creation of different servers, which can be then tested and used separately or in parallel.

About the language

In essence, it should be similar to Prolog or some other logical programming language in that you can state facts, relations between them and rules between those relations. It also allows something similar to fuzzy logic achieved by special kind of sequences - those sequences are primary means to allow databases to be created by many users not directly cooperating.

In practice, it will be syntactically more similar to imperative language like C or Python. It will contain many well-known keywords and structures from these languages in slightly different form, which allows evaluating code as logic language.

About interpreter

Interpreter is able to load packages of different users. Users are allowed to register their home pages in servers, which will list those user pages as "units". Each unit will contain packages, which declare some relations, suggest facts and make clear their tastes.

Based on interpreting this data, some servers or local interpreters in user's machines try to figure out similarities between different users and similarities between some tastes - like Amazon will tell you that users, who have got that book, also like these. It says that users, who have stated those facts and tastes, would probably state those facts also.

So if it knows, which web pages you like right now, it also knows, which ones you would like. As it connects databases about web pages, objects on pages etc., it might know also, which articles you like from page you haven't visited. It might also know that those users, who did like those comments on that page, would also like those items in this shop.

About modules, which allow users to express their tastes

The raw way, which will be supported first, is writing those scripts. Based on those scripts, one can make queries to server, which can answer your questions based on your script like Prolog does; it can also answer many more questions based on scripts of similar users - like Amazon does.

One way, which should be possible in future, is using browser plugins to express tastes. Simplest is to state a bit about a page - do you like it or not, how you would categorize it and which relations would you build from open tabs (like that they all talk about the same topic, but one of them tells it all very simply, while another contains also math about the subject). This plugin has some package on your user page, which it can modify - add some lines to your script.

Other way would be going to web page, which is compatible with that plugin. This web page contains script for you and registers it in such way that your page will contain link there (validating that this is your information), you will be asked if this is allowed and you can delete or ban it later. Then, you can answer different questions on that page - they all count as facts. Such page can only add tastes (which are a kind of facts) to your page and they might be only related to items on the page, which you are visiting - this is enough, because to find similarities, it will also use facts collected elsewhere, and it will contain some data about that those, who did like that book in amazon, also like this article here.

About feedback

Obvious feedback is making queries to server about facts - is that page better than that; which pages are similar to this, but containing more complete and adequate information.

Other would be browser plugins - some plugin, which always keeps some lists there, which show you that users, who disliked this page [because of that reason], did still like that one about the same topic. Or that users, who shared the same philosophical mindset with you (being agnostic, for example), preferred this page over the one you are visiting because of neutrality.

Also there could be web plugins. Those could make your user space a query about items on that web page - for example, you will visit some page, which contains many freeware applications, but lists 20 on main page. This page is connected to your database in such way that even if you have never visited it, it will list your 20 favorites, not top 20 of all users. It can, of course, list the top 20 right after results, which you are supposed to like - so that you loose nothing. Or when you go to web page about linux distributions, it will list news about your favorite on master page - like, right now, you might get some download for OS X if you are using one, instead of selecting your OS from some dropdown.

projects/wwl (last edited 2010-01-02 22:35:12 by 171)