Open trwnh opened 11 months ago
In issue triage, we put together two pages in the AS2 primer on Application and Service:
https://www.w3.org/wiki/Activity_Streams/Primer/Application_type
https://www.w3.org/wiki/Activity_Streams/Primer/Service_type
There are definitely a lot of subtleties, but from a first-order review, Application = client and Service = server is an OK definition.
All popular implementations use Application
type for instance actors and Service
type for automated accounts (aka bots). The role of Application actor is also described in FEP-2677: Identifying the Application Actor
Given the interchangeable nature of terms "application" and "service", I think these Primer pages should be changed to reflect de-facto standards:
w3c/ActivityPub#431 has also been opened relating to this issue.
@silverpill I've incorporated your comments into the Primer pages. Can you review, and if you're satisfied, comment here?
@evanp Thanks. I can see the new revision of "Service type" page which adds information about bots. But it seems that general recommendations haven't been changed?
I think it could be helpful to look at this from a user's perspective. Whether software runs on a client side or a server side is not very important. What our user is interested in is interaction. This is probably the reason why some implementers have decided to use one type for bots and a different type for everything else: a bot can be followed and interacted with, but other software actors only work in background.
In my opinion Service and Application are good terms to describe these two categories, even if originally they had different meanings.
@silverpill OK, based on your feedback, it sounds like you think the types defined in the spec should reflect FEP definitions. I'm not sure that's the case. It's also not particularly important, since both types are actor types. I am very reluctant to say that these types must or should be used in these particular ways. Again, Postel's law is our friend here.
I read over the Primer pages in question and I think they're clear and straightforward. The only thing I might add is a mention of the FEP-d8c2 Oauth client URIs, which I think should generally be Application
types?
Another thing I would probably consider is a property like automated: true
that can be used to signal "bot accounts" regardless of the actor type
. I can very easily imagine a case where you would want the type
to be Person
since the actor represents an individual person, but you also want to signal that the actor produces automated activities and/or is generally not monitored. Over time, usage of such a property should replace current usage of Application/Service for this purpose, since that has always been a hack and we haven't actually reached 100% consensus for those types -- aside from silverpill's comments above, there is still an open sub-issue for Service
being "a service of any kind" and this definition covering commercial services, legal services, etc. I think there should be disambiguation for these use cases mentioned in the Primer as well, and potentially some more thought given to what the best way would be to represent those semantics for service types that are not strictly a social networking service.
OK, based on your feedback, it sounds like you think the types defined in the spec should reflect FEP definitions. I'm not sure that's the case. It's also not particularly important, since both types are actor types. I am very reluctant to say that these types must or should be used in these particular ways. Again, Postel's law is our friend here.
@evanp I thought the wiki page should describe existing practices. But I'm also fine if it stays as it is and I wouldn't be against closing this issue.
Another thing I would probably consider is a property like automated: true that can be used to signal "bot accounts" regardless of the actor type
@trwnh Good idea
@silverpill @trwnh have opened https://github.com/w3c/activitystreams/issues/614 for automated: true
regardless of actor type.
I'm fine with this issue being closed given two resolutions:
Please Indicate One:
Please Describe the Issue:
It is fairly clear what Person, Organization, and Group are supposed to be -- they are directly parallel (or even equivalent to) the VCard kinds of Individual, Organization, and Group. (AS2-Core even recommends that you SHOULD use VCard properties to mark these up.)
However, it is much less clear what Application and Service are supposed to be. An Application is described as a "software app", which is workable enough, but a Service is incredibly vague, as it "represents a service of any kind". Given that the noun "service" has at least 9 different definitions, it would probably make sense to apply some limitations on this description. For example, it could be used to describe actors that provide help or do work or offer commercial support or any number of other things.
As a deliverable, a Primer page describing the actor types more in-depth and providing guidance on when to use each type would probably be a good thing to have. I'm not sure if there's any errata that could be proposed or applied to the AS2-Vocab spec doc's language too, but that's something else to consider.