TreeBind goes RDF

TreeBind can be seen as yet another open source XML <-> Java object data binding framework.

The two major design decisions that differentiate TreeBind from other similar frameworks are that:

  1. TreeBind has been designed to work with existing classes through Java introspection and doesn’t rely on XML schemas.
  2. Its architecture is not specific to XML and TreeBind can be used to bind any source to any sink, assuming they can be browsed and built following the paradigm of trees (this is the reason why we have chosen this name).

Another difference with other frameworks is that its TreeBind has been sponsored by one of my customers (INSEE) and that I am its author…

The reason why we’ve started this project is that we’ve not found any framework that was meeting the two requirements I have mentioned and I am now bringing TreeBind a step forward by designing a RDF binding.

I have sent an email with the design decisions I am considering for this RDF binding to the TreeBind mailing list and I include a copy bellow for your convenience:


Hi,

I am currently using TreeBind on a RDF/XML vocabulary.

Of course, a RDF/XML document is a well formed XML document and I could use the current XML bindings to read and write RDF/XML document.

However, these bindings focus on the actual XML syntax used to serialize the document. They don’t see the RDF graph behind that syntax and are sensitive to the « style » used in the XML document.

For instance, these two documents produce very similar triples:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns="http://ns.treebind.org/example/";>
    <book>
        <title>RELAX NG</title>
        <written-by>
            <author>
                <fname>Eric</fname>
                <lname>van der Vlist</lname>
            </author>
        </written-by>
    </book>
</rdf:RDF>

and

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns="http://ns.treebind.org/example/";>
    <book>
        <title>RELAX NG</title>
        <written-by rdf:resource="#vdv"/>
    </book>
    <author rdf:ID="vdv">
        <fname>Eric</fname>
        <lname>van der Vlist</lname>
    </author>
</rdf:RDF>

but the XML bindings will generate a quite different set of objects.

The solution to this problem is to create RDF bindings that will sit on top of a RDF parser to pour the content of the RDF model into a set of objects.

The overall architecture of TreeBind has been designed with this kind of extension in mind and that should be easy enough.

That being said, design decisions need to be made to define these RDF bindings and I’d like to discuss them in this forum.

RDF/XML isn’t so much an XML vocabulary in the common meaning of this term but rather a set of binding rules to bind an XML tree into a graph.

These binding rules introduce some conventions that are sometimes different from what we use to do in « raw » XML documents.

In raw XML, we would probably have written the previous example as:

<?xml version="1.0" encoding="UTF-8"?>
<book xmlns="http://ns.treebind.org/example/";>
    <title>RELAX NG</title>
    <author>
        <fname>Eric</fname>
        <lname>van der Vlist</lname>
    </author>
</book>

The XML bindings would pour that content into a set of objects using the following algorithm:

  • find a class that matches the XML expanded name {http://ns.treebind.org/example/}book and create an object from that class.
  • try to find a method such as addTitle or setTitle with a string parameter on this book object and call that method with the string « RELAX NG ».
  • find a class that matches the XML expanded name {http://ns.treebind.org/example/}author and create an object from that class.
  • try to find a method such as addFname or setFname with a string parameter on this author object and call that method with the string « Eric ».
  • try to find a method such as addLname or setLname with a string parameter on this author object and call that method with the string « van der Vlist ».
  • try to find a method such as addAuthor or setAuthor with a string parameter on the book object and call that method with the author object.

We see that there is a difference between the way simple type and complex type elements are treated.

For a simple type element (such as « title », « fname » and « lname »), the name of the element is used to determine the method to call and the parameter type is always string.

For a complex type element (such as author), the name of the element is used both to determine the method to call and the class of the object that needs to be created. The parameter type is this class.

This is because when we write in XML there is an implicit expectation that « author » is used both as a complex object and as a verb.

Unless instructed otherwise, RDF doesn’t allow these implicit shortcuts and an XML element is either a predicate or an object. That’s why we have added an « written-by » element in our RDF example:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns="http://ns.treebind.org/example/";>
    <book>
        <title>RELAX NG</title>
        <written-by>
            <author>
                <fname>Eric</fname>
                <lname>van der Vlist</lname>
            </author>
        </written-by>
    </book>
</rdf:RDF>

The first design decision we have to make is to decide how we will treat that « written-by » element.

To have everything in hand to take a decision, let’s also see what are the triples for that example:

rapper: Parsing file book1.rdf
_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://ns.treebind.org/example/book> .
_:genid1 <http://ns.treebind.org/example/title> "RELAX NG" .
_:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://ns.treebind.org/example/author> .
_:genid2 <http://ns.treebind.org/example/fname> "Eric" .
_:genid2 <http://ns.treebind.org/example/lname> "van der Vlist" .
_:genid1 <http://ns.treebind.org/example/written-by> _:genid2 .
rapper: Parsing returned 6 statements

In these triples, two of them are defining element types:

_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://ns.treebind.org/example/book> .

and

_:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://ns.treebind.org/example/author> .

I propose to use these statements to determine which classes must be used to create the objects. So far, that’s pretty similar to what we’re doing in XML.

Then, we have triples that assign literals to our objects:

_:genid1 <http://ns.treebind.org/example/title> "RELAX NG" .
_:genid2 <http://ns.treebind.org/example/fname> "Eric" .
_:genid2 <http://ns.treebind.org/example/lname> "van der Vlist" .

We can use the predicates of these triples (<http://ns.treebind.org/example/title>, <http://ns.treebind.org/example/fname>, <http://ns.treebind.org/example/lname>) to determine the names of the setter methods to use to add the corresponding information to the object. Again, that’s exactly similar to what we’re doing in XML.

Finally, we have a statement that links two objects together:

_:genid1 <http://ns.treebind.org/example/written-by> _:genid2 .

I think that it is quite natural to use the predicate (<http://ns.treebind.org/example/written-by>) to determine the setter method that needs to be called on the book object to set the author object.

This is different from what we would have been doing in XML: in XML, since there is a written-by element, we would have created a « written-by » object, added the author object to the written-by object and added the written-by object to the book object.

Does that difference make sense?

I think it does, but the downside is that the same simple document like this one:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns="http://ns.treebind.org/example/";>
    <book>
        <title>RELAX NG</title>
        <written-by>
            <author>
                <fname>Eric</fname>
                <lname>van der Vlist</lname>
            </author>
        </written-by>
    </book>
</rdf:RDF>

will give a quite different set of objects depending which binding (XML or RDF) will be used.

That seems to be the price to pay to try to get as close as possible to the RDF model.

What do you think?

Earlier, I have mentioned that RDF can be told to accept documents with « shortcuts ». What I had in mind is:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns="http://ns.treebind.org/example/";>
    <book>
        <title>RELAX NG</title>
        <author rdf:parseType="Resource">
            <fname>Eric</fname>
            <lname>van der Vlist</lname>
        </author>
    </book>
</rdf:RDF>

Here, we have used an attribute rdf:parseType= »Resource » to specify that the author element is a resource.

The triples generated from this document are:

rapper: Parsing file book3.rdf
_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://ns.treebind.org/example/book> .
_:genid1 <http://ns.treebind.org/example/title> "RELAX NG" .
_:genid2 <http://ns.treebind.org/example/fname> "Eric" .
_:genid2 <http://ns.treebind.org/example/lname> "van der Vlist" .
_:genid1 <http://ns.treebind.org/example/author> _:genid2 .
rapper: Parsing returned 5 statements

The model is pretty similar except that there is a triple missing (we have now 5 triples instead of 6).

The triple that is missing is the one that gave the type of the author element:

_:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://ns.treebind.org/example/author> .

The other difference is that <http://ns.treebind.org/example/author> is now a predicate.

In this situation when we don’t have a type for a predicate linking to a resource, I propose that we follow the rule we use in XML and use the predicate to determine both the setter method and the class of the object to create to pour the resource.

What do you think? Does that make sense?

Thanks,

Eric


Thanks for your comments, either on this blog or (preferred) on the TreeBind mailing list.

SPARQL Versus Versa

A new working draft of SPARQL has been released.

While there is no doubt that the language is getting better and more polished with each new release of this specification, I am surprised to see that the limitations I had found in rdfDB back in early 2001 when I have tried to use it for XMLfr are still there.

This is an old story that I have presented in Austin at KT 2001 and published as an XML.com article: it can be very interesting to compute the distance between resources and to do so, you need the equivalent of a SQL « group by » clause and the related aggregate functions.

In the case of XMLfr, I rely on this feature to compute the distance between two topics by counting the number of articles in which they appear together. To do so, I use the SQL group by clause with the « count » aggregate function.

The fact that these features were missing in rdfDB has been the reason why I have had to drop rdfDB and RDF altogether and store my triples in a relational database that I query with SQL.

As far as I know, there is only one RDF query language that support these features: 4Suite’s Versa query language.

Versa is so different from SPARQL that these two languages are as difficult to compare as, let’s say the W3C XML Schema’s XML syntax and the RELAX NG’s compact syntax.

Instead of trying to bend the well known SQL syntax to make it work on triples, Versa has defined a totally new language for the purpose of traversing triples data stores.

The result is surprising. You won’t find anything that will remind you of SQL and, to take an example from « Versa by example« , to get a list of people’s first names sorted by their age, you’d write: « sortq(all(), « .-o:age->* », vsort:number) – o:fname -> * »

If you insist and don’t let the first surprise stop you, the second surprise is that this language is working incredibly well. During the (unfortunately too few) opportunities I have had to work with Versa, I have never been blocked by a limit of the language like I had been with rdfDB or would be with SPARQL.

The bad news is that there is only one implementation of Versa (4Suite). This means that you won’t be able to use Versa over Redland or Jena and I wish people implementing RDF databases could consider more closely implementing Versa over their databases!

I also wish the W3C could have taken Versa as the main input for their RDF query language, but this wish doesn’t seem too likely to happen :-( …

Un garage a niveaux

Dialogue entendu en amenant ma voiture à la révision au troisième étage d’un grand concessionnaire parisien :

Technicien : C’est une voiture de société? Je me demande pourquoi on vous a envoyé ici, les voitures de société c’est au deuxième étage!

Client : ???

Technicien : C’est pas grave, je vais voir ce que je peux faire, mais la prochaine fois il faudra que vous preniez rendez-vous avec le deuxième étage.

Technicien (après quelques minutes de pianotage infructueux sur un clavier graisseux) : L’informatique est en panne. Je vais vous enregistrer manuellement mais ça va être plus long.

Technicien : Vous avez quelque chose d’autre à signaler sur votre véhicule?

Client : oui, il y a un petit problème de carrosserie qu’il faudrait régler.

Technicien : Oh là là, il faudrait prendre rendez-vous avec le quatrième, mais je vous prévient, ils sont complètement débordés : ça fait deux jours qu’ils doivent venir voir une <nom-de-monospace/> pour faire un devis et ils n’ont pas encore eu le temps de passer!

Client : Vous allez la garder combien de temps, ma voiture?

Technicien : Je ne sais pas encore. S’il y a un problème à la direction, cela peut prendre quelques jours.

Client : Dans ce cas il me faudrait un véhicule de remplacement.

Technicien : Il faut voir avec le premier.

Client : Non mais ça va pas? Vous croyez que j’ai l’intention de faire le tour des étages? Vous allez prendre votre téléphone et me régler tout cela!

Technicien (après avoir téléphoné au premier étage) : Au premier, ils n’ont plus de véhicules de location.

Client : Je crois que vous n’avez pas bien compris, ce n’est pas un véhicule de location que je veux, mais un véhicule de remplacement! Quand j’ai acheté mon véhicule (au rez-de-chaussée), on m’a promis un véhicule de remplacement en cas d’immobilisation de mon véhicule.

Technicien : Qui est-ce qui vous a promis ça?

Client : Le vendeur.

Technicien : Les vendeurs de voitures, ils promettent toujours n’importe quoi!

Client : Je veux voir le patron!

Premiere visite de printemps

prunier en fleurCe week-end, le printemps était au rendez-vous. Le temps était au beau fixe, et les saules marsaults et les premiers pruniers bien en fleur…

Abeille butinant une fleur de prunierLes abeilles étaient nombreuses à profiter de l’aubaine et le vrombissement que l’on pouvait entendre sous les pruniers se rapprochait de celui que l’on peut entendre en ouvrant une ruche.

La température dépassant les vingt degrés, nous avons décidé d’effectuer la première visite de printemps afin d’évaluer l’état de nos deux ruches.

Couvain en mosaïque dans notre première rucheLa joie de retrouver nos abeilles que nous n’avions fait qu’apercevoir de loin depuis l’automne a été un peu tempéré par l’état de notre première ruche qui semble avoir été très affaiblie par l’hiver.

C’est notre premier « hivernage » apicole et nous manquons d’expérience pour juger la situation, mais le couvain nous parait être très réduit et il est « en mosaïque », ce qui d’après nos lectures, ne nous semble pas être bon signe.

Réserves de miel dans notre deuxième rucheLa deuxième ruche semble beaucoup plus forte, son couvain est plus abondant et plus régulier et il reste quelques belles réserves de miel.


Les abeilles semblent d’ailleurs bien décidées à compléter ces réserves par des récoltes de pollen et de nectar toutes fraîches!

Abeilles revenant à la ruche chargées de nectar et de pollen

Les abeilles sont de sortie

la planche d'envol d'une de nos ruchesCela faisait plus de trois mois qu’elles ne faisaient que de courtes sorties individuelles mais ce week-end les planches d’envol de nos deux ruches ont retrouvé une animation bien rassurante.

Cette animation ne se limite d’ailleurs pas à la planche d’envol et nous retrouvons des éclaireuses dans tout le jardin, y compris loin des ruches.

Elles font preuve de plus d’éclectisme qu’en été, semblent vouloir essayer toutes les fleurs qui passent à leur portée sans en dédaigner aucune et nous en retrouvons ainsi butinant perces-neige, crocus, bruyères, hellébores et même un skimmia que nous étions en train de planter…

Nous en voyons également revenir à la ruche les corbeilles chargées de pollen jaune foncé et orange. Il s’agit peut-être de pollen de crocus mais sans doute également de noisetiers qui sont encore en fleurs.

Les premiers chatons des saules marsaults et les boutons floraux des premiers pruniers commencent à s’ouvrir et si le temps se réchauffe comme le promet la météo, les abeilles ne devraient pas avoir longtemps à attendre avant de trouver des sources de pollen et de nectar plus abondantes.

Si le temps atteint vraiment les 18 degrés annoncés, nous pourrons peut-être même faire la visite de printemps dès le week-end prochain!

Cela nous permettrait de voir l’état des ruches et leurs réserves.

Apiculteurs.info

J’ai mis en ligne apiculteurs.info, un site conçu par des amateurs de miel (ma femme Catherine et moi-même) pour des amateurs de miel :

Ce site a pour objectif de répertorier le plus grand nombre possible d’apiculteurs qui commercialisent leur propre production, y compris les apiculteurs traditionnels qui ne sont pas connectés à internet.

Le résultat n’est pas encore très impressionnant et sa liste d’apiculteurs est encore courte, notamment parce que suivant les directives de la CNIL nous demandons par écrit l’accord des apiculteurs avant de publier leurs coordonnées et que nous sommes encore en attente d’un bon nombre de réponses.

Si je mentionne ce site ici, c’est que j’ai souhaité, dans sa conception et sa réalisation utiliser les principes, technologies et bonnes pratiques que j’enseigne et conseille à mes clients.

Le site est ainsi entièrement « powered by XML ».

Il repose sur le framework de publication XML Open Source Orbeon PresentationServer et la base de données XML eXist. Les informations sont stockées dans la base eXist un utilisant un vocabulaire XML/RDF que j’envisage de publier sous le nom de « foab » (Friend Of A Bee) et les pages sont constituées dynamiquement à l’aide de PresentationServer.

L’utilisation de cette architecture nous permet également de publier (en respectant leur licence) des articles de l’encyclopédie libre Wikipédia relatifs aux apiculteurs et à l’apiculture. Publiées sous l’adresse http://apiculteurs.info/wikipedia, ces pages sont téléchargées au format XHTML à partir de l’encyclopédie et stockées localement dans la base eXist.

La souplesse de PresentationServer permet de respecter les principes de l’architecture REST et d’attribuer automatiquement à chaque apiculteur une adresse stable (telle que http://apiculteurs.info/apiculteur/exemple/). Les services se rapportant à cet apiculteur (tels que l’édition de ses informations, la suppression de l’enregistrement, son export XML, …) s’effectuent également au moyen d’adresses stables et spécifiques à chaque apiculteur.

Les formulaires de saisie, tels que celui qui permet de suggérer un nouvel apiculteur mais également tout ceux qui permettent d’administrer la base de données sont définis à l’aide du standard W3C XForms et s’appuient sur l’implémentation XForms côté serveur de PresentationServer ce qui permet d’utiliser XForms dès aujourd’hui sans attendre que XForms soit implémenté dans les navigateurs Web…

Le site dispose bien entendu d’un canal RSS 1.0.

Les pages ne sont pas encore valides au sens de la recommandation XHTML 1.1 (les formes de saisies générées par l’implémentation XForms de PresentationServer sont conformes à HTML et non à XHTML) mais c’est point que je compte corriger prochainement. Elles utilisent néanmoins des méthodes de présentations sans tables basées sur CSS.

Les lettres envoyées aux apiculteurs pour leur demander l’autorisation de publier leur coordonnées sont envoyées à partir des données extraites de la base XML formatées par transformation XSLT sous forme de document OpenOffice. Le tout est orchestré par PresentationServer et disponible à partir des pages d’administration du site.

Ce petit site qui se veut une vitrine de l’apiculture et des apiculteurs constitue donc également une véritable vitrine de quelques unes des possibilités apportées par XML en matière de publication Web!

RELAX NG text versus data

Uche Ogbuji asks me on the IRC:

Eric, I looked in your book for a general discussion of <data type="string"/> versus <text/>, but I didn’t find one.

It’s a question that I’ve come across a few times. I might have missed something or perhaps I and others over-think the distinction :-)

From my reading of the specs, it seems to me there is no lexical difference but that there are differences with respect to pattern restrictions (the infamous data typing restrictions in RNG), so it seems to me one should always use <text/> unless they’re sure they know what they’re doing.

Also, any thoughts about the « simple string type considered harmful » note in WXS? It seems to raise a respectable point that not allowing child elements in elements to contain prose can lead to unexpected restrictions.

That’s a common question, or if not, it’s a question that anyone writing RELAX NG or X3C XML Schema schemas should ask himself and I think that it might be useful to publish my thoughts on the subject.

The make it short, I fully agree with Uche’s analysis and here are my reasons:

The names of the elements of the RELAX NG XML syntax have been chosen very carefully and basically, <data/> has been designed for data oriented applications (or part of applications) and <text/> has been designed for text (ie document) oriented applications.

The first and best thumb rule is thus probably: if you think of the content of an element or attribute as « a piece of text » you should use <text/> and if you think of it as « data » you should use <data/>.

As mentioned by Uche, there is no lexical differences and element foo {text} and element foo {string} or element foo {token} (ie the notation of an element foo containing either text or string or token data in the RNG compact syntax) validate exactly the same set of elements. The difference is in the restrictions attached to these two patterns. The main restrictions are that:

  • With the « text oriented » pattern (element foo {text}) , it is possible and even easy to extend the model to add sub elements and make it mixed content but you can’t add facets that will restrict your text nodes.
  • With the « data oriented » pattern (element foo {string}) you can add restrictions to your datatype if the datatype library that you are using does support it which is the case of the W3C XML Schema datatype library, such as in element foo {xsd:token {maxLength="10"}} but you can’t extend the content model into mixed content.

Now, why do I consider string datatypes harmful?

This datatype is harmful because it doesn’t behave like any other datatype in that spaces are normalized for any datatype except string and xsd:normalizedString before text nodes reach the datatype library and left unchanged for string datatypes.

This is very different if you are applying restrictions to your datatypes.

Consider for instance: element foo {xsd:boolean "true"} and element foo {xsd:string "true"}.

The first one will accept: <foo> true </foo> while the second one will reject it and there is nothing you can do about it because the white spaces are handled before they reach your datatype library.

That’s why I strongly advise, in 99% of the cases, to use token (or xsd:token) instead of string (or xsd:string).

And don’t think that this advise applies only to cases like the preceding example where we have actual « tokens » (such as « true »). The name of the token datatype is very misleading and its lexical space is the same than the lexical space of string. In other words,  » this is a string  » is a valid token (or xsd:token) type. The difference is that if it’s a token datatype , the spaces will be normalized and what will reach the datatype library is « this is a string » .

How are these two questions linked?

The fact that <data/> is meant to be used for data oriented applications while <text/> is meant to be used for document oriented applications reduces the need to ever use the string datatype: if your spaces are meaningful, such as within an HTML <pre/> element, chances are that you’re dealing with a document oriented applications and that you should be using a <text/> pattern. On the other hand, if you are designing a data oriented applications, chances are that spaces are not significant, should better be normalized to be coherent with the other datatypes that you are probably using.

The opportunities to use string or xsd:string datatypes are thus very infrequent.

How do that translate into W3C XML Schema?

A good way to answer the question is to see what James Clark’s converter, trang, thinks about it.

If you convert a pattern such as « element foo {attribute bar {text}, xsd:token} » into W3C XML Schema, you get:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="foo">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:token">
          <xs:attribute name="bar" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
</xs:schema>

Sounds logical: a RELAX NG <data/> pattern is clearly a close match for W3C XML Schema simple types.

Now, what does happen if we convert « element foo {attribute bar {text}, text}« ? We get:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="foo">
    <xs:complexType mixed="true">
      <xs:attribute name="bar" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

And that clearly shows that the semantic of a <text/> pattern is to be a text node that has the potential of becoming mixed content model, or in other words a mixed content without sub elements!

It’s also showing a smart (and probably not used enough) option; for those of us who are using W3C XML Schema, to represent text nodes as mixed content models rather than simple string or token types in document oriented applications.

Is XML 2.0 doomed?

XML 2.0 seems to be becoming the new buzzword and hot topic among many forums.

While I think that XML 1.0 would deserve a certain amount of factoring, I don’t think that XML 2.0 is likely to ever happen nor even that it is something we should wish.

The reasons of the success of XML 1.0 are not that difficult to analyse:

  1. The cost/benefit of developing XML 1.0 applications compared to previous technologies has been generally analysed as highly positive.
  2. XML 1.0 is very near to being the greatest common denominator between the needs of a very wide range of applications, including document and data oriented applications.
  3. XML 1.0 has been proposed by a normalisation body that had the credentials to push such a specification.

I don’t think that this is likely to happen again for XML 2.0:

  1. The unfortunate XML 1.1 recommendation has shown that the cost of the tiniest modification to XML 1.0 is so high that it is difficult to think of a benefit that could compensate this cost. While XML 1.0 is certainly imperfect, the cost of its imperfections isn’t just high enough.
  2. A fairly good consensus on the features supported by XML 1.0 has been possible in a small Working Group working reasonably isolated from the pressure of the lobbies that finance the W3C. All the recent specifications developed under more pressure and hype such as W3C XML Schema, SOAP, WDSL, XPath 2.0, XSLT 2.0, XQuery 1.0 and others show that this not likely to happen any longer and that on the contrary, a XML 2.0 specification would most probably loose the balance that has made XML 1.0 successful.
  3. During the past six years, the W3C has lost a lot of credibility to the point that its most influent participants are now ignoring its most basic recommendations such as XHTML, CSS, SVG, XForms, XLink and many others. This loss of credibility would greatly compromise the success of a XML 2.0 recommendation published by the W3C.

What is likely to happen with XML 2.0 is either a recommendation that is easier ignored by the community at large or much less generic, lightweight and flexible than XML 1.0.

I think I would prefer the first option!

Edd Dumbill on XTech 2005

XTech 2005 presents itself as « the premier European conference for developers and managers working with XML and Web technologies, bringing together the worlds of web development, open source, semantic web and open standards. » Edd Dumbill, XTech 2005 Conference Chair answered our questions about this conference previously known as XML Europe. This interview has been published in French on XMLfr.

vdV: XTech was formally known as XML Europe, what are the motivations for changing its name?

Edd: As the use of XML broadens out beyond traditional core topics, we want to reflect that in the conference. As well as XML, XTech 2005 will cover web development, the semantic web and more. XML’s always been about more than just the core, but we felt that having « XML » in the name made some people feel the conference wasn’t relevant to them. The two new tracks, Browser Technology and Open Data, aren’t strictly about XML topics at all.

vdV: In the new name (XTech), there is no mention of Europe, does that mean that the conference is no longer or less European?

Edd: Not at all! Why should « Europe » be a special case anyway? Even as XML Europe, we’ve always had a fair number of North American speakers and participants. I don’t see anything changing in this regard.

vdV: After a period where every event, product or company tried to embed « XML » in their name, the same events are now removing any reference to XML. How do you analyse this trend?

Edd: It’s a testament to the success of XML. As XML was getting better known, everybody knew it was a good thing and so used it as a sign in their names. Now XML is a basic requirement for many applications, it’s no longer remarkable in that sense.

vdV: How would you compare the 12 different track keys of XML Europe 2004 (ranging from Content Management to Legal through Government and Electronic Busines) and the 4 tracks of XTech 2005 (Core technologies, Applications, Browser technologies and Open data).

Edd: The switch to four clearly defined tracks is intended to help both attendees and speakers. The twelve tracks from before weren’t always easy to schedule in an easy-to-understand way, leading to a « patchwork » programme. Some of the previous tracks only had a handful of sessions in them anyway.

In addition to making the conference easier to understand, we get an opportunity to set the agenda as well as reflect the current practice. Take the new « Open Data » track as an example. There are various areas in which data is being opened up on the internet: political and government (theyrule.net, electoral-vote.com, theyworkforyou.com), cultural ( BBC Creative Archive), scientific and academic (Open Access). Many of the issues in these areas are the same, but there’s never been a forum bringing the various communities together.

vdV: Isn’t there a danger that the new focus on Web technologies becomes a specialisation and reduces that scope?

Edd: I don’t think that’s a danger. In fact, web technology is as much a part of the basic requirement for companies today as XML is, and it’s always been a running theme through the XML Europe conferences.

What we’re doing with the Browser Technology track is reflected the growing importance of decent web and XML-based user interfaces. Practically everybody needs to built web UIs these days, and practically everybody agrees the current situation isn’t much good. We’re bringing together, for the first time, everybody with a major technology offering here: W3C standards implementors, Mozilla, Microsoft. I hope again that new ideas will form, and attendees will get a good sense of the future

landscape.

vdV: Does the new orientation means that some of the people who have enjoyed last XML Europe 2004 might not enjoy XTech 2005?

Edd: No, I don’t think so. In fact, I think they’ll enjoy it more because it will be more relevant to their work. Part of the reasoning in expanding the conference’s remit is the realisation that core XML people are always working with web people, and that any effort to archive or provide public data will heavily involve traditional XML topics. So we’re simply bringing together communities that always work closely anyway, to try and get a more « joined up » conference.

vdV: In these big international conferences, social activities are often as important as the sessions. What are your plans to encourage these activities?

Edd: The first and most important thing is the city, of course! Amsterdam is a great place to go out with other people.

We’ll be having birds-of-a-feather lunch tables, for ad-hoc meetings at lunch time. Additionally, there’ll be dinner sign-up sheets and restaurant suggestions. I’m personally not very keen on having formal evening conference sessions when we’re in such a great city, but I do want a way for people to meet others with common interests.

I’m also thinking about having a conference Wiki, where attendees can self-organise before arriving in Amsterdam.

vdV: Wireless access can play a role in these social activities (people can share their impression in real time using IRC channels, blogs and wikis). Will the conference be covered with wireless?

Edd: I really hope so. The RAI center are in the process of rolling out wireless throughout their facility, but unfortunately haven’t been able to say for sure.

Wireless internet is unfortunately very expensive, and we would need a sponsor to get free wireless throughout the conference. If anybody’s reading this and interested, please get in touch.

vdV: What topics would you absolutely like to see covered?

Edd: I think what I wrote in the track descriptions page at http://www.xtech-conference.org/2005/tracks.asp is a good starting point for this.

vdV: What topics would you prefer to leave away?

Edd: I don’t want to turn any topics away before proposals have been made. All proposed abstracts are blind reviewed by the reviewing team, so there’s a fair chance for everybody.

vdV: What is your best souvenir from the past editions of XML Europe?

Edd: I always love the opening sessions. It’s very gratifying to see all the attendees and to get a great sense of expectation about what will be achieved over the next three days.

vdV: What is your worse souvenir from the past editions of XML Europe?

Edd: The bad snail I ate in Barcelona — the ride over the bumpy road to the airport after the conference was agony!

Nous sommes au bord du gouffre et nous allons faire un grand pas en avant

Le débat entre François Hollande et Jean-Pierre Raffarin hier soir sur RTL a permis de constater une nouvelle fois l’ampleur du consensus autour de la croissance présenté par presque toute la classe politique comme un préalable indispensable pour résoudre tous nos problèmes.

Croissance (source Wikipédia) :
La croissance économique est l’accroissement durable de la production globale d’une économie. C’est donc un phénomène quantitatif que l’on peut mesurer. C’est aussi un phénomène de longue période. En effet, une augmentation brutale et sans lendemain de la production nationale ne correspond pas à la croissance économique. Il ne faut donc pas confondre croissance et expansion, l’expansion caractérisant une hausse de la production d’un pays durant une courte période.

Comment peut-on soutenir que l’accroissement durable de la production soit souhaitable ou même possible?

La notion même d’accroissement durable est incompatible avec la vie dans un espace confiné comme notre planète et nous n’en voyons aucun exemple sur terre.

A chaque crack boursier, les analystes aiment à rappeler que « les arbres ne poussent pas jusqu’au ciel ». Doit on attendre un grand crack écologique autrement plus dévastateur pour appliquer ce proverbe à la croissance économique?

Comment peut-on se dire sensible aux problèmes de l’environnement et présenter la croissance comme un objectif en soi et un préalable à la recherche d’une meilleure justice sociale?

Alors qu’accoler deux mots incompatibles comme « développement » et « durable » semble suffire à nos dirigeants actuels ou potentiels pour se donner bonne conscience, la seule solution durable est au contraire de préparer la décroissance, c’est à dire une « diminution durable » de notre production.

Pourquoi cherche t-on tant à occulter ce débat?