[Zope] Some tough questions about zope... (long)

Tony McDonald tony.mcdonald@ncl.ac.uk
Sat, 06 Mar 1999 08:23:25 +0000


Again, another lengthy one, with some details of word conversions and XML
musings. Fingers over 'd' key...

>> Some background:
>> I'm one of the web developers here, with a remit to implement a 
>> curriculum database that can;
>> (a) support the Medical Faculty here
>> (b) get rolled out to three other Medical-related sites, each with 
>> their own 'look and feel'
>> (c) possibly implement a University-wide curriculum database>
>Sounds fantastic!
> 

Absolutely. One of the reasons I applied for the job is that the potential
for it is so great!

>> The curriculum database is essentially delivering online study guides 
>> (over 100 for each Faculty) whose source is originally from very well 
>> marked up Word Documents. In addition, we include multiple choice 
>
>This is really weird, it just reminded me of a (rather pathetic) dream I
>had last night.  I dreamt that someone created a Python module that
>would read Word files.
>

Ouch!, what we do is save the word docs as RTF. A free program (written in
Omnimark) called RTF2XML then trundles through it and creates well-formed
and valid XML. I then pass it through another Omnimark program that I wrote
that turns it into XML that is more suited to what we want.


>I've been awfully interested in XML in the last few days.  Can you
>describe what user-visible benefits PHP delivers due to its integrated
>XML parser?
>

Background:...
PHP is a (non OO) server-level scripting language, usually delivered as an
Apache module, that has it's roots in C, but with some of the arcane bits
removed. It's database integration is very good. The authors have recently
built the (almost XML-industry standard) parser Expat into it.
...

From my point of view, having the XML parser in PHP meant that (a) I didn't
need to call Perl CGIs (with all that overhead), (b) I'd understand the code
a bit (I *cannot* do Perl!), (c) there might be a performance boost from
having the parser in the Apache Module and (d) I'd be able to map XML
elements such as <topic> ... </topic> into HTML <div> ... </div> tags or RTF
control codes (all of which would be read from a user-defined database) -
thus leading to the 'Holy Grail' (ouch!) of being able to render the
documents into whatever form the end-user wanted. As well as that, using XML
means that I can select all <topic> .. </topic> tags that match a certain
criteria (eg, all first-year study guides that mention cell biology) from
*all* our study guides and create a 'composite' document that would be
passed through the XML 'converter' to get custom HTML and RTF docs.

Of course, once I 'got into' XML I found out that just having the Expat
parser around didn't necessarily mean I was going to get all that for
free...ie how 'do' you 'search' an XML document to get those matched <topic>
tags (and possibly their children). Enter XQL and it's friends, DOM and XSL.

XQL (Perl module based on a W3C recommendation) works, but it's slow. 

In short, I was at an impasse. The level of work needed to incorporate XQL
into PHP (as a CGI) or (gulp) rewriting it as PHP was just too much.

I installed the XML-Config product for Zope and my appetite was whetted. I
read about the XML-sig and downloaded the XML-0.5 toolkit from python.org. I
tried one or two examples out ... and my jaw literally fell open. By the
time I'd looked in the 'dom' directory I was almost gibbering. This was
something I felt I might be able to understand (and definitely use).

Ooops...I'll shut up as I'm waay of topic. 

>Additionally, we are working on Zope searching for a consulting project
>right now.  Actually it is Zope Cataloging.  It's still a
>consulting-only option, but plans are that eventually it will go "below
>the line".

That would be most welcome!

> 
>> I found out about Zope Monday morning, dl'ed it, installed it, got 
>> one or two things working... and have been worried sick ever since.
>
>Ahhh, you too, eh?  Did you have the dream about the chimp and the
>External Method where...oh, nevermind. :^)

No, but I've spent the last week muttering 'ok, I can use UserDB to
authenticate against our StaffDB and allow per-user access to the file
upload area', 'yeah, should be able to rewrite my PHP Multi-Choice Question
engine in this DTML gubbins', 'ok, I'll pull in the Perl script that does
xxx by using a redirect' and the like ... which is probably more scary!

> 
>> My problem? is that I can see how Zope can do so much for us, but it 
>> seems to need a hell of a gut-wrench to do so.
>
>I *think* I have some good news to report on this, but before I squawk,
>could you detail this gut-wrench a bit more?
>

Simply this: 
Zope seems to do just about everything I need (which is basically to provide
a *framework* for the Electronic Curriculum - others will fill in *and
manage* the content). I can then concentrate on providing features that
people need and 'rolling them out' to the users of the systems, confident
that they will integrate into the whole system. 

I think it's a paradigm-shifty thing more than anything else. Everyone in
our group *knows* that an .htaccess file allows access to the files in that
directory. They all have at least a basic grasp of CGI programming and all
recognize the mapping between files in a unix file structure and their
representations as web pages. People using Zope will have to break that
habit of logging in to change a file ('cos it ain't there!).

(for the time being, I've desubscribed from the PHP-lists to give me more
room to think!...)

>> c) Is there any way of using the XML documents that I'm creating into 
>> the database and parsing them to produce either HTML or RTF output?
>
>I'd like to have this as well.  I've been doing a lot of thinking about
>this lately.  It is a bit more complicated than expected, though...

This would be extremely useful to have.

>
>> d) I know that this a terrible question to ask... but is Zope likely 
>> to 'remain' open-source (we're worried about getting stuck with a 
>> proprietary system)?.
>
>This is the main reason I replied.
>
>Having Zope as a free and Open Source(tm) platform is the heart of our
>business plan.  A closed Zope would basically mean we start over
>completely as a different company.  Thus, closing Zope is roughly
>equivalent to closing our company.
>

phew! well I suppose that answers *that* question!

>
>Earning the community's enthusiasm is pretty simple, I think.
>Unfortunately we aren't doing a good job right now, though we are trying
>damn hard.  But we'll keep trying...
>

Seems to this newbie that you're doing a pretty *good* job!

>> e) Can I 'point' an Apache virtual server to run a Zope cgi (ie 
>> dropping the :port requirment).
>
>Yep, the zope.org machine has five virtual hosts.

great.

>
>> h) We also need resources such as QuickTime movies, images PowerPoint 
>> slides etc. to be uploaded - would they sit in the database or can 
>> they be held somewhere else (and what happens about file name 
>> conflicts)?
>
>We put them in the database.  The 3 Mb Zope binaries are served out of
>the database, the PDF files are served out of the database.  This works
>so well I don't even think about it any more.
>

great again.

Thanks for the reply Paul, (and thanks to the others that replied too - I'm
not able to reply in person yet...)

Cheers,
tone.