Extensible client-to-server applications

@nightpool and I had kind of a micro-meeting today and discussed client-to-server applications. We identified two areas of work of use to the AP community:

  • “specific” clients like Mastodon’s (microblogging) or eg a “youtube/instagram/etc” type client. @nightpool started a thread about this
  • “General purpose” C2S clients which can be pluggable to understand new activity / object types. There’s general interest in this, but how to dispatch different UI patterns for both composing / rendering / interacting with those different types? In reality, whoever ends up making one that becomes reasonably popular will realistically be in effect developing those “guidelines” in practice of how to do this route.
1 Like

redaktor is doing the second by designing webcomponents with dojo.io
–> webcomponents

I feel like the natural-language properties (name, summary) should be more heavily encouraged so that activities that aren’t understood are at least able to be displayed. I’ve thought about having a literal “activity stream” and how that might be expressed and serialized. Perhaps a more formal recommendation of using name/summary for S2S? Or should implementations try to auto-generate their own summaries based on actor and object?

I feel like the natural-language properties (name, summary) should be more heavily encouraged so that activities that aren’t understood are at least able to be displayed.

There is a standardized way of doing this with RDF Schema.

I recently stumbled upon an example of this from General Transit Feed Specification. Exactly like ActivityStreams, it is a vocabulary for talking about certain things. In this case: public transit data.

For example it defines a thing called Gondola to represent a gondola. This is formalized as such (see source here):

gtfs:Gondola a gtfs:RouteType ;
              status:term_status "unstable"@en ;
              status:term_status "inestable"@es ;
              rdfs:label "Gondola, Suspended cable car"@en ;
              rdfs:label "Teleférico, telecabina"@es ;
              rdfs:comment "Gondola, Suspended cable car. Typically used for aerial cable cars where the car is suspended from the cable."@en ;
              rdfs:comment "Normalmente se utiliza para medios de transporte público por cable en donde el vehículo queda suspendido de un cable."@es .

The rdfs:label and rdfs:comment give a human readable specifications (in multiple languages) that could be used in an extensible client.