-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Permit properties currently in endpoints
to within the Actor itself
#291
Comments
endpoints should generally be static within a server, or grouping of actors. this is in contrast to actor properties, which have no such relationship. |
The spec does not say Looking at the actual relation within the spec, Since Actors can be anything, and |
yes, I understand. that's why I said generally static within a server. while the distinction in theoretically arbitrary, in practice the separation allows for caching and deduplication of these static values across very large groups of actors, by having a separate document. |
I fail to see how having these URIs whose resolutions are being cached requires them to be bundled within an In fact, if the goal is to optimize for caching and deduplication, then I would modify my proposal to something along the lines of: Remove embedding the |
Also, while I greatly appreciate the practicality, implementors that want to create libraries with the maximum chance of federating correctly with neighbors have to consider all the theoretical use-cases permitted by the specification or else risk being accused of not being compliant to the spec when a special-purpose application uses extreme edge cases permitted by the spec and tries to federate. |
I still think you're misunderstanding what i'm trying to say. from the spec:
that means that the Range of Anyway, endpoints is a separate object entirely to provide that kind of caching you proposed. that is already allowed for in the spec and is the whole entire purpose of having it as a separate object. |
As an aside, to address the typing point: I don't read it as
However, I realize my interpretation may not the intended one. And this is an aside, anyhow. Back to the meat of your point:
Gotcha. Thanks for pointing that out. Unfortunately, re-reading past-me's comment, present-me is still not convinced this caching reasoning is sufficient to have My core complaint that is unaddressed is that as written in the spec and as organized with its own properties,
Or, an alternative option is to ditch the requirement for actors to need to reference As it is now, the "endpoints" object is incredibly unclear and problematic to me as an implementor:
Any resolution that address these above concerns, I am all ears for. Hopefully it is clearer now why I am still unconvinced despite my own past comments on caching being satisfied. |
My interpretation is that the specification does permit these properties anywhere. i.e. there is no limit to their domain in the owl. But it is probably not very useful to put them on the actor, as other consumers likely won't look for it there. |
Although I think we appreciate the effort that went into this work, changing these properties from being expected in the The work required, and potential bugs and interoperability issues for a live protocol like AP, is not justified by the conceptual mismatch @cjslep has called out. This would have been an interesting conversation to hold before the spec was published and implemented, but at this point, the effort of changing it is too high. |
The
endpoints
property is currently an ActivityStreams Object with a grab-bag of custom properties pertinent to a specific Actor. However, the specification does not permit these properties to be directly populated directly on the Actor. The properties are:Since all are URI values, there should be no data-readability issue with populating them directly on an actor. Furthermore, since this
endpoint
Object is not required to reference the actor it pertains to it alone has no semantic meaning and implementations must process it with a larger context.It is a case of Accidental Complexity within the specification: the alternate is to just give an implementation the Actor with the above properties populated. Currently, implementations must be given an Actor for context and the resolved
endpoints
URI object and incur the extra HTTPS call to do the resolution.Once both are permitted, I would like to consider deprecating
endpoints
as a property of the Actor and favor directly setting the properties on the Actor.The text was updated successfully, but these errors were encountered: