- From: Cory Slep <cjslep@gmail.com>
- Date: Wed, 27 Dec 2017 18:42:33 +0100
- To: public-socialweb@w3.org
- Message-ID: <CADU9NpSn1sszxRGup3dtEnrpPfWSdK_-Ak+pTmV0UuN4V9zjcg@mail.gmail.com>
Greetings! Background: I am in the process of implementing ActivityStream's Vocabulary (https://www.w3.org/TR/activitystreams-vocabulary/) in a golang library, taking advantage of the language's static typing. This has led me down a path of code generation, which allows me to translate the specification quite literally into code, and from there generate the actual implementation code. Since I am able to translate the specification definitions into code first, I am able to run some sanity checks to make sure they are set up properly. After I fixed my personal mistakes, I was left with several discrepancies I would like to get resolved: - The "altitude" property has domain "Object" in Section 4, but the "Object" class does not list "altitude" as a property in Section 2. - The "id" property has domain "Object" and "Link" in Section 4, but the "Object" and "Link" classes do not list "id" as a property in Section 2. - The "type" property has domain "Object" and "Link" in Section 4, but the "Object" and "Link" classes do not list "type" as a property in Section 2. - The "attributedTo" property has domain "Link" in Section 4, but the "Link" class does not list "attributedTo" as a property in Section 2. After code generation, I can run the test suite of examples against the resulting implementation. I have found an additional area where I need clarification: - The "orderedItems" property is omitted from the spec and only present in examples. Therefore, for an OrderedCollection there is no guidance on how to resolve "items" and "orderedItems" if one or both are present. Nor is there guidance whether a Collection with "orderedItems" is in or out of spec. Finally, I have a question about the use intended resolution of IRIs given instead of inlined data. I may have missed it, but I am unsure if ActivityStream implementations are required to resolve IRIs at all. That is, if a property is an IRI instead of inlined data, I am unsure what degree of compliance is required by the spec especially if resolution is not an ActivityStream type: 1. Not resolving IRIs at all and ignoring just those fields that are not resolved to an ActivityStream object. 2. Not resolving IRIs at all and ignoring the entire message if any of those fields are not resolved to an ActivityStream object. 3. Resolving with a GET request and ignoring just those fields that are not resolved to an ActivityStream object. 4. Resolving with a GET request and ignoring the entire message if any of those fields are not resolved to an ActivityStream object. Practically, it seems like a mix of #3 and #4 would manifest in applications. But is this the desired outcome? I welcome all feedback and responses. Thanks, Cory S.
Received on Thursday, 28 December 2017 10:27:18 UTC