mercredi 4 avril 2012

7 Questions à se poser avant de se lancer...

Voici un article sympathique intitulé : "What Makes a Good Semantic Web Application?"

On y trouve notamment une liste de 7 questions qui nous aident à déterminer si les technos du web sémantique sont nos amis pour notre future application...

Les voici :
  • Does your use case involve documents and other forms of unstructured data?
  • Do you expect to add more kinds of data in the future?
  • Do you expect to add more views on the data in the future?
  • Do you expect to expand your application to require more kinds of users in the future?
  • Is the data scale less than petabytes?
  • Is the transaction volume modest? (e.g., hundreds versus tens of thousands of users)
  • Does your application require only modest numeric calculations?
Nous avons aussi quelques avertissements sur ce que ces technos ne sont pas (encore?) capable de faire, notamment le fait que les TripleStores actuel ne sont pas vraiment efficace pour des écritures massive.  Pour ma part je n'en connais qu'un seul (virtuoso) et sur cette question d'écriture massive voici ce que je peux en dire :
  • si les URI ne sont pas trop aléatoire (http://home/resource[X] avec X une suite croissante d'entier), il n'y a pas de problème pour les insertions en masse.
  • si les URI sont trés aléatoire (http://home/resource[X] avec X une valeur aléaoire comme un UUID), il y a rapidement des problèmes au moment du checkpoint de la base et ceci même si elle contient peu de données.  Le checkpoint passe définitivement toutes les informations du journal dans la base, ce qui cause probablement un rééquilibrage plus complex de l'arbre d'index dans le cas de données aléatoires.  Par problème, j'entends des temps de chekpoint supérieur à 5minutes pendant lesquelles la quasi totalité des requêtes échouent.
  • pour finir, jusqu'à la version 6.1.3, virtuoso ne supportait pas très bien les transactions distribuées (JTA ou XA transaction). Elles avaient pour facheuse tendance à affoler le serveur (CPU qui plafonne à 100% et qui ne redescent pas avec parfois quelques crash virtuoso). Je ne sais pas ce que donne la gestion de ces transactions pour les versions supérieures (la 6.1.5 est sortie récemment).

Pour ce qui est de la quantité de données gérée par les TripleStore,
voici un lien qui pourra vous apporter des idées. On peut y lire que Virtuoso peut aller jusqu'à 15 milliard de triples en mode cluster qui n'est pas, selon moi, disponible dans la version opensource. Une version "simple" d'un virtuoso opensource edition 6.1.3 dépasse sans problème le milliard de triples avec des temps de réponses en sélection qui se comptent en ms avec les Bitmap Index appropriés (soit une table de 500 millions d'éléments en SGBDR).
On peut y voir d'autres triplestores dont :
  • Mulgara qui ne gére que 500 million de triples (une table SGBDR de 150-200 million de lignes). Cela me paraît peu comparé à Virtuoso mais on m'en a dit du bien récemment... 
  • 4Store qui gére 15 milliards de triples en mode cluster qui est disponible de base dans cet outil sous licence GPLv3.
J'èspère avoir la possiblité de tester ces deux alternative à virtuoso...
En espérant que ces quelques informations vous seront utiles...


Aucun commentaire:

Enregistrer un commentaire