Presentation is loading. Please wait.

Presentation is loading. Please wait.

Structured Data and Action

Similar presentations


Presentation on theme: "Structured Data and Action"— Presentation transcript:

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


Download ppt "Structured Data and Action"

Similar presentations


Ads by Google