- From: Ben Werdmüller <ben@withknown.com>
- Date: Thu, 4 Dec 2014 17:40:51 +0000
- To: James M Snell <jasnell@gmail.com>
- Cc: Dave Wilkinson <wilkie@xomb.org>, Matthew Marum <vp-projects@opensocial.org>, "public-socialweb@w3.org" <public-socialweb@w3.org>
- Message-ID: <CABa5YQq9zyHm_57GS34W60xAoqxKHnFChQJc5y8ukH0RxQmg9A@mail.gmail.com>
Theoretically I'd implement plain-text, HTML and JSON-LD versions, and these suggestions seem reasonable. (In practice, I'd also add mf2 markup, but of course, this is perfectly compatible with that.) I guess the thing I'm still concerned about is denoting mentions with an @-sign. Is that a convention we're happy to accept across all platforms? Is there a way for other platforms to say "I actually use a + or a ~ instead"? On Thu, Dec 4, 2014 at 4:53 PM, James M Snell <jasnell@gmail.com> wrote: > While I'm sympathetic to the HTML-markup approach being "the most > flexible" option, I definitely question whether it's the right answer > in all cases. For instance, if I'm sending a JSON-formatted push > notification to a native mobile application, why would I force the > application to use an HTML parser to extract the necessary metadata > from a short snippet of text when a regex would do just fine? Second, > it can become extremely verbose. Yes, I'll grant that when the > @mention is actually rendered to the user in HTML it ought to be > converted to a microdata/microformat type structure, but it should be > possible to do in "plain text" also. > > Perhaps, then, we define things so that they can be represented both > ways, with a simple translation between them: > > Mentions: > > In plain-text: > @[http://www.twitter.com/jasnell|jasnell] > > In HTML: > <span itemscope itemtype="http://www.w3.org/ns/activitystreams#Mention"> > <a itemprop="href" href="http://www.twitter.com/jasnell"> > <span itemprop="displayName">jasnell</span> > </a> > </span> > > (or) > > <span vocab="http://www.w3.org/ns/activitystreams#" typeof="Mention"> > <a property="href" href="http://www.twitter.com/jasnell"> > <span property="displayName">jasnell</span> > </a> > </span> > > In JSON-LD: > > { > "@context": "http://www.w3.org/ns/activitystreams", > "@type": "Mention", > "href": "http://www.twitter.com/jasnell", > "displayName": "jasnell" > } > > Hashtags: > > In plain-text: > #[http://www.twitter.com/hashtags/socialwg|socialwg] > > In HTML: > <span itemscope itemtype="http://www.w3.org/ns/activitystreams#Tag"> > <a itemprop="href" href="http://www.twitter.com/hashtags/socialwg"> > <span itemprop="displayName">socialwg</span> > </a> > </span> > > (or) > > <span vocab="http://www.w3.org/ns/activitystreams#" typeof="Tag"> > <a property="href" href="http://www.twitter.com/hashtags/socialwg"> > <span property="displayName">socialwg</span> > </a> > </span> > > In JSON-LD: > > { > "@context": "http://www.w3.org/ns/activitystreams", > "@type": "Tag", > "href": "http://www.twitter.com/hashtags/socialwg", > "displayName": "socialwg" > } > > - James > > On Thu, Dec 4, 2014 at 4:21 AM, Ben Werdmüller <ben@withknown.com> wrote: > > > > We've been considering various options for this in Known. I strongly > > disagree with using Markdown or similar syntax for human-readable > content, > > because that creates a burden to support a wholly different notation in > > applications that are almost certainly web-based at some level. I do > think > > HTML with embedded microformats / microdata is the most flexible option > for > > this scenario. (It also doesn't tie applications into Twitter-style > @-syntax > > - there's no need to let them dictate the convention.) > > > > Dave's approach for structured data also makes sense to me. You include > the > > bare content, and then metadata that allows you to apply your own markup, > > rather than including some other microsyntax in bare text. That again > gives > > application developers the most flexibility, although I would go so far > as > > to change "username" to "@foo" in his example, to also allow different > > notations. It then becomes a simple search and replace, with a strong > > suggestion that usernames are prefixed with some notation to prevent > > accidents with greedy searches. > > > > On Wed, Dec 3, 2014 at 7:36 PM, Dave Wilkinson <wilkie@xomb.org> wrote: > >> > >> How does this work when people put HTML as the content? Does this get > >> parsed before or after entities are parsed? What happens when agents > that > >> see this as html don't parse them out? > >> > >> You'd have to really lock down how to parse the content field and what > >> is/isn't acceptable there and what to do to remove ambiguity when you > >> actually want some of that syntax to be untouched. > >> > >> I'd assume this isn't about routing. We have solutions for that. You > just > >> tag the object with who is mentioned, who it is going to, what it is in > >> reply to, etc. > >> > >> This is just about marking up the content, which can currently be in any > >> form? Right now, you'd just have "@foo" in your content, and the object > >> would have an array of mentions which you would use to map the username > to a > >> domain and you would just mark it up as you need to. The convention is > to > >> look for an @ sign, although we don't (nobody does) specify the valid > >> characters for a handle. > >> > >> The only better way I can think of is not to enforce some new markup > >> language semantics within already arbitrary markup, but rather to just > >> simply place in that mentions array the position and length of the > substring > >> in the content that represents the handle. Then I'd just replace that > >> substring with my markup, whatever that is for my purpose, or if I don't > >> care, I just display the content with whatever the publisher cared to > use > >> ("<a></a>" tag, @foo, +foo, etc) and it would already be presentable. > Sooooo > >> simple. > >> > >> My basic thesis: it's not content, it's metadata. while the html > >> microformat folks can get away with it, it seems very out of place here. > >> > >> (I admit I am not able to write AS2 just from memory) > >> > >> { > >> "content": "Hello @foo", > >> "mentions": [{ > >> "type": "person", > >> "url": "http://example.com/foo > >> "displayName": "Foo Bar" > >> "username": "foo", > >> "mentionedAt": [6, 4] > >> }] > >> } > >> > >> I can then turn that into "Hello <a href='http://example.com/foo'>Foo > >> Bar</a>" or "Hello @<a href='http://example.com/foo'>foo</a>" or > "Hello +<a > >> href='http://example.com/foo'>foo</a>" or whatever. Conversely, if it > is > >> html in the content, the substring would be the entire anchor tag, > maybe. It > >> would be very obvious that it would always indicate the position in the > >> content before any processing is done. > >> > >> On Wed, Dec 3, 2014 at 2:14 PM, Matthew Marum < > vp-projects@opensocial.org> > >> wrote: > >>> > >>> The use of @[id|label]. > >>> > >>> Matt > >>> > >>> On 12/3/14, 12:48 PM, "James M Snell" <jasnell@gmail.com> wrote: > >>> > >>> >On Wed, Dec 3, 2014 at 9:25 AM, Matthew Marum > >>> ><vp-projects@opensocial.org> wrote: > >>> >[snip] > >>> >> > >>> >> "@[Users:seed_paul_id:Paul] can you please help with this > >>> >> opportunity?" > >>> >> > >>> >> > >>> >> The first two parts form a unique identifier within a Sugar instance > >>> >> and > >>> >> the final part is the display label. Frankly, I’m not sure why we > >>> >> wouldn’t use the precedent that Twitter API has established here in > >>> >>terms > >>> >> of syntax. I’ll leave any potential legal concerns to the lawyers. > >>> >> > >>> > > >>> >Which syntax specifically from the Twitter API? > >>> > > >>> >- James > >>> > >>> > >>> > >> > > > > > > > > -- > > Ben Werdmuller > > CEO & co-founder, Known > > withknown.com | werd.io > > +1 (312) 488-9373 > > > > Known, Inc | 421 Bryant St | San Francisco, CA 94107 > -- *Ben Werdmuller* CEO & co-founder, Known withknown.com | werd.io <http://goog_1933028737> +1 (312) 488-9373 Known, Inc | 421 Bryant St | San Francisco, CA 94107
Received on Thursday, 4 December 2014 17:41:24 UTC