Ionosphere.tv
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: define tv.ionosphere.nlpAnnotations lexicon for lens source schema

Formalizes the NLP pipeline JSON output shape so panproto can use it as
a typed lens source schema. Not published to PDS — exists purely to
enable cross-schema lens derivation from NLP annotations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+148
+148
formats/tv.ionosphere/nlpAnnotations.lexicon.json
··· 1 + { 2 + "lexicon": 1, 3 + "$type": "com.atproto.lexicon.schema", 4 + "id": "tv.ionosphere.nlpAnnotations", 5 + "revision": 1, 6 + "description": "NLP pipeline output for a conference talk transcript. Formalizes the JSON shape produced by the ionosphere NLP pipeline so panproto can use it as a lens source schema. Not published to PDS.", 7 + "defs": { 8 + "main": { 9 + "type": "record", 10 + "key": "any", 11 + "record": { 12 + "type": "object", 13 + "required": ["talkRkey", "sentences", "paragraphs", "entities", "topicBreaks", "metadata"], 14 + "properties": { 15 + "talkRkey": { 16 + "type": "string", 17 + "description": "The rkey of the tv.ionosphere.talk record this annotation set covers." 18 + }, 19 + "sentences": { 20 + "type": "array", 21 + "items": { 22 + "type": "ref", 23 + "ref": "tv.ionosphere.nlpAnnotations#nlpSentence" 24 + }, 25 + "description": "Sentence-boundary spans detected in the transcript text." 26 + }, 27 + "paragraphs": { 28 + "type": "array", 29 + "items": { 30 + "type": "ref", 31 + "ref": "tv.ionosphere.nlpAnnotations#nlpParagraph" 32 + }, 33 + "description": "Paragraph-boundary spans detected in the transcript text." 34 + }, 35 + "entities": { 36 + "type": "array", 37 + "items": { 38 + "type": "ref", 39 + "ref": "tv.ionosphere.nlpAnnotations#nlpEntity" 40 + }, 41 + "description": "Named entities detected in the transcript text." 42 + }, 43 + "topicBreaks": { 44 + "type": "array", 45 + "items": { 46 + "type": "ref", 47 + "ref": "tv.ionosphere.nlpAnnotations#nlpTopicBreak" 48 + }, 49 + "description": "Byte positions where a topic shift was detected." 50 + }, 51 + "metadata": { 52 + "type": "ref", 53 + "ref": "tv.ionosphere.nlpAnnotations#nlpMetadata", 54 + "description": "Provenance and configuration metadata for this annotation run." 55 + } 56 + } 57 + } 58 + }, 59 + "nlpSentence": { 60 + "type": "object", 61 + "description": "A sentence span identified by the NLP pipeline.", 62 + "required": ["byteStart", "byteEnd"], 63 + "properties": { 64 + "byteStart": { 65 + "type": "integer", 66 + "description": "Inclusive start byte offset into the transcript text." 67 + }, 68 + "byteEnd": { 69 + "type": "integer", 70 + "description": "Exclusive end byte offset into the transcript text." 71 + } 72 + } 73 + }, 74 + "nlpParagraph": { 75 + "type": "object", 76 + "description": "A paragraph span identified by the NLP pipeline.", 77 + "required": ["byteStart", "byteEnd"], 78 + "properties": { 79 + "byteStart": { 80 + "type": "integer", 81 + "description": "Inclusive start byte offset into the transcript text." 82 + }, 83 + "byteEnd": { 84 + "type": "integer", 85 + "description": "Exclusive end byte offset into the transcript text." 86 + } 87 + } 88 + }, 89 + "nlpEntity": { 90 + "type": "object", 91 + "description": "A named entity span identified by the NLP pipeline.", 92 + "required": ["byteStart", "byteEnd", "label", "nerType"], 93 + "properties": { 94 + "byteStart": { 95 + "type": "integer", 96 + "description": "Inclusive start byte offset into the transcript text." 97 + }, 98 + "byteEnd": { 99 + "type": "integer", 100 + "description": "Exclusive end byte offset into the transcript text." 101 + }, 102 + "label": { 103 + "type": "string", 104 + "description": "Surface text of the named entity (e.g. 'Matt')." 105 + }, 106 + "nerType": { 107 + "type": "string", 108 + "description": "NER category label (e.g. PERSON, ORG, GPE)." 109 + }, 110 + "conceptUri": { 111 + "type": "string", 112 + "format": "at-uri", 113 + "description": "AT URI of a canonical concept record for this entity, if resolved." 114 + } 115 + } 116 + }, 117 + "nlpTopicBreak": { 118 + "type": "object", 119 + "description": "A position in the transcript text where the NLP pipeline detected a topic shift.", 120 + "required": ["byteStart"], 121 + "properties": { 122 + "byteStart": { 123 + "type": "integer", 124 + "description": "Byte offset at which the topic shift begins." 125 + } 126 + } 127 + }, 128 + "nlpMetadata": { 129 + "type": "object", 130 + "description": "Provenance and configuration metadata for an NLP annotation run.", 131 + "required": ["tool"], 132 + "properties": { 133 + "tool": { 134 + "type": "string", 135 + "description": "Name and version of the NLP tool used (e.g. 'spacy/en_core_web_sm')." 136 + }, 137 + "pauseThresholdMs": { 138 + "type": "integer", 139 + "description": "Silence duration in milliseconds used to delimit paragraphs." 140 + }, 141 + "proximityWords": { 142 + "type": "integer", 143 + "description": "Word-window radius used when linking entity mentions to concepts." 144 + } 145 + } 146 + } 147 + } 148 + }