17
205
Fork
You've already forked human.json
6

Scores #49

Open
opened 2026年03月31日 22:07:13 +02:00 by jak2k · 6 comments

I'd suggest adding a score float like this:

{
 "version": "0.1.1",
 "url": "https://example.com/~alice",
 "vouches": [
 {
 "url": "https://bob.example.com",
 "vouched_at": "2026年01月15日",
 "score": "0.8"
 }
 ]
}

A score of 1 means full trust, this could be used for people you know really well. 0 is equivalent to not having the vouch listed. -1 means you are very sure something is "AI" generated or someone definitely uses "AI".

If A trust B with a score of 0.5 and B trust C with a score of -0.5, that implies a transitive trust of -0.25 from A to C.

If there are multiple "paths of trust" to a human, the client implementation might choose the highest possible score, the most extreme score or an average. It should also drop the site if the score drops below a certain implementation specific threshhold.

I'd suggest adding a score float like this: ```json { "version": "0.1.1", "url": "https://example.com/~alice", "vouches": [ { "url": "https://bob.example.com", "vouched_at": "2026年01月15日", "score": "0.8" } ] } ``` A score of `1` means full trust, this could be used for people you know really well. `0` is equivalent to not having the vouch listed. `-1` means you are very sure something is "AI" generated or someone definitely uses "AI". If A trust B with a score of `0.5` and B trust C with a score of `-0.5`, that implies a transitive trust of `-0.25` from A to C. If there are multiple "paths of trust" to a human, the client implementation might choose the highest possible score, the most extreme score or an average. It should also drop the site if the score drops below a certain implementation specific threshhold.
Contributor
Copy link

The concept seems sound and falls squarely into the category of discussions summarised as 'Specify degree of humanity' in #33 for an upcoming release.

Also, relates to the following:

  • #9 suggests notes in vouces, which allow humans to decide what that vouch means. The score proposal is obviously better suited to trivial calculations.
  • #18 sheds light on how one author is doing AI disclosures
  • #45 (comment) seems to summarise @robida's stance on what human.json implies.
The concept seems sound and falls squarely into the category of discussions summarised as 'Specify degree of humanity' in #33 for an upcoming release. Also, relates to the following: - #9 suggests notes in vouces, which allow humans to decide what that vouch means. The score proposal is obviously better suited to trivial calculations. - #18 sheds light on how one author is doing AI disclosures - https://codeberg.org/robida/human.json/issues/45#issuecomment-12182634 seems to summarise @robida's stance on what `human.json` implies.
Author
Copy link

@dennis_str I don't think this is a replacement for any of these. Notes are still important, for example to explain the score you are giving. Machine readable "AI" disclosures can also be processed immediately instead of waiting for every vouching human to update the score they are giving.

@dennis_str I don't think this is a replacement for any of these. Notes are still important, for example to explain the score you are giving. Machine readable "AI" disclosures can also be processed immediately instead of waiting for every vouching human to update the score they are giving.
Contributor
Copy link

I fully agree. My intention was to put this score proposal in context of and in the scope of previously existing discussions.

I fully agree. My intention was to put this score proposal in context of and in the scope of previously existing discussions.

I'm not sure I like the idea of scores, to be honest.

For once thing it's not very descriptive. Person A might give someone, who uses an AI to spellcheck a score of 0.4, person B might give them a 0.6. What does it mean?

Plus: scoring is always going to get abused. What if some beef between two people suddenly mean that other people down the chain suddenly get bad scored, just because Person A changed their score of person B after they had a falling out?

I actually quite like that the current version basically has two states: trust or undefined - it's impossible (either by design or luck) to use the specification for bullying.

I'm not sure I like the idea of scores, to be honest. For once thing it's not very descriptive. Person A might give someone, who uses an AI to spellcheck a score of 0.4, person B might give them a 0.6. What does it mean? Plus: scoring is always going to get abused. What if some beef between two people suddenly mean that other people down the chain suddenly get bad scored, just because Person A changed their score of person B after they had a falling out? I actually quite like that the current version basically has two states: `trust` or `undefined` - it's impossible (either by design or luck) to use the specification for bullying.
Contributor
Copy link

Personally, I also would like to stick with the binary trust or undefined semantics, but...

  1. Introducing a score would just introduce weights to the trust relationship. If I trust a site's human.json, I would also trust their weights—independent of how they are determined. The trust model doesn't differ from its current state.
  2. Having a negative score option is truly new, though, as it allows a site to actively 'downvote' another site, which isn't possible currently.
  3. Also, having a score introduces more complexity into every client as they have to implement the logic of computing the final score in the graph and potentially resolve conflicts between seeds.

Therefore, answering the question of wether we want to have scores, requires answers to the following underlying questions:

  1. Do we want to have a weight in trust graph edges?
  2. Do we want to have an explicit distrust state (as opposed to only having vouched for and undefined)? (Which would be a negative score in this proposal's logic)
Personally, I also would like to stick with the binary `trust` or `undefined` semantics, but... 1. Introducing a score would just introduce weights to the trust relationship. If I trust a site's `human.json`, I would also trust their weights—independent of how they are determined. The trust model doesn't differ from its current state. 2. Having a negative score option is truly new, though, as it allows a site to actively 'downvote' another site, which isn't possible currently. 3. Also, having a score introduces more complexity into every client as they have to implement the logic of computing the final score in the graph and potentially resolve conflicts between seeds. Therefore, answering the question of wether we want to have scores, requires answers to the following underlying questions: 1. Do we want to have a weight in trust graph edges? 2. Do we want to have an explicit distrust state (as opposed to only having `vouched for` and `undefined`)? (Which would be a negative score in this proposal's logic)
Author
Copy link

@lostfocus wrote in #49 (comment):

For once thing it's not very descriptive. Person A might give someone, who uses an AI to spellcheck a score of 0.4, person B might give them a 0.6. What does it mean?

That's not really a new problem. What does it mean if I vouch for a person? That I know they don't use any "AI"? That I know they only use spellcheck?

Plus: scoring is always going to get abused. What if some beef between two people suddenly mean that other people down the chain suddenly get bad scored, just because Person A changed their score of person B after they had a falling out?

This would be a huge problem in a tree. But in a net, if there are multiple "paths of trust", this is not as bad. Downstream effects are also getting smaller with greater distance because the numbers are all beteeen -1 and 1.

I actually quite like that the current version basically has two states: trust or undefined - it's impossible (either by design or luck) to use the specification for bullying.

With binary states, you can also bully someone by removing your vouch.

The problem I have with binary states is that I like many websites and would like to vouch for them but don't trust them enough to give them a 100% vouch.

@dennis_str wrote in #49 (comment):

  1. Having a negative score option is truly new, though, as it allows a site to actively 'downvote' another site, which isn't possible currently.

I think this is also really important. I know multiple websites of humans who posted high quality stuff before the "AI "hype but now vibecode stuff. I'd like to give them something like -0.2 to indicate the website is probably partially "AI" generated but not a full on slop bullshit site.

  1. Also, having a score introduces more complexity into every client as they have to implement the logic of computing the final score in the graph and potentially resolve conflicts between seeds.

Yes, there is a bit more complexity involved but I think it's still very managable.

@lostfocus wrote in https://codeberg.org/robida/human.json/issues/49#issuecomment-12509925: > For once thing it's not very descriptive. Person A might give someone, who uses an AI to spellcheck a score of 0.4, person B might give them a 0.6. What does it mean? That's not really a new problem. What does it mean if I vouch for a person? That I know they don't use any "AI"? That I know they only use spellcheck? > Plus: scoring is always going to get abused. What if some beef between two people suddenly mean that other people down the chain suddenly get bad scored, just because Person A changed their score of person B after they had a falling out? This would be a huge problem in a tree. But in a net, if there are multiple "paths of trust", this is not as bad. Downstream effects are also getting smaller with greater distance because the numbers are all beteeen -1 and 1. > I actually quite like that the current version basically has two states: `trust` or `undefined` - it's impossible (either by design or luck) to use the specification for bullying. With binary states, you can also bully someone by removing your vouch. The problem I have with binary states is that I like many websites and would like to vouch for them but don't trust them enough to give them a 100% vouch. @dennis_str wrote in https://codeberg.org/robida/human.json/issues/49#issuecomment-12511206: > 2. Having a negative score option is truly new, though, as it allows a site to actively 'downvote' another site, which isn't possible currently. I think this is also really important. I know multiple websites of humans who posted high quality stuff before the "AI "hype but now vibecode stuff. I'd like to give them something like `-0.2` to indicate the website is probably partially "AI" generated but not a full on slop bullshit site. > 3. Also, having a score introduces more complexity into every client as they have to implement the logic of computing the final score in the graph and potentially resolve conflicts between seeds. Yes, there is a bit more complexity involved but I think it's still very managable.
Sign in to join this conversation.
No Branch/Tag specified
main
spec-0.2.0
crawler
No results found.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
robida/human.json#49
Reference in a new issue
robida/human.json
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?