@tindall Ok so here's a try. An important question is always "are you working with an 'open world system' or a 'closed world system'." AP is by necessity an open world system... we don't presume we are so full of ourselves as to believe that the social web is one specific set of terms that can't be expanded on and that we know what all of them are here and now!

Given that, strong type'y systems tend to be built for closed world systems, same with records with specific slots. How to manage?

@tindall Keep in mind also you said the set of all properties, and since it's an open world, we must assume the set of all *possible* properties and types is infinite. However each application will only concern itself with a finite number of them, so that's the source of hope.

@cwebber that's exactly what I was trying to solve there. By providing a stringly-typed storage for properties we can't force into our type safe model we remain compliant, extensible, and type safe.

@tindall Yes! It's only "loose" string data until you know how to deal with it, and at that point you can pull it into your system.

Open world, local understanding.


@cwebber @tindall you may find my implementation of the types of scuttlebutt in haskell a useful example hackage.haskell.org/package/sc

Note particularly the Message AnyContent type, and narrowParse

Sign in to participate in the conversation

Octodon is a nice general purpose instance. more