HI All, Long story short:
The OpenDocument OASIS TC has been talking a lot about metadata in the format for the past couple of months. They seem to be having some trouble settling on a way forward, however, in part because of lack of RDF expertise on the committee. While Adobe has been promoting XMP, I really don't think that's adequate. Since I have some very specific ideas on what this new metadata support should look like (I am co-project lead for the OpenOffice bibliographic project, and so want to see it fit our needs), I have been asked to put together a proposal. To do that, I need both technical help (the subject of this message) and to get as many "experts" as possible to sign on in support of the proposal. Anyway, I outlined what I want to do here: <http://netapps.muohio.edu/blogs/darcusb/darcusb/archives/2005/10/01/opendocument-mixing-metadata> ... and here: <http://netapps.muohio.edu/blogs/darcusb/darcusb/archives/2005/10/30/opendocument-and-rdf-storing-what-metadata-where> I'd really love feedback on how I've done this technically. I have two schemas; the first is a generic constrained validator: === namespace dc = "http://purl.org/dc/elements/1.1/" namespace local = "" namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0" namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" dc:creator [ "Bruce D'Arcus" ] dc:description [ "This schema is a demo of generic constrained rdf validation." ] start = rdf.RDF rdf.RDF = element rdf:RDF { rdf.resource+ } ## attributes div { rdf.id = attribute rdf:about { xsd:anyURI } xml.language = attribute xml:lang { xsd:language } } ## basic triple patterns div { # exclude non-namespaced content, as well as base OpenDocument metadata properties rdf.resource = element * - (local:* | dc:* | meta:*) { (rdf.property | rdf.resource_property | rdf.collection)+, rdf.id? } rdf.property = element * - (local:* | dc:* | meta:*) { rdf.literals | rdf.URI | rdf.sequence } rdf.sequence = element rdf:Seq { element rdf:li { rdf.URI | rdf.resource }+ } # use of "collection" can replace previous rdf:Alt and rdf:Bag containers rdf.collection = element * - (local:* | dc:* | meta:*) { rdf.property+, attribute rdf:parseType { "Collection" } } rdf.URI = attribute rdf:resource { xsd:anyURI } rdf.resource_property = element * - (local:* | dc:* | meta:*) { rdf.resource | rdf.URI } } ## literals div { rdf.literals = rdf.string_literal | rdf.xml_literal rdf.string_literal = text, xml.language? rdf.xml_literal = any, attribute rdf:parseType { "Literal" } } any = mixed { element * - (local:* | dc:* | meta:*) { attribute * { text }*, any }* } === The second is a base ODF metadata schema. I'll be extending it, but this shows what I want to do. === namespace dc = "http://purl.org/dc/elements/1.1/" namespace dcterms = "http://purl.org/dc/terms/" namespace local = "" namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0" namespace odbib = "http://www.example.net/odbib#" namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" include "rdf-tight.rnc" { rdf.RDF = element rdf:RDF { od.meta+ & rdf.resource* } } od.meta = element meta:Document { (dc.properties+ & (rdf.property | rdf.resource_property | rdf.collection)*), rdf.id } ## Dublin Core properties div { dc.properties = dc.title+ & dc.creator* & dc.subject* & dc.publisher? & dc.description* & dc.identifier* & dc.language? & dc.type* & dc.rights? & dc.format* dc.title = element dc:title { rdf.string_literal | rdf.xml_literal } dc.creator = element dc:creator { rdf.string_literal | rdf.URI } dc.subject = element dc:subject { rdf.string_literal | rdf.URI } dc.publisher = element dc:publisher { rdf.string_literal | rdf.URI } dc.language = element dc:language { rdf.string_literal | rdf.URI } dc.description = element dc:description { rdf.string_literal | rdf.xml_literal } dc.format = element dc:format { rdf.string_literal | rdf.URI } dc.identifier = element dc:identifier { rdf.string_literal | rdf.URI } dc.rights = element dc:rights { rdf.string_literal | rdf.URI } dc.type = element dc:type { rdf.string_literal | rdf.URI } } === I would then have a third, for demonstration, for bib metadata that would import the above and redefine pieces of it. Thoughts or suggstions? Bruce ------------------------ Yahoo! Groups Sponsor --------------------~--> Get Bzzzy! (real tools to help you find a job). Welcome to the Sweet Life. http://us.click.yahoo.com/A77XvD/vlQLAA/TtwFAA/2U_rlB/TM --------------------------------------------------------------------~-> Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/rng-users/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
