Scalable Distributed Reasoning using MapReduce Jacopo Urbani, Spyros Kotoulas, Eyal Oren, et Frank van Harmelen Department of Computer Science, Vrije Universiteit Amsterdam, the Netherlands International Semantic Web Conference, 2009 Présenté par Fabrizio Gotti Pour le cours Ift6281 Université de Montréal 22 mars 2011
Contexte l Les triplets RDF de grands dépôts se comptent par centaines de millions 110 M 175 M 446 M l Après inférences complètes par un raisonneur, ils se comptent par plusieurs dizaines de milliards 2
Un raisonneur RDF l Un raisonneur RDF applique les règles d inférence awin de calculer la fermeture d un graphe RDF Triplets antécédents Triplets inférés l Application répétée : algorithme de point Wixe 3
Proposition des auteurs l Les approches traditionnelles de raisonnement sont centralisées l Extensibilité limitée à l amélioration du matériel l But de l étude : implémenter un raisonneur RDF l Distribué sur une grappe de calcul l Extensible par ajout d ordinateurs l À l aide du framework MapReduce l Testé sur 865 M de RDF en entrée, 10 G en sortie 4
Le framework de calcul distribué MapReduce l Une opération Map associe à une entrée des paires <clé, valeur> l Les données sont partitionnées par clé et distribuées sur les nœuds de calcul l Une opération Reduce combine les valeurs partageant la même clé, et produit un résultat 5
Exemple : compter les ressources d un graphe RDF 6
Un raisonneur RDF avec MapReduce l Les règles avec un antécédent : trivial 4a : s p o s rdf:type rdfs:resource l Les règles avec deux antécédents : la clé de regroupement est la resource commune 9 : s rdf:type x & x rdfs:subclassof y s rdf:type y 7
Une première approche naïve de MapReduce l Application naïve des règles une après l autre l Mais une règle produit en sortie des triplets utilisés en entrée par d autres règles l Une seule passe ne sufwit pas : algo du point Wixe l Très inefmicace : duplicatas dans les triplets dérivés et itérations multiples coûteuses l Test sur les triplets de l ensemble de RDF «Falcon» l 35 M triplets 50 G triplets après 40 minutes (50 fois le nombre attendu) 8
Trois astuces pour un raisonnement efmicace avec MapReduce 1. Chargement en mémoire des triplets du schéma l Triplets rdfs: représentent < 0,5 % des données l Utilisés dans les règles à plus d un antécédent l Chargés en mémoire sur tous les nœuds plutôt que distribués par MapReduce 2. Conception des fonctions MapReduce pour l l Éviter les triplets dupliqués Favoriser une bonne répartition de la charge 9
Trois astuces pour un raisonnement efmicace avec MapReduce 3. Ordonner l application des règles d inférence Règle 12 Type ContainerMember Règle 13 Type Datatype Règle 9 Héritage de sous-classe Règle 11 Transitivité de sous-classe Règle 2 Domaine de propriété Règle 3 Portée de propriété Règle 7 Héritage des sous-prop. Règle 5 Transitivité des sous-prop. 10
Schéma d ensemble 11
Expériences de calcul de fermeture l Données issues du Billion Triple Challenge 2008 l Hadoop sur 64 ordinateurs avec 4 Go de RAM l Omission des règles avec un seul antécédent Données Nb RDF en entrée (M) Nb RDF en sortie (M) Ratio Sortie/ entrée t moyen (min) Wordnet 2 5 3 3 Falcon 33 864 26 4 Swoogle 79 1500 19 7 DBpedia 150 172 1 5 Données du Challenge* 865 30 000 35 57 *4,27 M triplets/s (record) 12
Répartition du temps de raisonnement l Répartition du temps de raisonnement (32 nœuds) Règle 9 s rdf:type x & x rdfs:subclassof y s rdf:type y 13
Extensibilité en fonction du nombre de nœuds l Exemple pour les données Falcon 1 nœud : 3120 s 16 nœuds : 320 s 32 nœuds : 229 s 64 nœuds : 216 s 14
Conclusions l Les auteurs ont atteint leur but : un raisonneur distribué, extensible aux performances inégalées l Cela requiert plusieurs astuces l Voies futures : un raisonneur OWL l l l Premières expériences décevantes dans cet article Réussite plus tard, par les mêmes auteurs OWL Reasoning with WebPIE: Calculating the Closure of 100 Billion Triples (European Semantic Web Symposium / Conference - ESWS, 2010) 15
Merci