ActivityPub, also known as "ActivityStreams", is just like a spoken language. Subject Predicate Object. It's pretty simple! Except we have Actor Activity Object, which are the same thing. And they're modeled in RDF, which is Subject Predicate Object.
So it's like language squared