app.gainforest.evaluator.evaluation
Schema Diff
+4 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "app.gainforest.evaluator.evaluation:body.result:variant5" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.evaluator.evaluation:body.result:variant6" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.evaluator.evaluation:body.result:variant7" }
- AddedEdge AddedEdge { src: "app.gainforest.evaluator.evaluation:body.result", tgt: "app.gainforest.evaluator.evaluation:body.result:variant5", kind: "variant", name: Some("app.gainforest.evaluator.defs#bioacousticsResult") }
- AddedEdge AddedEdge { src: "app.gainforest.evaluator.evaluation:body.result", tgt: "app.gainforest.evaluator.evaluation:body.result:variant6", kind: "variant", name: Some("app.gainforest.evaluator.defs#deforestationResult") }
- AddedEdge AddedEdge { src: "app.gainforest.evaluator.evaluation:body.result", tgt: "app.gainforest.evaluator.evaluation:body.result:variant7", kind: "variant", name: Some("app.gainforest.evaluator.defs#carbonEstimationResult") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.gainforest.evaluator.evaluation:body.result:variant5" }AddedVertex { vertex_id: "app.gainforest.evaluator.evaluation:body.result:variant6" }AddedVertex { vertex_id: "app.gainforest.evaluator.evaluation:body.result:variant7" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.gainforest.evaluator.evaluation:body.result", tgt: "app.gainforest.evaluator.evaluation:body.result:variant5", kind: "variant", name: Some("app.gainforest.evaluator.defs#bioacousticsResult") }
- Non-breaking: AddedEdge { src: "app.gainforest.evaluator.evaluation:body.result", tgt: "app.gainforest.evaluator.evaluation:body.result:variant6", kind: "variant", name: Some("app.gainforest.evaluator.defs#deforestationResult") }
- Non-breaking: AddedEdge { src: "app.gainforest.evaluator.evaluation:body.result", tgt: "app.gainforest.evaluator.evaluation:body.result:variant7", kind: "variant", name: Some("app.gainforest.evaluator.defs#carbonEstimationResult") }
1
1
{
2
2
"id": "app.gainforest.evaluator.evaluation",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"evaluationType",
11
11
"createdAt"
12
12
],
13
13
"properties": {
14
14
"neg": {
15
15
"type": "boolean",
16
16
"description": "If true, this is a negation/withdrawal of a previous evaluation (like label negation)."
17
17
},
18
18
"method": {
19
19
"ref": "app.gainforest.evaluator.defs#methodInfo",
20
20
"type": "ref",
21
21
"description": "Method/model provenance for this specific evaluation (overrides service-level method if set)."
22
22
},
23
23
"result": {
24
24
"refs": [
25
25
"app.gainforest.evaluator.defs#speciesIdResult",
26
26
"app.gainforest.evaluator.defs#dataQualityResult",
27
27
"app.gainforest.evaluator.defs#verificationResult",
28
28
"app.gainforest.evaluator.defs#classificationResult",
29
-
"app.gainforest.evaluator.defs#measurementResult"
29
+
"app.gainforest.evaluator.defs#measurementResult",
30
+
"app.gainforest.evaluator.defs#bioacousticsResult",
31
+
"app.gainforest.evaluator.defs#deforestationResult",
32
+
"app.gainforest.evaluator.defs#carbonEstimationResult"
30
33
],
31
34
"type": "union",
32
35
"description": "The typed evaluation result. The $type field determines which result schema is used."
33
36
},
34
37
"subject": {
35
38
"ref": "app.gainforest.evaluator.defs#subjectRef",
36
39
"type": "ref",
37
40
"description": "Single target record being evaluated. Use this OR subjects, not both."
38
41
},
39
42
"subjects": {
40
43
"type": "array",
41
44
"items": {
42
45
"ref": "app.gainforest.evaluator.defs#subjectRef",
43
46
"type": "ref"
44
47
},
45
48
"maxLength": 100,
46
49
"description": "Batch evaluation: multiple target records sharing the same result. Use this OR subject, not both."
47
50
},
48
51
"createdAt": {
49
52
"type": "string",
50
53
"format": "datetime",
51
54
"description": "Timestamp of when this evaluation was produced."
52
55
},
53
56
"confidence": {
54
57
"type": "integer",
55
58
"maximum": 1000,
56
59
"minimum": 0,
57
60
"description": "Overall confidence in this evaluation (0-1000, where 1000 = 100.0%)."
58
61
},
59
62
"supersedes": {
60
63
"type": "string",
61
64
"format": "at-uri",
62
65
"description": "AT-URI of a previous evaluation record that this one supersedes (e.g., model re-run with improved version)."
63
66
},
64
67
"evaluationType": {
65
68
"type": "string",
66
69
"description": "Identifier for the type of evaluation (must match one declared in the evaluator's service record).",
67
70
"maxGraphemes": 64
68
71
},
69
72
"dynamicProperties": {
70
73
"type": "string",
71
74
"description": "Additional structured data as a JSON string. Escape hatch for experimental result types before they are formalized into the union.",
72
75
"maxGraphemes": 10000
73
76
}
74
77
}
75
78
},
76
79
"description": "A single evaluation produced by an evaluator service. Exactly one of 'subject' (single target) or 'subjects' (batch) must be provided."
77
80
}
78
81
},
79
82
"$type": "com.atproto.lexicon.schema",
80
83
"lexicon": 1,
81
84
"description": "An evaluation record published by an evaluator in their own repo. Contains structured, typed results about a target record (or batch of records). Discovered by AppViews via the atproto-accept-evaluators HTTP header pattern."
82
85
}