Download presentation
Presentation is loading. Please wait.
1
Structured Data and Action
Block 5 Part of the course “VU Booking and Yield Management” SS 2018 /
2
Agenda No. Date Group-0 Group-1 Group-2 1 Tue, 2018-04-10 SR 2 SR3 2
Fri, 3 Tue, 4 Tue, SR 3 5 Fri, 6 Tue, 7 Tue, 8 Fri, 9 Tue, 10 Fri, 11 Tue,
3
Where we are? Topic Distribution per Block / Day
Introduction, History and Theory of Revenue Management Estimation, Forecasting and Overbooking Empirical Booking and Yield Management Hotel Online Distribution Structured Data and Action Theory, foundations Practice, state of the art
4
References Introduction to Structured Data, data A voice and text-based conversational interface, Schema.org Actions, Markup,
5
Topics Structured Data Schema.org Action Schema.org Action for
6
1. Structured Data
7
Motivation (1) Why do we need to learn about structured data?
What is the relationship between structured data and our course? We would like to hand over our tasks to computer. Therefore computer needs to be more intelligent, should be able to: Book a hotel room based on our preferences automatically Find the cheapest accommodation from multiple booking channels Combine multiple offers into one package, dynamically and automatically
8
Motivation (2)
9
A Use Case (1) “I would like to spend my 3 days holiday in Vienna next week” Computer should understand what you want: Vienna is a City, located in Austria, with geo-location at ( , ) Next week is a Date, one week from Today 3 days is a Number for duration
10
A Use Case (2) Computer needs to think:
Your current location is not in Vienna (e.g. Innsbruck), the distance is about 470km Today is 10.03, so next week is 17.03 Computer needs to make decisions: To go to Vienna, you need to buy a ticket for flight or train or bus Which area of the city is the best to stay for next week Events that will be interesting for you
11
A Use Case (3) “I am going to Landeck for teaching but my car is broken on the highway” Computer should understand what you want Computer needs to think Computer needs to make decisions: Send to students, inform that the lecture will start a bit late Contact the nearest auto-repair shop and request for help Contact your insurance company and report the case
12
Structured Data - Introduction (1)
Unstructured data does not have a pre-defined data model or is not organized in a pre-defined manner typically text-heavy, but may contain data such as dates, numbers, and facts as well produces irregularities and ambiguities A data model an abstract model that organizes elements of data standardizes how elements relate to one another and to properties of the real world entities
13
Structured Data - Introduction (2)
How does structured data contribute to making computer become more intelligent? When information is highly structured and predictable, search engines can more easily organize and display it in creative ways When information is highly structured and predictable, artificial intelligence assistants can be more engaging with users
14
Search Result Enhancements (1)
Carousel - display your rich results in a sequential list or gallery
15
Search Result Enhancements (2)
Logo, corporate contact, social profiles infromation are displayed on Google Knowledge panels
16
Search Result Enhancements (3)
Business details displayed prominently in the Knowledge Graph card.
17
Search Result Enhancements (4)
An organized event, such as a concert or art festival, that people may attend at a particular time and place.
18
Creating Structured Data (1)
“George Bush, the 41st President of the United States is the father of George W. Bush, the 43rd President of the United States” { " "Person", "name": "George Bush", "disambiguatingDescription": "41st President of the US", "children": { "Person", "name": "George W. Bush", "disambiguatingDescription": "43rd President of the US" } }
19
Creating Structured Data (2)
“A restaurant named ‘Fondue for Fun and Fantasy’ is fantastic and fun for all your cheesy occasions. It is open from 11:30 to 23:00 every day. Its menu is available online on and can be ordered by calling the telephone number +43 (512) ” { " "Restaurant", "name": "Fondue for Fun and Fantasy", "description": "Fantastic and fun for all your cheesy occasions", "openingHours": "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00", "telephone": "+43 (512) ", "menu": " }
20
Creating Structured Data (3)
“Ghostbusters was produced by Black Rhino in the United States” { " "Movie", "name": "Ghostbusters", "productionCompany": { "Organization", "name": "Black Rhino" }, "countryOfOrigin": { "Country", "name": "USA" } }
21
Creating Structured Data (4)
22
Creating Structured Data (5)
23
Creating Structured Data (6)
24
Creating Structured Data (7)
25
Creating Structured Data (8)
26
A tool to create, publish and validate structured data
Semantify.it (1)
27
A tool to create, publish and validate structured data
Semantify.it (2)
28
Summary Adding structured data to a website could increase online visibility of the website Personal digital assistants and chatbots would consume structured data to make intelligent decisions Creating structured data is a challenging task, tools are required to make sure created structured data are valid Semantify.it is a tool to create, publish and validate structured data
29
2. Schema.org Action
30
What was missing? We know how to represent a hotel room
Class selection with new guide
31
What was missing? How can we represent these? Reserve a Hotel Room Buy
Offer How can we represent these? Review a Movie Check-in to a Flight
32
What was missing? How can we represent these? Schema.org Actions
Reserve a Hotel Room Buy an Offer How can we represent these? Review a Movie Check-in to a Flight Schema.org Actions
33
What are Schema.org Actions?
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.” (*) (*)
34
What are Schema.org Actions?
An example: Elias cooked a Speckknödel recipe. schema:Person schema:Recipe schema:CookAction
35
What are Schema.org Actions?
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
36
What are Schema.org Actions?
37
Why should we use them? “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 user to a webpage clients might provide actions extracted from s (e.g. Flight check-in) Chatbots may complete actions like reserving a table from a restaurant without heavy API integrations (*)
38
How: Reserve a Hotel Room
39
How: Reserve a Hotel Room
Hotel Room Annotation: { " " ["HotelRoom", "Product"] "url": " "potentialAction": { "ReserveAction", "target": { "EntryPoint", "urlTemplate": " "encodingType": "application/ld+json", "contentType": "application/ld+json" }, "result": { "LodgingReservation", "checkinTime-output":"required", "lodgingUnitType-output": "required", "numAdults-input": "required", "numChildren-input: "required" } How: Reserve a Hotel Room
40
How: Reserve a Hotel Room
Request: POST How: Reserve a Hotel Room Response: { " "ReserveAction", "actionStatus": "CompletedActionStatus", "object": " "result": { "LodgingReservation", "checkinTime": "12:00", "lodgingUnitType": "Suite" } }
41
How: Buy an Offer BuyAction Annotation: {
" "BuyAction", "agent": { "Person", "givenName-input": "required", "familyName-input": "required", " -input": "required" }, "object": { "name": "Beautiful room for two", "itemOffered": " "url-input": "required", "priceSpecification": { "PriceSpecification", "price": "90", "priceCurrency": "EUR" }}, "result": { "Order", "isGift-input": "required", "orderDate-output": "required" "target": { "EntryPoint", "urlTemplate": " "httpMethod" : "POST" } How: Buy an Offer
42
How: Buy an Offer Request: POST https://examplehotel.com/offer/buy
{ " "BuyAction", "agent": { "Person", "givenName": "Frank", "familyName": "Sinatra", " ": }, "object": { "name": "Beautiful room for two", "itemOffered": " " , "priceSpecification": { "PriceSpecification", "price": "90", "priceCurrency": "EUR" }}, "result": { "Order", "isGift": "False" }} How: Buy an Offer Response: { " "BuyAction", "actionStatus": "CompletedActionStatus", "result": { "Order", "orderDate": " " }}
43
How: Describing the Search Functionality
<script type="application/ld+json"> { " "WebSite", "url": " "potentialAction": [{ "SearchAction", "target": " "query-input": "required name=search_term_string" },{ "target":"android- app://com.example/https/query.example.com/search/?q={search_term_string}", }] } </script>
44
Summary 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
45
3. Schema.org Action for Email
46
Introduction (1) E-Mail markup benefits:
Highlights in Inbox - Highlight your s with important information and actions in Inbox by Gmail Add Actions to s - Increase your users' engagement with interactive buttons in your s Answers in Search - s with markup appear in Google Search results when users search for tickets, flights and events Confirmation Cards - Present cards to the user in the right place and at the right time
47
Introduction (2) Supported actions in Gmail Markup:
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 (*)
48
View Action <script type="application/ld+json"> {
" " Message", "potentialAction": { "ViewAction", "target": " "name": "Watch movie" }, "description": "Watch the 'Avengers' movie online" } </script>
49
RSVP Action (1) <script type="application/ld+json"> {
" "Event", "name": "Taco Night", "startDate": " T15:30:00Z", "endDate": " T16:30:00Z", "location": { "Place", "address": { "PostalAddress", "name": "Google", "streetAddress": "24 Willie Mays Plaza", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94107", "addressCountry": "USA" } }, "potentialAction": [...] </script>
50
RSVP Action (2) <script type="application/ld+json"> { ...
"potentialAction": [ "RsvpAction", "rsvpResponse": "yes", "handler": { "HttpActionHandler", "url": " }, "attendance": " "rsvpResponse": "no", "url": " "attendance": " "rsvpResponse": "maybe", "url": " "attendance": " } ] </script> RSVP Action (2)
51
Flight Reservations Basic flight confirmation Boarding pass
Check-in button Updates a flight Cancel a flight Multiple flight segments
52
Flight Reservation (1)
53
Flight Reservation (2) <script type="application/ld+json"> {
" "FlightReservation", "reservationNumber": "RXJ34P", "reservationStatus": " "underName": { "Person", "name": "Eva Green" }, "reservationFor": { "Flight", "flightNumber": "110", "airline": { "Airline", "name": "United", "iataCode": "UA" "departureAirport": { "Airport", "name": "San Francisco Airport", "iataCode": "SFO" "departureTime": " T20:15:00-08:00", "arrivalAirport": { "name": "John F. Kennedy International Airport", "iataCode": "JFK" "arrivalTime": " T06:30:00-05:00" "checkinUrl": " "modifiedTime": " T08:30:00-08:00", "modifyReservationUrl": " } </script> Flight Reservation (2)
54
Hotel Reservations <script type="application/ld+json"> {
" "LodgingReservation", "reservationNumber": "abc456", "reservationStatus": " "underName": { "Person", "name": "John Smith" }, "reservationFor": { "LodgingBusiness", "name": "Hilton San Francisco Union Square", "address": { "PostalAddress", "streetAddress": "333 O'Farrell St", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94102", "addressCountry": "US" "telephone": " " "checkinDate": " T16:00:00-08:00", "checkoutDate": " T11:00:00-08:00" } </script>
55
Update Reservations <script type="application/ld+json"> {
" "LodgingReservation", "reservationNumber": "abc456", "reservationStatus": " "underName": { "Person", "name": "John Smith" }, "reservationFor": { "LodgingBusiness", "name": "Hilton San Francisco Union Square", "address": { "PostalAddress", "streetAddress": "333 O'Farrell St", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94102", "addressCountry": "US" "telephone": " " "checkoutDate": " T11:00:00-08:00", "checkinDate": " T16:00:00-08:00", "modifiedTime": " T08:00:00-08:00", "modifyReservationUrl": " } </script> Update Reservations
56
Cancel Reservations <script type="application/ld+json"> {
" "LodgingReservation", "reservationNumber": "abc456", "reservationStatus": " "underName": { "Person", "name": "John Smith" }, "reservationFor": { "LodgingBusiness", "name": "Hilton San Francisco Union Square", "address": { "PostalAddress", "streetAddress": "333 O'Farrell St", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94102", "addressCountry": "US" "telephone": " " "checkoutDate": " T11:00:00-08:00", "checkinDate": " T16:00:00-08:00", "modifiedTime": " T08:00:00-08:00", "cancelReservationUrl": " } </script> Cancel Reservations
57
How: View Action <script type="application/ld+json"> {
" " Message", "description": "Watch the University of UMIT", "potentialAction": { "ViewAction", "target": " "name": "Watch This Very Cool Video" } </script>
58
How: RSVP <script type="application/ld+json"> {
" "Event", "name": "Booking and Yield Management", "startDate": " T09:00:00Z", "endDate": " T14:15:00Z", "location": { "Place", "address": { "PostalAddress", "name": "UMIT Landeck", "streetAddress": "Eduard-Wallnöfer-Zentrum 1", "addressLocality": "Hall in Tirol", "addressRegion": "Tyrol", "postalCode": "6060", "addressCountry": "AT" }}, "potentialAction": [ "RsvpAction", "rsvpResponse": "yes", "handler": "HttpActionHandler", "url": " "attendance": " }, { "rsvpResponse": "no", "handler": "HttpActionHandler", "url": " "attendance": " "rsvpResponse": "maybe", "handler": "HttpActionHandler", "url": " "attendance": " }] } </script>
59
How: Flight Reservation
{ " "FlightReservation", "reservationNumber": "RXJ34P", "reservationStatus": " "underName": { "Person", "name": "John Smith" }, "reservationFor": { "Flight", "flightNumber": "110", "airline": { "Airline", "name": "Austrian", "iataCode": "AUA" "departureAirport": { "Airport", "name": "Innsbruck Airport", "iataCode": "INN" "departureTime": " T08:15:00Z", "arrivalAirport": { "name": "Landeck Airport", "iataCode": "LDK" "arrivalTime": " T09:00:00Z" "checkinUrl": " } How: Flight Reservation
60
Summary Adding structured data and actions in s would increase user engagement, such as: Interactive buttons Confirmation cards As an example, Gmail has been using schema.org markup to accelerate user actions and to highlight the most important information users need from an .
61
Structured Data and Action
Hands-on Exercise
62
Task To create structured data with action for email:
Go-To Action - View Action Rsvp Action - Yes/Maybe/No Flight Reservation - Basic flight information and a check-in button Tools: Semantify.it, Markup Tester Tool:
63
semantify.it - Login
64
semantify.it – Annotation Template
65
semantify.it – New annotation
66
semantify.it - Email Message - View Action
67
semantify.it - Event + Rsvp Action
Use the correct format (e.g T15:30:00Z), see
68
semantify.it - Event + Rsvp Action
Use the following URLs for the property “attendance”:
69
semantify.it - Flight Reservation + CheckIn Action
Use the correct format (e.g T15:30:00Z),
70
Google Apps Script Login with your Google account
71
Google Apps Script Visit script.google.com.
Use Google Apps Script tutorial: Create a new project. Replace the code in Code.gs with the following and save it:
72
Google Apps Script Select File > New > Html file
Add html tags <script type="application/ld+json"> and </script> and insert your annotation from semantify.it
73
Google Apps Script
74
Google Apps Script Change the parameter mail_template to match the name of your Html file. Run the function to get the
75
Evaluation Go to link and submit the evaluation form
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.