OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office-metadata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [Fwd: Re: [office-metadata] Reuse of metadata proposal for non ODF applications]


Hi Guys,

Attached is an in-process draft of an example that is intended to  
show OO XForms interoperating with OO Metadata.
Forgive the incompleteness of the example, I'll have it all done by  
next Tuesday (I better, that's when I'm supposed to present it at my  
meeting).

Report.6.odt

Some comments:

(1) Enable macros on open in response to warning. I have no idea if  
this is necessary, but that's what I do.

(2) The RDF representation of the form data is in the XForms instance  
named "RDF-Data". You can see what it looks like most easily by  
pressing the "Submit RDF to file" button, which will save the RDF to  
the root directory of your hard disk. Ignore warnings about invalid  
fields in the form.

(3) The other XForms instances (besides RDF-Data) are basically  
"scratchpad" instances used in various form calculations, or places  
to store label strings to make the form appearance customizable, etc.  
They're of no central importance for our purposes.

(4) One of the most interesting things I learned from this exercise  
is how to approach the impedance mismatch between the XForms data  
binding mechanism (which is pure XPath) and the desired output (which  
is RDF). The fundamental problem is that XPath is designed to select  
nodesets from *trees*, but RDF is fundamentally *generalized directed  
graphs*.

This means that a given RDF graph can be serialized into RDF-XML in  
many different ways, all equally valid. But XPath bindings address  
the serialization tree, not the underlying RDF graph, so if I create  
one set of XPath bindings, then decide I want to make an  
inconsequential change in the way I serialize my RDF, it can break  
all the XPath.

There are several ways to get around this. At the most extreme, you  
could extend XForms by allowing bindings to some language other than  
XPath--a language like SPARQL, for example, which is designed to  
query the underlying graph rather than any paritcular serialization  
of it.

At the other extreme, you can just commit to a fixed serialization,  
and just change out the node names, etc. This is what I did here.  
It's brutish and not a general solution, but it works for documents  
like this where the semantics are very regular to begin with.

For marking up free text, where you can't predict the kind of graph  
you're going to get a priori, we'll need to talk to the XForms/ODF  
group about pushing on the W3C XForms group for some support for  
other ways of expressing bindings than in XPath.

(5) In XForms, the concept of "submission" is very important. When  
you're done filling out the form, you've got to "submit" it.

In the context of the ODF Metadata model, we would probably want to  
"submit" the form to our ODF document's own package, and also update  
the manifest.rdf file as a component of that submission process.  
XForms "submit" actions assume the target of the submission is a URL  
(http:, mailto:, file: ... whatever) and the method used is an http  
GET, PUT or POST.

We will need to figure out how to create such a "submit" action. It  
might be easy to construct one from existing XForms/XML Actions, or  
it might require some scripting. Lars, ideas?


John






[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]