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

Add a Tag type #235

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

Add a Tag type #235

cwebber opened this issue Jun 21, 2017 · 20 comments

Comments

@cwebber
Copy link
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
Copy link
Collaborator

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Member

tantek commented Jun 27, 2017

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

@cwebber
Copy link
Collaborator Author

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
Copy link
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
Copy link
Collaborator Author

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
Copy link
Member

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
Copy link

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
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
Copy link

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
Copy link

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
Copy link
Collaborator

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

@cwebber
Copy link
Collaborator Author

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 as completed Oct 24, 2017
@evanp
Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Collaborator Author

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
Projects
None yet
Development

No branches or pull requests

7 participants