Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: BoatTrip, BoatStop, Harbor #1755

Open
fili opened this issue Sep 27, 2017 · 10 comments
Open

Proposal: BoatTrip, BoatStop, Harbor #1755

fili opened this issue Sep 27, 2017 · 10 comments

Comments

@fili
Copy link

@fili fili commented Sep 27, 2017

There are local and public boat services (ferries) around the world, similar to:

http://schema.org/BusStation
http://schema.org/BusStop
http://schema.org/TrainStation
http://schema.org/BusTrip
http://schema.org/TrainTrip
http://schema.org/TaxiStand

What is missing is a possibility to mark these up, and the time tables.

@chollma
Copy link

@chollma chollma commented Jan 21, 2020

Is there any update on this issue? The parent type (https://schema.org/Trip) is sufficient, but I would love to be able to more specifically mark up water-based trips like cruises which may not use the modes of transportation currently available on schema.org.

@magico
Copy link

@magico magico commented Feb 6, 2020

Here's a proposal that is consistent with other existing types.

BoatTerminal - http://schema.org/BoatTerminal
BoatTerminal inherits from CivicStructure and is defined the same way as similar existing types like BusStop. It does not add any new properties.

BoatReservation - http://schema.org/BoatReservation
BoatReservation inherits from Reservation and adds no new properties. This is similar to BusReservation and TrainReservation.

BoatTrip - http://schema.org/BoatTrip
BoatTrip inherits from Trip and adds new properties for arrival/departure terminal (arrivalBoatTerminal and departureBoatTerminal), the name of the boat (boatName) and the identifier for the boat (boatNumber). Similar to BusTrip and TrainTrip.

Example

{
  "@context": "http://schema.org”,
  "@type": "http://schema.org/BoatReservation”,
  "reservationId": "10522083”,
  "reservationStatus": "http://schema.org/ReservationConfirmed”,
  "underName": {
    "@type": "http://schema.org/Person”,
    "name": "John Smith”
  },
  "reservationFor": {
    "@type": "http://schema.org/BoatTrip",
    "boatName": "Lady Annabelle",
    "boatNumber": "D2345",
    "departureBoatTerminal": {
      "@type": "http://schema.org/BoatTerminal",
      "name": "Chase Center Ferry Terminal",
      "telephone": "4082954153",
      "url": "www.departure.com",
      "address": "525 Terry A Francois Blvd, San Francisco, CA 94158"
    },
    "departureTime": "2019-11-10T20:30:00",
    "arrivalBoatTerminal": {
      "@type": "http://schema.org/BoatTerminal",
      "name": "Alameda-Oakland Ferry Terminal",
      "telephone": "2136298401",
      "url": "www.arrival.com",
      "address": "101 The Embarcadero #118, San Francisco, CA 94105"
    },
    "arrivalTime": "2019-11-11T10:32:00",
    "provider": {
      "@type": "http://schema.org/Organization",
      "name": "San Francisco Bay Ferries"
    }
  }
}

Thoughts?

@bquinn
Copy link

@bquinn bquinn commented Feb 10, 2020

Instead of just having "boatName" and "boatNumber" as part of the reservation, how about making the actual boat a first-order property as well? It could inherit from https://schema.org/Vehicle, some of the properties from Vehicle could be useful such as seatingCapacity, cargoVolume etc.

It could also be worth marking up extra properties of ferries such as the amenities on board: do they have bars, toilets, cabins, shops etc? Can you take your car or pet on board? Do they only operate at certain times of the year?

@rvguha
Copy link
Contributor

@rvguha rvguha commented Feb 10, 2020

@magico
Copy link

@magico magico commented Feb 10, 2020

boatName is incredibly specific and counter to the idiom of not mixing up types with properties. The two should be orthogonal. Why isn't just name enough?

I used boatName because we use properties such as trainName in https://schema.org/TrainTrip. However, it's a fair point. We can use name instead of boatName and identifier instead of boatNumber

@rvguha
Copy link
Contributor

@rvguha rvguha commented Feb 10, 2020

@RichardWallis
Copy link
Contributor

@RichardWallis RichardWallis commented Feb 27, 2020

Referencing the discussion that has diverged into the "schema.org Mailing List" public-schemaorg@w3.org without keeping in sync (latest) - the proposal probably could do with minor tweaks and then building upon.

BoatTerminal as Felipe Santi points out is a bit specific, as boats, ships, etc. arrive and leave from ports, harbours, docks, jetties, water-bus stops, etc.

However if we are happy with Boat as the superclass for all types of watercraft, then BoatTerminal would be OK as a superclass for Harbour etc.

@Maxszik
Copy link

@Maxszik Maxszik commented Jul 5, 2020

I’m curious about cruises, are they meant to be covered here? A boat trip, in my mind, is a day trip, a commuter service, local transport lasting a couple of hours or over the day at most. Very common in some places. A ferry is pretty much the same, though they can be overnight, very rarely longer.

A cruise is a leisure holiday lasting many days. A cruise vessel is not a boat but a ship.

How are you reasoning here, does the cruise thing belong here at all? It’s a massive industry that deserves proper markup.

danbri added a commit that referenced this issue Jul 7, 2020
Adds BoatTerminal, BoatReservation, BoatTrip
danbri added a commit that referenced this issue Jul 7, 2020
@danbri
Copy link
Contributor

@danbri danbri commented Jul 16, 2020

postscript: name vs boatName

(This doesn't affect the changes committed for version 9.0 release.)

I can't find the discussion now, but on the point of "name" vs "trainName" etc., I believe someone (likely @vholland) pointed out that the /name is the name of the /Trip not the name of the train, boat etc. In which case, simply using "name" doesn't capture the vehicle's name, only the name of a trip using it.

Most trips will not involve transport by a vehicle with a notably named vehicle, but if we do find a demand for this expressivity, I suggest we add /vehicleName (and potentially a /vehicleIdentifier) to /Trip.

The "legacy" properties https://schema.org/busName and https://schema.org/trainName could be sub-properties of this. Note also that https://schema.org/Flight has /aircraft and /flightNumber.

My preference would be not to add more complexity here without motivating application and investigating how transport-related standards deal with such matters.

@github-actions
Copy link

@github-actions github-actions bot commented Sep 15, 2020

This issue is being tagged as Stale due to inactivity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants