It's not useful AFAICT to create a separate user like that. Anyone listed there and not in your main account won't be in the trust networks of people using the default settings. It'll have different effects for people who have non-default settings, but these effects will vary in ways that you can't predict/affect, and not usually do anything useful.
I recommend just listing everyone who:
- Gives only accurate ratings.
- Has a mostly good trust list. (You can/should fix any problems in their trust list using exclusions in your trust list.)
- Is unlikely to suddenly change the above two things for the worse, especially not maliciously or in cooperation with other users. This is the only point that requires some trust, and it doesn't require that much since you can quickly remove someone from your trust list if necessary. Listing someone in your trust list does not require that you have
tons of trust in them.
Removing people from your trust list because they're already in DefaultTrust is not a good idea because some people might trust you and not DefaultTrust.
Please correct me if I'm mistaken, but as I think it works, Depth 2 ratings hit a little softer than Depth 1.
That's not how it works.
The trust system is composed of two independent parts. The first part is the trust network calculation. From your trust list and depth, it generates a list of users (your
trust network) whose ratings you will trust. The second part is trust score/ratings. All ratings from people in the trust network calculated in the first part are weighted equally.
Very few people seem to understand the trust system... Maybe it'd help if I just posted the code...
function trust_sources($user, $max_depth) {
// arrays of user IDs
$sources = array(); // your trust network
$untrusted = array(); // ~excluded users, including exclusions via trust network
$last = array($user); // users added in the previous depth round
for($i=0; $i<=$max_depth; $i++) {
if(count($last) == 0)
break;
// get the trust lists of users added in the last round
$last = implode(',', $last);
$q = db_query("select ID_MEMBER_TRUSTED, type
from trust where ID_MEMBER in ($last)");
// take exclusions into account to determine whether
// to include or exclude each person considered
$votes = array();
while(list($u, $type) = mysql_fetch_array($q)) {
if(!isset($votes[$u]))
$votes[$u] = 0;
if($type == 1) // exclude
$votes[$u] -= 1;
else // trust
$votes[$u] += 1;
}
$last = array();
foreach($votes as $u=>$v) {
if($v >= 0 && !isset($untrusted[$u])) // include
$sources[] = $last[] = $u;
else //exclude this person from future depths
$untrusted[$u] = 1;
}
//default trust
if(count($last) == 0 && $i == 0 && empty($votes)) {
$default = array(122551);
$last += $default;
$sources += $default;
}
}
//you always trust yourself
$sources[] = $user;
$sources = array_unique($sources, SORT_NUMERIC);
return $sources;
}
Your trust network is trust_sources(
, ). You see ratings as "trusted" if they're posted by anyone in your trust network. All trusted ratings are considered equally in the trust score algorithm (posted elsewhere), and all untrusted ratings are ignored.