User Tools

Site Tools


at:urbiflock

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
at:urbiflock [2008/08/26 19:30] tvcutsemat:urbiflock [2008/09/04 16:22] elisag
Line 31: Line 31:
   * nearby friend flockrs: isFriend & isNearby   * nearby friend flockrs: isFriend & isNearby
  
-==== Architecture==== +==== Architecture ==== 
-An ad hoc RETE-network+An ad hoc RETE-networkEvents are triggered by: 
- +  * discovery: ''joined(uid,flockr)'' ''left(uid,flockr)'' 
-Events are triggered by: +  * profile changes: ''changed(uid,flockr,updatedProfile)'' 
-  * discovery: joined(uid,flockr) / left(uid,flockr) +  * friend changes: ''friendAdded(uid,flockr)'' ''friendRemoved(uid,flockr)''
-  * profile changes: changed(uid,flockr,updatedProfile) +
-  * friend changes: friendAdded(uid,flockr) / friendRemoved(uid,flockr)+
  
 These events are received by the local flockr user object and propagated to all local proximities. Proximities translate these events into addUser / removeUser events to be processed by flocks. To process these events, flocks register themselves on their dependent proximity. These events are received by the local flockr user object and propagated to all local proximities. Proximities translate these events into addUser / removeUser events to be processed by flocks. To process these events, flocks register themselves on their dependent proximity.
 +
 +As a first implementation of the RETE-network, maybe we can start from the oo matching that Tom implemented, so that functions are templates. For example: 
 +
 +<code>
 +def flockrTemplate := template: {
 +  def name := *; // wildcard, can be anything
 +  def age := constraint: { _ < 25 }; // must be younger than 25
 +  def address := template: {
 +    def street := *; // any street, but street name must be filled in
 +    def city := "Brussel"; // city must equal this string
 +// address may have arbitrary other data
 +  };
 +  def greet(); // person must have a greet method
 +} taggedAs: [ Flockr ]; // object must be tagged as a Flockr
 +</code>
  
 ==== Applications ==== ==== Applications ====
 +  * [[uf:appmgr|Application Manager]]: allows the user to view installed applications, launch apps and install new ones.
   * [[uf:viewer|Flock Viewer]]: a viewer and editor to view existing flocks and to create new flocks.   * [[uf:viewer|Flock Viewer]]: a viewer and editor to view existing flocks and to create new flocks.
   * [[uf:iflocku|IFlockU]]: a friend suggestor based on profile similarity and time spent in proximity.   * [[uf:iflocku|IFlockU]]: a friend suggestor based on profile similarity and time spent in proximity.
   * [[uf:guanotes|Guanotes]]: a messenger application that sends post-its to flocks.   * [[uf:guanotes|Guanotes]]: a messenger application that sends post-its to flocks.
  
-==== TODO ==== +==== To think about ==== 
-  * [[uf:persistence|Persistence]]+  * [[uf:persistence|Persistence]]: saving/loading framework and application data and prefs.
   * [[uf:privacy|Privacy]]: restrict access of applications to a user's flocks   * [[uf:privacy|Privacy]]: restrict access of applications to a user's flocks
- 
at/urbiflock.txt · Last modified: 2015/02/04 19:06 by elisag