+++
title = "so you want to make a social communication protocol"
summary = "looking at prior art and synthesizing a data model that makes sense as the foundation for a protocol"
date = 2024-10-20T03:58:55-05:00
toc = true
autonumbering = false
draft = true
streams = ["all"]
tags = ["activitypub", "activity streams", "as2", "fedi", "indieweb", "social web", "social networking", "social media", "social communication", "social"]
series = "fedi and the social web 2024"
series_part = "3"
+++
## Things vs References
At the base of the data model, you either have a *thing*, or a *reference to a thing*. The distinction between the thing vs. the reference is important because the reference might have its own properties, separately from the thing.
### Prior art
#### Microformats 2
Initially, the Indieweb and Microformats community started out with a much narrower scope for their building blocks:
- [h-entry](http://microformats.org/wiki/h-entry) started out as a way to represent "datestamped or episodic content", but has since evolved to represent any content piece in general.
- [h-cite](http://microformats.org/wiki/h-cite) started out as a way to represent "citations or references to online publications", but has since evolved to represent any reference in general.
#### Activity Streams 2.0
[Activity Streams 2.0](https://www.w3.org/TR/activitystreams-core/) defines two base classes from which everything else inherits:
- Object, which represents any object ("thing")
- Link, which represents a web link ("reference")
## Posts
A "post" is a *thing* that generally has content.
## Context and Audience
For any "post", the most important bit about it (after the content itself) is to be able to understand why the post was made, and who it was made for.
## Stores and Transports
## Identity