L’ontologie schema.org, une brève description

Les ontologies informatiques encore appelées vocabulaire, schéma de métadonnée ou graphe de connaissance constituent une sorte de convention dédiée à la description factuelle des éléments d’un corpus constitué de textes, d’images, de sons, de vidéos, de données numériques distribués à l’aide du web. Des pages décrivent des gens, des lieux, des événements et des choses du monde réel. Les ontologies possèdent à la fois un caractère structurant car derrière celles-ci se trouvent des réflexions sur la manière de typer les choses, les ordonner et les décrire. Les moteurs de recherche, les réseaux sociaux, les créateurs de plateformes et les éditeurs de sites à la recherche d’audience se sont donc rapidement emparés du sujet pour décrire leurs contenus commerciaux, culturels et scientifiques.

C’est en 2011, tout de même 20 après la création du premier serveur, que les moteurs de recherche Google, Bing (Microsoft), Yahoo et Yandex proposent une première version de schema. Ces sociétés commerciales espèrent ainsi extraire les connaissances contenues dans les pages parcourues par leurs robots d’indexation. Employé de Google, Daniel Brickley gère schema de manière ouverte depuis cette époque. Plusieurs communautés du World Wide Web Consortium (W3C) ont soutenu l’initiative et travaillent à la mise au point d’extensions. Schema sert essentiellement à structurer le Google Knowledge Graph dont les renseignements sont affichés suite à une requête sous forme d’encarts (fiche info, knowledge panel). La base de connaissance alimente aussi les réponses données par l’assistant vocal Google. Cinq cent milliards de faits relatifs à cinq milliards d’entités se trouvent ainsi référencés dans le Knowledge Graph en 2020, d’après Daniel Sullivan. L’ontologie schema est disponible sous licence Creative Commons Attribution-ShareAlike License (version 3.0) et tout le monde peut l’utiliser librement.

Schema.org change de version tous les ans et montre une organisation évolutive. Des groupes de travail prennent part aux débats et proposent des extensions générales et spécialisées. Parmi celles-ci : “Bibframe2Schema.org“. Bibframe est un modèle de donnée de description bibliographique développé par les bibliothèques américaines dont la Bibliothèque du Congrès dérivé du modèle FRBR (Functional Requirements for Bibliographic Records / Spécifications fonctionnelles des notices bibliographiques). La description d’un élément d’une bibliothèque repose sur la présence de propriétés descriptives de l’œuvre (telle que voulue par l’auteur), de l’expression (l’édition, version française ou anglaise), la manifestation (support papier ou électronique). “Bioschemas for lifesciences“, “Credible Web“, “Digital Asset Management Industry Business Ontology“, “Educational and Occupational Credentials in schema.org“, “Financial Industry Business Ontology“, “Healthcare Schema Vocabulary“, “Locations and Addresses”, “Meat Products”, “Schema Architypes”, “Schema Bib Extend“, “Schema Course extension”, “Schema Extensions for IoT”, “Schema Generator”, “Schema.org“, “Schema.org for datasets“, “Smart Manufacturing”, “Sport Schema”, “The Tourism Structured Web Data Community Group”, “Video Game Schema”, “WebAPI Discovery” constituent d’autres groupes.

Versionné sur github et documenté sur schema.org, schema définit pour sa version 14 de 2022 plus de 1000 classes et 900 propriétés, à peu prêt autant que DBPedia et considérablement moins que Wikidata. Une organisation des classes essentiellement hiérarchique et ponctuellement en réseau est proposée : certaines classes filles héritent des propriétés de plusieurs classes parentes. Des exemples d’exposition des métadonnées aux formats Microdata, RDFa et JSON-LD sont donnés dans la documentation. Plus compact et aisé à manipuler, le format d’exposition JSON-LD est de nos jours recommandé pour transmettre à Google essentiellement des informations de vos pages. Avec schema, tout objet peut être caractérisé par aucune, une ou bien plusieurs Classes auxquelles plusieurs propriétés sont associées. Les Classes telles que définies par schema se distinguent typographiquement des propriétés par leur notation : la première lettre du nom de la Classe est en majuscule.

Nous survolerons dans la première partie la hiérarchie des classes de schema. Les classes se montrent hiérarchisées du plus général Thing au plus spécifique et les classes spécifiques héritent des propriétés possibles à renseigner pour les classes générales. Nous évoquerons quelques unes des extensions. Des exemples d’usages généraux sont ici proposés, exprimés (sérialisés) en JSON-LD (JavaScript Object Notation for Linked Data) uniquement.

  • A reintroduction to our Knowledge Graph and knowledge panels, 2020, Danny Sullivan : Lien
  • Schema.org and One Hundred Years of Search, 2012, Dan Brickley : Lien
  • En route vers BIBFRAME, Gestion des ressources & catalogage, Université de Liège : Lien
  • DBPedia Ontology : Lien
  1. Arborescence des Classes
    • 1.0 Thing, classe racine
    • 1.1 Action
    • 1.2 BioChemEntity
    • 1.3 CreativeWorks
    • 1.4 Event
    • 1.5 Intangible
    • 1.6 MedicalEntity
    • 1.7 Organization
    • 1.8 Person
    • 1.9 Place
    • 1.10 Product
    • 1.11 Taxon
  2. DataType
  3. Extensions de schema
  4. Do you speak schema ? Cinq exemples d’usages
    • 4.1 L’enregistrement vidéo d’un cours
    • 4.2 Un double concert de B.B. King
    • 4.3 Une école et ses anciens élèves
    • 4.4 Page descriptive d’une personne Dalia Derbyshire
    • 4.5 Une liste d’items : des musiciens à succès
  5. Conclusion

1. Arborescence des Classes

Schema définit la classe racine Thing ainsi que neuf classes de premier niveau détaillées dans cette série de paragraphes. Les valeurs attendues en renseignement d’une propriété sont renseignées à l’aide d’une flèche (->). Le caractère (|) signifie “ou”. Des équivalences avec Dublin Core (=dct) sont mentionnées dans schema et ici rappelées. Les propriétés dédiées à la description des personnes sont notées en gras.

  • Schema.org, full hierarchy : Lien

1.0 Thing, classe racine

La classe racine doit être lue avec attention car ses propriétés sont susceptibles de caractériser tout item de la base de connaissance.

12 Propriétés de Thing : additionalType (->URL), alternateName (->Text), description (->Text; =dct:description), disambiguatingDescription (->Text), identifier (->Text | URL | PropertyValue; =dct:identifier), image (->ImageObject | URL), mainEntityOfPage (->CreativeWork | URL), name (->Text; =dct:title), potentialAction (->Action), sameAs (->URL), subjectOf (->CreativeWork | Event; =dct:subject), url (->URL)

Les propriétés name, image, URL, sameAs, sont définies au niveau de la racine. La propriété additionalType rend possible l’utilisation d’une classe non énoncée dans schema mais dans une autre ontologie comme par exemple Product Types Ontology (pto), http://www.productontology.org/. additionalType introduit un mécanisme formel d’extension.

1.1 Action, 11 propriétés et 109 sous-classes

Action est décrit par onze propriétés spécifiques et hérite des douze de Thing. 109 types d’Action sont au total définis.

14 sous-classes de premier niveau (109 sous-classes d’Action au total) : AchieveAction, AssessAction, ConsumeAction, ControlAction, CreateAction, FindAction, InteractAction, MoveAction, OrganizeAction, PlayAction, SearchAction, TradeAction, TransferAction, UpdateAction

11 propriétés spécifiques d’Action: actionStatus, agent, endTime, error, instrument, location, object, participant, result, startTime, target

TradeAction fait référence aux actions en bourse. Si un texte décrit l’action de communiquer (CommunicateAction), schema propose d’ordonner cela dans la hiérarchie (Thing > Action > InteractAction > CommunicateAction), munie des propriétés possibles : about, inLanguage, recipient, actionStatus, agent, endTime, error, instrument, location, object, participant, result, startTime, target, etc. Un exemple donné est :

John communicated with Steve.
<!-- John communicated with Steve. -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "CommunicateAction",
  "agent": {
    "@type": "Person",
    "name": "John"
  },
  "recipient": {
    "@type": "Person",
    "name": "Steve"
  }
}
</script>

Les classes sont renseignées à l’aide de la propriété “@type”. Les valeurs admises dans cet exemple sont “CommunicateAction” et “Person”. La propriété “name” est définie à la racine “Thing”, la propriété “agent” est spécifique de la classe “Action”. Des propriétés / valeurs (“inLanguage”: “en”) ou (“startTime”: “9 heures”) auraient pu être précisées si la personne ou le développeur qui indexe l’avait jugé utile.

Des types plus spécifiques d’actions de communication sont : AskAction, CheckInAction, CheckOutAction, CommentAction, InformAction, InviteAction, ReplyAction, ShareAction.

1.2 BioChemEntity, 27 propriétés, 4 sous-classes

Cette classe ajoutée en 2021 à l’initiative de la communauté Bioschemas est composée de 4 sous-classes. Elle rend possible le référencement et la description sommaire d’entités biologiques, chimiques ou biochimiques. Des exemples typiques en sont les protéines, les gènes, les substances chimiques à activité biologique.

4 sous-classes toutes de premier niveau : ChemicalSubstance, Gene, MolecularEntity, Protein

12 propriétés spécifiques de BioChemEntity, 3 de ChemicalSubstance, 4 pour Gene, 9 pour MolecularEntity, 1 pour Protein

1.3 CreativeWorks, 96 propriétés, 160 sous-classes

On trouve dans cette classe qui pourrait être traduite par ŒuvreOriginale la plupart des objets référencés par les bibliothèques et les archives, ainsi que les libraires, disquaires, cinémas et chaînes de télévision.

65 sous-classes de deuxième niveau (160 au total) viennent préciser la nature des œuvres originales possibles à référencer : 3DModel, ArchiveComponent, Article, Atlas, Blog, Book, Chapter, Claim, Clip, Collection, ComicStory, Comment, Conversation, Course, CreativeWorkSeason, CreativeWorkSeries, DataCatalog, Dataset, DefinedTermSet, Diet, DigitalDocument, Drawing, EducationalOccupationalCredential, Episode, ExercisePlan, Game, Guide, HowTo, HowToDirection, HowToSection, HowToStep, HowToTip, Legislation, Manuscript, Map, MediaObject, Menu, MenuSection, Message, Movie, MusicComposition, MusicPlaylist, MusicRecording, Painting, Photograph, Play, Poster, PublicationIssue, PublicationVolume, Question, Quotation, Review, Sculpture, SheetMusic, ShortStory, SoftwareApplication, SoftwareSourceCode, TVSeason, TVSeries, Thesis, VisualArtwork, WebContent, WebPage, WebPageElement, WebSite

Les objets de la classe des œuvres peuvent être décrits à l’aide de pas moins de 96 propriétés ici listées : about, abstract, accessMode, accessModeSufficient, accessibilityAPI, accessibilityControl, accessibilityFeature, accessibilityHazard, accessibilitySummary, accountablePerson, aggregateRating, alternativeHeadline, associatedMedia, audience, audio, author, award, character, citation, comment, commentCount, conditionsOfAccess, contentLocation, contentRating, contentReferenceTime, contributor, copyrightHolder, copyrightYear, correction, creativeWorkStatus, creator, dateCreated, dateModified, datePublished, discussionUrl, editor, educationalAlignment, educationalUse, encoding, encodingFormat, exampleOfWork, expires, funder, genre, hasPart, headline, inLanguage, interactionStatistic, interactivityType, isAccessibleForFree, isBasedOn, isFamilyFriendly, isPartOf, keywords, learningResourceType, license, locationCreated, mainEntity, maintainer, material, materialExtent, mentions, offers, position, producer, provider, publication, publisher, publisherImprint, publishingPrinciples, recordedAt, releasedEvent, review, schemaVersion, sdDatePublished, sdLicense, sdPublisher, sourceOrganization, spatial, spatialCoverage, sponsor, temporal, temporalCoverage, text, thumbnailUrl, timeRequired, translationOfWork, translator, typicalAgeRange, version, video, workTranslation

La hiérarchie complète de quelques unes des classes de CreativeWork est ici détaillée : ArchiveComponent, Article > (AdvertiserContentArticle, NewsArticle > (AnalysisNewsArticle, AskPublicNewsArticle, BackgroundNewsArticle, OpinionNewsArticle, ReportageNewsArticle, ReviewNewsArticle), Report, SatiricalArticle, ScholarlyArticle > (MedicalScholarlyArticle), SocialMediaPosting > (BlogPosting, DiscussionForumPosting), TechArticle), Atlas, Book > (Audiobook), Chapter, Collection, DigitalDocument > (NoteDigitalDocument, PresentationDigitalDocument, SpreadsheetDigitalDocument, TextDigitalDocument), Manuscript, Map, MediaObject > (3DModel, AudioObject, Audiobook, DataDownload, ImageObject, Barcode, LegislationObject, MusicVideoObject, VideoObject), Message > (EmailMessage), Photograph, PublicationIssue, PublicationVolume, Review > (ClaimReview, CriticReview, ReviewNewsArticle, EmployerReview, MediaReview, Recommendation, UserReview)

Développement d’une partie de la hiérarchie des classes de CreativeWork : Lien

1.4 Event, 32 propriétés, 22 sous-classes

Les événements sont caractérisés par 20 classes de deuxième niveau (22 en incluant les sous-classes) : BusinessEvent, ChildrensEvent, ComedyEvent, CourseInstance, DanceEvent, DeliveryEvent, EducationEvent, EventSeries, ExhibitionEvent, Festival, FoodEvent, LiteraryEvent, MusicEvent, PublicationEvent, SaleEvent, ScreeningEvent, SocialEvent, SportsEvent, TheaterEvent, VisualArtsEvent

32 propriétés spécifiques d’Event : about, actor, aggregateRating, attendee, audience, composer, contributor, director, doorTime, duration, endDate, eventSchedule, eventStatus, funder, inLanguage, isAccessibleForFree, location, maximumAttendeeCapacity, offers, organizer, performer, previousStartDate, recordedIn, remainingAttendeeCapacity, review, sponsor, startDate, subEvent, superEvent, translator, typicalAgeRange, workFeatured, workPerformed.

On remarque au passage qu’un événement est caractérisé par sa durée avec startDate et endDate, sa répétition pour les événements récurrents avec previousStartDate et son lieu avec location.

1.5 Intangible, 385 sous-classes

Une classe fourre-tout indique des quantités, des valeurs posées ou observées, des listes de choses, de rôles et de services, des valeurs de dictionnaires, des informations factuelles. Intangible ne définit aucune propriété spécifique de classe. Celles-ci dépendent toutes des sous-classes qui montrent une grande diversité.

56 sous-classes de deuxième niveau (385 classes en tout filles d’Intangible) : ActionAccessSpecification, AlignmentObject, Audience, BedDetails, Brand, BroadcastChannel, BroadcastFrequencySpecification, Class, ComputerLanguage, DataFeedItem, DefinedTerm, Demand, DigitalDocumentPermission, EducationalOccupationalProgram, EntryPoint, Enumeration, FloorPlan, GameServer, GeospatialGeometry, Grant, HealthInsurancePlan, HealthPlanCostSharingSpecification, HealthPlanFormulary, HealthPlanNetwork, Invoice, ItemList, JobPosting, Language, ListItem, MediaSubscription, MenuItem, MerchantReturnPolicy, Observation, Occupation, Offer, Order, OrderItem, ParcelDelivery, Permit, ProgramMembership, Property, PropertyValueSpecification, Quantity, Rating, Reservation, Role, Schedule, Seat, Series, Service, ServiceChannel, SpeakableSpecification, StatisticalPopulation, StructuredValue, Ticket, Trip

A noter l’importance de StructuredValue qui rassemble des informations telles que des adresses postales, les coordonnées géographiques, des valeurs monétaires, des heures d’ouverture, des valeurs qualitatives et quantitatives multiples. Quantity a pour sous-classes Distance, Duration, Energy, Mass.

1.6 MedicalEntity, 7 propriétés et 71 sous-classes

17 sous-classes de deuxième niveau (71 au total) : AnatomicalStructure, AnatomicalSystem, LifestyleModification, MedicalCause, MedicalCondition, MedicalContraindication, MedicalDevice, MedicalGuideline, MedicalIndication, MedicalIntangible, MedicalProcedure, MedicalRiskEstimator, MedicalRiskFactor, MedicalStudy, MedicalTest, Substance, SuperficialAnatomy

7 propriétés spécifiques de MedicalEntity : code, guideline, legalStatus, medicineSystem, recognizingAuthority, relevantSpecialty, study

1.7 Organization, 53 propriétés, 182 sous-classes

15 sous-classes de deuxième niveau (182 au total) : Airline, Consortium, Corporation, EducationalOrganization, FundingScheme, GovernmentOrganization, LibrarySystem, LocalBusiness, MedicalOrganization, NGO, NewsMediaOrganization, PerformingGroup, Project, SportsOrganization, WorkersUnion

53 propriétés spécifiques d’Organization : actionableFeedbackPolicy, address, aggregateRating, alumni, areaServed, award, brand, contactPoint, correctionsPolicy, department, dissolutionDate, diversityPolicy, diversityStaffingReport, duns, email, employee, ethicsPolicy, event, faxNumber, founder, foundingDate, foundingLocation, funder, globalLocationNumber, hasCredential, hasMerchantReturnPolicy, hasOfferCatalog, hasPOS, interactionStatistic, isicV4, knowsAbout, knowsLanguage, legalName, leiCode, location, logo, makesOffer, member, memberOf, naics, numberOfEmployees, ownershipFundingInfo, owns OwnershipInfo, parentOrganization, publishingPrinciples, review, seeks, slogan, sponsor, subOrganization, taxID, telephone, unnamedSourcesPolicy, vatID

EducationalOrganization se décline en : CollegeOrUniversity, ElementarySchool, HighSchool, MiddleSchool, Preschool, School

1.8 Person, 55 propriétés et 1 sous-classes

Une seule sous-classe : Patient

55 propriétés spécifiques de Person : additionalName, address, affiliation, alumniOf, award, birthDate, birthPlace, brand, callSign, children, colleague, contactPoint, deathDate, deathPlace, description, disambiguatingDescription, duns, email, familyName, faxNumber, follows, funder, gender, givenName, globalLocationNumber, hasCredential, hasOccupation, hasOfferCatalog, hasPOS, height, homeLocation, honorificPrefix, honorificSuffix, identifier, image, interactionStatistic, isicV4, jobTitle, knows, knowsAbout, knowsLanguage, mainEntityOfPage, makesOffer, memberOf, naics, name, nationality, netWorth, owns, parent, performerIn, potentialAction, publishingPrinciples, relatedTo, sameAs, seeks, sibling, sponsor, spouse, subjectOf, taxID, telephone, url, vatID, weight, workLocation, worksFor

1.9 Place, 36 propriétés, 74 sous-classes

9 sous-classes de deuxième niveau (74 au total) : Accommodation, AdministrativeArea, CivicStructure, Landform, LandmarksOrHistoricalBuildings, LocalBusiness, Residence, TouristAttraction, TouristDestination

36 propriétés spécifiques de Place : additionalProperty, address, aggregateRating, amenityFeature, branchCode, containedInPlace, containsPlace, event, faxNumber, geo, geoContains, geoCoveredBy, geoCovers, geoCrosses, geoDisjoint, geoEquals, geoIntersects, geoOverlaps, geoTouches, geoWithin, globalLocationNumber, hasMap, isAccessibleForFree, isicV4, latitude, logo, longitude, maximumAttendeeCapacuty, openingHoursSpecification, photo, publicAccess, review, slogan, smokingAllowed, specialOpeningHoursSpecification, telephone

Des objets du type Event appellent classiquement en propriété location renseigné à l’aide des propriétés d’un objet de la classe Place. LocalBusiness est défini à la fois comme sous-classe d’Organization et de Place.

1.10 Product, 36 propriétés, 8 sous-classes

4 sous-classes de deuxième niveau (8 au total) : IndividualProduct, ProductModel, SomeProducts, Vehicle

36 propriétés spécifiques de Product : additionalProperty, aggregateRating, audience, award, brand, category, color, depth, gtin, gtin12, gtin13, gtin14, gtin8, hasMerchantReturnPolicy, height, isAccessoryOrSparePartFor, isConsumableFor, isRelatedTo, isSimilarTo, itemCondition, logo, manufacturer, material, model, mpn, nsn, offers, productID, productionDate, purchaseDate, releaseDate, review, sku, slogan, weight, width

1.11 Taxon, 4 propriétés, pas de sous-classe

Classe ajoutée en 2021 et dédiée à la description des espèces biologiques.

2. DataType

DataType définit les types de données attendus en renseignement d’une propriété.

Boolean > (False | True), Date, DateTime, Number > (Float | Integer), Text > URL , Time

Il est attendu par exemple de la valeur d’addressLocality de la classe Place que celle-ci soit du type Text. Globalement, 705 propriétés appellent en contenu une valeur du type Text. A noter qu’une URL est considérée comme un type de texte.

3. Extensions de schema

Certains organismes proposent des extensions de schema.

The Product Types Ontology (pto)

Pto référence environ 300 000 types de produits ou services qui étendent la classe Produit de schema en s’appuyant elle-même sur l’ontologie GoodRelations.

4. Do you speak schema ? Cinq exemples d’usages

Inclus dans des balises HTML <script>, JSON-LD s’avère relativement aisé à lire humainement et à programmer. Plusieurs exemples de notation sont ici essentiellement recopiés de schema.org.

4.1 L’enregistrement vidéo d’un cours

Il est possible de transcrire la sémantique d’une page donnant accès à l’enregistrement vidéo d’un cours à l’aide de JSON-LD. Le code se trouve inscrit dans une balise <script> localisée dans le corps de l’HTML. L’espace de nom de Schema est déclaré en valeur de la propriété @context. La classe WebPage est retenue et déclarée dans @type. Les propriétés name, description, publisher, license de WebPage sont ici renseignées. L’ouverture de parenthèses dans “publisher” crée un second niveau de description marqué ici par un retrait de la ligne. La classe de l’éditeur est CollegeOrUniversity et son nom “MIT OpenCourseWare”. Un graphe de métadonnées (de connaissances factuelles) est en quelque sorte dessiné avec des renseignements de premier et second niveau. Documentation : Lien

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "WebPage",
    "name": "Lecture 12: Graphs, networks, incidence matrices",
    "description": "These video lectures of Professor Gilbert Strang teaching 18.06 were recorded in Fall 1999 and do not correspond precisely to the current  edition of the textbook.",
    "publisher": {
        "@type": "CollegeOrUniversity",
        "name": "MIT OpenCourseWare"
    },
    "license": "http://creativecommons.org/licenses/by-nc-sa/3.0/us/deed.en_US"
}
</script>

4.2 Un double concert de B.B. King

Exemple plus complexe de signalement d’un double évènement musical. B.B. King joue le 12 au “Lupo’s Heartbreak Hotel” et le 13 avril 2014 au “Lynn Auditorium”. Les billets sont en vente sur deux sites différents pour chacune de ces dates. Event et Place sont liés via la propriété location. La déclaration de deux objets ou d’une liste d’objet de même niveau de description se fait en JSON-LD par ouverture d’un crochet et séparation des objets listés par une virgule. Documentation : Lien

<script type="application/ld+json">
[{
  "@context" : "http://schema.org",
  "@type" : "MusicEvent",
  "name" : "B.B. King",
  "startDate" : "2014-04-12T19:30",
  "location" : {
     "@type" : "Place",
     "name" : "Lupo's Heartbreak Hotel",
     "address" : "79 Washington St., Providence, RI"
  },
  "offers" : {
     "@type" : "Offer",
     "url" : "https://www.etix.com/ticket/1771656"
  }
},
{
  "@context" : "http://schema.org",
  "@type" : "MusicEvent",
  "name" : "B.B. King",
  "startDate" : "2014-04-13T20:00",
  "location" : {
     "@type" : "Place",
     "name" : "Lynn Auditorium",
     "address" : "Lynn, MA, 01901"
  },
  "offers" : {
     "@type" : "Offer",
     "url" : "http://frontgatetickets.com/venue.php?id=11766"
  }
}]
</script>

4.3 Une école et ses anciens élèves

Description détaillée de l’adresse d’un organisme éducatif dont le nom est “Palo Alto High School” (Californie). Les noms de deux anciens sont mentionnés (John Doe, Sarah Glames) (Jean Toto, Sarah Charmeuse) : Lien

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EducationalOrganization",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Palo Alto",
    "addressRegion": "CA",
    "postalCode": "94301",
    "streetAddress": "50 Embarcadero Rd"
  },
  "alumni": [
    {
      "@type": "Person",
      "name": "John Doe"
    },
    {
      "@type": "Person",
      "name": "Sarah Glames"
    }
  ],
  "name": "Palo Alto High School"
}
</script>

4.4 Page descriptive d’une personne

Delia Derbyshire identifiée dans Wikipedia à l’aide de sameAs, ancienne élève (alumniOf) de Cambridge. On remarque la possibilité de détailler une description sur un niveau de détail aussi élevé que souhaité. Trois niveaux de classes (@type) se trouvent ici imbriqués : Lien

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "Person",
    "name": "Delia Derbyshire",
    "sameAs": "http://en.wikipedia.org/wiki/Delia_Derbyshire",
    "alumniOf": {
        "@type": "OrganizationRole",
        "alumniOf": {
            "@type": "CollegeOrUniversity",
            "name": "University of Cambridge",
            "sameAs": "http://en.wikipedia.org/wiki/University_of_Cambridge"
        },
        "startDate": "1959"
    }
}
</script>

4.5 Une liste d’items : des musiciens à succès

Une page web peut signaler une liste d’éléments (ici des groupes de musique) avec la classe ItemList et les énoncer sucessivement en leur attribuant la classe ListItem.

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "ItemList",
  "url": "http://en.wikipedia.org/wiki/Billboard_200",
  "name": "Top music artists",
  "description": "The artists with the most cumulative weeks at number one according to Billboard 200",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "MusicGroup",
        "name": "Beatles"
      }
    },
    {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@type": "MusicGroup",
        "name": "Elvis Presley"
      }
    },
    {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@type": "MusicGroup",
        "name": "Michael Jackson"
      }
    },
    {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@type": "MusicGroup",
        "name": "Garth Brooks"
      }
    }
  ]
}
</script> 

Reprises à l’identique de Dublin Core, les relations hasPart / isPartof indiquent une relation de méronymie c’est à dire de tout à partie. Elles s’avèrent nécessaire dans de multiples cas, pour décrire par exemple les objets des bibliothèques et archives.

Conclusion

L’ontologie schema s’avère donc bien structurée et cohérente, relativement souple d’usage et particulièrement adaptée au SEO avec Google. La firme l’utilise pour renseigner son Knowledge Graph et ses fiches d’information. Plusieurs communautés du W3C soutiennent le projet et œuvrent à son évolution. Cette ontologie en anglais est dite de haut niveau car elle ambitionne de couvrir de vastes domaines d’applications.

Des acteurs de la gestion des connaissances peuvent s’en inspirer ou bien se servir de certaines propriétés de schema pour combler les manques de leurs propres modèles. Ainsi Wikidata reprend un certain nombre de propriétés de schema ou établit des équivalences. Schema est disponible en CC-SA. Le projet européen Bioschemas entend étendre les possibilités desciptives de schema aux domaines de la biochimie et de ses applications pharmaceutiques.

Schema peut également intéresser l’administrateur de base de donnée relationnelle ou bien le développeur en programmation orientée objet (POO). Les graphes en JSON-LD s’avèrent plus lisibles et légers que des graphes XML et la fourniture d’exemples facilite l’implémentation. À noter finalement que des gestionnaires de contenus comme WordPress ou Drupal disposent tous deux de modules dédiés à l’optimisation du référencement basé sur schema. Des outils permettent de tester la validité des codes exposés.

  • Schema.org
  • Versions sur GitHub : Lien
  • Hiérarchie des classes de Schema : Lien
  • Blog officiel de Schema.org : Lien
  • 60+ Structured Data Tools – Create, Test, Plugins & More : Lien
  • Schema.org sur le répertoire LOV : Lien
  • Outil de test des donnée structurées, par Google : Lien
  • Bioschemas, UE : Lien
  • Schema.org déploie son validateur de données structurées, 2021 : Lien
  • Données sémantiques, structurées et associées, le choix JSON-LD, Jojaba, AlsaCréations, 2019 : Lien
  • Comment mettre en place un balisage Schema parfait pour votre entreprise, Jason Barnard, 2017 : Lien
  • Comprendre le fonctionnement des données structurées, Google, 2010 : Lien
  • Schema.org hierarchy Sunburst, une visualisation, 2019 : Lien
  • Extensions JSON-LD et schema pour WordPress : Lien
  • Drupal, le module “Schema.org Metatag” étend “Metatag” pour certaines des classes de schema : Lien
1 Star2 Stars3 Stars4 Stars5 Stars (Pas encore noté)
Loading...

2 réponses sur “L’ontologie schema.org, une brève description”

Laisser un commentaire