Page 1
1
STI INNSBRUCK
ANNOTATION OF KAYSERS.AT
WEBSITE WITH SCHEMA.ORG
Zaenal Akbar, Ioan Toma STI Innsbruck, University of Innsbruck,
Technikerstraße 21a, 6020 Innsbruck, Austria [email protected]
2015-07-30
Semantic Technology Institute Innsbruck
STI INNSBTRUCK Technikerstraße 21a A – 6020 Innsbruck
Austria http://www.sti-innsbruck.
Page 2
1
Contents 1. Introduction ......................................................................................................................................... 2
2. Content Mapping ................................................................................................................................ 2
3. Implementation ................................................................................................................................... 6
3.1 Website Backend .......................................................................................................................... 6
3.2 Modified Database ........................................................................................................................ 6
3.3 Annotated Pages ............................................................................................................................ 6
4. Result .................................................................................................................................................. 6
4.1 Article ........................................................................................................................................... 7
4.2 Offer .............................................................................................................................................. 8
4.3 Hotel ............................................................................................................................................ 11
5. Discussion ......................................................................................................................................... 13
References ............................................................................................................................................. 13
Page 3
2
1. Introduction
This document presents our implementation of annotating the website of the Kaysers 4-Star
Hotel [1] with Schema.org [2]. The implementation was performed by injecting the related
Class and Properties into the content of the website.
The outputs of this implementation are:
1. The final mapping between the identified content types from the website to
Schema.org classes including their relevant properties.
2. The selected method on how to inject the annotation into the content.
2. Content Mapping
Contents in the website are divided into a few categories and sub-categories:
1. The Kaysers: Philosophy, Impressions, Newsletter, Gutschein, Hotel Assessment,
Press, Partner, Weather, Jobs, Current Events
2. Rooms And Prices: Rooms And Prices, Gourmet- & Vital Board, Enquire & Book,
Zusatzleistungen, Winter Offers, Summer Offers
3. Wellness: Kaysers Spa, Wellness Packages, Beauty Treatments, Massages, Time For
Two
4. Nature & Indulgence: Natural Hideaway, Culinary Specialities, Kaysers In Winter,
Kaysers In Summer
5. Movement: Tennis, Golf, Hike & Bike, Yoga & Co, Skiing In Tyrol, Cross-Country
Skiing, Winter Walking, Culture, Cultural City Of Innsbruck
6. Contact: Contact, How To Get To Us, Imprint
The mapping is representing a relation between the identified content types (including
properties) of the website to the classes and properties of Schema.org. Original mapping
described in [3] was used as the reference, but a change will be applied if necessary.
Table 1 Mapping the Content Types to Schema.org
No. Content Type Schema.org
Class Property
1 The Kaysers Article
name
articleBody
image
2 Rooms and Prices
2.1 Rooms and Prices Offer
name
description
image
PriceSpecification priceSpecification
validFrom
validThrough
priceCurrency
Page 4
3
price
2.2 Gourmet & Vital Board Article
name
articleBody
image
2.3 Additional Services Offer
name
description
image
PriceSpecification priceSpecification
priceCurrency
price
QuantitativeValue eligibleQuantity
value
2.4 Winter Offers Offer
name
description
image
PriceSpecification priceSpecification
validFrom
validThrough
priceCurrency
price
2.5 Summer Offers Offer
name
description
image
PriceSpecification priceSpecification
validFrom
validThrough
priceCurrency
price
3 Wellness
3.1 Kaysers Spa Article
name
articleBody
image
3.2 Wellness Packages Offer
name
description
image
PriceSpecification priceSpecification
priceCurrency
price
QuantitativeValue eligibleQuantity
value
3.3 Beauty Treatments Offer
name
Page 5
4
description
image
PriceSpecification priceSpecification
priceCurrency
price
QuantitativeValue eligibleQuantity
value
3.4 Massages Offer
name
description
image
PriceSpecification priceSpecification
priceCurrency
price
QuantitativeValue eligibleQuantity
value
3.5 Time for Two Offer
name
description
image
PriceSpecification priceSpecification
priceCurrency
price
QuantitativeValue eligibleQuantity
value
4 Nature & Indulgence Article
name
articleBody
image
5 Movement
5.1 Tennis Offer
name
image
PriceSpecification priceSpecification
name
description
priceCurrency
price
QuantitativeValue eligibleQuantity
value
Article
name
articleBody
image
5.2 Golf, …, Culture Article
name
articleBody
image
Page 6
5
6 Contact
6.1 Contact Hotel
name
telephone
email
PostalAddress address
streetAddress
addressLocality
addressRegion
postalCode
addressCountry
AggregateRating aggregateRating
ratingValue
ratingCount
6.2 Imprint Hotel
name
telephone
faxNumber
email
PostalAddress address
streetAddress
addressLocality
addressRegion
postalCode
addressCountry
Compared to the original mapping explained in [3], a few changes have been made to fit the
content type to the most suitable class. For example, when a page has no price information
then the page will be annotated as “Article” (instead of “Offer”).
Used classes of Schema.org:
1. Hotel
2. PriceSpecification
3. Quantitative Value
4. Article
5. PostalAddress
6. AggregateRating
Page 7
6
3. Implementation
In this section, we describe how the annotation was implemented, encountered problems and
used solutions.
3.1 Website Backend
The website uses Typo3 CMS [4] as its backend, with MySQL [5] as its database. Since there
is no plugin available yet for schema.org annotation, we decided to inject the annotation
directly into the content.
Typo3 is integrated with Rich Text Editors (RTE) for text user input. Originally, our plan was
to injecting the annotation through this editor, but RTE has strict restriction in which html
tags are accepted and it will clean up the “unrecognized” tags. Since for annotation, special
tags (meta-tags) are required, a modification is necessary to the RTE configuration, which is
risky. Therefore, we decided to inject the annotation directly through the database, in this
case through MySQL tables.
3.2 Modified Database
There are five tables were modified in order to annotated the website. Those database tables
are:
1. tt_contents. This table holds general pages.
2. tx_mpnews_news. This table holds specific pages which are categorized into pre-
defined categories, for example winter and summer offers.
3. tx_mpwellness_items. This table holds various items of wellness category, for
example packages, beauty treatments.
4. tx_mpzimmerpreise_seasons. This table holds various date intervals (from – to) for
several available seasons.
5. tx_mpzimmerpreise_rooms. This table holds various room items including their
priceses for a specific season.
3.3 Annotated Pages
In total, we were able annotating 268 pages/sub-pages in three different languages
(German/Default, English, and France).
4. Result
In this chapter, we show the results of several annotated pages when extracted using
Structured Data Testing from Google [7].
Page 8
7
4.1 Article
Article is used to annotated a generic page contains generic information. For example a page
about Philosophy of the hotel as shown at Figure 1.
Figure 1 Extracted Article
Page 9
8
4.2 Offer
A page could contain one Offer with several PriceSpecifications. For example in offer for
Rooms, the Offer contains variety prices according to the availability duration as shown at
Figure 2.
Figure 2 Extracted Offer
Page 10
9
A page also could contain more than one Offer. For example for Beauty Treatment as shown
at Figure 3.
Figure 3 Extracted several Offers
Page 11
10
A page also could contain Offer and Article at the same time. For example for the Tennis as
shown at Figure 4.
Figure 4 Extracted Offer and Article
Page 12
11
4.3 Hotel
Information about the Hotel can be obtained from the page Contact as shown at Figure 5.
Figure 5 Extracted Hotel
Page 13
12
Hotel also can be obtained from the page Imprint as shown at Figure 6.
Figure 6 Extracted Hotel
Page 14
13
5. Discussion
As mentioned above, the annotations were injected directly through the database tables. This
approach raises a few potential problems in the future:
- A content modification through RTE will be discarding all inserted annotation, i.e.
meta-tags will be discarded automatically by RTE.
o To avoid this situation, a future content modification should be through the
database interface.
- Second option is to customize the RTE configuration in a way capable of accepting
those special meta-tags.
References
[1] Kaysers 4-Star Hotel, http://kaysers.at
[2] Shema.org, http://schema.org/
[3] Zaenal Akbar, Ioan Toma, “Analysis of Kaysers.at Website”, Technical Report, STI
Innsbruck, 09.06.2015
[4] TYPO3 – The Enterprise Open Source CMS, https://typo3.org/
[5] MySQL – Open Source Database, https://www.mysql.com/
[6] Rich Text Editors (RTE),
http://docs.typo3.org/typo3cms/CoreApiReference/Rte/Index.html
[7] Structured Data Testing Tool, https://developers.google.com/structured-data/testing-
tool/