Archives pour la catégorie Architecture

Plone as a semantic aggregator

Here is an output of my imagination (no code, sorry, just a speech) : what if a CMS such as Plone could be turned into a universal content aggregator. It would become able to retrieve any properly packaged content/data from the Web and import it so that it can be reused, enhanced, and processed with the help of Plone content management features. As a universal content aggregator, it would be able to « import » (or « aggregate ») any content whatever its structure and semantic may be. Buzzwords ahead : Plone would be a schema-agnostic aggregator. It would be a semantic-enabled aggretor

Example : On site A, beer-lovers gather. Site A’s webmaster has setup a specific data schema for the description of beers, beer flabours, beer makers, beer drinkers, and so on. Since site A is rich in terms of content and its community of users is enthusiastic, plenty of beers have been described there. Then site B, powered by a semantic aggregator (and CMS), is interested in any data regarding beverages and beverages impact on human’s health. So site B retrieves beer data from site A. In fact it retrieves both the description of beer1, beer2, beerdrinker1, … and the description of what a beer is, how data is structured when it describes a beer, what the relationship is between a beer and a beer drinker. So site B now knows many things about beer in general (data structure = schema) and many beers specifically (beers data). All this beer data on site B is presented and handled as specific content types. Site B’s users are now able to handle beer descriptions as content items, to process them through workflows, to rate them, to blog on them, and so on. And finallly to republish site B’s own output in such a way it can be aggregated again from other sites. That would be the definitive birth of the semantic web !

There are many news aggregators (RSSBandit, …) that know how to retrieve news items from remote sites. But they are only able to aggregate news data. They only know one possible schema for retrievable data : the structure of a news item (a title + a link + a description + a date + …). This schema is specified in the (many) RSS standard(s).

But now that CMS such as Plone are equipped with schema management engines (called « Archetypes » for Plone), they are able to learn new data schema specified in XML files. Currently, Plone’s archetypes is able to import any schema specified in the form of an XMI file output by any UML modelizing editor.

But XMI files are not that common on the Web. And the W3C published some information showing that any UML schema (class diagram I mean) is the equivalent of an RDF-S schema. And there even is a testbed converter from RDF-S to XMI. And there even are web directories inventoring existing RDF schemas as RDF-S files. Plus RSS 1.0 is based on RDF. Plus Atom designers designed it in such a way it is easily converted to RDF.

So here is my easy speech (no code) : let’s build an RDF aggregator product from Plone. This product would retrieve any RDF file from any web site. (It would store it in the Plone’s triplestore called ROPE for instance). It would then retrieve the associated RDF-S file (and store it in the same triplestore). It would convert it to an XMI file and import it as an Archetypes content type with the help of the ArchGenXML feature. Then it would import the RDF data as AT items conforming to the newly created AT content type. Here is a diagram summarizing this : Plone as a semantic aggregator

By the way, Gillou (from Ingeniweb) did not wait for my imagination output to propose a similar project. He called it ATXChange. The only differences I see between his proposal and what is said above are, first, that Gillou might not be aware about RDF and RDF-S capabilities (so he might end with a Archetypes-specific aggregator inputting and outputting content to and from Plone sites only) and that Gillou must be able to provide code sooner or later whereas I may not be !

Last but not least : wordpress is somewhat going in the same direction. The semweb community is manifesting some interest in WP structured blogging features. And some plugins are appearing that try to incorporate more RDF features in WP (see also seeAlso).

Is the Semantic Web stratospheric enough ?

Did you think the Semantic Web is a stratospheric concept for people smoking too many HTTP connections ? If so, don’t even try to understand what Pierre Levy is intending to do. He and the associatied network of people say they are preparing the next step after the Semantic Web. Well… In fact, I even heard Pierre Levy saying he is preparing the next step in the evolution of mankind, so this is not such a surprise. The worst point in this story is that his ambitious work may be extremely relevant and insightful for all of us, mortals. :)

Mathemagenic: learning and KM insights – Thursday, June 10, 2004

Voici une explication illustrée des usages de ces outils qu’on appelle les blogs ou carnets Web (via Outils Froids du Web). En dehors du fond très juste de ces illustrations, je trouve que leur forme permet de manière élégante d’appréhender des usages technologiques. L’outil, c’est bien. Mais ce sont les usages que chacun batît autour qui en font une technologie.
(Oh ! ben tiens, j’ai réussi à publier un message sur mon carnet entre deux biberons ! auto-félicitation !) :)

Maturité des technos XML

01 Informatique a publié un état de l’art très synthétique au sujet des technologies XML. Chaque technologie présentée est qualifiée selon son degré de maturité. Et les seules technologies XML à avoir atteint le degré de maturité maximal sont les suivantes :

  • Les techniques de base : DOM, Unicode, XML, XML Namespaces, XLink, SAX, XML Schema/DTD, XLM Encryption, XML Signature, XPath 1.0, XSL et XSLT
  • La publication multicanal : CSS, VoiceXML, SMIL, SVG, XHTML, WML, MathML
  • Les services Web : le style REST, DSML (je ne suis pas sûr que la place de DSML soit vraiment dans la catégorie « services Web » mais enfin bon… pourquoi pas ?) et XML-RPC
  • Les échanges électroniques (B2B) : ICE
  • Le web sémantique : Dublin Core, RSS 1.0, RDF

Autrement dit, si vous envisagez d’appuyer une architecture informatique sur une technologie XML qui n’est pas dans cette liste, sachez que vous faites un choix technologique risqué car non éprouvé ! A vos risques et périls…

Clever Age – Le point sur l’interopérabilité J2EE, .NET et PHP

Clever Age a publié dans sa newsletter une excellente et didactique synthèse sur l’interopérabilité J2EE, .NET et PHP. J’en retiens les leçons suivantes :

  • Pour l’intéropérabilité, le couplage lâche c’est LE principe qu’il faut adopter
  • Les services web basés sur la pile de technologies liées à SOAP, c’est pas mal pour faire du couplage lâche
  • Mais les services web basés sur la technologie XML-RPC ou les services Web de style REST (quelle que soit la techno utilisée), c’est encore mieux car
    1. plus simple
    2. une pratique plus répandue
    3. ça apporte moins de contraintes techniques inutiles (infrastructure, compétences, …)

J’ajouterais que les services Web de style REST offrent un couplage non seulement encore plus lâche (modularité du S.I.) mais également encore plus tardif : inutile, au moment de la conception de vos services Web, de faire des hypothèses sur l’usage qui en sera fait dans le futur, le style REST vous garantit leur intégrabilité future.

La différence essentielle entre le style REST et le style RPC (XML-RPC ou pile SOAP), c’est que le style REST permet l’intégration spontanée (non planifiée centralement) de services alors que la pile SOAP suppose une planification plus centralisée des projets d’intégrations de services à travers la négociation et la spécification de contrats entre fournisseurs et consommateurs de services (et qui dit contrat dit « une certe forme de codification » et donc une certaine perte de flexibilité pour le futur).

Ma conclusion : l’approche REST est plus adaptée aux organisations qui sont elles-mêmes faiblement couplées. Autrement dit : pour faire du SOA sur SOAP, il faut réunir toutes les parties prenantes et établir des contrats de services spécifiques et peu évolutifs ; conséquence : faites du SOAP dans une organisation non centralisée et vous vous retrouverez dans une situation similaire à celle dont se lamentait Reinout Van Rees, une situation qui conduit à l’échec ou au moins au gaspillage d’efforts. Posez-vous plutôt la question :

  • Vous vivez dans une cathédrale ? Alors vous pouvez vous contenter du couplage relativement faible offert par SOAP mais vous vous encombrez toute de même de contraintes inutiles
  • Vous vivez dans un bazar (« bordel organisé » disait Fred ?) ? Alors il vous faut du couplage extrêmement lâche et tardif. Et l’interopérabilité des composants du bazar passe alors par la simplicité et le caractère « future-proof » de REST.

Au bout d’un moment, j’ai l’impression de me répéter à force de ressasser les mêmes choses sur REST. Mais j’espère que d’un billet à l’autre, mes idées sur le sujet gagnent en clarté (au moins dans ma tête). Et les vôtres ?

Présentation du Web Sémantique

Voici une esquisse de plan de présentation des technologies du Web Sémantique pour un public (francophone) d’informaticiens de grandes entreprises :

Des carnets Web au web sémantique

Sebastien Paquet évoque l’évolution future des carnets Web et l’émergence du « structured blogging ». L’idée est la suivante : plus l’activité des carnettiers va gagner en maturité, plus le format habituel des carnets et de RSS (titre + URL + texte) paraîtra limité et insuffisant, plus les outils de la chaîne de carnettage (weblog + aggrégateurs) vont prendre en compte des types de contenu structurés plus complexes. Et il n’y a qu’un pas (voire aucun) entre le « structured blogging » et le web sémantique. Dans ce contexte, les moteurs de gestion de schéma de contenu tels que Archetypes de Plone (ou CPSSchema de CPS ou encore des moteurs de gestion d’ontologie tels que Mondeca et autres AM2 Systems) auront un rôle clef à jouer puisque des plate-formes équipées de tels moteurs pourront servir au carnettage structuré sous toutes ses formes !

Miam, miam, les années qui viennent nous promettent des inventions fichtrement intéressantes ! Et la vision du Web Sémantique commence à prendre forme.

Carnets Web d’entreprise : l’exemple R.H.

Ce carnet Web tenu à jour par deux responsables R.H. en recrutement, de chez Microsoft, est un très bon exemple de carnet Web d’entreprise. Ce qu’apportent ces carnets à Microsoft : un lien d’animation avec la communautés des candidats à l’embauche chez Microsoft, une manière d’optimiser le processus de recrutement (les candidats postulent en étant tous mieux préparés), une meilleure lisibilité de la politique d’embauche de Microsoft, l’image d’une entreprise à visage humain. Il y a sans doute d’autres avantages fournis par les carnets Web pour soutenir la fonction R.H. de recrutement des grandes entreprises. Je vous laisse imaginer (et laisser vos idées éventuelles ici pour que tout le monde en profite !).

La différence entre « knowledge management » et « content management »

CMSWatch signale un excellent article qui parvient en quelques lignes non seulement à définir la différence entre gestion des connaissances et gestion de contenu mais également à résumer de manière très juste les pratiques actuelles dans ces deux domaines.

Mon intérêt personnel réside certes dans le domaine de la gestion des connaissances au sens large présenté dans cet article, mais le vrai potentiel de ce domaine me semble résider dans les pratiques (méthodes) et outils (émergents) d’ingénierie des connaissances. D’où mon intérêt pour le Web Sémantique…

Retours d’expérience sur les CMS

Un groupe d’une soixantaine d’ « architectes en information » a partagé, début 2003, ses retours d’expérience sur l’implémentation de systèmes de gestion de contenu. Leurs principales conclusions, à l’époque : les CMS sont trop chers, trop long à personnaliser, et ne sont trop fermés (difficulté pour reprendre du contenu existant par exemple).

WordPress is going semantic (a little bit)…

WordPress, the famous weblog engine (powering this site), is getting equipped (in its CVS HEAD version) with a new feature allowing webloggers to post small pieces of metadata (pairs of key + value) with each one of their blog entries. WordPress is going the same way Charles Nepote went with his semantic wiki prototype. We won’t wait a long time before someone comes with a real semantic bloki. It must be a matter of months.

By the way, Archetypes is a new masterpiece of Plone and its references management engine allows the weaving of semantic relationships inbetween Content objects. It just lacks the ability to publish its schema and data as RDF files through Plone URLs… Anyway, Archetypes should soon provide the ability to extend objects schemas at runtime through the web. It means users will be able to add metadata to objects. These features can already be tested with PloneCollectorNG in its latest version (test the CVS version if you can).

Mon papa découvre RSSBandit

Mon papa aime bien découper des articles dans la presse. Je suppose qu’il sera intéressé par l’utilisation d’un agrégateur d’actualités. Le meilleur agrégateur open source pour Windows, à ce jour, me semble être RSSBandit. Inconvénients principaux de RSSBandit : il contient encore au moins quelques bugs énervants ; et il nécessite l’installation du framework .Net sur le poste de travail ! Mais bon, ceci accepté, voici donc les infos que je donne à mon papa pour qu’il apprenne à utiliser RSSBandit.
Tu peux faire plusieurs choses avec le pirate :
1/ LIRE les actualités : il suffit de cliquer sur le titre des sources d’actualité (newsfeed) exemple : « Liberation, politique internationale » puis de cliquer sur chaque actualité ; lorsqu’une actualité est lue, elle change de couleur (passage de gras à non-gras) ; ainsi tu sais ce que tu as déjà lu et ce que tu n’as pas encore lu.
2/ ORGANISER les actualités : tu peux ranger les sources d’actualité en rubriques et sous-rubriques (dossiers et sous-dossier). Pour cela, il faut cliquer bouton droit sur le dossier parent et lui dire de créer un sous-dossier. Ensuite tu fais glisser ta source d’actu vers ce nouveau sous-dossier.
Tu peux ainsi créer une arborescence thématique (le dossier « politique » contiendrait le sous-dossier « politique internationale » qui contiendrait par exemple la source d’actu « Libe, politique internationale »).
Tu peux préférer organiser d’abord tes rubriques par langue : un dossier pour toutes les sources en français et un autre pour tout ce qui est en anglais. Mais cela est déconseillé car peu pratique.
Mais le nec plus ultra, c’est de commencer simplement par un créer une liste de dossiers vides numéroté de 095 (avec un zero devant, c’est mieux) à 105. Ensuite tu mets toutes tes sources d’actualité dans le dossier 100. Et, chaque jour, tu viens parcourir les nouvelles actualités. Les sources qui te semblent peu intéressantes, tu les mets dans un dossier inférieur (tu fais passer « Libe, politique internationale » de 100 vers 099 par exemple). Et, inversement, les sources qui te semblent mériter plus d’attention de ta part, tu les mets vers 101. Les jours suivants, tu gardes la même règle à l’esprit : lorsqu’une source est intéressante, je la monte d’un dossier ; lorsqu’elle ne donne rien d’intéressant ce jour-là, je la fais descendre d’un cran. Ainsi, au bout de quelques jours, tu auras classé tes sources par ordre croissant d’attention qu’elles méritent. Ainsi, tu pourras à l’avenir ne lire souvent que les sources dans les dossiers méritant beaucoup d’attention (104, 105, …) et ne vérifier les actus des sources moins intéressantes (dossiers 097, 098, …) que moins souvent.
Tu peux décider de supprimer des sources en cliquant bouton droit dessus puis Delete news feed.
3/ AJOUTER de nouvelles sources
Chaque sources d’actualité est identifiée par une adresse Web. Exemple : la source « AkaSig » a pour adresse Web http://sig.levillage.org/wp-rdf.php En effet, c’est une source qui est publiée à cette adresse sur mon site Web perso.
Ajouter une nouvelle source implique donc que tu trouves des adresses Web de sources d’actualité puis que tu demandes à RSSBandit d’ajouter cette source dans sa liste (puis tu la mets dans le dossier/rubrique que tu veux). Demander à RSSBandit d’ajouter une source, c’est facile : il faut cliquer sur le bouton « New Feed » de sa barre de bouton puis saisir (copier-coller) l’adresse Web de la source que tu veux ajouter. Et RSSBandit fait le reste (y compris, généralement, trouver automatiquement le titre de la source).
La partie « difficile » consiste à trouver des sources d’actualité qui t’intéressent. Pour cela, le mieux est de faire une recherche classique dans Google sur un thème qui t’intéresse, en ajoutant « filetype:rdf » ou « inurl:rdf » ou encore « filetype:rss » comme mot-clef de ta recherche (sans les guillemets). En retour, Google te propose des adresses Web qui contiennent des sources d’actualité que tu peux ensuite ajouter dans RSSBandit. Exemple : chercher « inurl:rdf politique » te donne comme sources possibles l’adresse de plusieurs carnets Web célèbres qui commentent l’actualité politique et constituent donc eux-même des sources.
4/ METTRE des mots-clefs sous surveillance
Tu peux demander à RSSBandit de créer un genre de source virtuelle dans laquelle il va recenser toutes les actualités de tes sources dans lesquelles il aura repéré un mot-clef donné. C’est comme si tu demandait à RSSBandit de lancer automatiquement une recherche, parmi les actus dont il dispose, sur un mot-clef donné à chaque fois que tu l’utilises. Pour ce faire, il faut ajouter un nouveau mot-clef dans la partie en bas à gauche de l’écran. Je ne me souviens plus comment ça s’appelle à l’écran car je viens d’être obligé de désinstaller RSSBandit sur mon poste. Donc je t’en dirai plus plus tard à ce sujet.
5/ METTRE des sources sous surveillance
Tu peux demander à RSSBandit de t’afficher un genre de popup dès qu’une certaine source contient de nouvelles actualités. Pour ce faire, tu cliques bouton droit sur la source que tu veux mettre sous surveillance, tu vas dans propriétés de la source puis tu coches une case qui te dit « afficher une popup window lors de l’arrivée de nouveaux items » (ou alert window je ne sais plus).
Voila, voila… Bonne agrégation.

Why are there three versions of the Web Ontology Language (OWL) ?

The Web Ontology Language (OWL maybe because some non English speaker must have mixed the letters…) exists in three different versions :

  • OWL Lite expresses constraints on and properties of an RDF schema, such as transitivity (if R1 > P1 > R2 and R2 > P2 > R3 then R1 > P3 > R3), and simple min and max cardinality properties of an RDF property (the values of theses cardinality properties can be 0, 1 or illimited).
  • OWL DL expresses « first order descriptive logic » constraints on medata (such as if R1 > P1 > R2 then R1 > P2 > R3), this is much broader as OWL Lite
  • OWL Full enables the specification of generic inference engines but it is still seen by some as a curiosity artefact for researchers

This is my very limited understand of the OWL topic. Please someone correct me if I am wrong (you can do it in French if you want !) !

XML.com: The Beauty of REST [Mar. 17, 2004]

Jon Udell nous raconte par l’exemple comment le style architectural REST permet d’intégrer des catalogues de bibliothèques de manière fluide et peu coûteuse (à l’aide de services Web qui n’impose pas nécessairement l’utilisation de briques logicielles supplémentaires pour gérer les protocoles SOAP, WSDL et UDDI). S’il est encore nécessaire de vous apprendre ce qu’est le style architectural REST, ne retenez qu’une seule adresse, celle du site du très RESTafarian Roger Costello.

Architectures orientées services (SOA) selon l’approche REST

Voici quelques liens intéressants pour celui qui veut comprendre ce que l’approche REST peut apporter aux architectures orientées services (SOA) , que ce soit avec ou sans l’utilisation des protocoles SOAP et/ou WSDL (on peut faire une architecture orientée services de style REST avec SOAP et WSDL, même si j’ai du mal à voir l’intérêt que cela représenterait) :

Marché du Knowledge Management

En rapport avec mon mouton à sept pattes, voici un genre d’aperçu des acteurs du marché du knowledge management vu par le petit bout de ma petite lorgnette :

  • des consultants unp eu visionnaires (ou fumeurs) en KM/intelligence économique/e-learning/veille/capitalisation des connaissances/animation de communautés de pratique pour l’innovation/gestion des compétences/… qui vendent des concepts généraux, des démarches d’animation, des grands projets, et quelques réalisations à travers des micro-éditeurs de niche
  • des micro-éditeurs de niche qui ont bien compris les fonctionnalités à offrir car ils maîtrisent la problématique KM mais n’ont pas les moyens de construire du durable car ils ne sont pas du métier de l’informatique
  • des gros éditeurs qui collent une étiquette KM sur des produits de GED/Workflow/Content Management mais l’étiquette a tendance à se décoller car elle est trop pompeuse pour la réalité de leurs produits
  • des architectes et intégrateurs qui maîtrisent la fonctionnalité informatique mais ne disposent pas encore des technologies informatiques nécessaires (web sémantique) pour réaliser les promesses du KM
  • des sociétés de services en logiciels libres qui essaient de combiner technologies matures et visions fonctionnelles mais qui ont du mal à y ajouter technologies émergentes et vision KM à long terme
  • Que manque-t-il pour compléter le tableau ?