I've looked around and haven't found what I want, and being a perl hack, decided to write it. The problem is that I'm chasing my tail from meta-data and persistence, so I come to the masters for guidance.

My goal is an opensource web content management system based on an object-oriented database. One could simply express the form of a dynamic web site like this -- for example a book-club web site:

small group: leader(person), location, schedule members(person) books discussed(book): date, summary news: date, headline picture person: name, address, phone, email news(news) book: Title, author, publisher, number of pages, cover image, isbn reviews: writer(person), date, stars(1,2,3,4), headline, summary, tex +t
This web site has three main sections: small groups, people, and books. Each of these sections have multiple content, group members, personal news, book reviews, etc. There's also a rough sense of path:
    /small group/Visionaries/members/Joe Smith
or
    /book/Wonders And Miracles/isbn

This means that the site creator has to be able to enter the meta-data for his site structure, and then of course the meta-data has a structure of its own (the meta-meta-data). I want both the data and the meta-data to saved to disk (ie persistent), and (why not) I'd like to use the same tools to implement the meta-meta-data:

classes: name, baseclass, envelope, view-template, edit-template, new, + update, del roles: name, access attribute: name, basetype, size, default, validation, indexing basetypes: name, view, edit, update
I'm trying to get up to speed on modules like Class::Struct and Class::Constructor as well as persistance modules like Storable and Tie::Persistent. I had a pleasant diversion into POE, but decided that that's probably not where I'm going (although I might be mistaken) because it looks to offer persistence through a background task. I don't want to use Persistent::MySQL because there's no SQL on my target server. I also benifit for portability and ease-of-install if I can avoid DBI.

Firstly -- do I want my CMS's objects to be perl objects at all? If I write my own object interpreter I can effeciently implement persistence, access control, etc at the cost of re-inventing the wheel. But the structure is simple enough it is doable.

Secondly, if I'm using perl's objects what's the best collection of Modules to do meta-data -> objects w/ persistence?

Thanks for your enlightened perspective on my prediciment.

j


In reply to metadata confusion for new perl CMS by jhanna

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.