From W3C Wiki

Social Web Incubator Community Group Teleconference

28 Jun 2017

See also: IRC log


cwebber, puckipedia, tsyesika, tantek, ben_thatmustbeme, rhiaro, cwebber2
puckipedia, cwebber2


<rhiaro> but irc

<cwebber2> scribenick: puckipedia

cwebber2: we've been extended to the end of the year, the biggest update is the discussions about hashtag type and sensitive media stuff
... about non-standard extensions: activitypub does extensions to activitystreams, but should it do this for hashtag types etc? conclusion is that it should only be done for protocol things, like inbox/outbox. sensitive media flag doesn't affect protocol
... the reason there is no hashtag type is unknown, AS2 is looking into the history of it not being there

<cwebber2> sandro said that the CG isn't the only group that is able to define extensions, but is the place for extending AS2


<Loqi> [Leah] I put it in my bio, but just wanted to put it out here, if you're sharing images, video, or audio of storms, could you please CW it? I have pretty bad astraphobia and it would really help me

<cwebber2> 's namespace

<cwebber2> sandro clarified that they also think the bar for doing extensions / experiments are fairly low

ajordan: people should be encouraged to bring the extensions to the CG, because it helps improve, include more viewpoints

<ajordan> puckipedia++

<Loqi> puckipedia has 3 karma

IndieWeb/ActivityPub interop updates from IndieWeb Summit



ajordan: at indieweb summit I sat down with [some people from the indieweb community], we nailed down how to bridge IndieWeb with ActivityPub
... we should be able to bridge micropub to activitypub, by translating it to a Create activity, so micropub clients can communicate with AS2 servers. The more complicated thing is everything else

sandro: was there a specific direction in which the bridge works? my guess is having existing indieweb sites communicate with AP sites when they are deployed

ajordan: it was both. one point of contention is "how much do we want to depend on different implementations?"

<ben_thatmustbeme> so AP site defines a webmention endpoint, can be hosted anywhere, makes sense, the bridge can handle converting webmention to AP

ajordan: on the left you have an indieweb site, right AP. the green arrow is an IW site mentioning an AP site. trying to make that interaction work with a bridge, two ways to do it: 1. the AP server adds a WebMention endpoint into the html (via config)

<nightpool> hey all, sorry i'm late

cwebber2: the endpoint isn't necessarily on the site, the activitypub server just .. points to the bridge?

ajordan: yeah. we think that will be a low enough barrier. But you have to catch all implementations. alternatively, the indieweb site would have to prefix the activitypub url with the bridge

<rhiaro> for the record:

sandro: the unmodified activitypub endpoint would be hidden behind the bridge, and the bridge would make it look like a different site with indieweb protocols?

<rhiaro> AP/LDN <-> webmention bridging ideas

ajordan: the bridge would make the IW site look like an Actor to AP, and the other side will be translated to microformats2
... this doesn't handle an AP site mentioning an IW site. What we thought was: the IW site could host a static JSON file representing an actor, with inbox+outbox URLs, which would point to a third-party server bridging
... any AP server could be redirected to a 3rd party bridge which would do the right thing

<nightpool> with the static actor json, is there anything that is required on the AP end to support that?

<nightpool> It sounds really good and we should support it.

<ben_thatmustbeme> so basically AP in/out box links point to appropriate endpoints on the bridge (and some static json?). and AP site defines WM endpoint link

cwebber2: you mentioned the link, the challenge you mentioned is we would have to make a clear transformation between AS2 and MF2 vocab. we could do that, but we would have to spec out which properties would be translated bidirectionally. AP usually has a bit more finegrained types, but hopefully that's part of the post type discovery protocol

<Zakim> cwebber, you wanted to discuss mf2 <-> as2 transformation and rhiaro's link

<cwebber2> scribenick: cwebber2

<ben_thatmustbeme> i have experimented with AS2 -> mf2, there are some mismatches in several ways

puckipedia: so the thing with activitypub / indieweb site having a third party inbox link, I was thinking of that because a server could potentially have the inbox of another user... might not be the best mode, but wouldn't that be an issue with some servers pointing to the inbox on another server?

ajordan: to be clear, the endpoints would specifically be designed to be a bridge

puckipedia: yes but I could imagine that some servers could refuse to post to something that isn't posted on the same server

ajordan: that's a violation of a spec

<ben_thatmustbeme> yeah, thats specifically supposed to be allowed

sandro: could you repeat?

puckipedia: it may be a security thing
... but it's probably good enough

<scribe> scribenick: puckipedia

sandro: about the differnt kinds of bridging, one way you could get interoperability, the nicest way is everyone implementing the same protocol, short of that is everybody implements every protocol, or this kind of bridge
... two kinds of bridging: cooperating and non-cooperating. Bridging right now does bridging to non-cooperating sites, like FB and Twitter, and that's what I've been thinking of recently. but a cooperating server that just requires a few changes seems like a nice thing

<nightpool> yeah, that's a really good point.

sandro: question is also if users should be bridged. with cooperating that may not be such a problem. if you sign up with an AP service and don't expect it to appear on another thing, that could get weird

<nightpool> cooperative/non-cooperative bridging is good frame to think about this in

<Zakim> nightpool, you wanted to talk about PuSH hub mode (text only)

nightpool: PuSH does have static actors with links to different inbox/outbox, the way this would be implemented, would it need an extension, or would it be strictly in spec?

ajordan: strictly in spec. Something this protocol allows from begin is that an inbox/outbox on another server is allowed. But the question is if it's possibel to make an AS2 static object

nightpool: PuSH does have hub mode, not sure everyone uses it. some kind of [??] for too much moving parts. but one static server and one bridging server is nice

<ben_thatmustbeme> thats the case NOW, and thats not at all true

<Zakim> ajordan, you wanted to reply to sandro

nightpool: most people have PuSH integrated into the site, instead of separate hub

<ben_thatmustbeme> nightpool, what kind of citation do you have for that?

ajordan: how do we design bridging so that people aren't surprised? if your server is going to interoperate not sure we can do anythign about it. all we're doing is mapping semantics. it has the same privacy semantics. sandro, you have touched on a broader problem. even without bridging, some implementations can still do things differently

sandro: it's just going to be a long process to get a handle on it

<nightpool> ben_thatmustbeme: you would know more about it then me, but my understanding was that nobody in the GNU social space uses hub servers anymore because they added too much complexity.

<Zakim> cwebber, you wanted to bring up the jf2 json-ld context of yore, and also mention posts that mention posts and rewriting

<ben_thatmustbeme> jf2 has a json-ld context

<ben_thatmustbeme> not on audio

cwebber2: how JF2 might help: at one point we looked at JF2 having a @context, I did some experiments. it may help things, but maybe we still have to translate it


cwebber2: one concern is, one challenge is if you have a lot of back-and-forth: AP server A connects to bridge B, and IW server I. A writes post, sent to I through B
... since it wants to see things in MF, I will rewrite the URIs to its own URIs. is that correct, by design?

<cwebber2> A is ActivityPub, I is IndieWeb, B is Bridge

<rhiaro> do you mean how like bridgy turns tweets in to mf2?

<ben_thatmustbeme> nightpool, also, thats the other way around. we are talking about discovery of hubs, i don't know of any that don't support hubs being externally

<tantek> "I is IndieWeb" sounds funny :)

<cwebber2> (and I misspoke, it should be A->B->I, does B rewrite the ids / uris to the brudge url)

<ben_thatmustbeme> people can implement it inside their server, but thats entirely outside of the spec

ajordan: if IW server doesn't do anything to support bridging, the user on A can prefix their URl with the bridge URL, and that will take care of the translation. the bridge sends webmention, presents MF2 markup

<ben_thatmustbeme> no

cwebber2: imagine you have an ID at A server, the indieweb server sees it as B id, if I replies to the message, it sees it as B

<rhiaro> we should totally look at how bridgy and indieweb sites who use bridgy deal with this

<Loqi> totally

<rhiaro> because bridgy makes new uris for tweets and fb posts, and peopel reply to them and bridgy publish sends them forward..

ajordan: a lot of AP servers support MF2, if the AP server's markup is good enough, just send a webmention *for* that canonical url. but that won't always happen

ben_thatmustbeme: this is the exact same way bridgy works, it works fine, can give the URL of the post as a different location. Sends webmention from bridge, the MF it generates will have the URL of the individual post as source URL
... when the IW server fetches the message from the bridge, it sees the original URL

<nightpool> send a webmention *for* that canonical url. but that won't always happen

<nightpool> oops, sorry

<nightpool> my terminal does that sometimes.

ben_thatmustbeme: if you look at my site, and the comments, you can see it's a facebook permalink. if I reply, it goes to a facebook url, the trick bridgy does is that it tells bridgy that I sent a reply
... if the AP site has webmention that's the bridge, I can send webmention to it fine, the bridge should be able to pul lthe MF2 from my site, and just generates the AP equivalent. that's tricky, but a bit easier than the other direction
... if the AP site has MF already marked up, super easy, just send the webmention. if not, the IW site has to do that [missed] the bridge. The trick the bridge would work, generating these microformats, experimenting gets complex, the systems are slightly different. I do have some sample code
... referencing the URLs in the origin should be fine. you shouldn't see the bridge as the permalink

cwebber2: you can mark the other URL in AS2 somewhat goofily, but I think it would break a threaded conversation that was using the IDs, but maybe that's not a big of a deal
... the best thing would be if both ends implement both vocabularies. but the protocol could still be done by the bridge

ben_thatmustbeme: on the IW sites, back&forth would work fine. but not sure with ID versus URL, if the ID is used as bridge's

<nightpool> Mastodon has some problems with it, I know

ben_thatmustbeme: I did have one reply to PuSH hub brought up, external sites. there's lots of cases people implement hubs internally, but afaik subscribers don't support having a hub on an external url

nightpool: mastodon does do host verification, e.g. to send private posts, it has to have one follower on that host. on GNU Social very few people have hub servers. I think this won't fall into the pitfalls having an external server would

<ajordan> ben_thatmustbeme++ that was super helpful

<Loqi> ben_thatmustbeme has 80 karma in this channel (242 overall)

cwebber2: I mentioned, nightpool, we have been discussing in the WG that protocol extensions make sense to happen in AP, but non-protocol extensions (vocab), e.g. sensitive media, hashtag, should be extensions handled by ideally this group

<ajordan> that's rel-canonical= right?

More on the sensitive media stuff?

<ben_thatmustbeme> you don't need rel-canonical

<ben_thatmustbeme> its just the u-url of the h-entry

<ajordan> ahh okay

cwebber2: last week, having a sensitive boolean would be nice, diaspora has nsfw hashtag, and mastodon has it. I filed an issue and brought it over to the WG. the WG wasn't going to handle it, we're going to handle it as an extension outside the WG
... there was concern about that route, and problems with, in mastodon the user who posts it sets the sensitive flag.

nightpool: yes. admins could change it later, if it's reported etc

<nightpool> Yeah, tumblr had more recent examples of this, yeah.

cwebber2: one of the concerns is, if the user does it it does fine. but large centralized sites would flag it itself. youtube started to mark anything with queer as their 'sensitive/NSFW' flag. children viewing any post about LGBT, they couldn't do it

<ben_thatmustbeme> ajordan, take a look at the source of this reply to aaron's post on FB

<Loqi> [KmikeyM] Thanks to Aaron for making this. I'm going to listen to it on repeat all night long. "Markets provide."

sandro: the queer label was tantek, the youtube thing was based on unknown things, they just did their own thing

cwebber2: is handling things on a boolean thing for the entire post a good thing? it's not so bad if the user makes the decision, but it's worse if the hosting provider makes the decision

<ajordan> ohhh, got it ben_thatmustbeme

<ajordan> thanks

<tantek> my point was that Twitter apparently started hiding tweets with the word "queer" with a "content warning"

<tantek> which is pretty messed up

nightpool: i wouldn't be supporting this if hosting providers woudl add it, users should do this and it should be opt-in

<tantek> I suspect hosting providers will start abusing any such boolean flag

nightpool: tumblr did a thing recently, they added both a per-post and per-blog sensitive boolean, and then they restricted <18 people from seeing those blogs. caused initial turmoil, still has repercussions

<tantek> marking things as "sensitive" even when the author has not done so

<ajordan> tantek++

<Loqi> tantek has 63 karma in this channel (359 overall)

<tantek> for that reason (inevitable abuse by those in power - in charge of hosting providers), I think this is a bad design / feature

nightpool: very soon they might restrict public access. we should make sure to indicate this is optional that users can support, and it should be done by the user, by the policies of their server
... it shouldn't be automatically ascertained

<tantek> it will be used for censorship

<cwebber2> scribenick: cwebber2

<tantek> even if the spec says not to, even if the spec says hosting providers shouldn't add it if authors have not done so explicitly

puckipedia: the thing is... I don't exactly see the sensitive boolean as just that boolean. for example, Mastodon also has a Content Warning label and the summary vs the content... so you'd not just have the sensitive warning, it would/n't also show the content of the post it was sensitive
... I'm thinking of how this will apply in a federated context... hm...

<puckipedia> it'd show the summary

<puckipedia> scribenick: puckipedia

<tantek> we know from the debacle of rel-nofollow (another negative boolean as it were) that hosting providers are not to be trusted with negative annotations, and will inevitably abuse them for their own (perceived benefit) and claim they "have no choice" or "have to for SEO reasons", or "have to because spammers" or some other such claptrap

cwebber2: how would the group like to go forward with defining these things? 3 proposals. noone wants an automatic sensitive boolean. so having a non-automatically applied sensitive boolean, whether that would happen or not, would be one avenue to explore

<ajordan> tantek: are you able to briefly summarize that problem?

cwebber2: avenue 2 would be a summary-type content warning. Mastodon is doing it as just *the* summary property, and isn't making a differentiation. Gargron seems fine with that

<tantek> ajordan which problem?

<ajordan> rel-nofollow

cwebber2: another avenue would be more granular filtering by specific tags, being separately flagged as being sensitive/content warning. but not the open-ended content warning text area

<tantek> ok mumbling...

cwebber2: they all have their trade-offs, and the question is: how do we want to go forward, and does anyone want to take the initiative?

<Zakim> nightpool, you wanted to respond to tantek

nightpool: there's been some discussion in chat

<saranix> the third one is the most compatible with my current protocol. The other 2 I would have to lose fidelity somewhere

<ben_thatmustbeme> btw, my (likely outdated) code where i was experimenting with this


tantek: ajordan summarised the problem was rel-nofollow, with the express purpose of placing on links of *third-party* content. people commenting on a blogpost hosted by a service provider. as deterrant for spam links
... service providers put rel nofollow on second-party content. this is on all silos, large social media. all links you place will be rel-nofollow. and they don't take responsibility to remove spammers. it's effectively broken link weighting
... the spec says one thing, and publishers have universally abused it. given that experience I expect publishers to abuse the feature
... I would expect publishers to abuse the boolean. there is no way to prevent that from happening. I hope I'm wrong, but the rel-nofollow experience says publishers will abuse it, users be damned

nightpool: I think that's super true, the main way this could be abused is if providers restrict all access to sensitive media, for e.g. accounts under 18. if it's just a click-through, it's not that bad of an outcome, no inherent censorship. So I think to combat that we should courage the sensitive label to things that aren't just sexually explicit content
... we should say explicitly it's applicable to a wider variety of things, including things that you don't show to under 18s, or tell that it isn't for hiding, so we remove the loading of 'sensitive' terminology

<ben_thatmustbeme> dropping this example again of a (i think) sarcastic point

<Loqi> [Leah] I put it in my bio, but just wanted to put it out here, if you're sharing images, video, or audio of storms, could you please CW it? I have pretty bad astraphobia and it would really help me

cwebber2: the way Mastodon has CW for e.g. politics, Steven Universe, if we add sensitive, we encourage people to use it very widely

<tantek> I kind of see this boolean as "will generate feels"

nightpool: the other example is, nearly every (flashing?) gif is marked sensitive, because it's distracting, such a broader use of 'sensitive'. or maybe another term instead of 'sensitive'

<tantek> I have to go to another telcon

<tsyesika> +1

<tantek> -0

<ajordan> +1

<rhiaro> +0

<tantek> but y'all continue

<ajordan> actually +0

<cwebber2> PROPOSED: go to 15 mins past the hour

<cwebber2> +1

<nightpool> +1

<tantek> thanks everyone! keep up the thoughtful discussion <3

cwebber2: what I'd like to push for, it's not going to take 10 minutes

<ajordan> tantek: thanks for being here :-)

cwebber2: we've got three outlined directinos, sensitive as broad flag, CW-style direction, and fine-grained sensitive tags
... I would suggest, as this owuld be done as extension, or it's just fine to keep using the summary field without differentiation, it'd be a good idea if somebody took on responsibility of leading this
... investigating a proper extension, etc. doesn't mean that it has to be done now, but I don't have the time personally. I would love to see if there's someone who feels to do that

nightpool: I would be down to take this on, with some guidance. Where should I be writing this, etc

cwebber2: we have an AP wiki page, the person who's organising it can decide where they do the organisation. maybe a good route would be or speccing this up on a wiki, or a github issue. what do you feel would be the best approach, nightpool?

nightpool: github issue

<nightpool> seeing as I can't edit the wiki :)

cwebber2: I would then suggest a github issue on the socialcg issue, and then add it to the wiki

<ajordan> just drop the link in here

<ajordan> thanks all

<ajordan> puckipedia++ for a hard day of scribing!

<saranix> If yall need any info about real-world examples, I have a few from testing my own implementation of this, which apparently is the most complex version of it in the wild

cwebber2: let's close it! productive meeting, thanks nightpool for taking this on, and thanks puckipedia for scribing

<cwebber2> puckipedia++

<Loqi> puckipedia has 4 karma

<cwebber2> trackbot, end meeting

<sandro> Re senstive media: Investigative reporting on how badly Facebook decides what is hate speech:

<ajordan> oh boy

<tantek> hey I was present

Summary of Action Items

Summary of Resolutions