Schema.org

Overview

  • There are three kinds of schema.org term in the schema.org data model: types, properties and enumerated values

Thoughts

"reservationFor" rdf:object schema:Thing

  • in common language, this property could imply "who is the reservation for" instead of "what is being reserved"
  • 'underName' takes a Person or Organization... so I guess you just re-use that property to list all the people. But in a programmatic domain model, you'd use a collection, ideally a typed collection... I guess a weakness of RDF, not schema.org
  • what's the point of specifying 'schema:rangeIncludes": { "@id": "schema:Thing" }'

Style Guide

Naming conventions

  • Do not give the same name to a type and a property.
    • Note that schema.org has some legacy cases where this was done in the past. This practice should be avoided.
    • E.g. Avoid creating both ContactPoint and contactPoint.
  • Term names should use Singular naming only, even if the semantics call for a plural.
    • E.g. parent and not parents, even though for each type, there will always be multiple values for the property parent.
  • Prepositions should come after the type or property name.
  • Abbreviations: When creating new types, spell out abbreviations, unless the result is painfully verbose.
    • Due to legacy entries, sometimes certain words may be abbreviated, or not, in schema.org. Due to lack of consistency, should search for both when looking for a schema term.
    • E.g. numTracks exists in schema.org as a legacy property. If we were creating this property now, it would be numberOfTracks (or better yet, name it trackCount to be semantically aligned with other counting properties).
  • Spelling: US spellings must be used.
    • E.g. color and not colour.

Thoughts on Naming Conventions

  • it's a red flag that types and properties could have the same name. I've grappled with this for gd (Private)... if you're going to say "has ", having a separate property seems redundant

Resources