eventBased Framework
(Documentation in Bulgarian) http://unidevelop.org/wiki/project_embedded_apps_lib
(SVN Project home) http://unidevelop.org/browser/unidevelop/programming/projects/eventBasedFramework
I have wrote a small C OpenSource licensed framework implementing the ideas of eventBased Algorithms and Data and Data flow processing (http://garabedyan.wordpress.com/2008/03/04/data-flow-processing-eventbased-algorithms-and-data/) for my university exams. I have win first place best programming project in Unidevelop, Technical University- Sofia, the organizers granted me an ASUS EEE PC 4GB which event was presented in the front page of New technical avangard (official newspaper of Technical Univesity, Bulgaria) in February 2009.
The framework is aimed to handle embedded applications, but its core is universal in the context of the expressed assumptions about Object Oriented Programming (state and behaviour) eventBased Data processing (Observer pattern). Client- programmer is able to easily create variable containers and declare to them the interested functions in a change of the stored variable. Every time a variable value is changed the interested functions are informed.
Future development of the project is adding Aspect-Oriented like functionality which to enable the client- programmer to declare aspects (functions) and functions (or aspects) to be called before and after the aspect’s code is executed. Very useful to be aspects I think functions which produce outside the MCU commands.
I have used Erik Meijer: Functional Programming; MSDN Channel 9 Going Deep Show http://channel9.msdn.com/shows/Going+Deep/Erik-Meijer-Functional-Programming/ as an additional theoretical source of programming language science.
The client- programmer uses the platform as a library for calculating decision tree finding the right result in as a small period of calculation time, as possible; optimization of calculation in the program which depends on external variables (especially for those which are part of the decision tree if meet the letter condition) by in advance calculation in every change (revision) of the value of a variable.
eventBased Framework is a platform architecture aimed to advocate declarative programming in programming products handling asynchronous events.
I believe that the architecture of a program must inherit the structure of a natural science like Physics in example. There is a pure scientific explanation within the idea of of declaring and defining by such formulas in small modules source code. Programming is of its own translation (virtualization) of a real phenomena in electronic form, which is all what natural science do. The history of development (introducing new more concrete ideas and visions) of sciences goes through this process. Science tries to generalize and collect “if-then” observations describing behavior of a certain class phenomenas by transforming them into laws predicting result of a system in a moment in future. This laws have such mathematical form to enable calculation and analyze.
As far as Object Oriented Programming is an engagement of state and behavior, object oriented code can be written in languages which does not support insight mechanisms of encapsulation, powerful polymorphism with class interfaces and casting. Using methods of memory addressing with references and addressing code pieces with references to functions, engagement of state and behavior can be reached. This source code is reusable (re-editable) in a result of this OOP powerful character.
MCUs during their work handle input events. From this point of view a certain amount of variables exists, which is defined with input/ output functions important for the behavior of the system.
It is strongly recommended (close to restriction) functions called in advance to not result in hardware commands outside the MCU. Such side effects are supposed to be coordinated with the purpose of the concrete technical system.
In order achieving optimization, it is important every significant heavy calculating function to save (declare) all its input and output variables (including code side effects and dependency injection) in the global dynamic array of containers of variables (implemented by eventBased Framework) meanwhile to register its interest of all input variables in their concrete containers. When such code is called it must immediately return the execution of the program after checking if the input variables’ values have been already examined by the code.
Conclusion: Multi- stage programming and object’s oriented most significant functionality of encapsulation of state and behavior are implemented intelligently in one homogeneous software architecture unit enabling interruptions for reacting on urgent events. In parallel to reaction on every small change of some value in variable containers, the client- programmer can write functions reacting on interruptions which code on a base of small calculations of the present values in variable containers to calculate the needed reaction on the urgent situation.
Mail conversations viewed like timelines
Mail conversations and mail search results are presented like tables which is too hard for me to find what is the amount of information transmitted using and stored in mail messages. The way tasks in BPM (business process management) systems are presented in timeline- like diagrams (Gantt diagrams), the same way mail diagrams of messages filtered by their headers (TO, FROM and DATE) or custom search query can be automated.
java.lang.ref.* in GoogleWebToolkit ?
Is java.lang.ref.* functioning in GWT? I come to an idea that java.lang.ref.* is necessary to enable proper garbage collection while implementing the Observer pattern in Model View Controller.
I was writing a big Java code for GWT for my school final project to make a program that at that days was modern to call Rich Internet Applications (RIA). I have implemented the full MVC by making the model to be a fully functional object (at that time only a Bean object carrier but able to implement business logic if having this need in future) which updates by request to the server made in a definite period of time. I have enabled different views to edit at one time one object by implementing the Observer pattern. After I have finished the project I realized that a newly created view will never be collected by the garbage collector because always its model has a reference to it in order to update it when an update is received from the server.
Now I think that by implementing java.lang.ref.* in the client side (translating to written by hand JavaScript code that adds and can manages new type of object references) many people can avoid their own implementation of object release algorithm used to classify the significant (regular) and not significant (which do not require object existance at all) object references.
Link to GoogleWebToolkit Discussion Forum thread on “java.lang.ref.* in GoogleWebToolkit ?”.
Garbage collection in Java and design patterns http://garabedyan.wordpress.com/2008/01/08/garbage-collection-in-java-and-design-patterns/
GoTo to pack the code like exceptions in order to prevent mistakes
GoTo command in many languages caused problems of misunderstanding and hard to find mistakes in code.
I believe that if GoTo statement has the block syntax like exceptions the letter mistakes and misunderstanding will be decreased. Block syntax of exceptions prevents the most mistakes made by bad written and commented code.
Political Dialog between Armenia and Turkey
The present article has a political aim, it tries to describe and prove the best moral and right action of a group of peoples. I, Garo Garabedyan, declare that this engages only my political vision.
I have felt fear of Turkey’s kill the Armenian Genocide resolution attempt. I like to share my view over the possible development of the relations between Turkey and Armenia about the Armenian genocide.
I believe that Armenia has the full power to protect herself and the recognition of the Armenian Genocide and any relations with Turkey can not stop her doing so. If Turkey tries to spin and lie us there is a considerable move to do within our relations with Turkey on this topic, I believe.
Appealing the problem of the Armenian Genocide to be examined by an International Court in order to come up with a final and binding decision on it will avoid any spinning and lies. I think that after this appeal Turkey can not lie or spin, because these actions will be too obvious for anyone after the court invitation. The crime of genocide is a crime under both national and international law and both national and International courts have the power to judge them. The reason we, all the Armenians around the world, want different countries to proclaim this historic event as a genocide is because there was no International court with jurisdiction to proclaim it, the national courts in Ottoman empire and Turkey have not proclaimed it, Turkey has denied it and International court jurisdiction is constituted by the all countries. Armenia and Turkey can constitute an International court to deal with this “question” of the existence of this crime of genocide.
Of course it is not easy to create an International Court, but this is the way genocides were judged if the offender rejects or the victim is not satisfied. Other countries can help in the process of creation and composition of this worldwide juridical institution. The Convention on Prevention and Punishment of the Crime of Genocides claims that all signed countries find the crime of genocide as a crime against both national and International law and agree to punish and prevent it. I find USA as a suitable volunteer in this particular search for justice, but this is a possibility which can rise in future and we can not think on it now.
I would like to draw your attention on http://garabedyan.wordpress.com/2008/05/11/genocide/ which is my work over the nature of the crime of genocide and its recognition by individuals.
Basically, crimes against humanity, beyond the sphere of traditional war crimes, represented offense committed against civilians, and not so much against individuals as against civilian population. Obviously such a development meant an expansion in the scope of international law [See Gould, pp.656-657; and note the war crimes trial decision cited there]. The interesting and certainly debated aspect centered on the fact that acts of Germans against their fellow citizens were deemed to fall within the purview of he Allies’ authority, even though German law would have sanctioned a number of the acts in question. Such an unprecedented innovation in the law of nations must remain questionable [See F.B. Schick, "The Nuremberg Trail and the International Law of the Future", at p.785], particularly on the grounds that this interpretation disregards a basic principle of the law: no state shall intervene in the territorial and personal sphere of validity of another national legal order. [Gerhard von Glahn, Law Among Nations, An Introduction to Public International Law, New York, 1981]
The Atom of Knowledge and Science: “A is B”
Knowledge and information are built up by atoms. This is a small piece of knowledge/ information which after breaking down is not knowledge or information any more.
Printable version: (The Atom of Knowledge and Science 112KB, 6 pages)
This paper presents the view of the author about the existence of the most smallest (tiny) knowledge/ information construction- atom of knowledge. The author claims that any form of knowledge can be serialized up to this atom of knowledge without any lose going through this process. If this knowledge construction is broken down no knowledge/ information is left in its separated or built up in different forms pieces.
Contents:
1. Atom of knowledge: “A is B”
2. ”A is B” and its relations with “A isn’t B”
3. ”A is B” and “If A then B”
4. Using eventBased infrastructure in “If A then B” to break it down in “A is B” statements
5. Knowledge to “A is B” form
6. Analysis of the knowledge atom’s truth level (with example)
7. Abstractions in the atom of knowledge are static and unique references
8. Natural language semantics and development concerning “A is B”
9. Citations
Atom of knowledge: “A is B”
There exists a fundamental sole (only one) atom of knowledge. Every form of knowledge can be presented by using only this atom and basic logic constructions without any change of the knowledge while changing its form. Based on this atom of knowledge thoughts are expressed explicitly.
Knowledge is functional description of observed phenomena and their characteristics. It is functional because we use it to determine in which circumstances what important to us changes (happens). Human knowledge only describes phenomena and empirically proves them, it does not have any power to prove theories about phenomena semantics.
The atom of knowledge is the equivalence and has the form of “A is B” statement, where A and B are abstract models of some concepts. Abstract models usually represent only a few functions (behavior characteristics) of the concepts.
A is B
IS is one way function, we can not say that B is A
A, B are abstractions
IS (equivalence) is the product (output) of the process analogy
L: “A is B”
L is the set of “A is B” atoms. Values like <L atom>.A := <some abstractions>; <L atom>.B := <some abstraction>; <L atom>.Truth:= <Boolean>.
People make decisions in their life by analogy, concludes Marvin Minsky (CSAIL, MIT). He makes a review of the most popular classes computer solutions in AI for general tasks from the real life. He claims that discrete logic environment and statistics are not applicable to the common problems of real life.
Here is an example of thinking by analogy. Lets we have two objects/ phenomena A and B for which we know different functionalities, A: w, m, n; and B: m, n. Thus, by analogy B: w, m, n. In other words we accept that the shared functionality between the both objects in m and n is enough in order to conclude equality for w (in A and B), too.
Analogy is a method not only finding final result, but reveals uncertainty in the problem itself. Determining a problem is approximately always engaged with searching information. In such cases analogy is able to give more certainty and transform the problem to already known. Analogy finds claims which after their acceptance can make the task enough certain.
In the nature there is no such thing that to be fully equivalent to another. But the statement “A is B” has in its own mistake not in the equivalence, but in the abstraction of the concepts A and B from the real world (when they are abstracted not from real world concepts, the abstraction can be 100% equal to the real object).
This knowledge atom is tied in groups of atoms (context) and this way forming knowledge statements about concrete phenomena. Sucked out of this group of atoms (out from the context), every atom has a sense of a general statement which is represented like: “Every A is B”, “Every A is every B”, ”A is every B”.
Based on this atom of knowledge thoughts are expressed explicitly. This atom of knowledge represents the way human thinks, by using analogies. Mathematics which is based on equivalence is a prove about the explicit form of expression of thoughts using “A is B”. Having its genesis in the thought about the shared characteristics of two apples and two bananas, Mathematics’ fundamentals are within equality.
“A is B” and its relations with “A isn’t B”
“A isn’t B” can be transformed to “A is B” but not vice versa. Proves of this are first empirical and second this claim is shared by the view about the creative way of human mind processing. If we have knowledge “A isn’t B” we can say that exists “A is B” knowledge and collect a starting point proves on its’ truth having a base the first statement. If we have “A is B” knowledge we can’t say anything about the truth of “A isn’t B” and we can’t be sure about the letter’s objectively full expression (many and different combination of “isn’t” exists with different proves and truth levels). The most general atom of knowledge should be able to be extracted from any existing form of knowledge without lose of information, “A is B” is the form which any knowledge can fully transform to.
“A is B” and “If A then B”
“A is B” is transformable to “If A then B” by insertion of a newly formed variable.
“If A than B” is the first significant form of knowledge in the process of presenting human analytic perceptions. Everything about a phenomena is firstly understood and presented like a behavior. “If A than B” is the first reached complete form of knowledge (such knowledge which can be analysed by mathematics) in the process of examining of new behaviors (functionalities) of unknown and known objects/ phenomena. FSM (Finite State Machine) is the analytic form of “If A than B” knowledge.
After this first stage knowledge is consolidated and abstract ideas are presented (usage of “А is B” form) in order optimization to be implemented where abstractions are connected by analogy to other presented at this moment abstractions to make knowledge “deep”-er (knowledge presentation to be able to not only predict behavior of its object phenomena, but turn it in an environment enabling thinking about the causing circumstances nature of the determined phenomena, which circumstances are invisible while the phenomena has been examined. [1]
“If A then B” contains two conditions. This is one way based on statement construction. Conditions behave the same way as “A is B” does and conditions can be presented as “A is B” sentences. Both have truth levels True, False and Unknown.
A is B => if temp.var.A is A then temp.var.A is B
Doing to opposite transformation from “If A is B” to “A is B” is not enough safe.
If A then B => here A and B are statements and we have two options in examining their objects, if these statements share one object or not.
In general the above statement is like If temp.var.A is sA then temp.var.B is sB. A = (object of A) is sA
After a little reformation:
temp.var.A + temp.var.B = temp.var.AB
If temp.var.AB is sA then temp.var.AB is sB
The last is true reformation, does not lose any information and does not unreasonably add any additional. Virtually merging the objects of the both statements does not produce mistake.
And as a final result:
temp.var.AB is (sA and sB)
This reformation loses a significant piece of knowledge and certainty. It ignores the one way if-then thinking in which A is true if B is true; B is unknown if A is true; A is unknown if B is false or unknown. According to the new form temp.var.AB is sA if temp.var.AB is sB; temp.var.AB is sB if temp.var.AB is sA.
Using eventBased infrastructure in “If A then B” to break it down in “A is B” statements
“A is B if B is not C”
(“A is B”) { “B is not C” } // the {} brackets means that () is based on the statements in {}
Base on: one statement is base on another when by logical or analogical path the first is derived from the second (statement proving). Often in natural language we use “cause” (“because”) to present this kind of relation.
Base on is one way logical path, if statementA is based on statementB, and when statementA is true doesn’t mean that statementB is true.
People use analogy in order to solve problems. Finding the solution about unknown problem by comparison between the unknown problem with its relevance data and known problems and known solutions. “A is B” is the result (output) of the analogical thinking. We have to say that often analogy doesn’t use the all input data, but in general the data which is different (between the observed cases) when it made a comparison in order to be built an analogy.
Understand: it is revealed when adding or cutting atoms of knowledge from arrays of atoms by informing when a conflict between atoms is happen on the base of their statements.
“A is B because B is not C now”
The sentence means in addition that “B is not C” is true:
(“B is not C”) ; ( “A is B”) { “B is not C” }
“A is B if and only if B is not C”
(“A is B”) { “B is not C” }; (“B is not C”) { “A is B” } – or in an isolated case (no other place clues about these statements’ truth levels are found)
“A is B if and only if B is not C”
( “A is B”; “B is not C” ) //eventBased relationship technology is applied here. eventBased model is very strong and closely ties its sentences. When one of the statements becomes unknown, the rest are not true anymore- unknown. The all statements have to be true, in order to continue to be true. All statements become false if some of them are false.
This text [2] by engaging proves and analysing them claims that Data Flow Processing, eventBased Algorithms and Data is the right software architecturing trend in Software development, which targets big and too consolidated systems.
Architecture platform is presented which aims to present declarative programming in software products (and in embedded systems, too) which are dependent of asynchronous events (events which moment of occurrence is unknown to the system).
The blog post presents the view of building of eventBased platform which to help its client- developer to declare the relationships between different modules (the relations of modules to variables placed in different ones). The platform recalculates (executes with the update relevant to the module data) the modules when a relevant parameter have changed.
The author believes that the development of a software product must inherit the architecture of a natural science i.e. physics.
There exists a pure scientific basis in the idea of declaring and defining by formula like tiny modules of code. Programming of its own is translation of one real relation into electronic imitation, every natural science do the same thing of translation but modeling abstract information model.
The history of science development goes through such process. Science tries to properly collect and on this to generalize “if-then” statements defining the behavior of a certain class phenomena to turn them into scientific laws (scientific relations between abstract variables) able to predict the behavior of a system in a moment in future.
An example of real life system which is supposed to implement the described eventBased architecture is a space satellite. This is a a big embedded system which needs things to be known in a small amount of time.
Space satellites are embedded systems, which have for a certain period of time to find the most proper solution of an asynchronous occurred problem. If the solution is not proper its implementation can spend resource which is needed for different operation, if the solution is not found within the required period of time the entire satellite is possible to not exist аnymore.
Finding the best solution of a composition of commands (steps) is done by using decision tree, such data structures like which are used in applications for playing chess, which creates of recursive calculation of the possible command (chess move) and the consequences applied to the current situation for every separate possible command. The maximal period of time for choosing a solution and implementing it is supposed to change during the search and implementation of the chosen solution, this period of time is a dependent from the behaviour of outside (external) variables, whose behaviour is asynchronous to the system.
In order to enable the fast creation of this tree, fast computations of resource spending are required, which volume and quality is important to the outside world.
The author imagines single modules determining outside changes and in every such change the physical variable value is computed, which variable can be important to decision making in future. In the blog the author presents a way of enabling this data updates and a parallel adding of new modules and relationships between variables (formulas).
eventBased relationship model enables adding more than 2 statements in one relation like so: (”A is B”; “B is not C”; “B is not D”; “D is not C”)
“A is B if B is not C or not C is B or both”
(“A is B”) { “B is not C” OR “not C is B” } //logical statements OR is needed at this presentation
“A is B if B is not C and not C is B”
(“A is B”) { “B is not C” AND “not C is B” } //logical statements AND is needed at this presentation
Knowledge to “A is B” form
Knowledge in a scientific manner is having an enough full list of the bases of a statement (which are statements or empirical discoveries) in order to be solved problems about the truthfulness of the main statement. Every statement contains only atoms of this kind and every complicated statement can be serialized up to (is constructed of) many “A is B” statements without any lose of knowledge.
Complicated different in their form knowledge constructions can be serialized up to only one equivalence array of “A is B” statements. One array of “A is B” statements can be transformed up to many different in their form complicated knowledge constructions.
A problem to solve of this kind is to find in which conditions (variations of the lists of bases of the statement- true, false, unknown truth levels of the statements in the list) the main statement changes his truth level which is one of these True, False or Unknown. True and False are known logical states of statements, the new state of Unknown is added in order to present situations of scientific uncertainty.
Analysis of the knowledge atom’s truth level (with example)
Abstractions (”A”, “B”) and “is” in the knowledge atom have truth levels.
Truth levels: True, False, Unknown
mainStatement is based on (aStatement1, aStatement2, aStatement3, aStatement4, anEmpiricalDiscovory1) // list of bases of mainStatement
| Statements/ Variations | aStatement1 | aStatement2 | aStatement3 | aStatement4 | anEmpiricalDiscovory1 | mainStatement |
| 1 | True | True | False | True | True | True |
| 2 | True | True | False | True | Unknown | Unknown |
| 3 | True | True | False | True | False | False |
| 4 | True | True | False | Unknown | True | True |
| 5 | True | True | False | False | True | False |
| 6 | True | True | True | False | True | False |
| 7 | True | False | True | False | True | Unknown |
| 8 | False | False | True | False | True | False |
| 9 | Unknown | False | True | False | True | Unknown |
Table for solving problems. The change in the mainStatement’s truth level as a function of the truth levels of the statements on which it is based on. This is state transition table in the view of mainStatement’s state [3].
And this way for all the 125 (5 statements and 3 possible levels) possible variations of truth levels of all the statements in the base list of mainStatement.
At the view of mathematics analysis main statement can be presented as function and the statements in relation to it as parameters with values their truth levels.
Abstractions in the atom of knowledge are static and unique references
Abstractions are in this case: (called up here “the most tiny”) static and unique reference
unique: to point the reference objects it is only needed and only enough to know this abstraction action.
static reference: nothing within the context is relevant to the action of finding the objects of reference.
“Static reference” and “unique” are synonyms in this case in the view of their concrete behaviour.
(True about approximately all analogies)
Analogy in this case is dynamic. The “is” can be relevant to the context, the first to be a caused by other circumstances placed in the context.
Analogy can be based on some circumstances.
The reference is an empirical method and the analogy is close to it, but not identical to. The reference has not the full functionality of the knowledge atom. The atom of knowledge is related to the concrete topic of the context and is analysable in truth level while the reference is always true and has no direct relation to the case topic, but only indirect providing role.
Natural language semantics and development concerning “A is B”
Every natural word of its own is a declarative calling of a function which works over the “A is B” statements.
Complicated abstractions are references built on analogy and in some cases are too virtual so can not be implemented without additional information to give certainty. Sole natural words (without proper nouns) are analogies out of many references and keep the most important shared characteristics of these references. Word “dog” contains all the shared characteristics of every individual dog no matter its race of distinctive characteristics. Every word as an abstraction can be used in such situations (context) where it’s sole usage is not enough to reach the required at the situation certainty. The abstraction of “dog” used in some cases is an example of such complicated abstraction. The sentence “Have you seen the lost dog?” without any previous information about the particular race and distinctive characteristics of the reference of abstraction “dog” is uncertain.
The above explained abstractions are not static in general because they change with their everyday usage. No matter of the idealize statistical application of every natural word, humans use words which are the most cheapest to use at the particular situation and in fact change the meaning of the used words. By binding the meaning of a word with a concrete phenomena/ characteristic which can at all be not suitable (not best choice) the listeners/ readers of this text learn this new usage as a meaning of the word. It is something not curious while the most important purpose of words is to not be an output of statistical research, but a way to communicate. Communication environment develops by its usage by people and their particular skills of learning to communicate while communicating.
Natural language develops empirically. It is only based on references to actions, characteristics and objects.
Knowledge develops analytically and handles uncertainty. It is based on analogies to important characteristics of phenomena behaviours.
Citations
1. Kline, Morris; Mathematics and the search for knowledge
2. http://garabedyan.wordpress.com/2008/03/04/data-flow-processing-eventbased-algorithms-and-data/
Garabedyan, Garo; Data Flow Processing, eventBased Algorithms and Data
3. http://en.wikipedia.org/wiki/Finite_state_machine
Documents revisions are a good TODO list container
While working on different documents and using many sources of information the user sometimes forgets what he was doing or even worste he loses his focus over the work without realizing this lost. I think that the best way to keep focused is do know what are you doing and in this way of thinking using Documents revisions is a very powerful way to do so.
Imagine GDocs to present you not the latest edited documents, but the concrete revisions of every document and this way to let the user to track his work.
In a relation with: Event Based Content Editor.
Internet e-Commerce
I have discussed some visions about the future of e-Commerce in Zoho Creator and the Future of the Commercial Web. Now I express more concrete and clear vision on this future trends.
I offer to be created a centralized mediator between the service/ product provider and the Internet user searching for it. This centralized mediator is supposed to handle the contract between the parties which is about goods and payments in general. Having the initiative on the side of the Internet user who is searching for the best offer about a certain product/ service, the mediator lets him to describe it and presents the closest found offers. The mediator stores all the presented products in a data base.
The seller can present his offers in deep and even participate real time discussion (not in any case with a human but with a machine of course). Using constant prices, in order to implement dynamic market strategy to set prices in formulas (with if-then-else statements) with parameters the week days, hours, made contracts until by the account of the seller, marketing indexes, behavior of the other elements in the market and so on. For specific clients using SOA (WSDL) capability to its own Internet connected computer for a more specific negotiation.
The buyer can search through this data using a special custom search engine. He can analyse and compare the offers and find the most liked offer meeting his needs.
The systems keeps a log of every offer change and a real- time discussion on a product made through the letter.
This will give much benefits from its implementation and public presentation, it can make customers to compare many different products and vendors. People have always asked themselves which is the cheapest product of this kind and which is the most expensive.
I like to mention that there is a company Branchnext which implements a similar policy while developing his social web searching service Yotify. Next their cool functionality of saving your product price and notifying you when it reaches your wish, Yotify contacts with web sites not by crawling thier content but trying to present it the way the information want to distribute his information.
Finding relevance information in web pages
With HTML table understanding (Querying Tables in the Web), table recognition when letter not described in HTML table tags or when the source is an image (future research task) and Semantic web technologies all the information linking to relevant information in other Internet documents or in the current one is computable. This way many new techniques of web searching and Internet distribution can be presented.
Small screened devices are unable to present web page content which is designed to be viewed in large screen monitors. Using relevance finding technology, a web page can be broke down in a few hierarchical categories in respect of the most relevant pieces of information in the page.
Such approach can be applied to more than page links and result in a graph-like map of pages connected by their links. Like page-rank, technology of Google, web page links can be traced and presented in a map with snippets of the links’ content. Enabling the user to delete some of the pages part of the map because of their irrelevance can power the user with a map tool which can store all the information on a certain topic. This approach can be trustful while page-rank technology on the base of links is improved.
GMaps and GCalendar to choose the best from a given set of possible starting moments and roads of traveling by car
Google Maps presents the ability to search for the shortest road from point A to point B. Google Calendar helps people to organize their activities. Many times when going on road people think about the weather and try to avoid rain, snow and frog on their road. Adding predictions about the weather can enable informing users who have planned to travel at a known moment (GCalendar)by a known path (GMaps) what the weather is expected to at the moment of their traveling.