hypothesis / vision

Envisioning the future of the Hypothesis.
https://github.com/hypothesis/vision/issues/
40 stars 8 forks source link

Notify page authors of annotations #120

Closed BigBlueHat closed 6 years ago

BigBlueHat commented 10 years ago

OGP.me, FoaF, Schema.org, and Dublin Core (etc, etc) all have ways to do this...

Simplest would probably be a rel="author" on a <link /> or <a /> that points an email address or author's URL that can receive notifications / messages. :smile_cat:

Barring some sort of consistent discovery method, folks would have to know to care / check (like they do on Facebook, Twitter, etc)...but then we're back to another centralized thing to check inside of...and more profiles...and more accounts... :weary:

:computer: :hammer:

dwhly commented 10 years ago

Simplest would probably be a rel="author" on a or that points an email address or author's URL that can receive notifications / messages.

We used reply-to for webplatform, right?

tilgovi commented 10 years ago

We used reply-to for webplatform, right?

Yes. That was an invention of Doug's, IIRC, and not a registered link relation.

tilgovi commented 10 years ago

There's this: https://github.com/tilgovi/h/compare/webmention?expand=1

tilgovi commented 10 years ago

Probably part of this story needs to be a way for people to subscribe to notifications for certain authors, in whatever representation. That would be a way for me to say, "Hey, Hypothes.is, my username is 'tilgovi' and I'm interested in subscribing to annotations where rel=me is https://twitter.com/tilgovi or where there's an ORCID of XXX-XXXX or where the rel=author is 'Randall Leeds'", etc.

Notification systems like relify/webmention/pingback are great when people are self-publishing or having their work hosted by a publisher that knows their email and can implement those notifications. For those with content syndicated to places where they lack an account, there's no way to notify them. An email address in a link tag would work, but then exposes the author's email address. If the author could just sign up for Hypothes.is and tell us which names they use, we could notify them directly ourselves.

JakeHartnell commented 10 years ago

A thought: To flip this problem on it's head, do we have to notify them? Can't they just watch us? To elaborate, if we build a feature that allows them to easily subscribe to annotations on a certain domain in their stream, or to be notified whenever a page or domain is annotated publicly, this could solve the problem giving authors a way to find out if there content has been annotated, and would be useful to others.

Potential User Story: As a user I would like to be able to watch a page or domain for annotations and receive notifications or have them appear in my stream.

BigBlueHat commented 10 years ago

:+1: to @RawKStar77's suggestion.

It's annoying (as an author) to have to try and hunt down all the places where I might be being talked about (Twitter, Facebook, Hypothes.is), but that's the Web we live in, kids. :cry:

Should we open a separate issue for "following / subscribing to URL's and domains"? or do we already have one?

dwhly commented 10 years ago

This feature request already exists. Hunting....

On November 13, 2014 10:21:28 AM PST, BigBlueHat notifications@github.com wrote:

:+1: to @RawKStar77's suggestion.

It's annoying (as an author) to have to try and hunt down all the places where I might be being talked about (Twitter, Facebook, Hypothes.is), but that's the Web we live in, kids. :cry:

Should we open a separate issue for "following / subscribing to URL's and domains"? or do we already have one?


Reply to this email directly or view it on GitHub: https://github.com/hypothesis/vision/issues/120#issuecomment-62940109

tilgovi commented 10 years ago

@RawKStar77 that's exactly what I'm saying:

Probably part of this story needs to be a way for people to subscribe to notifications for certain authors

I'm proposing exactly what you've said, but with some implicit subscriptions that come from linking your account with other social media sites. Add your G+ account to Hypothes.is and we'll automatically notify you of annotations on pages attributed to that identity.

BigBlueHat commented 10 years ago

k. Since this things now got two heads, I'd vote for closing this one, and creating two more in its place:

  1. subscribe to URL's / domains (an issue may already exist for this)
  2. use linked social network notification systems to auto-subscribe via 1.

Sound right?

tilgovi commented 10 years ago

I like that route.

BigBlueHat commented 10 years ago

@tilgovi does Web Platform use reply-to or in-reply-to? If it's the later, then there's an RFC attached: http://tools.ietf.org/html/rfc4685#section-3 (Atom Threading--intended for comments btw :wink:)

JakeHartnell commented 10 years ago

I'd vote for closing this one, and creating two more in its place: 1. subscribe to URL's / domains (an issue may already exist for this) 2. use linked social network notification systems to auto-subscribe via 1.

:+1:

tilgovi commented 10 years ago

@BigBlueHat it uses "reply-to". The semantics are different. "in-reply-to" says that the subject is in reply to the object. "reply-to" says that the object is the requested destination for posting replies.

BigBlueHat commented 10 years ago

@tilgovi good call. /me blames head cold...

BigBlueHat commented 9 years ago

Did some digging on this idea. Here's some options--the best one is last. ;)

FOAF OnlineAccount

This could work, but would require the author to generate some fairly complex metadata likely in the form of RDFa somewhere within the page. At the very least, it requires the splitting of the account URI into two values:

Pro:

Con:

Open Graph Protocol

Slightly simpler. Could be reduced to a single <meta />, but it does imply that the page it's on is an article (or book)...which it may not be. Additionally, it's unclear what the value should be. Facebook (unsurprisingly) wants URLs to Facebook Profiles. Other sites expect an author's full name... (some interesting chatter on the Jetpack WordPress plugin discussion thread--which in theory could be used for publishing this metadata...if we went this route).

At best, we could attempt something like...

<meta property="article:author" content="acct:bigbluehat@hypothes.is" />

which uses RFC 7565 acct: URI's (typically used with WebFinger).

Pros:

Cons:

HTML5 author Link Relation

Check it! It's been there this whole time!! HTML 1.1 actually used the rev attribute (which has been deprecated) of made to do this exact thing. :smile:

So...it would look like this:

<link href="acct:bigbluehat@hypothes.is" rel="author" />

It's clear ('cause these are ancient semantics) that the URI is for the author of the current resource (who's type is declared elsewhere--not in this metadata).

In the example above, I've used the acct: URI pattern again--'cause we use that internally, atm.

Pros:

Cons:

Conclusion

I'm :+1: for the SimplestPossibleThingThatCouldPossiblyWork--which seems (to me) to be rel="author".

Steps to use it would look like:

In future, we could consider parsing out mailto and acct and possibly handling profile docs (eventually) if someone uses an HTTP URL (of one shape or another).

But for now, we keep it simply, yeah?

tilgovi commented 9 years ago

Nice digging, @BigBlueHat.

I happen to like the acct scheme. I know it was a bit controversial. I remember having a conversion with Blaine Cook about how much he disliked it. In any case, it's an RFC now and it makes our accounts seem very at home in an href attribute.

The biggest issue I see is that authors that may have little control over their markup.

Where we can give users a lot of control is with their user profiles. I imagine once we have profiles for users one could either link to their FB (without loss of generality) profile, possibly done implicitly through a delegated sign-in, and then we would recognize the metadata when we see an author attribution that points to a user we know, even if it doesn't point to an Hypothesis account directly.

As for simplest thing that could possibly work, using rel=author for publishers that can control the markup and pointing directly to Hypothesis accounts seems totally tenable.

BigBlueHat commented 9 years ago

So...it's a sad truth that too few WYSIWYG editors (and their ilk) don't provide rel="author" editing. That said, the rel="author" attribute can exist on a as well as link, so putting into the content of the page (vs. "just" in the <head>) is an option also.

We could certainly sniff out and leverage other values of rel="author" besides the acct:(.*)@hypothes.is" pattern. We could certainly leverage Facebook URLs (+ a stored association on our end), but even sooner than that, we could leverage amailto:` to then look up a hypothes.is account. However, since you can have N number of hypothes.is accounts for per email address, picking the right one might be tricky...but since the notification comes over email, perhaps it's not a problem.

So...in preferred ordering, we could look up the author's account using:

  1. the acct prefixed value (if present)
  2. or http prefixed value (assuming "social" URL such as Facebook, etc)
  3. or mailto prefixed value looking for any verified account using that email address

Then we notify the author based on them having (based on that look-up strategy) a verified hypothes.is account.

Sound safe?

This way authors wouldn't need to displace any extent rel="author" values that === a URI or URL. Or so it seems. :wink:

tilgovi commented 9 years ago

This is all a bit tricky and needs to be thought through carefully with consideration paid to spam vectors, markup in the wild today, our identity strategy, etc, etc.

Maybe we can punt on this and start with an explicit watch toggle in the UI. That enables notification for authors and non-authors, both requested features. It wouldn't be automatic, but it would step around all these issues for the time being.

dwhly commented 9 years ago

Maybe we can punt on this and start with an explicit watch toggle in the UI. That enables notification for authors and non-authors, both requested features.

Heartily endorse this as an initial step. It's something that we need regardless.

I think the markup idea is great too, particularly as a feature of an H. wordpress plugin that could automatically add it, and make notifications automatic for pages. For instance, with our own site, it would be great if I author an article, I'm automatically notified of annotations. But perhaps as a follow-on feature?

tilgovi commented 9 years ago

But perhaps as a follow-on feature?

Precisely what I'm suggesting.

jeremydean commented 9 years ago

You had me at "explicit Watch toggle in the UI"

On Tuesday, June 16, 2015, Randall Leeds notifications@github.com wrote:

But perhaps as a follow-on feature?

Precisely what I'm suggesting.

— Reply to this email directly or view it on GitHub https://github.com/hypothesis/vision/issues/120#issuecomment-112619485.

Dr. Jeremy Dean Director of Education

dwhly commented 9 years ago

You had me at "explicit Watch toggle in the UI"

You had me... meaning "what the heck are you talking about?" :)

A watch toggle would mean that anyone could signal they wanted to watch any page, whether there were annotations on it or not. Then we can begin to layer additional notifications on.

jeremydean commented 9 years ago

Yes. I know. I love the idea of that feature is what I meant. It's a reference jerry McGuire.

On Tuesday, June 16, 2015, Dan Whaley notifications@github.com wrote:

You had me at "explicit Watch toggle in the UI"

You had me... meaning "what the heck are you talking about?" :)

A watch toggle would mean that anyone could signal they wanted to watch any page, whether there were annotations on it or not. Then we can begin to layer additional notifications on.

— Reply to this email directly or view it on GitHub https://github.com/hypothesis/vision/issues/120#issuecomment-112629753.

Dr. Jeremy Dean Director of Education

dwhly commented 9 years ago

My cultural references ended somewhere around All In the Family.

hubgit commented 9 years ago

Allowing a user with a hypothes.is account to manually opt-in to receiving notifications when a particular URL is annotated seems like a good idea.

At another level, might it be possible for a service to register an endpoint as a listener for any annotations of documents in a particular domain (e.g. "when a URL with domain peerj.com is annotated, send that annotation to webhook endpoint https://peerj.com/hooks/annotations"). Then the service, which knows who the authors of that document are, could handle notifying them by email.

Indeed, as @tilgovi mentions at the start of this thread, that endpoint could even be specified in the document using a link relation. However, that wouldn't allow services that don't own the document to subscribe for notifications - which might be useful for other reasons?

tilgovi commented 9 years ago

WebHooks are a great idea, as well, and would be great for integrations. User subscription is great for individual users.

Both can be made better through discovery.

Let's try to keep all these steps separate as we create concrete issues for implementation.

BigBlueHat commented 9 years ago

Some stories:

These are four stories that all seem to have some appearance in this thread. I'm trying to winnow them into actionable separate tasks that can be tackled...separately. None of these options cover all the desires authors (or annotators) have around being notified; nor should they.

I'd love another set of eyes on those four stories, and addition of any stories that clearly explain another variation (I expect there probably are more). The follow-up action will be to create (or find) separate issues for each of these and tackle them one at a time. :elephant: :fork_and_knife:

jeremydean commented 9 years ago

Does this user story add anything to the mix? (Or bring up a completely different issue: following users/sets of users rather than URLs?):

Aside from that added use for following/notifications, I would just say that your first bullet point is the most critical and should be a priority--seems a lot of the latter bullets could be accomplished if we had a page follow feature--just asking a little more of users. Though I love the ideas for the other issues! ᐧ

On Wed, Jul 1, 2015 at 10:26 AM, BigBlueHat notifications@github.com wrote:

Some stories:

-

As a Hypothes.is account holder, I want to watch / follow pages I visit and be notified of annotations made on them, so that I can (re)join the conversation if someone annotates there.

  • this is any URL
    • no "authorship" implied
    • all users have the same opportunity
  • As a web site owner, I want Hypothes.is to tell me when my pages are annotated, so that I don't have to follow ever URL I post or get notified on everything at a certain URL or under a certain URL space.

  • example: author installs the Hypothes.is WordPress extension which adds some metadata to the site for embed.js to extract
  • As an author of content in a system I don't control (read: most of the Web), I want to watch for annotations on a domain, URL "space" (i.e. twiter.com/bigbluehat/*), or specific URLs, so that I can engage my readers without requiring permission / technology changes from my publisher.

  • most users don't own / host their code
  • As an author of content using a CMS that supports a notification system (pingback, trackback, webmention), I want that system to be used (as it is already) when someone posts content related to my original post, so that I can know about the conversation and join it at my discretion.

These are four stories that all seem to have some appearance in this thread. I'm trying to winnow them into actionable separate tasks that can be tackled...separately. None of these options cover all the desires authors (or annotators) have around being notified; nor should they.

I'd love another set of eyes on those four stories, and addition of any stories that clearly explain another variation (I expect there probably are more). The follow-up action will be to create (or find) separate issues for each of these and tackle them one at a time. [image: :elephant:] [image: :fork_and_knife:]

— Reply to this email directly or view it on GitHub https://github.com/hypothesis/vision/issues/120#issuecomment-117693473.

Dr. Jeremy Dean Director of Education

tilgovi commented 9 years ago

I think I'm seeing this breakdown:

tilgovi commented 9 years ago

Single page watches should be relatively easy with a decent notification system in place. @judell and @BigBlueHat we should work to get a first task of reviewing our current notification system and banging it into some greater generality, cleanliness and testability. Then, users could watch pages. We'll deal with search later, because we should write a percolation (prospective search) worker and use it for pushing real-time updates, too. Same issue (persistent search), different notification mechanisms (WebSocket and Email), though not mutually exclusive when background notifications are surfaced in the UI as well as email.

Prerequisite:

First feature:

In Parallel, and with the work @nickstenning has been proposing around fixing our URI analysis:

Next generation:

BigBlueHat commented 9 years ago

:+1: for that plan.

judell commented 9 years ago

Good, thanks. I've added this context and the first few steps to our tracking card in Up Next.

pyrho commented 7 years ago

I've checked the trello page but I can't find any mentions regarding progress on this, are there any updates ?

I realise RSS has been implemented, but I'm talking specifically about this (mentioned above):

  • As a web site owner, I want Hypothes.is to tell me when my pages are annotated, so that I don't have to follow ever URL I post or get notified on everything at a certain URL or under a certain URL space. example: author installs the Hypothes.is WordPress extension which adds some metadata to the site for embed.js to extract

I love the web annotation approach to web site comments, but I'd also love to be notified of new comments on my website without having to subscribe to N rss feeds (N being the number of posts).

Thanks you !

klemay commented 6 years ago

Closing in favor of https://github.com/hypothesis/product-backlog/issues/196