Although fairly small, these enhancements have significantly improved the capability for describing Tourist Attractions and hopefully enabling more tourist discoveries like the one pictured here.
The TouristAttraction Type
The TouristAttraction type has been around, as a subtype of Place, from the earliest days back in 2011. However it did not have any specific properties of its own or examples for its use. For those interested in promoting and sharing data to help with tourism and the discovery of tourist attractions, the situation was a bit limiting.
As a result of the efforts by the group, TouristAttraction now has two properties — availableLanguage (A language someone may use with or at the item, service or place.) and touristType (Attraction suitable for type(s) of tourist. eg. Children, visitors from a particular country, etc.). So now we can say, in data, for example that an attraction is suitable for Spanish & French speaking tourists who are interested in wine.
Application and Examples
At initial view the addition of a couple of general purpose properties does not seem much of an advancement. However the set of examples, that the Group has provided, demonstrate the power and flexibility of this enhanced type for use with tourism.
The principle behind their approach, as demonstrated in the examples, is that most anything can be of interest to a tourist — a beach, mountain, costal highway, ancient building, work of art, war cemetery, winery, amusement park — the list is endless. It was soon clear that it would not be practical to add tourist relevant properties to all such relevant types within Schema.org.
Multi-Typed Entities (MTEs)
The Multi-Type Entity is a powerful feature of Schema.org which has often caused confusion and has a bit of a reputation for being complex. When describing a thing (an entity in data speak) Schema.org has the capability to indicate that it is of more than one type.
For example you could be describing a Book, with an author, subject, isbn, etc., and in order to represent a physical example of that book you can also say it is a Product with weight, width, purchaseDate, itemCondition, etc. In Schema.org you simply achieve that by indicating in your mark-up that the thing you are describing is both a Book and a Product.
Utilising the MTE principle for tourism, you would firstly describe the thing itself, using the appropriate Schema.org Types (Mountain, Church, Beach, AmusementPark, etc.). Having done that you then add the TouristAttraction type.
In Microdata it would look like this:
<div itemtype=“http://schema.org/Cemetery” itemscope>
<link itemprop=“additionalType” href=“http://schema.org/TouristAttraction” />
<meta itemprop=“name” content=“Villers–Bretonneux Australian National Memorial />
“name”: “Villers–Bretonneux Australian National Memorial”,
If there is no specific Schema.org type for the thing you are describing, you would just identify it as being a TouristAttraction, using all the properties inherited from Place to describe it as best as you can.
Following the ‘anything can be a tourist attraction principle’ it is perfectly possible for a Person to also be a TouristAttraction. Take the human statue street performer who dresses up as the Statue of Liberty and stands in Times Square New York on most days (or at least seems to be there every time I visit).
Using Schema.org he/she can be described as a Person with name, email, jobTitle (Human Statue of Liberty), etc., and in addition as a TouristAttraction. Sharing this information in Schema.org on a page describing this performer would possibly increase their discoverability to those looking for tourist things in New York.
In addition to the properties and examples for TouristAttraction, the Group also proposed a new publicAccess property. It was felt that this had wider benefit than just for tourism and hence it was added to Place, and hence inherited by TouristAttraction. publicAccess is a boolean property enabling you to state if a Place is or is not accessible to the public. There is no assumed default value for this property if omitted from markup.