@evan
I've never been bitten by this (in cases where the project only has specs, that's generally been enough) but I *have* been bitten by the opposite (projects whose only "documentation" is tutorials for the happy path for some use case I don't have).
@enkiv2 @evan I felt this way about the #ActivityPub spec.
I was reading the JSON-LD and Activity Streams specs around the same time, and there's a pretty big contrast between the three. JSON-LD is not easy to read, but complete. ActivityPub is the opposite extreme: easy to read, but leaves a lot of questions unanswered. Activity Streams is somewhere in the middle.
Does it make a difference (and I'm not saying this IS the case, I don't know) if the system is actively courting that experimentation, intentionally being open to people answering those questions as best for their applications?
In other words, if this is complete, there's just not as much to it as a person of a certain preference might want?
@xenomachina @volkris @enkiv2 I just put up a document about the "functional" part.
https://www.w3.org/wiki/ActivityPub/Primer/Cardinality_of_properties
@xenomachina @volkris @enkiv2 for range, they are almost all on "actors". There's a definition of actor types here:
Thanks for the clarifications.
Isn't "they are almost all on 'actors'" describing the domain, rather than the range, though? It's been a while since I looked at the specs, so I may be getting terms mixed up.
I don't remember all the details about what I found missing, but I also recall being confused about some of the properties that were links/urls. It seemed like there were a few ways that could potentially work (eg: a string that's a URL, a Link object, a reference to an external object) but the spec does not say which of these are valid.
@volkris @enkiv2 @evan ActivityPub definitely has things that are "implementation defined", and that's fine. I'm talking more about things where the spec itself is vague or underspecified, and if you get them wrong it breaks interoperability.
For examples, if you look at the Activity Streams "Activity Vocabulary Core Types" (https://www.w3.org/TR/activitystreams-vocabulary/#h-types) you'll see it has tables where it defines all of the various properties, where they can appear, their "range" (essentially type), and whether they are "functional" (whether they can appear only once or multiple times on a given object).
In the ActivityPub spec, they add a bunch of new properties (eg: https://www.w3.org/TR/activitypub/#x4-1-actor-objects), but each has only a short description that leaves out details like the "range" and whether the property is "functional".