Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Le Challenge Semantique

Le Challenge Semantique

Présentation faites à l'Apéro PHP dans sa version courte.

Alexandre Balmes

July 22, 2014
Tweet

More Decks by Alexandre Balmes

Other Decks in Technology

Transcript

  1. La Blackroom 2 Alexandre BALMES twitter.com/pockystar github.com/pocky ! Chef de

    projet Développeur <3 Symfony Mon parcours 2001 - Au revoir le lycée 2003 - CAP d’électricien dans le BTP 2005 - Technicien Supérieur Informatique (BTS) 2005 - Bonjour Web 2006 - Bonjour Intégration (et la sémantique) 2008 - Bonjour PHP 2012 - Bonjour Symfony
  2. La Blackroom 4 • Vous connaissez certainement quelques moyens de

    donner du sens à vos contenus via : • Le RDFa • Les microformats • Les microdatas • Et… Piqure de rappel
  3. La Blackroom 5 • Ressource Description Framework for attributes •

    Basé sur RDF • Utilisable aussi bien dans des pages HTML que des documents XML • Recommandation 1.0 du W3C le 14 Octobre 2008 (HTML 4 - XHTML) • Recommandation 1.1 du W3C le 22 Aout 2013 
 (HTML 5) • Généralement dur à appréhender 
 (tryptique, verbeux…) • http://fr.wikipedia.org/wiki/RDFa Piqure de rappel - RDFa
  4. La Blackroom 6 • N’est pas un standard ! •

    L’objectif premier est d’appliquer des RFCs tierces (vCard, vCalendar, ATOM…) au (X)HTML • Très simple • http://fr.wikipedia.org/wiki/Microformats Piqure de rappel - Microformats
  5. La Blackroom 7 • N’est pas un standard ! •

    Schema.org • Né d’un rapprochement équivalent à celui de sitemap.org de la part de Bing/Google/Yahoo! le 2 juin 2011 puis Yandex le 1er novembre 2011 • Adaptation et transposition en HTML (RDFa + Microdata) et JSON-LD d’un grand nombres de langage sémantique à travers un socle commun • http://fr.wikipedia.org/wiki/Micro-donn%C3%A9es Piqure de rappel - Microdatas
  6. La Blackroom 8 • GoodRelations • XFN • FOAF •

    OpenCyc • Tout ce que vous pouvez mettre dans vos flux XML pour ajouter des namespaces • … Piqure de rappel - Et…
  7. La Blackroom 11 • Toutes les compétences “front” sont bien

    meilleurs que les développeurs à ce niveau (même les mecs qui font du Wordpress) • Très peu de développeurs s’intéressent à la sémantique Le constat qui fait mal
  8. La Blackroom 13 • Le challenge sémantique c’est : •

    Trouver des design récurrents • Segmenter les designs en éléments fonctionnels et indépendants • Faciliter la communication entre tous les acteurs du projet • Complémentaire au DDD (Domain Driven Design) ! Qu’est-ce que c’est ?
  9. La Blackroom 14 • Définir les propriétés récurrentes d’une “chose”

    • Améliorer la communication via un référentiel de langage universel (en complément du Domaine issu de l’approche DDD) Avantages
  10. La Blackroom 15 • Peut rapidement devenir très compliqué •

    Doit toujours jongler avec un juste milieu • On fait du PHP… (c’est la que tu te dis que l’héritage multiple et les Traits ça n’a vraiment rien à voir) • Il faut accepter les règles des outils qu’on utilise Inconvénients
  11. La Blackroom 17 • Accepter les règles de langage •

    Si une règle ne vous parait pas correcte, fixer en une nouvelle (Documentation, PR…) ! • Exemple : • La hierarchisation des bundles de Symfony : Bridge/ Bundle/Component • Les prefix/suffix de classes : Abstract/Interface Généralités
  12. La Blackroom 19 • Attention à la surenchère • Il

    faut trouver un juste milieu entre la sémantique et le domaine du client • Doit correspondre à une approche globale et une vraie réflexion entre les différents acteurs • Correspond mieux aux environnements NoSQL • Simplicité !== Complexité Généralités
  13. La Blackroom 22 • Dans une approche DDD, le domaine

    est une adaptation du langage du client • Ne vous contentez pas de suivre le langage du client • Utilisez également le référentiel sémantique • Echangez avec lui • Fixez des “constantes” : • “Name” !== “Title” Le nommage
  14. La Blackroom 28 • L’approche sémantique va vous permettre :

    • Une “simplification” de la conception de votre modèle • D’être extensible ! • L’approche sémantique à pour inconvénient : • D’être plus adapté au NoSQL (Document et Graph) • Dans un environnement *SQL, vous aurez beaucoup de colonnes La modélisation
  15. La Blackroom 29 • Pour trouver un équilibre : •

    Utilisez les DTO (Data Transfer Object) afin de compléter votre modèle métier en un modèle sémantique • “Encapsulez” • Lib : Model • Bundle : Document/Entity/… • Application : Jointures / Références / Embed La modélisation
  16. La Blackroom 30 La modélisation Semantic Application Client PreprendExtensionInterface Héritage

    avec getParent() TDD / Spec BDD Spec BDD / BDD BDD lib-php / Bundle
  17. La Blackroom 34 La modélisation WebPage Application Client Person User

    Event Organization PostalAddress Date GeoCoordinates Place OppeningHours Seat Service Comment