pub.chive.review.comment

chive.pub

Documentation

Review comment on preprint with rich body supporting text and node references

main record

Review comment on preprint with rich body supporting text and node references

Record Key tid Timestamp-based ID

Properties

body array of union Required
createdAt string datetime Required

An RFC 3339 formatted timestamp.

eprintUri string at-uri Required

Reviewed eprint URI

motivationFallback string Optional

Fallback motivation if motivationUri not available

Known values: commenting, questioning, highlighting, replying, linking
motivationUri string at-uri Optional

AT-URI of motivation type node (subkind=motivation)

parentComment string at-uri Optional

Parent comment for threading

schemaRevision integer Optional

Schema revision this record was created with. Absent means revision 1.

minimum: 1
target ref #textSpanTarget Optional

Target text span for inline annotations

View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "eprintUri",
      "body",
      "createdAt"
    ],
    "properties": {
      "body": {
        "type": "array",
        "items": {
          "refs": [
            "pub.chive.richtext.defs#textItem",
            "pub.chive.richtext.defs#nodeRefItem",
            "pub.chive.richtext.defs#wikidataRefItem",
            "pub.chive.richtext.defs#fieldRefItem",
            "pub.chive.richtext.defs#facetRefItem",
            "pub.chive.richtext.defs#eprintRefItem",
            "pub.chive.richtext.defs#annotationRefItem",
            "pub.chive.richtext.defs#authorRefItem",
            "pub.chive.richtext.defs#mentionItem",
            "pub.chive.richtext.defs#linkItem",
            "pub.chive.richtext.defs#tagItem",
            "pub.chive.richtext.defs#latexItem",
            "pub.chive.richtext.defs#codeBlockItem",
            "pub.chive.richtext.defs#headingItem",
            "pub.chive.richtext.defs#listItem",
            "pub.chive.richtext.defs#blockquoteItem"
          ],
          "type": "union"
        },
        "maxLength": 500,
        "description": "Rich review body with formatting and references"
      },
      "target": {
        "ref": "#textSpanTarget",
        "type": "ref",
        "description": "Target text span for inline annotations"
      },
      "createdAt": {
        "type": "string",
        "format": "datetime"
      },
      "eprintUri": {
        "type": "string",
        "format": "at-uri",
        "description": "Reviewed eprint URI"
      },
      "motivationUri": {
        "type": "string",
        "format": "at-uri",
        "description": "AT-URI of motivation type node (subkind=motivation)"
      },
      "parentComment": {
        "type": "string",
        "format": "at-uri",
        "description": "Parent comment for threading"
      },
      "schemaRevision": {
        "type": "integer",
        "minimum": 1,
        "description": "Schema revision this record was created with. Absent means revision 1."
      },
      "motivationFallback": {
        "type": "string",
        "description": "Fallback motivation if motivationUri not available",
        "knownValues": [
          "commenting",
          "questioning",
          "highlighting",
          "replying",
          "linking"
        ]
      }
    }
  },
  "description": "Review comment on preprint with rich body supporting text and node references"
}
boundingRect object

Bounding rectangle coordinates for highlight positioning. All values stored as strings to preserve floating-point precision since ATProto only supports integer type.

Properties

height string Required

Page height reference (as string to preserve float precision)

pageNumber integer Required

Page number (1-indexed for the library)

minimum: 1
width string Required

Page width reference (as string to preserve float precision)

x1 string Required

Left edge coordinate (as string to preserve float precision)

x2 string Required

Right edge coordinate (as string to preserve float precision)

y1 string Required

Top edge coordinate (as string to preserve float precision)

y2 string Required

Bottom edge coordinate (as string to preserve float precision)

View raw schema
{
  "type": "object",
  "required": [
    "x1",
    "y1",
    "x2",
    "y2",
    "width",
    "height",
    "pageNumber"
  ],
  "properties": {
    "x1": {
      "type": "string",
      "description": "Left edge coordinate (as string to preserve float precision)"
    },
    "x2": {
      "type": "string",
      "description": "Right edge coordinate (as string to preserve float precision)"
    },
    "y1": {
      "type": "string",
      "description": "Top edge coordinate (as string to preserve float precision)"
    },
    "y2": {
      "type": "string",
      "description": "Bottom edge coordinate (as string to preserve float precision)"
    },
    "width": {
      "type": "string",
      "description": "Page width reference (as string to preserve float precision)"
    },
    "height": {
      "type": "string",
      "description": "Page height reference (as string to preserve float precision)"
    },
    "pageNumber": {
      "type": "integer",
      "minimum": 1,
      "description": "Page number (1-indexed for the library)"
    }
  },
  "description": "Bounding rectangle coordinates for highlight positioning. All values stored as strings to preserve floating-point precision since ATProto only supports integer type."
}
fragmentSelector object

W3C Fragment Selector

Properties

conformsTo string uri Optional

Fragment syntax specification

type string Required

No description available.

value string Required

Fragment identifier (e.g., page number, section ID)

maxLength: 200 bytes
View raw schema
{
  "type": "object",
  "required": [
    "type",
    "value"
  ],
  "properties": {
    "type": {
      "type": "string",
      "const": "FragmentSelector"
    },
    "value": {
      "type": "string",
      "maxLength": 200,
      "description": "Fragment identifier (e.g., page number, section ID)"
    },
    "conformsTo": {
      "type": "string",
      "format": "uri",
      "description": "Fragment syntax specification"
    }
  },
  "description": "W3C Fragment Selector"
}
positionRefinement object

Position refinement for precise visual rendering of annotations

Properties

boundingRect ref #boundingRect Optional

Bounding rectangle for visual positioning

end integer Optional

Approximate character end offset

minimum: 0
pageNumber integer Optional

0-indexed page number

minimum: 0
start integer Optional

Approximate character start offset

minimum: 0
type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "end": {
      "type": "integer",
      "minimum": 0,
      "description": "Approximate character end offset"
    },
    "type": {
      "type": "string",
      "const": "TextPositionSelector"
    },
    "start": {
      "type": "integer",
      "minimum": 0,
      "description": "Approximate character start offset"
    },
    "pageNumber": {
      "type": "integer",
      "minimum": 0,
      "description": "0-indexed page number"
    },
    "boundingRect": {
      "ref": "#boundingRect",
      "type": "ref",
      "description": "Bounding rectangle for visual positioning"
    }
  },
  "description": "Position refinement for precise visual rendering of annotations"
}
textPositionSelector object

W3C Text Position Selector

Properties

end integer Required

No description available.

minimum: 0
start integer Required

No description available.

minimum: 0
type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "start",
    "end"
  ],
  "properties": {
    "end": {
      "type": "integer",
      "minimum": 0
    },
    "type": {
      "type": "string",
      "const": "TextPositionSelector"
    },
    "start": {
      "type": "integer",
      "minimum": 0
    }
  },
  "description": "W3C Text Position Selector"
}
textQuoteSelector object

W3C Text Quote Selector

Properties

exact string Required

No description available.

maxLength: 1000 bytes
prefix string Optional

No description available.

maxLength: 100 bytes
suffix string Optional

No description available.

maxLength: 100 bytes
type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "exact"
  ],
  "properties": {
    "type": {
      "type": "string",
      "const": "TextQuoteSelector"
    },
    "exact": {
      "type": "string",
      "maxLength": 1000
    },
    "prefix": {
      "type": "string",
      "maxLength": 100
    },
    "suffix": {
      "type": "string",
      "maxLength": 100
    }
  },
  "description": "W3C Text Quote Selector"
}
textSpanTarget object

Target text span for inline annotations (W3C Web Annotation compatible)

Properties

refinedBy ref #positionRefinement Optional

Position refinement with page number and bounding box for visual rendering

versionUri string at-uri Optional

AT-URI of specific eprint version

View raw schema
{
  "type": "object",
  "required": [
    "selector"
  ],
  "properties": {
    "selector": {
      "refs": [
        "#textQuoteSelector",
        "#textPositionSelector",
        "#fragmentSelector"
      ],
      "type": "union"
    },
    "refinedBy": {
      "ref": "#positionRefinement",
      "type": "ref",
      "description": "Position refinement with page number and bounding box for visual rendering"
    },
    "versionUri": {
      "type": "string",
      "format": "at-uri",
      "description": "AT-URI of specific eprint version"
    }
  },
  "description": "Target text span for inline annotations (W3C Web Annotation compatible)"
}

Lexicon Garden

@