User Tools

Site Tools


uf:guanotes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
uf:guanotes [2008/09/29 13:41]
elisag
uf:guanotes [2009/11/18 15:12]
elisag
Line 1: Line 1:
-====== Guanotes ====== 
  
-==== The concept==== 
- 
-Guanotes application allows flockrs to post notes, called guanotes, to the ambient ( i.e any device available in the surroundings ranging from other flockr device to devices installed on public places such as KK). This is a concept similar to Stickies application in Mac but guanotes can hop from one device to another.    
- 
-Flockrs can thus discover other flockrs guanotes, store them and exchange them later with other flockrs such that guanotes can be percolated through the entire Urbiflock.  
- 
-Flockrs can also subscribe to a particular type of guanotes such that they are automatically notified whenever they meet a flockr carrying guanotes of that particular type. 
- 
-Another idea is that flockrs can stop the percolation of guanotes. For example, if a flockr detects that a spam guanote or a guanote with unapropiate content, it could stop its propagation.  
- 
-==== Design ==== 
- 
-To implement Guanotes, we are going to reuse the concepts developed by  [[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.9742|TOTA]]. This could be combined with the RETE engine we built for the proximities, in the future to reason about multiple tuples.  
- 
-The idea is to build a framework similar to TOTA, called AmbientTOTA, to be able to exchange and percolate guanotes. So, we will instantiate our AmbientTota with Guanotes objects. A guanote actually extends tuple objects with some flockr-dependent behaviour. 
- 
-Here comes the primitive operations to interact with the AmbientTota framework: 
- 
-<code> 
-//publishes a tuple into the ambient ( ~ inject in TOTA) 
-def inject(tuple) { 
-  export: tuple as: Tuple 
-}; 
- 
-// places a listener on to the local TS ( ~ subscribe in TOTA) 
-// it returns a publication object to be able to unsusbscribe  
-when: template matches:{ | tuple | 
-   
-} 
- 
-//Templates are currently boolean expressions on tuples.  
-Example of template applied to guanotes: 
-{ |guanote|  guanote.flock == "KK" } 
-</code> 
- 
-A tuple in our system is just the object contained in a local TS offering the following API to propagate itself:  
- 
-<code> 
-// called in every tuple at pass()  
-def decidePropagation() -> boolean 
-// specifies operations on the local TS 
-def doAction (); 
-// specifies operations on the tuple itself  
-def changeTupleContent() -> tuple 
-// if true -> note gets added to local TS 
-def decideStore () -> boolean 
-// if true -> tuple gets unexported and deleted from local TS. 
-//new operation not in TOTA 
-def decideDie() -> boolean  
-</code> 
- 
-decideDie() is there for discontinuous decidePropagation functions. for example, tuples that should be only propagated every Tuesday could not implemented with TOTA because the propagation protocol only gets called once. We change this by providing decideDie() that gets called when you decide not to propagate. Like this a tuple can still be propagate at a later point in time, despite the fact that the decidePropagation function has evaluated to false at a certain moment. 
uf/guanotes.txt ยท Last modified: 2009/11/18 15:12 by elisag