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 revision Previous revision
Next revision
Previous revision
at:urbiflock [2008/09/05 11:22]
tvcutsem
at:urbiflock [2015/02/04 19:06]
elisag
Line 1: Line 1:
-====== Urbiflock ====== 
  
-==== What is Urbiflock? ==== 
- 
-Urbiflock is a Facebook-like application framework written in AmbientTalk. The framework takes care of managing a user's buddy lists, called "flocks". Flocks define "proximate" groups of buddies, where "proximate" can mean physically proximate or abstractly proximate (e.g. in terms of being friends of someone). The framework is currently still under development, which is why this page only lists development information thus far. 
- 
-==== Terminology ==== 
- 
-  * Flock: a group of proximate users 
-  * Flockr: a user of the urbiflock framework 
-  * To flock: to become part of a group 
- 
-==== Modules ==== 
-  * [[uf:profiles|Profiles]]: manage user's profile and cache profiles of other flockrs 
-  * [[uf:flockr|Flockr]]: a representation of the user 
-  * [[uf:proximities|Proximities]]: "functions" that determine whether or not a user is proximate. 
-    * isNearby: physical proximity 
-    * isFriend: static encoding of friendship relationships 
-    * doesProfileMatch: tests an attribute of a user's profile, form ATTR OP VAL, where ATTR is e.g. age, name, gender, hobbies, ... 
-    * combinators: and, or, not 
-  * [[uf:flock|Flock]]: a group of 'proximate' users 
-  * [[uf:applications|Applications]]: manage applications 
-  * [[uf:application|Application]]: define the API of an "application object" 
- 
-A flock is defined as a list of references to 'proximate' Flockrs. The definition of 'proximate' is defined by Proximities, which may define proximity in terms of physical distance or in more abstract terms. 
- 
-Predefined Flocks: 
-  * friend flockrs: isFriend 
-  * nearby flockrs: isNearby 
-  * nearby friend flockrs: isFriend & isNearby 
- 
-==== Architecture ==== 
-An ad hoc RETE-network. Events are triggered by: 
-  * discovery: ''joined(uid,flockr)'' / ''left(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. 
- 
-As a first implementation of the RETE-network, maybe we can start from the oo matching that Tom implemented, so that proximity 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 
-    def city := "Brussel"; // city must equal this string 
-  }; 
-  def greet(); // person must have a greet method 
-} taggedAs: [ Flockr ]; // object must be tagged as a Flockr 
-</code> 
- 
-==== Applications ==== 
-  * [[uf:viewer|Flock Viewer]]: a viewer and editor to view existing flocks and to create new flocks. 
-  * [[uf:app_viewer|Application Viewer]]: a viewer and editor to view existing applications and install/delete them. 
-  * [[uf:profile_viewer|Profile Viewer]]: a viewer and editor to view existing flockr profiles and to update your profile. 
-  * [[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. 
- 
-==== To think about ==== 
-  * [[uf:persistence|Persistence]]: saving/loadin 
- 
- framework and application data and prefs. 
-  * [[uf:privacy|Privacy]]: restrict access of applications to a user's flocks 
at/urbiflock.txt ยท Last modified: 2015/02/04 19:06 by elisag