[okfn-discuss] Re: Marginalia

Rufus Pollock rufus.pollock at okfn.org
Fri Jan 26 19:12:15 GMT 2007


Geoffrey Glass wrote:
[snip]
>> First off, great to hear from you -- I'd been planning to write to you 
>> for the last couple of weeks about marginalia specifically web 
>> annotation in general and marginalia specifically. I don't know how 
>> much of the discussion on the list you saw but the we've been looking 
>> at marginalia in order to integrate it into the web interface for open 
>> shakespeare:
>>
>> http://demo.openshakespeare.org/

> Wow.  I checked the HTML source for a couple of the plays.  All of the 
> text is in one long pre element.  I'm afraid this means you're going to 
> run into performance problems with Marginalia unless you mark up the 
> text as paragraphs or divs or something (don't pick span - Marginalia 
> doesn't consider inline elements to be useful references).  A simplistic 
> but effective approach I expect would be to divide the document into 
> individual lines, each wrapped with <div class="line"> or <p 
> class="line"> or similar.  Then instead of examining every character 

Yes I'd thought that there might be a problem with one long pre and had 
already prepared line numbered versions -- just set format to lineno as in:

http://demo.openshakespeare.org/view?name=hamlet_gut&format=lineno

> between the start of the document and a highlighted passage, Marginalia 
> just fires off an XPath expression to grab the line and counts from 
> there.  (IE rears its ugly head here -  I don't think it supports XPath, 
> so Marginalia has to count lines instead.  See PathToNode in 
> marginalia.js).

Is this a change from your previous version? I thought the old version 
used your own custom range object with offsets in words from the start 
of an entry (with an entry designated by special markup inside the 
source document)

> Mind you, if you change the document structure later your annotation 
> references will no longer make sense.  (The dream feature for Marginalia 
> would be the ability to patch broken document pointers by searching for 
> the quoted phrase.  It should be doable, but it's not a priority for me 
> and I haven't investigated how to do the search etc.  An even more 
> advanced version would resolve multiple matches by picking the one 
> closes to the specified document location.)

This starts to sound similar to the approach proposed by Julian Todd 
(http://www.publicwhip.org/). He suggested that you just have a textbox 
in which you copy and paste the piece of text you wish to annotate and 
then the annotation engine figures out which piece of text this is. Of 
course this runs into problems when annotating short ranges.

>> Our first step was to port the backend code (i.e. the web annotation 
>> store REST interface) to python which we've nw done, see:
>>
>> <http://project.knowledgeforge.net/shakespeare/svn/annotater/trunk/>
 >
> I just got an email from someone talking about a Plone port of 
> marginalia.  Do you mind if I point him to you?

That would be fine.

>> Coming from this was a general discussion of annotation which for ease 
>> of reading I've just posted at:
>>
>> http://blog.okfn.org/2007/01/24/thinking-about-annotation/
>>
>> Inspired by your own use of Atom a particular focus was whether one 
>> could agree on a simple set of core attributes defining an annotation 
>> as this would the allow one to plug and play with regard to the front 
>> and back-end (i.e. one could have different annotation user interfaces 
>> each using the same store and conversely different stores for the same 
>> front-end).
 >
> Absolutely!  :)  My use of Atom is rather clumsy.  I really don't think 
> it's appropriate for me to overload the semantics of title, summary, 
> etc. as I do;  it might make more sense to embed the information as a 
> microformat in an entry's content.  But that might make parsing much 
> harder (especially when the content section is escaped with &s 
> everywhere).  For now I'm ignoring the issue.

On the contrary I thought your overloading approach was an excellent 
idea. Among other things it makes it possible (I think) for the 
annotation stream to get pulled in the same way as the blog post stream.

>> I completely understand regarding IE -- I'd been doing some playing 
>> around with getting cross-browser support for range operations when I 
>> discovered your work. Of course it would be nice to have IE support, 
>> it's definitely one of the things that set marginalia apart.
 >
> This is a common refrain.  It's probably my second priority on this 
> project right now (after making the people who are paying me happy);  
> given I"m doing other things this means I may not get to it for a while 
> (but who knows).

Sure and I can quite understand the desire to not have to deal with IE :)

>> I'll take a look. By the way have you thought of putting this stuff in 
>> a publicly-accesible source-code repository?
 >
> I haven't done such a thing before, but should probably look into it 
> when I have more time.
> 
> By the way, your Foundation looks to me like a most noble enterprise.  
> Good luck to you (even if I don't like Shakespeare :)

Thanks (the reason for doing Shakespeare is that it is the one thing 
everyone knows but the whole point of open shakespeare is most of the 
toolset will be directly portable to any other set of texts).

Regards,

Rufus



More information about the okfn-discuss mailing list