Kevin: Make a link to Frobnik using Brackets. Now we can link to stuff like XML
Oh yeah, and this discussion and more are on the FrobnikMailingList. Check it out!
Okay, I'm really being unduly influenced by reading accounts of the 60s, but bear with me here.
EXTREME VAGARIES TO FOLLOW
1. Network 2. Social network 3. Computerized social network - BING - Friendster?
4. Incorporate trust systems: I trust Person X, oh, this much to introduce me to sexy women. I trust Person Y, say, THIS much, to introduce me to radical, creative thinkers. I trust Person Z this much to recommend restaurants.
brian: the category problem. maybe start with some broad categories, 'food', 'music'... maybe allow people to add their own categories, but then you have to have a way of avoiding duplicates... maybe require when adding a category that you 'link' it to related categories so the result is a kind of 'semantic network' (so if something comes across in the 'film' category that my friend rated a '9', and i haven't rated my own interest in film but the system knows i'm into theatre, the system can flag this item as something i might be interested in).
KEVIN: Yeah, good. Links also have a strength rating, so for examples movies are to films are 10, where movies are to theater are maybe 6.
5. Communication is possible through this network. It begins with a mailing list, something like disco. Or maybe something like the FrobnikMailingList... (shameless plug)
brian: i subscribe to a bunch of mailing lists. some of them are frobnik-aware (let's say our system is called frobnik, 'k?),
KEVIN: frobnik it is, then.
others are not. the only difference with the frobnik-aware ones is that they provide a sort of user-registry of other frobnik users who are also mail-list members. frobnik users run a low-priority background process on their machine which contacts other frobnik-users's daemons and exchanges information. this is how trust and interest levels levels propagate. by subscribing to a frobnik-aware mailing list, the frobnik daemon knows where to look for other frobnik users to communicate with.
KEVIN: I hadn't thought of that. Initially, I figured all communications would go through frobnik, rather than using other protocols like SMTP. However, it might make sense to piggyback it on email as well (using extra headers or something), so that it'd be easy to grab and classify messages. You could even start building up a network including non-frobnik users, identified by email address, that could later transfer to actual frobnik accounts once they joined the network.
As for frobnet communications, I think they should all be PointToPoint, using a separate protocol. Knowledge of other users would come from other nodes. There could also be transferrable data files providing contact information, allowing say an online directory, inclusion of your frobnik contact info in an email header, xyz.
frobnik could prepare incoming communications which it could then send out as XML, or email, or a web feed (blogger?-type action), or whatever, in addition to its usual UI. But that's later, non-core stuff.
How would users be identified? How would you prevent username collisions?
This may be a good place to introduce FrobnikIssues...
6. Yeah, but I like discussions about new society. I'm not really into posted URLs. I totally get pissed off by political forwards.
brian: so all incoming items (whether from a frobnik-aware ML, or not) get filtered according to interest levels stored in a local DB (a la SpamProbe).
KEVIN: Hmmmm... those DBs get huge... but that stuff should be propagated, right? Maybe not, actually. Yeah, okay, each frobnik user attaches their own rating and identification to the message as it passes through. Digitally signed, of course (you can request a public key from their frobnik instance or through some directory service if you want to verify their rating)
Let's see.... Aaron sends Betty a frob (excuse my extreme utilization of this naming convention, but I like it), which is rated and sorted. Now, Charlie is totally into that stuff. As Aaron sent the frob for general dissemination, it passes along to all people "subscribed" to Betty's "interesting stuff" list. Charlie gets the message as rated by Betty, and sees it's from Aaron.
At this point, Charlie's gotten about 15 frobs from Aaron, and they've all been pretty good; better, in fact, than anything Betty's ever sent.
- Now, Charlie's usually pretty trusting of Betty's judgement, but not
about Aaron's frobs. Now, one thing Charlie could do is just downrate Betty's ratings for the Aaron category (makes sense to me that users = categories, at least computationally, if not in the UI), but that wouldn't provide for Aaron's ratings of his own stuff.... unless his ratings were included.
Plus, when the frob passed through multiple frobnik instances, all of those users would be "harvested" (yeah, I know, bad connotations, but...), and could add to the trust system.
This starts to get very unscalable very quickly. Where am I going overboard?
several ways this can happen. frobnik users can mark messages with categories. even if their categories are not the same as yours, they're all semantically linked so the system can infer relevance
KEVIN: As for unknown categories, do they go unrated by category, or is it a manual process, or do all custom categories link to a predefined set, or ???
anyhow. the system also takes into account personal trust levels, i.e. "any item from somebody i trust more than 90% on a category it's marked with goes in the high-priority mailbox". for mail not marked with frobnik categories, some statistical analysis (again, a la SpamProbe) may be possible (requires user willingness to sort incoming mail by category). you can also manually adjust your interest level on a particular incoming item after it has been auto-sorted; doing this will affect the interest/category weights in the DB (like running 'spamprobe good' on a false-positive). (categories could potentially be done away with entirely, let the statistical algorithms map content to interest levels in that way that only statistical algorithms could.
KEVIN: yes. I like.
actually, i don't know whether something like BayesianAnalysis would scale to a more complex category scheme than the 'yes/no' of spam filtering... ?)
7. Okay, so this list dynamically changes. I start up-moderating the former postings, down-moderating the latter postings. 8. Attached are the originators of those posting.
9. Trust systems begin to shift and connect as a result of this tuning. Think NeuralNet or something. 10. Trust can propagate and (and this is the really sketchy bit) be tuned through your own trust system. You are recommended to someone, and they have an elaborate trust system in place. Your use of their trust settings is modulated by your own trust settings in relation to theirs.
brian: i trust kevin 70% to recommend a friend; i trust kevin 90% to recommend a restaurant;
kevin trusts linsey 80% to recommend a restaurant;
i get a restaurant recommendation from linsey, who i've never met and so don't have a hand-tuned trust rating for. my trust level in this recommendation is 70% * 90% * 80% = 50.4%.
the rest is tuning. but i'll bet this is a pretty good start.
11. So yeah, you'll trust when they trust a restaurant recommendation, but you'll not trust when they trust an album, all moderated by a general trust level of them.
12. Communications are moderated in such a way to (is this possible?) eliminate spam/commerce/lameness
brian: probably the filtering mechanism would take care of this.
13. As in, it's really hard to build up a fake trust network if you're a company? How?
14. The essential idea here is not to make it so you never have to make decisions. The idea is to get people in touch who may benefit from communicating.
brian: so, my frobnik daemon goes out and asks the frobnik daemons of other people on the mailing lists i'm on about their interests. people with similar interests get flagged so i can send messages to them directly, or see what other mailing lists they're on, search their posting history, or give them hand-tuned trust ratings.
KEVIN: The way I see it, "lists" would be less defined. A frob would be either private or public. Private frobs would go to a specified set of people. Public frobs would go out to whomever the system deemed appropriate, and would be either picked up and passed along like mad through the network, or would die quickly.
It would be really cool to be able to get propagation? stats on a frob, but that might be overkill. Some kind of return-receipt or something? Maybe that would totally be within reason, as unknown frobniks 4 or 5 degrees away could then become closer.
If I send a frob, "greetings", and all of my locals give it a 2, but it makes it out to someone who gives it a 10, that person should become a local (or at least, closer to one), so next time a related frob goes out, they get it.
Sort of like mailing list subscriptions by thread, rather than list itself.
15. Like: I want to start an intentional community. Over time, people have gotten to know what I'm like. Now how can I find other people who share that vision? (Or insert another New-Age soul-searching question here)
16. Social/political/biological/anything movements come about, because all of those people who once thought they were alone find that they aren't. They send out a message to the network looking for fellow toothpaste-eaters for a rally in the park next week, not knowing any actual toothpaste-eaters, and the messages get passed along through the network. Lo and behold, next week, there are two thousand toothpaste-eaters all gleefully slurping on tubes.
17. I want to be more concrete about this, but hopefully this gives you the idea.
If you guys want a good way into p2p, take a look at limewire, which is all open source. I work right next to the developers, and they were actually just sorta talking about implementing frobnik type stuff, which reminded me of this conversation on disco. They would obviously tie it into the limewire file downloader. But you could easily use their code base to do cool shit without using their front-end (or no front end, in the case of frobnick aware email lists and whatnot). They run on the gnutella network, where you could easily send frobnick stuff around as well. And since they're thinking of similar things eventually, I'm sure they'd be psyched if you started work on this. They'd just eventually tie it into their gnutella client. If you guys are interested I could get you in touch...or you can just email the gnutella development forum. But it seems like a good place to start, and to find like-minded programmer people who might know more p2p.
Someday when I have some good time on my hands and am not overly saturated with thinking about coding I'll try to respond to the actual substance of frobnick. But I'm psyched on the possibilities.
good article "distributed search over the hidden web": http://citeseer.nj.nec.com/ipeirotis02distributed.html