{
"id": "pub.chive.actor.profile",
"defs": {
"main": {
"key": "literal:self",
"type": "record",
"record": {
"type": "object",
"properties": {
"bio": {
"type": "string",
"maxLength": 2000
},
"orcid": {
"type": "string",
"maxLength": 19,
"minLength": 19,
"description": "ORCID identifier in the form 0000-0000-0000-000X. The Lexicon spec defines no `pattern` constraint for strings, so the regular expression that used to sit here was ignored by every validator and this field accepted any string. Length is the strongest constraint the spec can express; the digit and checksum shape is enforced in application code."
},
"avatar": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg"
],
"maxSize": 1048576
},
"dblpId": {
"type": "string",
"maxLength": 200,
"description": "DBLP author identifier (e.g., homepages/s/JohnSmith)"
},
"fieldUris": {
"type": "array",
"items": {
"type": "string",
"format": "at-uri"
},
"maxLength": 20,
"description": "AT-URIs of field nodes (subkind=field)"
},
"openAlexId": {
"type": "string",
"maxLength": 50,
"description": "OpenAlex author ID (e.g., A5023888391)"
},
"displayName": {
"type": "string",
"maxLength": 200
},
"affiliations": {
"type": "array",
"items": {
"ref": "pub.chive.defs#affiliation",
"type": "ref"
},
"maxLength": 10,
"description": "Current institutional affiliations with optional ROR IDs"
},
"nameVariants": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxLength": 20,
"description": "Alternative name forms for paper matching (e.g., maiden name, transliterations, initials like 'J. Smith')"
},
"openReviewId": {
"type": "string",
"maxLength": 100,
"description": "OpenReview profile ID"
},
"arxivAuthorId": {
"type": "string",
"maxLength": 100,
"description": "arXiv author identifier"
},
"schemaRevision": {
"type": "integer",
"minimum": 1,
"description": "Schema revision this record was created with. Absent means revision 1."
},
"scopusAuthorId": {
"type": "string",
"maxLength": 50,
"description": "Scopus author ID"
},
"googleScholarId": {
"type": "string",
"maxLength": 50,
"description": "Google Scholar profile ID"
},
"researchKeywords": {
"type": "array",
"items": {
"ref": "#keyword",
"type": "ref"
},
"maxLength": 50,
"description": "Research topics and keywords with optional authority IDs"
},
"semanticScholarId": {
"type": "string",
"maxLength": 50,
"description": "Semantic Scholar author ID"
},
"previousAffiliations": {
"type": "array",
"items": {
"ref": "pub.chive.defs#affiliation",
"type": "ref"
},
"maxLength": 20,
"description": "Past institutional affiliations that may appear on older papers"
}
}
},
"description": "Chive-specific author profile"
},
"keyword": {
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"maxLength": 100,
"description": "Keyword label (display fallback if no topicUri)"
},
"fastId": {
"type": "string",
"maxLength": 20,
"description": "FAST subject heading ID for legacy/external data"
},
"topicUri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of topic node (subkind=topic)"
},
"wikidataId": {
"type": "string",
"maxLength": 20,
"description": "Wikidata entity ID (e.g., Q12345) for legacy/external data"
}
},
"description": "Research keyword referencing a topic node"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"revision": 2
}