W3C

- DRAFT -

Social Web Working Group Teleconference

06 Jun 2017

See also: IRC log

Attendees

Present
ajordan, sandro, ben_thatmustbeme, tantek, rhiaro
Regrets
Chair
tantek
Scribe
Ben Roberts, AJ Jordan

Contents


<ajordan> see ya next week cwebber2!

<ajordan> ben_thatmustbeme: no problem :)

<ajordan> I just skimmed the new section

<tantek> be right there :)

<Loqi> tantek: saranix left you a message 4 days, 14 hours ago: I was wondering what were the reasons that W3 started switching to github 'issues' and what are they 'switching' from?

<ben_thatmustbeme> i can scribe

<ben_thatmustbeme> scribenick: ben_thatmustbeme

<scribe> scribe: Ben Roberts

<tantek> https://www.w3.org/wiki/Socialwg/2017-05-30-minutes

<ajordan> ben_thatmustbeme: I can scribe while we talk about JF2 if you want

review of minutes of last week

<sandro> +1

<tantek> +1

+1

<ajordan> +1

RESOLUTION: accept https://www.w3.org/wiki/Socialwg/2017-05-30-minutes of minutes from last week

update for extension

sandro: no update yet, i created a new w3c.social mastodon instance to hopefully show some support
... not sure how to show off that link

tantek: well at least on the WG website

sandro: i don't think that would be noticablel enough

ajordan: twitter?

sandro: oh yeah

(laughs all around)

specs

tantek: with cwebber2 not here i don't know we can do much on activitypub
... anyone have any hot topics to raise on it

ajordan: nothing has been raised recently in the issues

tantek: we don't have aaronpk or julien here, so i don't know we can do much with websub

<aaronpk> not on the call, but my only update is that pfefferle submitted an implementationreport for wordpress https://github.com/w3c/websub/blob/master/implementation-reports/PUBLISHER-wordpress-pubsubhubbub.md

tantek: aaronpk did get some websub implementation report for wordpress
... its a plugin for worpress

<aaronpk> also julien seems to have just gone through a bunch of websub issues

<aaronpk> so there is more to discuss on github

<Zakim> ajordan, you wanted to mention the direct-message issue resolution

<ajordan> https://github.com/w3c/activitypub/issues/196

<Loqi> [annando] #196 How to differentiate between posts and private (direct) messages?

ajordan: i happen to have last weeks minutes open, and we were goign to discuss the direct message issue

<ajordan> https://github.com/w3c/activitypub/issues/196#issuecomment-304958984

<Loqi> [cwebber] Note that Pump.io already does this, and I think this may be the answer: inbox is still used for federation, but multiple streams can be presented to the user in terms of inbox / the "major" feed (which is all the main posts and comments and etc) / t...

ajordan: i just wanted to mention it because it seems like its been resolved
... it seems like everyone is on the same page

tantek: sounds good, i leave it cwebber2 to prompt the original opener to ask if they are satisfied
... but good to see the updates there
... the only thing i have to report on post type discovery is in a little bit of messaging with sandro, i have had some ...
... mastodon works well with other mastodon instances, but not much with others outside of mastodon

sandro: some others have written plugins to make it work here and there

<rhiaro> PostActiv is not GNU Social but is OStatus, also works, I think that counts

tantek: does mastodon have a character limit?

sandro: yes, but only on the input

<sandro> (I think)

tantek: if we were to hlep make mastodon accept webmention, it would need to figure those out by post type discovery or a subset of the PTD algorithm
... i think i will look in to doing that subset, and it should be even easier to get more interop on it

sandro: since we have such an open agenda, i wonder if we could talk more on that

JF2

<tantek> scribenick: ajordan

<scribe> scribe: AJ Jordan

ben_thatmustbeme: two of the guys behind micro.blog Manton Reece & Brent Simmons, who have implemented RSS and Atom released(?) JSON Feed
... looking at it there was very little difference, but there are some values differently. most of it is a change in vocabulary

<ben_thatmustbeme> https://socialwg.indiewebcamp.com/irc/social

<ben_thatmustbeme> oops

<ajordan_> scribenick: ajordan_

<ben_thatmustbeme> http://dissolve.github.io/jf2/#jsonfeed_to_jf2feed

<ajordan> ... I added a section that defines a profile that pretty much matches JSON Feed

<ajordan> ... people can turn microformats into JF2 that way, and can use things like JSON Feed

<ajordan> ... I'd like to publish a new WD of it for that reason

<ajordan> ... let's see if we can unify JSON Feed and JF2 a little more

<ajordan> sandro: great thing to work on ben_thatmustbeme, I'm curious what you mean when you say "pretty much"

<ajordan> ... why can't it be the same?

<ajordan> ben_thatmustbeme: for anyone using JSON Feed you have to break on anything you don't recognize

<ajordan> ... in JSON Feed any extensions have to be prefixed with an _

<sandro> sandro: the _prefix this is an anti-pattern, like x-foo headers

<sandro> sandro: also, version numbers? no thanks!

<ajordan> ... the other is mainly vocabulary. either you have to start adding JF2 vocab that isn't referenced anywhere out of JSON Feed, or you convert it over

<ajordan> ... there's a section on how to convert it

<ajordan> scribenick: ajordan

tantek: great work ben_thatmustbeme on JF2, in particular in finding a profile for JF2 that gets it very close to JSON Feed while keeping it generic AFAICT
... to the point where essentially it's mostly a property renaming conversion
... as sandro pointed out this is mostly just a few lines of code
... generally I think this is an excellent approach to take to kinda bring add'l efforts into interop with our specs
... we see where you are, we specify things in the direction you're talking about, and we specify how to interop.
... I really like us saying this publicly
... don't read issue 49 on JSON Feed right now, but basically it's a massive flamewar
... where someone said "here's how to fix your spec" instead of trying to work with them
... I think ben_thatmustbeme's approach is better in the long term and builds community better

<Zakim> sandro, you wanted to ask about jf2->html & media type

sandro: I haven't really been paying attention to JF2 since it didn't seem to matter in the way I saw the universe until recently
... is there code that converts JF2 to HTML?

ben_thatmustbeme: there certainly can be? I've written some
... it basically takes HTML microformats and puts it into JSON
... you could go back to HTML
... it's completely vocabulary-independent
... the idea of doing the profile is now you have things because you say "this field's `url` has to be a URL
... now it becomes much more useful
... a lot of what aaronpk and ??? have been doing is using additional requirements that haven't been codified everywhere
... perhaps another profile that says "this is how you represent an object"

<sandro> application/json+jf2feed

sandro: so something could have a media type something like that? if you were passing around?

ben_thatmustbeme: yeah and I actually define that as the media type

sandro: IndieWeb community is fine with microformats but there are lots of people who'd rather pass around JSON
... this seems like a good bridge between worlds
... if someone was gonna modify Mastodon to export something that interop'd with IWC stuff
... the proper way would be to change the HTML

ben_thatmustbeme: Mastodon already has all the markup
... I can see someone using a separate service that did all that conversion for me
... just make rel=alternate for this page <some-url>?convert=<this page>
... then you only have to maintain one codebase cause all it does is run through the standard parsing and convert

<tantek> http://dissolve.github.io/jf2/#changes-from-28-july-2016-fpwd-to-this-version

tantek: ben_thatmustbeme you put in a request to publish a new JF2 WD?
... my next question is the change log

<Zakim> sandro, you wanted to suggest adding media type registration appendix

tantek: Security Considerations is good

sandro: do you want to go ahead and add the media type registration information into this section? that seems reasonable
... application/json+jf2feed
... there's an example of how to use it, but there isn't the thing to register it with IANA

tantek: if you look at ActivityStreams I believe that has a registration for a similar media type

<sandro> https://www.w3.org/TR/activitystreams-core/#media-type

tantek: application/json+as2?
... probably a good place to copy stuff from

sandro: actually +json goes on the end
... activity+json

ben_thatmustbeme: I thought the order didn't matter?

sandro: I think the order matters very much

tantek: I think it's just an opaque string and any introspection of that string is just convention?
... probably an RFC about it

sandro: I think there's an RFC about +xml

<ben_thatmustbeme> sandro++

<Loqi> sandro has 43 karma in this channel (50 overall)

sandro: if it ends in +xml you can parse it as XML
... probably one for JSON too

tantek: good catch, don't want multiple, possibly malformed MIME types
... would you be okay publishing that working draft? with an Appendix and such?
... sandro does this sound good to you to publish a new WD with the changes you requested?

<tantek> PROPOSED: Publish new jf2 WD including changes requested to fix content-type and add an appendix for the IANA registration of the application/jf2+json content-type

<ben_thatmustbeme> +1

+1

<sandro> +1

RESOLUTION: Publish new jf2 WD including changes requested to fix content-type and add an appendix for the IANA registration of the application/jf2+json content-type

<wilkie> +1

tantek: CG chairs aren't here so let's go to interop

interop

sandro: today I was thinking interop between Mastodon and IWC sites
... what needs to happen to make that work?
... obviously there's a bunch of stuff around Webfinger that ben_thatmustbeme and I have been talking about

<sandro> - webfinger

sandro: without necessarily going into that what are the major ones

<Zakim> ben_thatmustbeme, you wanted to talk about various parts

sandro: salmentions, I get lost as to what they're used for

<ben_thatmustbeme> not sure why my mic isn't working

<ben_thatmustbeme> brb

sandro: because someone asked you a question, that's why your mic isn't working?

<tantek> aside: PTD issue filed for RTD https://github.com/tantek/post-type-discovery/issues/24

<Loqi> [tantek] #24 add a subset algorithm for Response Type Discovery

ben_thatmustbeme: starting with IndieWeb being able to read from Mastodon
... for context
... if an IndieWeb site replies to someone on Mastodon they can read any post for the context of where they were
... the piece that's missing there is if an IndieWeb site replies to Mastodon, they're gonna send a Webmention to Mastodon and not find an endpoint
... Mastodon just needs a working Webmention endpoint that would take in comments on their posts from outside

<tantek> and that's where Mastodon will need Response Type Discovery to turn the Webmention into a reply, like, repost

ben_thatmustbeme: the other biggest limitation is being able to reply to something that's not on Mastodon
... you have no way to reply to "a URL"

sandro: can a Mastodon user even see anything outside?

ben_thatmustbeme: it seems they can if you add certain bits to your website?
... seems that Mastodon only gets posts via WebSub and ???
... I haven't tried subscribing to a non-Mastodon instance and then replying to it to see if you even can reply
... the GitHub issues seemed to indicate you _could_ if it had a Salmon endpoint? and if that's there it should show up as they're able to reply to it?
... right now you can just "mention" someone which is obviously missing
... and sending Webmentions when they do that I guess would instead be over Salmon

sandro: it sounds like if we're gonna change this on the Mastodon side one would have to add basically h-feed parsing
... and Webmention
... into Mastodon

ben_thatmustbeme: I think Mastodon is Ruby right?
... so I did rewrite the entire Ruby mf2 parser
... it's much more stable, should do everything they need
... it's even already included as a dev dep, because it's used for the testing

<tantek> Mastodon already has the mf2 parser in core for testing?

sandro: so we have no idea at this point whether they're amenable to adding these things
... we could add them to an instance
... upgrading decentralized systems is so hard... you gotta get everyone on board

ben_thatmustbeme: getting everyone in the same room is tricky too

tantek: seems like a proof of concept would be nice to show usefulness

sandro: yeah having it on some instances and then sending patches seems useful
... sometimes devs want to be involved early on and sometimes they want to wait

tantek: ben_thatmustbeme have you filed issues on Mastodon based on this analysis?
... since you've already done a bunch of work getting the mf2 there

ben_thatmustbeme: I started on Micropub support
... seems like it's an easier piece to tackle and avoids a lot of this stuff since it's just client to server
... other than that no

<Zakim> tantek, you wanted to note or adding Webmention discovery as an option / fall back if Salmon is missing

sandro: it'll only participate in sites that offer Salmon, but one would argue there's a case for Salmon and Webmention

<tantek> because Sandro already said it

sandro: they don't want people to comment on dead sites
... this brings me back to "what is Salmention for"?

ben_thatmustbeme: Webmention simply says when you create a post you gotta notify who you reference
... if I reply to you my code notifies your endpoint
... if someone responds to me they're gonna notify me but it never gets back to you
... if you want to know the full thread you don't have that info

sandro: it would if A is the first post, B is a reply to that, and C is a reply to that
... C doesn't get back to A
... C notifies B via Webmention

<tantek> https://indieweb.org/salmention

ben_thatmustbeme: you've just defined salmention
... when you get an update, send a Webmention again

sandro: ???

tantek: I think that's the part that's different

<sandro> https://www.w3.org/TR/webmention/#sending-webmentions-for-updated-posts

<ben_thatmustbeme> https://www.w3.org/TR/webmention/#updating-existing-webmentions

tantek: there's a Webmention CRUD protocol which is for updates to your post (stuff that you wrote)
... salmention expands that and specifies how and when to send mentions for stuff you receive to your post

sandro: through a strange lens
... when you update a page, you send all the mentions on the page
... I would say salmention is "when there is a reply, you should link to it from your page too, everything else follows"

tantek: when the post initially sends out Webmentions, it has no responses yet
... it's a noop

sandro: when B is created, it sends a reply to A
... when C is created, it's gonna send a mention to B
... when B gets that Webmention from C it's gonna update the page to include "C is a reply to me"
... because it's changed its content it's going to send a mention to A (and C)
... because it's been modified

ben_thatmustbeme: I always interpreted it as "webmention says you _may_ send a webmention again if you send updates"
... you should if you update your own content
... you may if you receive from others
... salmention basically says "you must if you receive from others"

<tantek> https://www.w3.org/TR/webmention/#sending-webmentions-for-updated-posts

sandro: how do you detect that salmentions are being implmented by peers?

ben_thatmustbeme: you'll be receiving webmentions for post updates

sandro: which as I read the webmention spec you already should do
... if you're changing a SHOULD to a MUST that's undetectable

<tantek> https://www.w3.org/TR/webmention/#updating-existing-webmentions

tantek: so here's the link in webmention where it mentions salmentions(?)
... I think the difference here sandro is, is a webmention sent in response to receiving a webmention
... which is why it's different for implementations
... specifically that knowledge of "oh I've got other stuff that's depending on me"

sandro: I don't get it, it seems like you'd have to do that anyway if you're being a good webmention citizen
... maybe I understand webmention differently somehow

tantek: reading webmention it does allow impl's to send update only when the content changes
... that's intentional
... you're expanding requirements
... sending webmentions at all is something implementations aren't required to do
... they could send mentions for some links but not all and still be conformant
... sending mentions for stuff you link to but not stuff in comments seems okay
... e.g. "I don't want to send random links people put in my comments"
... salmention _does_ require that

ben_thatmustbeme: it does seem that a lot of that stuff made it in the webmention spec

tantek: there's sending a salmention, which is sending a webmention in response to sending a webmention
... then there's receiving a webmention for something you yourself sent a webmention too

ben_thatmustbeme: there's the additional piece where receiving a webmention might not just be an update to the content
... if you have links in a comment thread, you may not send webmentions

sandro: so this only comes up in a situation where there's A B C and D?

tantek: no it comes up in A B and C
... salmentions solve the SWAT0 problem
... A posts a photo of B
... tags B in the photo
... C comments on the photo

<ben_thatmustbeme> ajordan++ for taking a hard day of scribing

<Loqi> ajordan has 4 karma

<ajordan_> tantek: if B comments on A, B sends a webmention to A

<ajordan_> scribenick: ajordan_

<ajordan> ... as a result B gets a salmention that there's a comment on the photo

<ajordan> ... that's the usecase that inspired the protocol

<ajordan> sandro: so A would get notified that B had changed

<ajordan> ... if B included that content from C

<ben_thatmustbeme> If a response to the source URL is shown on the source URL page (e.g. as a comment), then sender should treat that as an update of the source URL and re-send any previously sent Webmentions.

<ajordan> tantek: B doesn't have any content

<ajordan> ... just happens to be in A's post

<ajordan> sandro: B is a user who's in A's post?

<ajordan> tantek: correct

<ajordan> ... C comments on A's post

<ajordan> ... /replied to

<ajordan> sandro: in response to that A changed their content to show a link to that comment?

<ajordan> ... the webmention requirement at that point is that A send a webmention again and that includes B

tantek: assumption is impl's will do the minimum to get it to work. salmention expands requirements

<tantek> https://indieweb.org/Salmentions

tantek: sandro from your description/reading of webmention and trying to see things from your perspective
... I see how a lot of what salmention is trying to solve is at least present in the spec
... if not completely explicit
... webmention is already a REC
... one q I'd like to ask is: would adding more details to the sections you've cited just to make it clear that that's the expectation
... is that the kind of thing we could do an errata for? would we need webmention 1.1?
... I'm asking you sandro since you're the one that pointed out you see this in the existing spec

sandro: whether there's an eratta or 1.1 has to do with how other people see it
... if other people see it as being there we could do eratta

tantek: I vaguely recollect there being something in the test suite about this?

<tantek> https://webmention.net/implementation-reports/summary/

tantek: so if you scroll down to receiver tests
... and sender tests
... there are tests for salmention extensions

<ben_thatmustbeme> that was just a check box as i remember

tantek: so it'll test salmention stuff though as sandro pointed out there seems to be overlap
... there are a couple impl's from outside the WG

sandro: maybe people implemented it and didn't even know they were implementing it then

tantek: we definitely don't have time to revise the spec by the end of this month
... but we'll find out in 1-2 weeks if we get the charter extension
... one thing I've been advocating for is that any WG that gets extended do maintenance on their specs
... if there are missing pieces we can cross that bridge when we get there
... file issues accordingly against webmention
... if we do need to add a few words here or there to clarify terminology we can make a judgement call as to whether it's errata or 1.0.1 or 1.1
... sandro can double-check this but I believe that would be within the charter's scope?
... so if we got extended we'd be allowed to do that. though if we did 1.1 we'd be required to go through the full WD->CR cycle

sandro: I believe that'd be within scope but let's deal with that later

<ben_thatmustbeme> sandro++ good discussion

<tantek> sandro++

<Loqi> sandro has 44 karma in this channel (51 overall)

sandro++

<Loqi> sandro has 45 karma in this channel (52 overall)

<tantek> ajordan++ for scribing an extra long telcon!

<Loqi> ajordan has 5 karma

<ben_thatmustbeme> ajordan++

lol

<sandro> https://www.w3.org/wiki/SocialCG/2017-06-07

<tantek> trackbot, end meeting

Summary of Action Items

Summary of Resolutions

  1. accept https://www.w3.org/wiki/Socialwg/2017-05-30-minutes of minutes from last week
  2. Publish new jf2 WD including changes requested to fix content-type and add an appendix for the IANA registration of the application/jf2+json content-type
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.152 (CVS log)
$Date: 2017/06/06 18:28:05 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.152  of Date: 2017/02/06 11:04:15  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: Irssi_ISO8601_Log_Text_Format (score 1.00)

Succeeded: s/???/Manton Reece & Brent Simmons, who have implemented/
Succeeded: s/JF2/JSON Feed/
Succeeded: s/field'/field's `url` has to be a URL/
Succeeded: s/application/... application/
Succeeded: s/impl'/impl's to send update only when the content changes/
Default Present: ajordan, sandro, ben_thatmustbeme, tantek, rhiaro
Present: ajordan sandro ben_thatmustbeme tantek rhiaro
Found ScribeNick: ben_thatmustbeme
Found Scribe: Ben Roberts
Found ScribeNick: ajordan
Found Scribe: AJ Jordan
Found ScribeNick: ajordan_
WARNING: No scribe lines found matching ScribeNick pattern: <ajordan_> ...
Found ScribeNick: ajordan
Found ScribeNick: ajordan_
Scribes: Ben Roberts, AJ Jordan
ScribeNicks: ben_thatmustbeme, ajordan, ajordan_
Found Date: 06 Jun 2017
Guessing minutes URL: http://www.w3.org/2017/06/06-social-minutes.html
People with action items: 

[End of scribe.perl diagnostic output]