This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
at:urbiflock [2008/09/04 16:32] elisag |
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 " | ||
- | |||
- | ==== Terminology ==== | ||
- | |||
- | * Flock: a group of proximate users | ||
- | * Flockr: a user of the urbiflock framework | ||
- | * To flock: to become part of a group | ||
- | |||
- | ==== Modules ==== | ||
- | * [[uf: | ||
- | * [[uf: | ||
- | * [[uf: | ||
- | * [[uf: | ||
- | * isNearby: physical proximity | ||
- | * isFriend: static encoding of friendship relationships | ||
- | * doesProfileMatch: | ||
- | * combinators: | ||
- | * [[uf: | ||
- | * [[uf: | ||
- | * [[uf: | ||
- | |||
- | A flock is defined as a list of references to ' | ||
- | |||
- | Predefined Flocks: | ||
- | * friend flockrs: isFriend | ||
- | * nearby flockrs: isNearby | ||
- | * nearby friend flockrs: isFriend & isNearby | ||
- | |||
- | ==== Architecture ==== | ||
- | An ad hoc RETE-network. Events are triggered by: | ||
- | * discovery: '' | ||
- | * profile changes: '' | ||
- | * friend changes: '' | ||
- | |||
- | 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, | ||
- | |||
- | < | ||
- | 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 := " | ||
- | }; | ||
- | def greet(); // person must have a greet method | ||
- | } taggedAs: [ Flockr ]; // object must be tagged as a Flockr | ||
- | </ | ||
- | |||
- | ==== Applications ==== | ||
- | * [[uf: | ||
- | * [[uf: | ||
- | * [[uf: | ||
- | * [[uf: | ||
- | |||
- | ==== To think about ==== | ||
- | * [[uf: | ||
- | * [[uf: |