Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is Actor a core type? #633

Open
silverpill opened this issue Jan 21, 2025 · 7 comments
Open

Is Actor a core type? #633

silverpill opened this issue Jan 21, 2025 · 7 comments
Labels
Needs primer page Need to add a page at https://www.w3.org/wiki/Activity_Streams/Primer on this topic Next version Things that should probably be resolved in a next version of AS2

Comments

@silverpill
Copy link

Section 4. Model lists eight core types (Object, Link, Activity, etc). It is followed by sections describing these core types in detail: 4.1 Object, 4.2 Link and then 4.3 Actor, which is not included in the list of core types.

Actor is defined as a specialization of Object, but this is also true for Activity, and yet Activity is considered a core type.

@evanp evanp added Needs primer page Need to add a page at https://www.w3.org/wiki/Activity_Streams/Primer on this topic Next version Things that should probably be resolved in a next version of AS2 labels Jan 24, 2025
@evanp
Copy link
Collaborator

evanp commented Jan 24, 2025

So section 4 on Model does not have subsections for each of the core types listed.

It also has subsections about other topics, including natural language values and marking up languages.

So, I don't think that having a subsection on "Actor" necessarily means that Actor is a "core type". It is a little confusing that the "Actor" subsection is right in the middle of the other type subsections!

I also think that we have a weak definition of "core type". I think right now it is just an enumeration of those 8 types, but it might also mean types in the vocabulary that don't have a parent or supertype. It might also derive from the early OWL definition for AS2.

There might also be a definitional term that "core types" are "the types described and defined in AS2 Core". "Abstract types" is probably another fair term to use.

Finally, I think to be a "core type" Actor would have to be a type at all! We don't have one defined in the context document.

Actor is a "ghost type" in the hierarchy between the Object root type and the "actor types" Person, Group, etc. I think there was a lot of conversation in the Social Web WG about whether to define an Actor type, and we eventually decided not to do it. I don't remember at this point why!

@trwnh shared the link to the discussion on this:

I think there are a few outcomes for this ticket:

  • Primer page or elsewhere defining what "core type" means besides the list of 8 types (why those 8?)
  • Primer page on the "actor" types and why there is no Actor type
  • Better explanation of why there is no Actor type in the vocabulary OR
  • Define an Actor type in the next version of AS

@nightpool
Copy link
Collaborator

Does it matter what is a "core type"? What requirements even hinge on that definition?

@silverpill
Copy link
Author

Core types mentioned many times throughout the ActivityPub spec. Quick analysis:

  • "actor", 124 occurrences
  • "activity": 84 occurrences
  • "collection": 106 occurrences

Literally everything hinges on their definitions.

@TallTed
Copy link
Member

TallTed commented Jan 27, 2025

Certainly, everything hangs on the definitions of the types/classes @silverpill listed (actor, activity, collection), whether or not they are core types/classes.

But how many times do the phrase "core type" or "core class" (case insensitive, perhaps with an intervening word or two, like "Core Actor Type") occur?

How much does rely on the definition(s) of "core type" or "core class", e.g., how much do the definitions of the listed types rely on the definition(s) of "core type" or "core class"?

Are the listed types really subtypes/subclasses of a "core type" or "core class"?

@nightpool
Copy link
Collaborator

nightpool commented Jan 28, 2025

I can't find any normative distinction in the spec between the 8 core types and the other "core vocabulary" types (the term the spec uses for the types defined in https://www.w3.org/TR/activitystreams-vocabulary/ e.g. ones that aren't part of an extension

From this, I conclude that the idea of the "core types" is simply a pedagogical concept for explaining the spec, and maybe for structuring the spec / extension types somewhat, and otherwise has no major value to implementors. So I don't see any reason to write a Primer section on this.

@silverpill
Copy link
Author

Are the listed types really subtypes/subclasses of a "core type" or "core class"?

@TallTed Yes, they are. ActivityPub spec talks about the relationship to ActivityStreams in section 3. Objects:

Objects are the core concept around which both [ActivityStreams] and ActivityPub are built. Objects are often wrapped in Activities and are contained in streams of Collections, which are themselves subclasses of Objects. See the [Activity-Vocabulary] document, particularly the Core Classes; ActivityPub follows the mapping of this vocabulary very closely.

@strugee
Copy link

strugee commented Jan 30, 2025

@silverpill I believe the point that @TallTed and @nightpool are making is that from an implementation perspective, it doesn't matter whether Actor is a core type because there is no requirement to alter behavior based on whether or not a type is a core type.

Nobody is disputing that the definition of e.g. Activity is important. The question is whether, since Activity is a core type, the definition of "core type" also matters (and the suggestion is that it does not).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs primer page Need to add a page at https://www.w3.org/wiki/Activity_Streams/Primer on this topic Next version Things that should probably be resolved in a next version of AS2
Projects
None yet
Development

No branches or pull requests

5 participants