mastodon implemented the Hashtag
type within the as:
namespace, though it doesn’t exist in the activitystreams context. it is not formally defined anywhere. the closest thing to that is this section: ActivityPub - Mastodon documentation
it would be nice to have input in formalizing a definition for Hashtag or some similar concept via FEP, and maybe take this opportunity to align implementations on how it should function. there are some open points of confusion:
- as mentioned above: should it be formally adopted into the activitystreams context?
- what type is it and what properties can it have?
- some implementations (Hubzilla, formerly?) treat it as a subtype of Object, with an
id
- some implementations (Mastodon) treat it as a subtype of Link, with an
href
- some implementations (several?) ignore the
id
/href
entirely and identify/dedupe hashtags byname
- even then, implementations differ on whether the
name
should start with the hash or not (#hashtag
vshashtag
) - furthermore, it is unclear if implementations place further restrictions upon hashtags or their name. which characters are allowed in a hashtag, and which ones terminate it? are there any character limits? can it be defined by a regex?
- even then, implementations differ on whether the
- some implementations (Hubzilla, formerly?) treat it as a subtype of Object, with an
- should it even be called a
Hashtag
? do we maintain the hash at all? do we come up with some other name for it, likeTag
orTaxonomy
? see also the above point about whethername
should start with a hash or not.
there are also possible extensions:
- a visual icon that can be displayed before the hashtag. twitter has done something similar before, giving certain trending hashtags their own visual flair or emoji.
things to keep an eye on:
- different types of tags, such as “cashtags” starting with a dollar sign (“cash” or
$
), or “bangtags” starting with an exclamation point (“bang” or!
), may or may not overlap with the semantics of a Hashtag despite not actually being “hashtags”. this should be explored.