Hi Dave & all,

First off sorry for the semi-long email.

On 9/30/2010 4:56 PM, Walker, David wrote:
> So, wrapping up this long-winded criticism -- you did say this was okay 
> right, Tim? ;-) -- I don't think it would actually take much to improve 
> Manakin.

Yes. Perfectly OK.  I actually got a laugh out of your side comment here :)

> First, just do away with the DRI schema.
>
> Have the aspects Java code simply create XML that is semantically (rather 
> than presentationally) marked-up.  Just give us the data for communities, 
> collections, items, and the submission process.  Just the data as XML.

I actually feel that DRI mostly *IS* semantic markup (though not to the 
same degree as say RDF).  There are places where I agree it does fall 
flat and move too much into presentation/layout markup (e.g. tables and 
similar).  If you read through the "Intro to DRI" 
(http://www.dspace.org/1_6_2Documentation/ch15.html#N189EE) you'll see 
it is actually mostly based on TEI (http://www.tei-c.org/index.xml), 
which itself is again mostly semantic in nature. Here's a decent 
overview of TEI and the history of it: 
http://www.ibm.com/developerworks/library/x-matters30.html

DRI elements were *never* meant to be directly equivalent to XHTML 
elements (and maybe the fact that some are named the same is what can be 
so confusing).  So, <dri:div> is not the same as XHTML <div>.  <dri:div> 
is just a means of grouping particular content into separate "sections", 
and could be represented by any number of XHTML elements (<div>, 
<table>, <td>, <p>, <form>, etc.)

To take this slightly further: if you take a look at many of the DRI 
elements, they really are NOT necessarily layout/presentation specific. 
They just define a generic page element.  For example, a submit button 
is encoded as <dri:field type='button' n='submit'> . How and where that 
is displayed/presented to the user is up to the XSLT -- it can choose to 
make that an <input type="submit">, an <input type="button">, a <button> 
, an <a href="">, any other XHTML element, or even choose to hide it 
altogether and not display it.  DRI is merely suggesting that this page 
may need some sort of way to submit a set of fields.

Ok -- I'm bordering on a <rant> here, and not meaning to. :) I just 
wanted to point out that DRI was not initially meant to force the page 
into a particular layout. It's more of a way to encode the contents that 
should be displayed on the page (and linking together page contents 
coming from a variety of sources, e.g. plain text on a page tends to 
come from messages.xml, item metadata from a METS file, sometimes other 
content is generated via other DSpace configs, etc.).  However, that 
being said, over the years some of the Manakin Java Aspects have used 
DRI better than others.

I think there are areas we need to *fix* Java Aspects that are too 
limiting and force the page into a particular structure, etc.  There 
also may be areas that we may also want to fix DRI, if we find it really 
is encoding too much of the page's content (some of which can and should 
be left to XSLT themes).

If it came to it, I'm not against replacing DRI with something better -- 
but we need to be careful that we aren't just pushing the problem 
elsewhere or creating a new problem. :)  Obviously, this would also be a 
huge project which would need plenty of community volunteers, if we ever 
wanted to take it on.

> Second, push all of the presentational logic into the XSLT files.
>
> Create templates that correspond to "pages" in the system.  If the interface 
> needs a<div>  or a paragraph or a submit button, that should all go into the 
> XSLT.  That is where it belongs, in the presentational layer.

> You'll then have a clean separation of concerns, easy to figure out 
> templates, and happier developers.

I think the problem here is what has been mentioned several times. 
Simply put, that /dri2xhtml/structural.xsl is just way too confusing and 
way too big. :)  I agree with this completely.

To be clear (and many of you may already know this), you don't *have* to 
use dri2xhtml when creating a new Theme.  You can create your theme 
entirely from scratch if you choose (though obviously that is much more 
work).  From my understanding, dri2xhtml was initially made by the 
creators of Manakin as a very simplified way to transform DRI into very 
basic XHTML for display (I mean "simplified" in terms of it's not very 
flashy or dynamic, nor is it meant to be the "one and only way").

 From what I've understood, one of the other original expectations for 
Manakin was that folks in the community would start to build new and 
better templates, and eventually that default "Reference" theme (which 
is essentially just dri2xhtml with very minimal CSS) would go the way of 
the dinosaurs.

I'm fully and completely in support of someone creating a better default 
template that better maps templates to "pages" (or perhaps sections 
within pages, in some cases).  I think that is entirely possible to do 
right now (with no or minimal DRI or even Java Aspect changes).

For instance, if you look at the DRI output for the DSpace Homepage 
(e.g. our demo site: http://demo.dspace.org/xmlui?XML ), you'll see 
several explicit sections to that default page which could be pulled out 
into separate templates:

The main News:
<div id="file.news.div.news">

The Front page Search area:
<div id="aspect.artifactbrowser.FrontPageSearch.div.front-page-search">

The list of Communities:
<div id="aspect.artifactbrowser.CommunityBrowser.div.comunity-browser">

Each of those could be mapped to a separate template immediately, as 
they all have unique IDs which could be used to match a template.

> Easy for me to say, right? ;-)

Yep! All of this is easier said than done.  :) I really do appreciate 
the feedback/discussion.  You see I come from a slightly different point 
of view, but I can understand there are limitations to the current DRI. 
It definitely is worth closer investigation on whether there is (a) a 
more flexible way to use the current DRI in aspects to avoid too much 
separation of concerns, OR (b) an improved version of DRI we can create, 
OR (c) a replacement for DRI altogether

Just my personal thoughts.  I don't have a magic sword that I can wave 
around and make any of this happen immediately.  It all takes volunteers 
and discussion to bring it forward.  But, it's great to point out some 
of the flaws & limitations so that we can work to make it better over time.

- Tim

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
DSpace-tech mailing list
DSpace-tech@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-tech

Reply via email to