This repository has no description
4.0 kB
157 lines
1{
2 "lexicon": 1,
3 "id": "org.latha.strata.analyze",
4 "defs": {
5 "main": {
6 "type": "procedure",
7 "description": "Run strata analysis on an island. Cross-references the island's vertices and edges against vault and carry data, producing themes, connections, tensions, and a synthesis. Returns an org.latha.strata record ready to be written to PDS.",
8 "input": {
9 "encoding": "application/json",
10 "schema": {
11 "type": "object",
12 "required": ["island"],
13 "properties": {
14 "island": {
15 "type": "ref",
16 "ref": "#islandInput"
17 },
18 "did": {
19 "type": "string",
20 "format": "did",
21 "description": "DID of the user requesting analysis (used to look up vault/carry data)."
22 }
23 }
24 }
25 },
26 "output": {
27 "encoding": "application/json",
28 "schema": {
29 "type": "object",
30 "required": ["analysis"],
31 "properties": {
32 "analysis": {
33 "type": "ref",
34 "ref": "#analysisResult"
35 },
36 "record": {
37 "type": "ref",
38 "ref": "org.latha.strata#main",
39 "description": "Complete org.latha.strata record ready to be written to PDS."
40 }
41 }
42 }
43 }
44 },
45 "islandInput": {
46 "type": "object",
47 "required": ["vertices", "edges"],
48 "properties": {
49 "vertices": {
50 "type": "array",
51 "items": {
52 "type": "ref",
53 "ref": "#vertexInfo"
54 }
55 },
56 "edges": {
57 "type": "array",
58 "items": {
59 "type": "ref",
60 "ref": "#edgeInfo"
61 }
62 }
63 }
64 },
65 "vertexInfo": {
66 "type": "object",
67 "required": ["uri", "title"],
68 "properties": {
69 "uri": {
70 "type": "string",
71 "description": "Vertex URI (HTTP URL or AT URI)."
72 },
73 "title": {
74 "type": "string",
75 "description": "Resolved title of the vertex."
76 },
77 "description": {
78 "type": "string",
79 "description": "Resolved description."
80 },
81 "type": {
82 "type": "string",
83 "description": "Vertex type (url, card, collection, note, unknown)."
84 }
85 }
86 },
87 "edgeInfo": {
88 "type": "object",
89 "required": ["uri", "did", "source", "target", "connectionType"],
90 "properties": {
91 "uri": {
92 "type": "string",
93 "format": "at-uri"
94 },
95 "did": {
96 "type": "string",
97 "format": "did"
98 },
99 "source": {
100 "type": "string"
101 },
102 "target": {
103 "type": "string"
104 },
105 "connectionType": {
106 "type": "string"
107 },
108 "note": {
109 "type": "string"
110 },
111 "handle": {
112 "type": "string"
113 }
114 }
115 },
116 "analysisResult": {
117 "type": "object",
118 "required": ["themes", "synthesis"],
119 "properties": {
120 "title": {
121 "type": "string",
122 "maxGraphemes": 300,
123 "description": "Concise sentence capturing the core argument."
124 },
125 "themes": {
126 "type": "array",
127 "items": {
128 "type": "string"
129 }
130 },
131 "connections": {
132 "type": "array",
133 "items": {
134 "type": "ref",
135 "ref": "org.latha.strata#connection"
136 }
137 },
138 "tensions": {
139 "type": "array",
140 "items": {
141 "type": "string"
142 }
143 },
144 "openQuestions": {
145 "type": "array",
146 "items": {
147 "type": "string"
148 }
149 },
150 "synthesis": {
151 "type": "string",
152 "description": "Prose synthesis connecting the island to existing knowledge."
153 }
154 }
155 }
156 }
157}