Shared lexicon schemas for long-form publishing on AT Protocol. Uses typescript to json via prototypey.

Add author lexicon #1

open
opened by tylerjfisher.com targeting main from tylerjfisher.com/lexicons: main

This adds a site.standard.author lexicon and an optional array of references in site.standard.document to the author lexicon.

{
	"lexicon": 1,
	"id": "site.standard.author",
	"defs": {
		"main": {
			"type": "record",
			"key": "tid",
			"record": {
				"type": "object",
				"properties": {
					"name": {
						"type": "string",
						"required": true,
						"description": "Full name of the author."
					},
					"title": {
						"type": "string",
						"maxLength": 1280,
						"maxGraphemes": 128,
						"description": "Author's title as it relates to the organization. e.g. Executive Editor."
					},
					"bio": {
						"type": "string",
						"maxLength": 3000,
						"maxGraphemes": 300,
						"description": "A short biography of the author."
					},
					"image": {
						"type": "blob",
						"maxSize": 1000000,
						"accept": [
							"image/*"
						],
						"description": "Optional image to use in reference to the author. Less than 1MB is size."
					},
					"atprotoIdRef": {
						"type": "ref",
						"ref": "com.atproto.repo.strongRef",
						"description": "Optional strong reference to an ATProto did representing the author."
					}
				},
				"required": [
					"name"
				]
			}
		}
	}
}
0
by tylerjfisher.com 0 comments
expand 1 commit
add author lexicon
sign up or login to add to the discussion
expand 2 commits
add author lexicon
properly reference did in author
sign up or login to add to the discussion
expand 3 commits
add author lexicon
properly reference did in author
rename to did

My bad, atProtoIdRef makes more sense as just a did string. Here's the updaed lexicon:

{
	"lexicon": 1,
	"id": "site.standard.author",
	"defs": {
		"main": {
			"type": "record",
			"key": "tid",
			"record": {
				"type": "object",
				"properties": {
					"name": {
						"type": "string",
						"required": true,
						"description": "Full name of the author."
					},
					"title": {
						"type": "string",
						"maxLength": 1280,
						"maxGraphemes": 128,
						"description": "Author's title as it relates to the organization. e.g. Executive Editor."
					},
					"bio": {
						"type": "string",
						"maxLength": 3000,
						"maxGraphemes": 300,
						"description": "A short biography of the author."
					},
					"image": {
						"type": "blob",
						"maxSize": 1000000,
						"accept": [
							"image/*"
						],
						"description": "Optional image to use in reference to the author. Less than 1MB is size."
					},
					"did": {
						"type": "string",
						"format": "did",
						"description": "Optional DID representing the author"
					}
				},
				"required": [
					"name"
				]
			}
		}
	}
}

this is a great conversation to start. i have been trying to figure out how to solve this for @offprint.app and wrote down a proposal here: https://dad.leaflet.pub/3mburumcnbs2m

guest and multi-authorship ends up touching permissions, verification, ownership, and persistence in ways that need some careful thought. i think this deserves a larger discussion and some experimentation on individual publications and platforms before we converge on a standard.

i'd love to get something like this into the lexicon set. it just needs a little more coordination before we do.

Thanks for the thoughtful response! I realize this PR reads more final than I intended, I also think the project should have a larger discussion before accepting a new lexicon. If an issue would be a more appropriate place for the discussion, feel free to reject this PR and move the conversation. I'll leave my thoughts on your proposal here for the sake of continuity.

I think your solutions on permissions and verification are smart! I'd love to see those as part of standard.site.

I have a question about ownership and persistence. For context, I'm thinking about how existing large publications, especially news organizations, might adopt site.standard for document metadata or even full content. I imagine this happening via CMS plugins (e.g. WordPress), or perhaps some form of RSS bridge. If this is not a goal for site.standard, then perhaps my question are irrelevant.

For most existing journalistic publications, the publication fully owns the document produced, whether by an employee or a freelance contributor. Every contract I have signed with a news organization has language to this effect. How would this model reconcile that with authors owning the documents in their PDS? Similarly, authors having complete control over the persistence of a document would be problematic in this traditional relationship between author and publication.

Thanks for all your work on this project and for responding to this proposal!

merge conflicts detected
  • src/lexicons/site.standard.document.ts:1
sign up or login to add to the discussion
Labels

None yet.

assignee

None yet.

Participants 2
AT URI
at://did:plc:2hgmrwevidwsxundvejdeam5/sh.tangled.repo.pull/3mbtht2glny22