Le Challenge Semantique

Le Challenge Semantique

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

12fad6dce4099a21ed70cf4409fe2271?s=128

Alexandre Balmes

July 22, 2014
Tweet

Transcript

  1. La Blackroom Le Challenge Sémantique

  2. 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
  3. La Blackroom La sémantique?

  4. 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
  5. 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
  6. 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
  7. 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
  8. 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…
  9. La Blackroom BUT WAIT… 9

  10. La Blackroom 10 Tu nous parle que de trucs en

    HTML mec !
  11. 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
  12. La Blackroom Le Challenge Sémantique

  13. 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 ?
  14. 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
  15. 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
  16. La Blackroom Généralités

  17. 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
  18. La Blackroom 18 http://symfony.com/doc/current/contributing/code/ standards.html

  19. 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
  20. La Blackroom 20 • Utilisez schema.org comme référentiel structurel Généralités

  21. La Blackroom Le nommage

  22. 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
  23. La Blackroom Question 23

  24. La Blackroom Comment savoir 
 si cette requête lève une

    exception ? 24
  25. La Blackroom Utilisez find* et get* ! 25

  26. La Blackroom 26

  27. La Blackroom La modélisation

  28. 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
  29. 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
  30. La Blackroom 30 La modélisation Semantic Application Client PreprendExtensionInterface Héritage

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

  32. La Blackroom 32 La modélisation WebPage Application Client Person User

  33. La Blackroom 33 La modélisation WebPage Application Client Person User

    Article
  34. La Blackroom 34 La modélisation WebPage Application Client Person User

    Event Organization PostalAddress Date GeoCoordinates Place OppeningHours Seat Service Comment
  35. La Blackroom MERCI ! lablackroom.com github.com/black-project 35