Semantic, or useful?

Inspired by the semantic elegance of Slide 12 in Tantek’s The Elements Of Meaningful XHTML presentation, I threw together a Firefox extension to do the work for me: select some text, right-click and select BlogQuote, and it wraps the text in a <blockquote> with a cite attribute and puts the page title (a first crack at getting a name-thing, maybe later I’ll try to parse things like meta elements and the dc:creator in TrackBack RDF) in a cite element, and copies the whole thing to the clipboard, so you’re ready to paste

<p><cite>Eric Meyer</cite> wrote:</p>
<blockquote cite="http://meyerweb.com/eric/thoughts/2005/03/11/social-protocols/">
<p>What's so interesting to me is that the guys who decided
 to focus on the positive went out and did something;
 those who want to mix in the negative seem to have
 nothing to offer except complaints.</p></blockquote>

into a post. (Well, okay, you’ll be pasting <cite>Eric’s Archived Thoughts: Social Protocols</cite> wrote:, but it’s a first cut.) But here’s the problem: it’s useless blogging. It gives you (with a little cite editing):

Eric Meyer wrote:

What’s so interesting to me is that the guys who decided to focus on the positive went out and did something; those who want to mix in the negative seem to have nothing to offer except complaints.

which causes me to complain “where’s my bloody link?” Browsers don’t do anything with the cite attribute, and the cite element doesn’t have any attribute to provide a URI for the citation, and if it did browsers probably wouldn’t do anything with it, and I need a link, damn it!

The cite element can contain a link, which makes semantic sense to me, but is likely to foul up its use as million dollar markup, or a link can contain a cite element, but either way around I don’t want to imply by my link that Eric Meyer == http://meyerweb.com/eric/thoughts/2005/03/11/social-protocols/.

Is what I actually want

<p>In <a href="http://meyerweb.com/eric/thoughts/2005/03/11/social-protocols/"><cite>Social Protocols</cite></a>, <a href="http://meyerweb.com/"><cite>Eric Meyer</cite></a> wrote:</p>

(since, after all, one may cite a publication like the New York Times or an article like Mac Browser Roundup, or a weblog article like Social Protocols), or am I in danger of disappearing up my own semantic navel?

22 Comments

Comment by Rijk #
2005-03-14 00:48:06

Or you add the traditional link as the last line in the blockquote. But to keep it more or less semantic, use the name of the source as link text, not simply ’link’ like Boingboing annoyingly does.

In either case, it is a workaround for browsers that don’t autogenerate such links. And browsers have no incentive to autogenerate such links, because that would usually duplicate a real link already put in, or in the vicinity of, the blockquote. Conclusion: adding the cite attribute would be wasteful duplication. A single cite element inside blockquote is good enough for million dollar markup.


<p><cite>Eric Meyer</cite> wrote:</p>
<blockquote>
<p>What's so interesting to me ...</p>
<p>(Link: <a href="http://meyerweb.com/eric/thoughts/2005/03/11/social-protocols/"><cite>Social protocols</cite></a>)</p>
</blockquote>

Comment by Phil Ringnalda #
2005-03-14 09:49:48

You may be right, the semantics of blockquote may be so polluted that we are free to put anything inside one that we want, but it just doesn’t feel right to me.

How would you tell your quote plus cite from a quote of someone else’s cite? In context, for a reader who knows that (Link: … ) means ”this is my addition to the quote,” yes, but for someone or some program looking at a single post for the first time?

 
 
Comment by Lachlan Hunt #
2005-03-14 00:58:08

You can just link directly to slide 12, rather than providing detailed instructions to find it ourselves.

I also agree that browsers really do need to make use of the cite attribute somehow. The question is what could be done with it?

  • Add an option in the context menu for a blockquote called ”View Citation Source” (or something more descriptive).
  • Make the blockquote clickable, like an ordinary link.
  • Output the title attribute at the bottom right of the quote, and make it a link to the citation source.
  • Or something else…

Perhaps someone could make a Firefox extension to do this in one way or another and if it proves useful, perhaps it would be included by default and copied by other browsers.

Comment by Phil Ringnalda #
2005-03-14 08:51:16

Bloody hell. I did try the obvious thing, linking to the anchor, but I wasn’t smart enough to try it externally. I just added #slide12 to the URL while I was on another slide.

A non-visible thing like a context menu option doesn’t seem like it would see much use: blockquotes with cites are probably very rare, and I’m not likely to right-click every one I come across, just to see if there’s an option there.

Greasemonkeying in a link would be easy enough, but to not be weird it would need to look half a dozen nodes on either side of the blockquote, and only insert a link if there wasn’t already one there, and how tiny a number of target pages is that, that have a blockquote cite with a URL but don’t also link to the URL near the quote?

 
 
Comment by Roberto #
2005-03-14 01:19:14

I use a little Javascript on my weblog (http://dealmeida.net/js/46_blockquotes.js) that extracts the URI from the cite attribute and append it in a link below the blockquote.

You can also use URIs like urn:quote:author_name, ie:

<blockquote cite="urn:quote:Richard Feynman">
I was born not knowing and have had only a little time to change that here and there.
</blockquote>

And the script will make a link to more quotations by Feynman.

Comment by Mark #
2005-03-14 05:56:18

That is not a valid URN. ”quote” is not a registered URN Namespace Identifier, and ”Richard Feynman” is not a valid Namespace Specific String. Please read RFC 2141.

Comment by Roberto #
2005-03-14 09:43:41

That’s why someday I’m going to write an article called “Why XHTML is too hard for oceanographers”… :)

I could easily fix “Richard Feynman” to “Richard%20Feynman”, but what could I do about the “quote” NID? I just want to put a valid URN when citing somebody without an URL.

 
 
 
Comment by Phil Wilson #
2005-03-14 01:48:56

I’ve seen a lot of people use variations on Simon Willison’s blockquotes script (I even use it myself), but I’ve never seen the urn:quote thing. That’s quite cute.

 
Comment by Anne #
2005-03-14 06:39:07
  • Use Firefox;
  • Rightclick on the quote;
  • Click on ”properties”;
  • Be happy.
Comment by Phil Ringnalda #
2005-03-14 09:38:13

Note to self: never let Anne do UI ;)

  1. Right-click the quote
  2. Select ”properties”
  3. Triple-click the URL to select it
  4. Decide between Ctrl-C or right-click, Copy
  5. Decide between Esc and clicking the X to close the properies dialog
  6. Ctrl-T
  7. Paste and press enter

And that’s in a weblog post?

 
 
Comment by Dean Edwards #
2005-03-14 07:46:42

The Mozilla Markup Reference suggests using <address> with <blockquote> to link back to the source document:

http://www.mozilla.org/contribute/writing/markup#quotations

Comment by Anonymous #
2005-03-15 02:44:05

Well the Mozilla Markup Reference is wrong. The <address> element type is contact information for the author of the HTML document. It’s got nothing to do with quotes.

http://www.w3.org/TR/REC-html40/struct/global.html#edef-ADDRESS

Comment by Phil Ringnalda #
2005-03-15 08:57:01

supply contact information for a document or a major part of a document such as a form

In a typical blog quote post, the quote is as much of the document as the post author’s share, or more, and the only contact information the post author has the right to publish without asking is the URL where a reader can go looking for email addresses and the like.

 
 
 
Comment by David Parrott #
2005-03-14 08:01:00

Not perfect, but would something like:

blockquote:after
{
content: ”From: ” attr(cite);
}

in the CSS help?

Comment by Firas #
2005-03-14 09:27:57

This is probably not possible, but: can that sort of thing be linked?

Comment by Arve #
2005-03-14 11:01:30

Theoretically, certain versions of Opera should be able to, through their CSS Linking Extensions.

In practice, you’re left with using ECMAScript and the DOM.

Comment by Anne #
2005-03-14 14:07:06

It is very unfortunate that they never supported it for any namespace. It would be awesome if they updated Opera to reflect that.

 
 
 
 
Comment by Phil Wilson #
2005-03-14 09:27:08

Not really, because you want it to be a link. You could then *maybe* use that in conjunction with one of the bundled a GreaseMonkey scripts (or an extension) that turns plain text URLs into links.

Or you could just wait for someone to write the GreaseMonkey script to do it all for you.

 
Comment by Phil Ringnalda #
2005-03-14 09:33:01

Sorry, I framed the question poorly, and sent you off on interesting tangents, but tangents none the less.

This is BlogQuote, an attempt to automate making the standard ”link, quote, comment” blog post as semantic as possible. Things that would work well with blockquotes in an article or academic paper, or would work well when only a small number of readers are likely to be interested in a link to the source, aren’t options, and I don’t think that anything which puts the link at the end of the quote is an option.

When you quote someone in an article or paper or book, you want to say ”’The foo is frobisher.’ John Smith said that.” When you quote someone in a blog post, you want to say ”In a post at this URL, John Smith said that ’The foo is frobisher.’”

The link is the core, the heart, the very reason for the post’s existence. A blog consisting of nothing but links is a fine and useful thing. A blog consisting of nothing but unattributed quotes would be useless. So, I don’t think anything which involves JavaScript, no matter how clever, or CSS, no matter how elegant, is on the table.

 
Comment by Phil Ringnalda #
2005-03-15 08:03:56

Borrowing Tantek’s response:

Phil, of course you should hyperlink (at least a portion of) a ”blog quote” to the source as well. The presumption here is that folks already know to do that (are doing it), but may be missing the other semantics that they should be capturing with their markup. I don’t think there is one precise way for a blogger to hyperlink a blog quote (some link a word like ”wrote”, some link the entire quote, some add a link titled ”link” just after the quote, etc.) and therefore that is left as an exercise for the blogger.

Which is fine as far as it goes, but: my problem is that I don’t add the semantics to quotes (beyond <blockquote> because I’m too lazy, and my existing bookmarklet tools don’t do it for me, so I’m building a tool that will, but it also needs to deal with the basics.

Basics which are going to be, at best, poorly dealt with: a little looking around at where I can find person-name-things and publication-name-things doesn’t make me very confident. More people (and WordPresses) all the time seem to be just dropping TrackBack autodiscovery RDF, or it may be found in the DOM (mine) or just as an unparsed wodge of comment (most people’s), but it’s still only likely to net me the author’s login name for Movable Type.

Comment by Roger Benningfield #
2005-03-15 09:16:59

”Basics which are going to be, at best, poorly dealt with: a little looking around at where I can find person-name-things and publication-name-things doesn’t make me very confident.”

Phil: Well, there’s a lotta FOAF out there. I’d certainly look for that before trying to dig something useful out of Trackback’s autodisco.

 
 
Trackback by Virtuelvis #
2005-03-16 09:55:23

User Javascript in Opera 8 beta 3

Opera 8 beta 3 adds User Javascript functionality. Use it to get rid of site annoyances, and extend web site functionality.

 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <del datetime="" cite=""> <dd> <dl> <dt> <em> <i> <ins datetime="" cite=""> <kbd> <li> <ol> <p> <pre> <q cite=""> <samp> <strong> <sub> <sup> <ul> in your comment.