APIs Web, Screen Scraping et web sémantique

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

== NB. Ce post est hors-sujet ==

Bonjour,

  • On trouve énormément d'informations sur le web, mais elles sont polluées (spam), de mauvaise qualité (incomplètes, périmées, fausses...), ou éclatées sur une myriade de sites différents.

  • Grâce aux API Web, aux flux RSS et au screen scraping, il est possible de récupérer ces informations et de les combiner pour leur donner un sens (web sémantique).

  • Ces informations acquièrent alors une valeur qui peut être exploitée de plusieurs façons : publication du contenu et monétisation grâce à la pub (AdSense), création d'une communauté autour du contenu, service de veille techno...

Quelques exemples d'applications :

  • Vous êtes fan de Céline Dion ? (ça arrive...) Une page simple vous présente une minibio, quelques photos, les dates de ses prochains passages TV/radio en France, la parodie de Florence Foresti (vidéo YouTube)... Vous pouvez mettre en place une alerte pour être averti par e-mail de tout nouvel événement la concernant (par ex : une séance de dédicaces dans la FNAC la plus proche de chez vous).

  • Vous ne savez pas quoi regarder à la TV ce soir ? Une page simple vous présente l'ensemble des émissions du soir avec les notes attribuées par chaque magazine TV. Pour les films, une note moyenne est calculée à partir des évaluations des principaux sites de ciné (Allocine, Imdb...).

  • Vous aimeriez vous faire une sortie ce week-end ? Une page simple vous présente les événements culturels qui ont lieu à moins de 5 km de chez vous, classés par popularité.

Les idées ne manquent pas et Drupal constituerait un excellent socle technique pour les implémenter. J'aimerais en discuter avec des personnes intéressées.

Vincent

PS. Un bon exemple d'implémentation de cette idée appliquée au eCommerce :
http://www.wikio.fr/produit/hp-3995.html
(une page simple qui synthétise tous les tests, avis, news, vidéos... sur un produit)

Salut Vincent,
Content de te revoir de retour surtout avec de tres bonnes idees ;)
Personnelement je n'ai pour le moment pas vraiment d'idee qt a l'implementation d'un tel site, mais je pense que bcp d'outils sont a notre disposition dans drupal.
Cela m'a refait penser a qques sites vus recemment:
http://mydrupalblog.lhmdesign.com/theming-drupals-vote-down-module
http://www.masteringdrupal.com/screencast/social-bookmarking-with-Drupal

Le principal pour la reussite d'un tel site (et ce qu'a fait wikio) est de rechercher des sources de contenus de qualite et de les aggreger.
Ceci devrait etre fait facilement pour les niouses via des modules comme aggregator ou autres (FeedAPI pour ne nommer que lui). Par contre dans le cas precis de services/produits, la j'avoue que je seche un petit peu...
Le probleme est que je me demande bien comment aller chercher un produit en particulier sur un site d'ecommerce... Je suis sur qu'il existe des solutions sinon kelkoo & co n'auraient jamais existes, par contre je ne vois pas trop comment faire (et encore moins dans Drupal) mais ca doit etre surement tres interessant a rechercher.

Une fois le contenu aggrege, le reste se fera a grand coups de views, de vote sur les articles, de critiques/tests lies directements aux articles.

Bref si l'idee n'est pas forcement nouvelle (au moins pour les produits a vendre) elle est diablement interessante qt a sa mise en oeuvre via Drupal.

Un ti projet qui te demange ?

PS: c'est pas du tout hors sujet de parler des applications potentielles de Drupal.

PPS: je viens de me souvenir d'un module qui m'intrigue et qu'il faut que j'explore un peu plus: Content Recommendation Engine ca pourrait etre pas mal pour suggerer des contenus/produits qui pourraient plaire a un utilisateur en fonction de son historique de navigation.

Ton point de vue est bigrement interessant drupalfrance.
Seulement, je ne suis que débutant dans drupal et ma réponse ne sera-t-elle que partielle à tes intérêts. ( je ne suis pas codeur, je ne m'exprime qu'en bash ).
Pourtant, l'intérêt que tu portes au web sémantique est éminemment intéressant même si je n'y mets pas la même définition.
Le web sémantique est l'avenir de toute intéraction d'un utilisateur lambda ( ce n'est pas péjoratif ) avec l'objet de sa requête. Le web sémantique se résume à anticipation et intéraction avec le demandeur. ( ce qui correspond à pertinence et exhaustivité avec le demandeur).
Et d'après ce que j'ai pu voir de Drupal, cette exigence n'est que pure formalité.
J'imagine que tu parles en codeur et que tu veux considérer comme nodes les flux RSS et les commentaires de sites tiers.En faisant abstraction des droits attachés aux contenus desdits sites, il serait bien sûr possible d'agréger ces contenus et d'en faire une description pertinente d'un objet. C' est ce que moi, en tant qu'internaute je demande.
Mais, je le répète, tout cela se confronte à une histoire de droits.
Est-il vraiment pratiquable de négocier les contenus d'autres sites (votes commentaires,...) sans avoir à en payer le prix?
L'interrogation est nécessaire, la réponse est pécuniaire.

Hello,

Merci de vos réponses.

Il y a plusieurs points à considérer :

Drupal comme plateforme

Autant Drupal est adapté comme plateforme de diffusion de contenus remixés (ou autres), autant je ne pense pas que ça soit un bon outil de parsing/scraping/agrégation.

D'abord, parce que PHP n'est pas le langage le plus performant en terme d'analyse de texte (Perl et Python s'en sortent mieux). Ensuite, parce que les modules Drupal disponibles dans ce domaine ne sont pas forcément au point : j'ai tenté d'utiliser feedAPI sur un projet avec une grosse volumétrie de flux RSS - qq milliers de flux, et donc qq millions d'items dans ces flux - et ça ne tenait pas la charge.

Sources de contenu

Je rejoins cpt tostinni, il faut que la source soit de bonne qualité.

Cela dit, on se heurte ici rapidement à 2 problèmes :

1) La sémantique : comment savoir que le produit A sur le site A est le même que le produit B sur le site B ? comment savoir qu'une portion de texte contient une adresse, un numéro de téléphone, un prix ?...

Ici, plusieurs solutions : se baser sur le markup HTML de la page pour donner du sens au contenu ("tous les chiffres apparaissant dans la balise <bold>...</bold> sont des prix en euros"), ou utiliser une main d'oeuvre pas cher pour saisir et classer le contenu (c'est ce que font les moteurs de comparaison de prix).

2) Le droit d'auteur : a-t-on le droit de réutiliser le contenu d'autres sites sans leur autorisation ?

Je dirais que ça dépend. Le "Fair Use" autorise les citations dans certaines circonstances. Par ailleurs, il est parfois difficile d'identifier un propriétaire officiel (ou un auteur) pour certains données : si on prend les films, Allociné n'est pas propriétaire des données factuelles concernant un film (titre, réalisateur, acteurs...), les Pages Jaunes ne sont pas propriétaires des adresses des entreprises, Tele7Jours n'est pas propriétaires des programmes TV...

Ca ne veut pas dire pour autant qu'il est possible de remixer les contenus de ces sites impunément (après tout, cela représente une effort et un coût de référencer ces informations, et les sites ci-dessus sont assurément propriétaires de leurs bases de données), mais les informations en elles-mêmes existent indépendamment de ces sites et sont publiques.

En revanche, certaines informations sont clairement la valeur ajoutée (et l'exclusivité) de certains sites : pour Allociné, le résumé des films, les évaluations, les commentaires des utilisateurs ; pour les Pages Jaunes, la description, le logo et parfois la vidéo de chaque société...

Dans ce cas, il paraît difficile de remixer ces informations sans accord préalable.

Domaines d'application

Le remixage est déjà abondamment employé dans le eCommerce (c'est ce que font tous les moteurs de comparaison de prix). C'est le domaine où le bénéfice paraît le plus évident : les marchands laissent les développeurs remixer leur contenu dans l'espoir de vendre plus via l'affiliation, ils ont donc intérêt à favoriser la démarche.

Comme ce secteur est déjà bien encombré, il semble plus judicieux de s'orienter vers un secteur moins concurrentiel.

Lequel ?
C'était justement l'objet de ce post d'en discuter. :)


Le droit d'auteur : a-t-on le droit de réutiliser le contenu d'autres sites sans leur autorisation ?

Je dirais que ça dépend. Le "Fair Use" autorise les citations dans certaines circonstances. Par ailleurs, il est parfois difficile d'identifier un propriétaire officiel (ou un auteur) pour certains données : si on prend les films, Allociné n'est pas propriétaire des données factuelles concernant un film (titre, réalisateur, acteurs...), les Pages Jaunes ne sont pas propriétaires des adresses des entreprises, Tele7Jours n'est pas propriétaires des programmes TV...

Effectivement, ces sites ne sont pas propriétaires des informations unitaires qu'ils regroupent (sauf celles qu'ils ont eux même créés, évidemment), mais sont propriétaires de la base de données dans son ensemble, comme définie dans le Code de la propriété intellectuelle article L.341-1 et suivants:


Le producteur d'une base de données, entendu comme la personne qui prend l'initiative et le risque des investissements correspondants, bénéficie d'une protection du contenu de la base lorsque la constitution, la vérification ou la présentation de celui-ci atteste d'un investissement financier, matériel ou humain substantiel.
Cette protection est indépendante et s'exerce sans préjudice de celles résultant du droit d'auteur ou d'un autre droit sur la base de données ou un de ses éléments constitutifs.

Damien