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

Add a Tag type #235

Closed
cwebber opened this Issue Jun 21, 2017 · 20 comments

Comments

Projects
None yet
7 participants
@cwebber
Collaborator

cwebber commented Jun 21, 2017

We resolved on the Community Group call today to add a Tag type to the ActivityPub spec. Multiple implementers found it frustrating that there's a specific object type for Mentions, but not for everyday text-style tags.

@nightpool

This comment has been minimized.

Show comment
Hide comment
@nightpool

nightpool Jun 21, 2017

Question about details—is this something we need to do with ActivityStreams? Or can we just say that ActivityPub extends ActivityStreams in this way?

My understanding is that so far we don't extend AS2 anywhere—AP says "ActivityPub uses [ActivityStreams] for its vocabulary". Are we comfortable with this change? What are the other options?

As far as the standardization process goes, what's the best move here?

nightpool commented Jun 21, 2017

Question about details—is this something we need to do with ActivityStreams? Or can we just say that ActivityPub extends ActivityStreams in this way?

My understanding is that so far we don't extend AS2 anywhere—AP says "ActivityPub uses [ActivityStreams] for its vocabulary". Are we comfortable with this change? What are the other options?

As far as the standardization process goes, what's the best move here?

@cwebber

This comment has been minimized.

Show comment
Hide comment
@cwebber

cwebber Jun 27, 2017

Collaborator

ActivityPub already extends ActivityStreams. The inbox and outbox are terms not in AS2 itself. Per past resolutions of the group we have permission to do this. (Good question though!)

Collaborator

cwebber commented Jun 27, 2017

ActivityPub already extends ActivityStreams. The inbox and outbox are terms not in AS2 itself. Per past resolutions of the group we have permission to do this. (Good question though!)

@cwebber

This comment has been minimized.

Show comment
Hide comment
@cwebber

cwebber Jun 27, 2017

Collaborator

We're going to wait on James Snell's comments on this to hear why it wasn't in AS2. Also Evan and AJ both say that if we did it, it shouldn't go in ActivityPub because it's not an AP specific extension, it should be an independent extension

Collaborator

cwebber commented Jun 27, 2017

We're going to wait on James Snell's comments on this to hear why it wasn't in AS2. Also Evan and AJ both say that if we did it, it shouldn't go in ActivityPub because it's not an AP specific extension, it should be an independent extension

@tantek

This comment has been minimized.

Show comment
Hide comment
@tantek

tantek Jun 27, 2017

Links to where the use-cases are documented for this?

tantek commented Jun 27, 2017

Links to where the use-cases are documented for this?

@cwebber

This comment has been minimized.

Show comment
Hide comment
@cwebber

cwebber Jul 25, 2017

Collaborator

Don't have time at the second to pull up notes, but @Gargron said that Mastodon went ahead and added a Tag object.

BTW, I think we should get an answer from James on this, but I think this may fall under the "this should be an extension because it's not a requirement for the protocol to work" aspect.

Collaborator

cwebber commented Jul 25, 2017

Don't have time at the second to pull up notes, but @Gargron said that Mastodon went ahead and added a Tag object.

BTW, I think we should get an answer from James on this, but I think this may fall under the "this should be an extension because it's not a requirement for the protocol to work" aspect.

@rhiaro

This comment has been minimized.

Show comment
Hide comment
@rhiaro

rhiaro Jul 25, 2017

Member

What would Tag actually help with that isn't possible already? I realise I missed the discussion on this.

Off the top of my head, if you follow the as:tag relation and find an as:Object, the UI is going to want that object's name I expect, which it can get regardless of the type of that object. Anything else?

In my implementation (sloph), tags are as:Collection types, and every post tagged with them is discoverable through as:item.

Or maybe this is for tags which don't have a URI, only a string, which would be a value for name on an as:Object? (ie. blank nodes). Still, if you go from an Activity or Object through the as:tag property, and find a generic Object there, you can infer that it's a tag...

Member

rhiaro commented Jul 25, 2017

What would Tag actually help with that isn't possible already? I realise I missed the discussion on this.

Off the top of my head, if you follow the as:tag relation and find an as:Object, the UI is going to want that object's name I expect, which it can get regardless of the type of that object. Anything else?

In my implementation (sloph), tags are as:Collection types, and every post tagged with them is discoverable through as:item.

Or maybe this is for tags which don't have a URI, only a string, which would be a value for name on an as:Object? (ie. blank nodes). Still, if you go from an Activity or Object through the as:tag property, and find a generic Object there, you can infer that it's a tag...

@cwebber

This comment has been minimized.

Show comment
Hide comment
@cwebber

cwebber Jul 25, 2017

Collaborator

Part of the rationale was that Mention has its own type, very specifically for this type of thing, but "Hashtag" type string identifiers doesn't have a type which is weird, and maybe even not helpful for people who are trying to map this to localized types clearly? But I may be forgetting; perhaps @Gargron can refresh our memories on their motivation?

Collaborator

cwebber commented Jul 25, 2017

Part of the rationale was that Mention has its own type, very specifically for this type of thing, but "Hashtag" type string identifiers doesn't have a type which is weird, and maybe even not helpful for people who are trying to map this to localized types clearly? But I may be forgetting; perhaps @Gargron can refresh our memories on their motivation?

@tantek

This comment has been minimized.

Show comment
Hide comment
@tantek

tantek Jul 25, 2017

I have the same questions (confusion?) as @rhiaro I think. But I'm also ok with a "tag-of" type parallel to "mention" (assuming that's pre-existing). For reference, indieweb posts have had this specific response for a while: https://indieweb.org/tag-of which is a type under consideration in Post Type Discovery https://www.w3.org/TR/post-type-discovery/#othertypes (Update: added tantek/post-type-discovery#28)

tantek commented Jul 25, 2017

I have the same questions (confusion?) as @rhiaro I think. But I'm also ok with a "tag-of" type parallel to "mention" (assuming that's pre-existing). For reference, indieweb posts have had this specific response for a while: https://indieweb.org/tag-of which is a type under consideration in Post Type Discovery https://www.w3.org/TR/post-type-discovery/#othertypes (Update: added tantek/post-type-discovery#28)

@Gargron

This comment has been minimized.

Show comment
Hide comment
@Gargron

Gargron Jul 25, 2017

I have added type: "Hashtag" to Mastodon because when I'm parsing the "tag" attribute and iterating over the items I'd like to know what the item is. A "Mention" type exists so there should be a "Hashtag" type as well.

Gargron commented Jul 25, 2017

I have added type: "Hashtag" to Mastodon because when I'm parsing the "tag" attribute and iterating over the items I'd like to know what the item is. A "Mention" type exists so there should be a "Hashtag" type as well.

@cwebber

This comment has been minimized.

Show comment
Hide comment
@cwebber

cwebber Aug 27, 2017

Collaborator

Proposed as an extension to the SocialCG (and we'll be talking about the process for getting things in at the SocialWG this week, and raising it on the SocialCG call).

Collaborator

cwebber commented Aug 27, 2017

Proposed as an extension to the SocialCG (and we'll be talking about the process for getting things in at the SocialWG this week, and raising it on the SocialCG call).

@cwebber

This comment has been minimized.

Show comment
Hide comment
@cwebber

cwebber Aug 29, 2017

Collaborator

I asked @jasnell about this and got the following response:

I think at this point if they have found a solid use for it then ++

Let's make it happen!

Collaborator

cwebber commented Aug 29, 2017

I asked @jasnell about this and got the following response:

I think at this point if they have found a solid use for it then ++

Let's make it happen!

@rhiaro

This comment has been minimized.

Show comment
Hide comment
@rhiaro

rhiaro Aug 30, 2017

Member

To clarify, is the proposal for Hashtag or Tag? Hashtag seems to me a bit twitter specific, but Tag is more generic and doesn't imply a microsyntax requirement.

Member

rhiaro commented Aug 30, 2017

To clarify, is the proposal for Hashtag or Tag? Hashtag seems to me a bit twitter specific, but Tag is more generic and doesn't imply a microsyntax requirement.

@Gargron

This comment has been minimized.

Show comment
Hide comment
@Gargron

Gargron Aug 30, 2017

@rhiaro I believe "Tag" would be at least slightly confusing due to the presence of the "tag" property. "tag" containing Mention and Tag vs "tag" containing Mention and Hashtag. In the end, I do not really want to push a specific wording as long as the meaning is the same. Tag, Hashtag, even Category, would all fit the task.

Gargron commented Aug 30, 2017

@rhiaro I believe "Tag" would be at least slightly confusing due to the presence of the "tag" property. "tag" containing Mention and Tag vs "tag" containing Mention and Hashtag. In the end, I do not really want to push a specific wording as long as the meaning is the same. Tag, Hashtag, even Category, would all fit the task.

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Aug 30, 2017

Hello all! Really quite happy to see progress moving forward on real implementations!

I wouldn't get too hung up on the Tag vs. tag, developers will adapt to whatever works. I also wouldn't worry so much about Hashtag vs. Tag given that the two are generally synonymous these days.

jasnell commented Aug 30, 2017

Hello all! Really quite happy to see progress moving forward on real implementations!

I wouldn't get too hung up on the Tag vs. tag, developers will adapt to whatever works. I also wouldn't worry so much about Hashtag vs. Tag given that the two are generally synonymous these days.

@nightpool

This comment has been minimized.

Show comment
Hide comment
@nightpool

nightpool Sep 1, 2017

i would be 👎 on Hashtag personally, but it's also a pretty weak opinion. the meaning is what matters

nightpool commented Sep 1, 2017

i would be 👎 on Hashtag personally, but it's also a pretty weak opinion. the meaning is what matters

@cwebber

This comment has been minimized.

Show comment
Hide comment
@cwebber

cwebber Sep 1, 2017

Collaborator

I was leaning towards Tag but @evanp made the case on a call iirc for Hashtag indicating that it was a specific type of tag, one where it's a string referencing some sort of grouping of objects... after all, Mention is also a "tag" in our system but we're calling out Hashtag as having a very different user than Hashtag (or Tag) does. I thought that was compelling.

Collaborator

cwebber commented Sep 1, 2017

I was leaning towards Tag but @evanp made the case on a call iirc for Hashtag indicating that it was a specific type of tag, one where it's a string referencing some sort of grouping of objects... after all, Mention is also a "tag" in our system but we're calling out Hashtag as having a very different user than Hashtag (or Tag) does. I thought that was compelling.

@rhiaro rhiaro closed this Oct 24, 2017

@evanp

This comment has been minimized.

Show comment
Hide comment
@evanp

evanp Oct 30, 2017

Is there an example somewhere? Or is this about right?

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://tags.pub/mozfest",
  "name": "#mozfest",
  "content": "Mozilla Festival"
}

evanp commented Oct 30, 2017

Is there an example somewhere? Or is this about right?

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://tags.pub/mozfest",
  "name": "#mozfest",
  "content": "Mozilla Festival"
}
@evanp

This comment has been minimized.

Show comment
Hide comment
@evanp

evanp Oct 30, 2017

Also, how do I get the collection of activities or objects that have a particular hashtag? I don't think it should be inbox or outbox.

'tagged' ? 'tagged-by'? 'tagged-in'?

evanp commented Oct 30, 2017

Also, how do I get the collection of activities or objects that have a particular hashtag? I don't think it should be inbox or outbox.

'tagged' ? 'tagged-by'? 'tagged-in'?

@evanp

This comment has been minimized.

Show comment
Hide comment
@evanp

evanp Oct 30, 2017

There's a similar problem with finding the collection of activities that have an Object as their object property. For example, the edit history of an Article.

evanp commented Oct 30, 2017

There's a similar problem with finding the collection of activities that have an Object as their object property. For example, the edit history of an Article.

@cwebber

This comment has been minimized.

Show comment
Hide comment
@cwebber

cwebber Oct 30, 2017

Collaborator

Also, how do I get the collection of activities or objects that have a particular hashtag? I don't think it should be inbox or outbox.

I guess I was going to say do a GET against https://tags.pub/mozfest w/ the the AS2 mimetype and you'd get back a collection, but you wouldn't get back a collection necessarily... (you could maybe do a composite type of ["Hashtag", "OrderedCollection"] but I dunno how people would feel about it).

Regardless the proper conversation for this now is probably this issue. Note that @Gargron and company have implemented tags in Mastodon; maybe speak with them?

Collaborator

cwebber commented Oct 30, 2017

Also, how do I get the collection of activities or objects that have a particular hashtag? I don't think it should be inbox or outbox.

I guess I was going to say do a GET against https://tags.pub/mozfest w/ the the AS2 mimetype and you'd get back a collection, but you wouldn't get back a collection necessarily... (you could maybe do a composite type of ["Hashtag", "OrderedCollection"] but I dunno how people would feel about it).

Regardless the proper conversation for this now is probably this issue. Note that @Gargron and company have implemented tags in Mastodon; maybe speak with them?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment