schema.org, the hotel extension (3.1) & schema.org actions · 2016-11-02 · • schema.org:...
TRANSCRIPT
© Copyright 2016 STI INNSBRUCK www.sti-innsbruck.at
schema.org,the hotel extension (3.1)
& schema.org actions
October 12th, 2016 – Innsbruck, Elias Kärle, Umutcan Şimşek
www.sti-innsbruck.at
1. schema.org
2. hotel extension
3. actions
Outline
2
www.sti-innsbruck.at
What is schema.org?
• Collection of terms
• To describe „things“ on the World Wide Web
• (Invisible) integration of terms in (HTML / Web) site
• Content on site can be interpreted and understood because of „annotations“
1. schema.org
3
www.sti-innsbruck.at
1. schema.org
Created, recommendedand maintained by„Big 4“:
http://www.schema.org/
Embedded in HTML:• Microdata• RDFa• JSON-LD
4
www.sti-innsbruck.at
1. schema.org
no backend integrationenSchema.org Annotationen
Schema.org/Events
Knowledge Graph
5
www.sti-innsbruck.at
1. schema.org
Bildreferenzen:https://d.ibtimes.co.uk/en/full/1481562/apples-siri-can-beatbox.jpghttps://www.smartlounge.eu/wp-content/uploads/2015/08/cortana.pnghttp://c.mobilegeeks.de/wp-content/uploads/2012/12/google-now-google-search-jelly-bean.jpg
Intelligent personal assistants
6
www.sti-innsbruck.at
1. schema.org
Rich Snippets
Und vieles mehr…ChatbotsMicromoments…
2016
Recipes Products
Hotels
7
www.sti-innsbruck.at
1. schema.org
Rich Cards
2016 8
www.sti-innsbruck.at
1. schema.org
9
Why schema.org in Tourism?
• „Headless Web“1
– Web without visual interface– Web not rendered in web browser– Search engine shows answer no link to website needed
Design is becoming obsolet High quality data & Structured data needed
• „Invisible Hotel“
[1] https://paul.kinlan.me/the-headless-web/
www.sti-innsbruck.at
1. schema.org
10
Search: „Hotel Innsbruck“
Search results from:• Booking.com• HRS• Trivago• „Ab in den Urlaub“• ...
OTAs dominate results
Hotelwebsites disappear
Directbookings stagnate [1]
[1] Schegg, Fux (2012): http://www.etourism-monitor.ch/sites/default/files/downloads/distribution_survey_d-a-ch_scheggfux_2012_eng.pdf
www.sti-innsbruck.at
1. schema.org
11
Search: „Hotel Innsbruck“
Search result also from:
• Google knowledge graph• Google places• Rich snippets
(partly) based on websites annotated with schema.org!
www.sti-innsbruck.at
Use for Hotel industry:
1. Semantic SEO:Search engines understand search contexBetter search resultsHigher conversion rate
2. Rich Snippets/Cards:Additional information in search results:RatingEventsAddresses
3. Automatic „direct booking“:Fostering direct booking overhotel website:Semantically annotated offersSemantic search is better in finding offers
1. schema.org
12
www.sti-innsbruck.at
Schema.org <= 3.0: annotation of core data
Extension of existing schema.org vocabulary, released August 2016
• Project by: Prof. Martin Hepp & STI Innsbruck Team1
• 12 new Types, 10 new properties
• More detailed description– Core data (Number of Stars, Number of rooms and beds, ...)
– Features (Pets, Non-/Smoker, Meeting Rooms, Suits, ...)
– Offers (available times, Bed type, Roomnumber, Additional features, ...)
2. schema.org 3.1
13[1] Kärle, E., Simsek, U., Hepp, M., & Fensel, D. (2016). Extending the schema.org vocabulary for more expressive accommodation annotations.
www.sti-innsbruck.at
2. schema.org 3.1
14
www.sti-innsbruck.at
2. schema.org 3.1
15
• JSON-LD Demo:
– Hotel – containsPlace – HotelRoom
– Hotel – offers – itemOfferd – HotelRoom
– Multi Typed Entities
www.sti-innsbruck.at
What, Why and How
16
3. Schema.org Actions in Action
www.sti-innsbruck.at
3. What was missing?
17
We know how to represent a hotel room
www.sti-innsbruck.at
3. What was missing?
18
Reservea
Hotel Room
Buyan
Offer
Reviewa
Movie
Check-into a
Flight
How can we represent these?
www.sti-innsbruck.at
3. What was missing?
19
Reservea
Hotel Room
Buyan
Offer
Reviewa
Movie
Check-into a
Flight
How can we represent these?
Schema.org Actions
www.sti-innsbruck.at
• Released in April 2014
• «...our main focus was on providing vocabularies for describing entities ---people, places, movies, restaurants, ... But the Web is not just about static descriptions of entities. It is about taking action on these entities --- from making a reservation to watching a movie to commenting on a post.»
http://blog.schema.org/2014/04/announcing-schemaorg-actions.html
What are Schema.org Actions?
20
www.sti-innsbruck.at
• Released in April 2014
• «...our main focus was on providing vocabularies for describing entities ---people, places, movies, restaurants, ... But the Web is not just about static descriptions of entities. It is about taking action on these entities --- from making a reservation to watching a movie to commenting on a post.»
http://blog.schema.org/2014/04/announcing-schemaorg-actions.html
What are Schema.org Actions?
21
Elias cooked a Speckknödel recipe.
schema:Personschema:Recipe
schema:CookAction
www.sti-innsbruck.at
• Schema.org currently offers 110 actions
• All actions are subclass of class Action
• Action status: PotentialAction, ActiveAction, CompletedAction
• Everything can have potential action(s)– A book can have read or write action– A movie can have watch or review action
3. What are Schema.org Actions?
22
www.sti-innsbruck.at
3. What are Schema.org Actions?
23
www.sti-innsbruck.at
• „Headless web“: «Everything is powered by the web, but you never see a browser»*
• Describe operations alongside the data to enable automated agents
– Virtual assistants can perform a search and bring results without redirecting the userto a webpage
– E-Mail clients might provide actions extracted from e-mails (e.g. Flight check-in)– Chatbots may complete actions like reserving a table from a restaurant without heavy
API integrations
3. Why should we use them?
24*https://paul.kinlan.me/the-headless-web/
www.sti-innsbruck.at
Thing
+ participant : Person/Organization+ location : Place/Text/PostalAddress+ agent : Person/Organization+ endTime : DateTime+ startTime : DateTime+ target : EntryPoint
ReserveAction
Enum
ActionStatusType
HotelRoom
+ application : SoftwareApplication+ httpMethod : Text+ contentType : Text+ encodingType : Text+ urlTemplate : Text
EntryPoint
potentialAction
actionStatus
target
LodgingReservation
result
ReservationStatusTypereservationStatus
PropertyValueSpecification
checkinTime-outputlodgingUnitType-output
3. How: Reserve a Hotel Room
25
www.sti-innsbruck.at
Hotel Room Annotation:{
"@context": "http://schema.org/",
"@id": "http://examplehotel.com/rooms/123",
"@type": ["HotelRoom", "Product"]
"url": "http://examplehotel.com/rooms/123",
"potentialAction": {
"@type": "ReserveAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://examplehotel.com/rooms/123/reserve",
"encodingType": "application/ld+json",
"contentType": "application/ld+json"
},
"result": {
"@type": "LodgingReservation",
"checkinTime-output":"required",
"lodgingUnitType-output": "required",
"numAdults-input": "required",
"numChildren-input: "required"
}
}
}
3. How: Reserve a Hotel Room
26
Response:{
"@context": "http://schema.org/","@type": "ReserveAction","actionStatus": "CompletedActionStatus","object": " http://examplehotel.com/rooms/123 ","result": {"@type": "LodgingReservation","checkinTime": "12:00","lodgingUnitType": "Suite"}}
Request:POST https://examplehotel.com/rooms/123/reserve
www.sti-innsbruck.at
How: A More Advanced Scenario – Buy an Offer
27
BuyAction Annotation:{"@context": "http://schema.org/","@type": "BuyAction","agent": {
"@type": "Person","givenName-input": "required","familyName-input": "required","email-input": "required"
},"object": {
"@type":"Offer","name": "Beautiful room for two","itemOffered": "http://examplehotel.com/rooms/123","url-input": "required",
"priceSpecification": {"@type": "PriceSpecification","price": "90","priceCurrency": "EUR"}},
"result": {"@type": "Order","isGift-input": "required","orderDate-output": "required"
},"target": {
"@type": "EntryPoint","urlTemplate": "http://examplehotel.com/offer/buy","httpMethod" : "POST"
}}
Request: POST https://examplehotel.com/offer/buy{
"@context": "http://schema.org/",
"@type": "BuyAction",
"agent": {
"@type": "Person",
"givenName": "Frank","familyName": "Sinatra","email": "[email protected]"},
"object": {
"@type":"Offer",
"name": "Beautiful room for two",
"itemOffered": "http://examplehotel.com/rooms/123",
"@id": "http://examplehotel.com/offers/345" ,
"priceSpecification": {
"@type": "PriceSpecification",
"price": "90",
"priceCurrency": "EUR"
}},
"result": {
"@type": "Order",
"isGift": "False"}}
Response: {"@context": "http://schema.org/","@type": "BuyAction","actionStatus": "CompletedActionStatus","result": {
"@type": "Order","orderDate": "11.10.2016"}}
www.sti-innsbruck.at
How: PropertyValueSpecification
28
A way to provide additional information to create a complete request and response
http://schema.org/docs/actions.html
www.sti-innsbruck.at
How: PropertyValueSpecification
29
http://schema.org/docs/actions.htm
l
www.sti-innsbruck.at
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "https://www.example.com/",
"potentialAction": [{
"@type": "SearchAction",
"target": "https://query.example.com/search?q={search_term_string}",
"query-input": "required name=search_term_string"
},{
"@type": "SearchAction",
"target": "android-app://com.example/https/query.example.com/search/?q={search_term_string}",
"query-input": "required name=search_term_string"
}]
}
</script>
How: Describing the Search Functionality
30https://developers.google.com/search/docs/data-types/sitelinks-searchbox
www.sti-innsbruck.at
How: Gmail
31
<script type="application/ld+json">{"@context": "http://schema.org","@type": "Event","name": "Taco Night","startDate": "2015-04-18T15:30:00Z","endDate": "2015-04-18T16:30:00Z","location": {"@type": "Place","address": {"@type": "PostalAddress","name": "Google","streetAddress": "24 Willie Mays
Plaza","addressLocality": "San Francisco","addressRegion": "CA","postalCode": "94107","addressCountry": "USA"
}},"potentialAction": [{"@type": "RsvpAction","handler": {"@type": "HttpActionHandler","url":
"http://mysite.com/rsvp?eventId=123&value=yes"
},"rsvpResponse":
https://schema.org/RsvpResponseYes"
},{"@type": "RsvpAction","handler": {"@type": "HttpActionHandler","url":
"http://mysite.com/rsvp?eventId=123&value=no"
},"rsvpResponse":
https://schema.org/RsvpResponseNo"
},{"@type": "RsvpAction","handler": {"@type": "HttpActionHandler","url":
"http://mysite.com/rsvp?eventId=123&value=maybe"
},"rsvpResponse":
"https://schema.org/RsvpResponseMaybe"
}]
}</script>
www.sti-innsbruck.at
• Supported actions:
– RSVP Action for events– Review Action for restaurants, movies, products and services– One-click Action for just about anything that can be performed with a single click– Go-to Action for more complex interactions– Flight interactive cards
32https://developers.google.com/gmail/markup/overview#unlock_the_power_of_your_emails_with_schemaorg
How: Actions in Gmail
www.sti-innsbruck.at
• Schema.org: de-facto standard for annotating „Things“ on the web
• Important for being present on the „headless web“
• Hotel extension allows annotating more detailed and expressive
• Schema.org Actions are used for representing actions that can be taken on entities.
• Already being consumed by many applications
• An important development for enabling automated agents
Conclusions
33