On 10/27/05, James M Snell <[EMAIL PROTECTED]> wrote:
>
> Luke Arno wrote:
>
> >*Some* of those benefits would apply to any existing
> >XML format such as OPML to varying degrees.
> >
> >1. Visible data.
> >
> >More clients understand (X)HTML than any other format.
> >
> >
> >
> Clients for whom APP support is important will adopt to whatever format
> we choose.  The data is no less visible to clients if it is formatted
> using a Non-XHTML based XML format than if it was served with XHTML.
> More clients understand RSS than Atom, does that mean that RSS data is
> more visible than Atom data? Hardly.
>

Wow. Your definition of data visibility is not mine.

Data visibility: The degree to which data is seen by people.

A lot of people have these cool programs called web browsers.

> >2. Principle of least invention.
> >
> >(X)HTML is the lingua franka of the web.
> >
> >
> >
> Agreed. This is why I have pointed out that format reuse is a very
> strong consideration that is worth our attention.
>
> >3. Layered semantics.
> >
> >XHTML has a built in facility for layered semantics
> >through class, id, rel and other attributes.
> >
> >Rob's document, if he converted it to use my profile,
> >could be seen as XML, XHTML, XOXO, and APP
> >introspection all at once. Many parsers could use
> >it and many systems could find meaning in it
> >(including human beings).
> >
> >
> >
> Layered semantics can be built into any XML format we either adopt or
> design.  the point that it's already in XHTML is well taken but the
> question still remains about whether or not it is important for us to be
> able to view an introspection document in multiple ways.
>

Data that is understandable in more ways by more
systems yields more value.

We *can* do it in other formats but in XHTML it will
actually be done.

> >4. Maintain fewer documents.
> >
> >Would you use OPML to publish your blog or would
> >you also have to maintain an XHTML version
> >(or an XSLT to produce it or whatever)?
> >
> >
> >
> Blog data is already being published in multiple formats.  You are
> making a valid argument here, but I'm still not yet convinced that it is
> enough to justify using XHTML in this case.
>

You are going to throw out your elbow.

Again with this "enough" thing... weighed against what?

"Enough" is undefined until you define costs to compare
your benefits to.

> >5. Learn less new syntax.
> >
> >Again XHTML is the lingua franka. I would have to
> >use references to work with OPML. It is simple but
> >I don't use it every day. I can sit down and write
> >XHTML from memory.
> >
> >
> >
> This is another valid argument in favor of reuse, but are you assuming
> that everyone is able to write valid, modularized XHTML from memory?
> Look at the example with the img and br tags from yesterday.  I'm
> certain that Robert is *very* knowledgeable about XHTML and XOXO and yet
> he was incorrect about whether or not br tags in XOXO were valid.  I'm
> not arguing against XHTML here, I'm just questioning an assumption you
> appear to be making that writing valid XHTML is somehow easier than
> writing valid instances of other XML syntaxes.
>

The number of people with one skill set vs. the other
must be staggering. Are you trying to tell me that more
people know OPML than XHTML?

> >6. Fewest possible constraints.
> >
> >XHTML is a very flexible and if our profile just
> >sprinkles on the extra semantics we need then
> >the possibilities are endless *without resorting to
> >namespace etc.* This is a shortcoming of using
> >XOXO. Notice how in order to add seek, Rob had
> >to throw in a namespaced attribute, and is
> >not just using XHTML anymore. By using our own
> >profile, we allow further extension to be done in
> >the same way: using XHTML.
> >
> >
> >
> The fewer the constraints, the harder it is to validate given that
> anything can be considered valid.

False! Each constraint is another check.

> The benchmark should be "the fewest
> possible constraints relative to the requirements of the protocol" lest
> we build in so much flexibility that the protocol ceases to be useful
> due to lack of enforceability.

I thought this was implied but I will say it.

Fewest possible constraints in order to achieve
desired functionality.

Enforcable interop is something we do not disagree on.

> A case in point is the mime type
> dispatching issue.  If an mime type used for an introspection document
> is optional, we'll end up with several different, non-standardized ways
> of dispatching. FWIW, RSS has a similar problem with its content model:
> e.g., do you use description, do you use content:encoded, do you use
> xhtml:div, or do you use some other mechanism, .... or do you use any of
> the above?  The answer is always yes which has caused many many
> implementation headaches for a lot of people.
>

This is completely different. With RSS you don't know what to
do when. We have three clear cases.

1. Browser views document - text/html
2. Browser follow link to dispatch - application/[APP]
3. Client requests document itself - either one

> Your proposal says,
>
>        The title of an APP collection will be the title of the
>        XHTML anchor or link with rel='entry' or 'generic' pointing
>        to the collection's primary feed.
>        If these are not present then it will be the text of the
>        anchor (if it is an anchor).
>        If these are not present then the contents of the
>        element within the collection (but not within a nested
>        collection) with a class name of collectionTitle
>        will be considered the name of the collection.
>        If none of these exist, it is highest ranking heading element
>        within the collection container.
>        If none of these exist, it is simply an unnamed collection.
>
> Does that mean that if the contents the anchor (or collectionTitle, etc)
> contains additional markup (e.g br tags) that markup is part of the
> title of the collection?
>

"Contents" means what you would get from an xsl:value-of:
concatenation of text node descendants.

Obviously that would have to be written somewhere in a
way that references the appropriate spec (XPath I think)

This profile is being changed and simplified a lot BTW.

The version you are looking at still kinda sucks.

> The reason I ask is to illustrate the point that in order for XHTML to
> be useful to us, we HAVE to add constraints. Not only that, we have to
> be smart enough to identify all of the really important constraints that
> need to be added or else we run the risk of having to go back and
> retrofit additional constraints -- a process that is notoriously difficult.
>

This is all true stuff about spec writing.

> Starting with a new syntax affords us the opportunity to design to a
> specific set of known requirements and constraints without needing to
> retrofit anything.  If we're smart and build extensibility into the
> model, then the syntax can be evolved as needs evolve.
>

Classic tower of babel. It is just lazy. Yet another DTD
because it is easier to talk to ourselves than
communicate in a way that others understand.

> Example : your approach requires me to look in four different places for
> a collection title and does not indicate whether markup is allowed in
> the title and takes five sentences to explain.  The existing workspace
> stuff defines a single location for title and is explained much more
> concisely, "The app:workspace element MUST contain a 'title' attribute,
> which conveys a human-readable name for the workspace. This attribute is
> Language-Sensitive."  Which is easier to learn/implement/validate?
>

This is valid feedback and my first attempts at this
profile are way too complicated. I went all the way
with flexibility and it was an over-correction. This
needs to be (and is being) fixed.

> Another example, in your current Pace, you say:
>
>        An APP "magic brackets" definition
>        of how to traverse an APP collection.
>        If this is not present
>        the feed at the collection URI
>        should indicate traversal.
>
> And use the following example,
>
>     <ul class="traversals">
>       <li>/app/collection.py?id=1&amp;type=entries&amp;index={index}</li>
>       <li>/app/collection.py?id=1&amp;type=entries&amp;date={daterange}</li>
>     </ul>
>
> Is this the only way to list traversals?

There is a singular form there for other elements.

> What if the traversal URI was in a link or anchor href?

I thought about this but would it make sense to
follow such a link?

> Does <base> or xml:base apply to the
> traversals in your <li> tags?

This should be specified. Good catch.

> Can I mix it up (e.g., put one traversal
> in an achor and another in li and expect clients to find both?

Sure. Not sure why you would but I can still parse it.

> What
> does <li><span>My traversal:</span> /app:collection.py/id=1</li> mean?
>

See my definition of content above.

> The more constraints you add to an xhtml microformat, the less effective
> the "XHTML is very flexible" argument becomes.
>

Ever does life require balance. I will strike a better one in
the next version.

> >The benefits do not have to apply specifically to APP to
> >be worth considering. APP is a subset to many other
> >broad problem domains such as representing data
> >on the web.
> >
> >
> I'm not interested in solving problems that are not in the atompub
> charter.  I'm only interested in the benefits that apply to APP.
>

And APP does represent data on the web so many best
practices apply.

If you say "I don't care about grilling. I care about grilling
burgers." benefits of a clean spatula or not leaving raw
meat in the sun all afternoon still apply.

(Would you believe that I am pretty much a vegetarian,
having made that analogy?) :)

I do want to thank you for giving me some good specific
feedback and I agree with some it, especially that I need
to simplify and clarify the profile. This is productive.

Rob does some very nicely simple things with his XOXO.
What do you think of these:

1. member-type is indicated by a simple rel value
    instead of having a list of types.

2. only one seek (traversal, search-template, whatever)
    is available per collection. It uses query string only.
    All parameters are optional.

- Luke

Reply via email to