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 pages du web susceptibles de décrire des textes, des images, des sons, des vidéos, des faits divers. Des pages HTML décrivent des gens, des lieux, des événements et des choses du monde réel. Les ontologies possèdent 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.

Les moteurs de recherche Google, Bing (Microsoft), Yahoo et Yandex collaborent en 2011, pour proposer une première version de Schema. Ces sociétés commerciales espèrent ainsi fédérer les pratiques, dans le but d’extraire de manière plus fiable les connaissances contenues dans le web, parcouru par leurs robots d’indexation. Employé de Google, Daniel Brickley gère depuis cette époque Schema, de manière ouverte. Plusieurs communautés du World Wide Web Consortium (W3C) ont soutenu l’initiative et travaillent à la mise au point d’extensions. L’ontologie Schema est disponible sous licence Creative Commons Attribution-ShareAlike License (version 3.0), et tout le monde peut s’en servir librement.

Chez Google, Schema sert essentiellement à structurer le Knowledge Graph, la base de connaissance factuelle dont les renseignements sont affichés sous forme d’encarts dans les résultats, suite à une requête. La base de connaissance sert aussi à l’assistant vocal Google. D’après Daniel Sullivan, spécialiste de la recherche et employé de Google, cinq cent milliards de faits, relatifs à cinq milliards d’entités, se trouvent référencés dans le Knowledge Graph en 2020. Disponible en anglais uniquement, Schema.org montre une organisation évolutive, et change de version tous les ans.

Des groupes de discussion sont constitués, visant à étendre les possibilités descriptives de Schema. On note parmi ceux-ci : “Bibframe2Schema.org“, “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”.

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. Ce qui s’avère comparable en nombre à DBPedia, mais considérablement plus compact que Wikidata. Une organisation des classes essentiellement hiérarchique, et ponctuellement en réseau est proposée. La documentation est complète, et des exemples d’implémentation aux formats Microdata, RDFa et JSON-LD (JavaScript Object Notation for Linked Data) sont proposés. Plus aisé à manipuler, le format d’exposition JSON-LD est de nos jours recommandé.

Avec Schema, tout objet peut être caractérisé par son appartenance à une ou bien parfois plusieurs Classes. Des propriétés permettent ensuite la description plus fine de l’item. Les Classes se distinguent typographiquement des propriétés par leur notation : la première lettre du nom est écrite en majuscule.

Nous survolerons dans la première partie l’actuelle hiérarchie des classes de Schema. Celles-ci sont ordonnées du plus général Thing au plus spécifique, et les classes spécifiques héritent des propriétés des niveaux supérieurs. Des exemples d’usages généraux sont ensuite proposés, exprimés (sérialisés) en JSON-LD 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 populaires
  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 d’une base de connaissance structurée par schema.

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. La documentation fournit un exemple d’action de communication :

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 d’application en amont d’un système 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

Quelques unes des hiérarchies de classes : 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

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

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

On entend par Event essentiellement des choses qui relèvent des performances artistiques, culturelles et sportives. Les évènements professonnels et sociaux sont possiblement couverts.

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, endDate et duration, 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 précise les types de valeurs 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 une sorte 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 proposés, essentiellement recopiés et traduits 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 populaires

Une page web peut signaler une liste d’éléments (ici des groupes de musique et chanteurs) 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 (optimisation du référencement des pages d’un site web). De plus, Google se sert de ce vocabulaire pour renseigner son Knowledge Graph et ses encarts informatifs. Plusieurs communautés du W3C soutiennent le projet et œuvrent à son évolution.

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 sous licence CC-SA. Le projet européen Bioschemas a pour objectif d’é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. Divers outils du web 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