Just say no to TrackBack in index.html

Sam also asks if he should have TrackBack RDF in his main page. I say no, for two reasons.

First, it just encourages foolish behavior: if you are pinging a TrackBack entry you are replying to a specific post, and so you should be linking to that post, but if you click your bookmarklet on the main page you automatically get the link to the main page, and then have to go back, copy the permalink for the post, back to the bookmarklet, select the URL in the automatically inserted link, and paste over it. Especially in a case like Sam’s, where reading the comments also means going to an appropriate URL to link to (I just noticed that it isn’t actually the same URL as the permalink), the only reason for pinging from the main page is to say “I want your readers to read me, but I can’t be bothered to send my readers to your specific post, and what’s more I can’t be bothered to even see what other people said about your post.”

As if that wasn’t enough, at least in MovableType’s case, not having the TrackBack data in the main page would allow pointing to the RDF in a separate file with an HTML <link> tag, rather than embedding it (btw, the RDFCore WG no longer recommends embedding RDF in HTML), which neatly solves the problem of validating a mix of RDF and HTML. MT can’t do <link> tags for the main page, because they have to go in the <head> section of the page, but MT doesn’t actually know what posts will appear in an index page until it generates it, while any archive type that can be used as the target of a permalink does know what posts it will include before it generates them.

Apparently during the TrackBack beta, people were puzzled by why they couldn’t ping from a main page, so Ben caved. I don’t see why, and if I wasn’t using the RDF in my main page as an example of my methods for fooling the validator, I’d take it out.

14 Comments

Comment by Burningbird #
2002-09-23 12:03:04

Sorry, phil, that recommendation isn’t necessarily in line with current beliefs on embedding XML into XHTML and HTML. That was made in 2000. In fact, it was RDF effort that generated this new talk.

By embedding the RDF into the page, you don’t have problems that people people on something such as blogspot have — inability to control exactly what files are placed on their servers.

 
Comment by Burningbird #
2002-09-23 12:04:32

What’s needed is an outlining tag in XHTML/HTML that says – ignore this enclosed XML. This has been needed for a good long time.

 
Comment by Phil Ringnalda #
2002-09-23 12:10:04

Agreed on the need for a way to do it, but not on that not being the current rec: take another look. The issue was raised in 2000, but the WG resolved it in June 2002 by saying ”this sucks, we’ve been wanting to do it since 1999 and we still can’t, screw it, we give up” (in slightly different language, to be sure).

 
Comment by Phil Ringnalda #
2002-09-23 12:16:10

(Now, when does Aaron’s application for application/rdf+xml get approved? Since even though the validator doesn’t check, the type attribute of link is supposed to be a MIME type, and I’m pretty sure that to use an unregistered type it’s supposed to be something like application/x-rdf+xml)

 
Comment by Timothy Appnel #
2002-09-23 14:22:40

I’ll second the motion, but its not as simple as it seems. MovableType includes TrackBack information in their default templates. Reason being some people list their entire entry on their index page and/or do not support individual entries on seperate pages. Where should they put their TrackBack information?

I recently just took them out of my gateway because it was reformulated to only include excerpts of a few recent entries. All of the TrackBack info made the page rather fat.

 
Comment by Phil Ringnalda #
2002-09-23 14:50:28

You don’t have to have individual entry archives. Anything that’s suitable as the target of a permalink will do, individual, monthly, category, it doesn’t matter. If you are using it as the target of a permalink, then by definition MT has to know what entries go in what file without actually building it: if you use category archives for your permalinks, then MT knows that a post in category ”foo” goes in the category ”foo” page, so when it starts to build the category ”foo” page, before it gets down into entry context it already knows that it will be including every single ”foo” entry, and it can just put in a <link href=”foo.rdf” type=”application/rdf+xml” title=”TrackBack RDF”> tag. Index pages are a problem, because you can use all sorts of lastn=”5” things that aren’t predictable, but since you don’t/shouldn’t do that in an archive page, external RDF in archive pages of any type is completely doable.

 
Comment by Ben #
2002-09-23 21:45:24

Well, we discussed these issues a while back (re: validation) in the support forums… personally, I still think that people want to be able to ping from the front page, whether or not that’s good form. :)

But I am writing more to give the reasons why we went with embedded RDF and not with external RDF files.

In the first betas, we used a <link> tag that pointed directly to the TrackBack ping URL for an entry. This only worked on the individual archive pages, because the ping URL is entry-specific, so it wouldn’t work with multiple entries per page.

So that wasn’t working, because people needed to be able to use TrackBack on non-individual archives. So we instead started using the RDF to represent metadata about each entry. We added this RDF anywhere where people had indicated that they might want to use TrackBack: archives, index, etc. We didn’t really think that adding the RDF could possibly be a *downside*… after all, it’s just adding more metadata about each entry. Metadata that is useful for using the bookmarklet, and could be useful for other applications (maybe).

That’s the reason why we went to using RDF. BTW, we never really thought about using external RDF files, mainly because we already have enough files to write when archives are rebuilt, and we didn’t want to add the headache of managing another set of files. So we made it embedded.

 
Comment by Phil Ringnalda #
2002-09-23 21:59:14

Oh, um, while I’m ripping on everything in sight tonight, have you ever looked at what an RDF parser has to say about the TrackBack RDF? Since the TrackBack ping URL is the only subject, everything is about it: the creator of mt/mt-tb.cgi?tb_id=96 is Phil Ringnalda, the date of mt/mt-tb.cgi?tb_id=96 is 2002-09-2311:30:35-08:00, etc. Don’t suppose you’d like to change it to rdf:about=”the permalink” tb:pingURL=”url to ping” with a namespace for tb? (Also: attributes without namespaces are now deprecated, so validators bitch about the ”about” if it isn’t ”rdf:about”).

 
Comment by Ben #
2002-09-24 10:01:01

That’s a pretty good idea, it sounds like, from an RDF standpoint (I don’t know too much about RDF, really). We’ll definitely fix the rdf:about thing for 2.5.

Would the presence of the tb:pingURL then imply that rdf:about is the permalink, I guess?

 
Comment by Phil Ringnalda #
2002-09-24 15:52:10

(Score one for an RSS feed of recent comments: it got rebuilt before my server decided to pack it up, so your comment showed up there even though it didn’t here. Unless it’s all the RSS templates I’m building that are killing rebuilds.)

Yeah, in a single tag like that everything else is describing the rdf:about, so since your descriptions are saying things about the permalink (it has this title, this date, this TrackBack URL):

<rdf:RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:dc=”http://purl.org/dc/elements/1.1/
xmlns:tb=”http://example.org/tb/”>
<rdf:Description
rdf:about=”http://philringnalda.com/archives/002329.php”
dc:title=”Just say no to TrackBack in index.html”
dc:subject=”trackback”
dc:description=”Sam also asks if he should have TrackBack RDF in his main page. I say no, for two reasons. First,…”
dc:creator=”Phil”
dc:date=”2002-09-2311:30:35-08:00”
tb:tbURL=”http://philringnalda.com/mt/mt-tb.cgi?tb_id=96” />
</rdf:RDF>

Would parse out as saying:

(/archives/002329.php) (dc:title) ”Just say no to TrackBack in index.html” .
(/archives/002329.php) (dc:subject) ”trackback” .
(/archives/002329.php) (dc:description) ”Sam also asks if he should have TrackBack RDF in his main page. I say no, for two reasons. First,…” .
(/archives/002329.php) (dc:creator) ”Phil” .
(/archives/002329.php) (dc:date) ”2002-09-2311:30:35-08:00” .
(/archives/002329.php) (tb:tbURL) ”http://philringnalda.com/mt/mt-tb.cgi?tb_id=96” .

(picture the words ”has a” in the first space, and ”of” in the second space)

Which isn’t quite perfect, in that the URL ends up as a literal rather than a resouce, but I don’t think you can avoid that while sticking to a single empty tag. I’m pretty sure you would have to say something like:

(*** untested, don’t try this at home, example only ***)

<rdf:Description
rdf:about=”http://philringnalda.com/archives/002329.php”
dc:title=”Just say no to TrackBack in index.html”>
<tb:tbURL rdf:resource=”http://philringnalda.com/mt/mt-tb.cgi?tb_id=96” />
</rdf:Description>

in order to get the TrackBack URL parsed as a resource rather than a literal. Does it matter? Not sure. Ten years down the road, when you want to specify that

(/archives/002329.php) (tb:tbURL) (/mt/mt-tb.cgi?tb_id=96”) .
and
(/mt/mt-tb.cgi?tb_id=96”) (tb:mode) ”Jabber” .

it might make a difference, but I’m not very good at predicting the future that way (more likely, the RDF WG will have changed the syntax completely two or three times by then).

 
Comment by Phil Ringnalda #
2002-09-24 16:01:16

Another advantage to using tb:tbURL for the TrackBack ping url: with a little tweaking in the regular expression, you would be able to avoid picking up RDF that isn’t yours: since I hacked my bookmarklet to give me a choice I don’t have to try to ping, but otherwise if you try to use a bookmarklet on a page (like an RDF spec) that has embedded non-TrackBack RDF, you end up trying to ping that page’s rdf:about URL, which probably confuses the hell out of it.

 
Trackback by The Long Letter #
2002-09-23 16:14:48

More TrackBack mumbo-jumbo

Phil makes a good case for not including TrackBack metadata in the HTML for the main site page. This works well for me, as I’d previously struggled with it causing problems with the HTML validation for my site. So, TrackBack data is now only present in…

 
Trackback by A Day #
2002-09-24 08:05:30

good note on RDF and Trackback usage

philringnalda.com: Just say no to TrackBack in index.html This person makes justification for not embedding rdf or trackback links in

 
Trackback by A young man #
2002-12-12 19:54:35

A new lesson for me

Where does he get those toys?

 
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.