Latest version: http://purl.org/tio/ns (RDF/XML, HTML)
Last update: 2010-11-17
Author: Martin Hepp
The Tickets Ontology is a Web vocabulary for describing tickets for concerts, locations like museums, or any kind of transportation for e-commerce.
The vocabulary is designed to be used in combination with GoodRelations, a standard vocabulary for the commercial aspects of tickets and other goods or services.
GoodRelations is a language (also known as "schema", "data dictionary", or "ontology") for product, price, and company data that can (1) be embedded into existing static and dynamic Web pages and that (2) can be processed by other computers. This increases the visibility of your products and services in the latest generation of search engines, recommender systems, and other novel applications.
This document is the official specification. For examples, tools, and other developer resources, please check the following related documents:
In this section we give brief examples of how to use the Tickets Sales Ontology in combination with GoodRelations.
Prefix Declarations
# Prefix declarations @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix dcterms: <http://purl.org/dc/terms/> . @prefix gr: <http://purl.org/goodrelations/v1#> . @prefix tio: <http://purl.org/tio/ns#> . @prefix foo: <http://www.heppnetz.de/ontologies/tio/examples.rdf#> .
Company Data
foo:HeppTickets a gr:BusinessEntity ; gr:legalName "Hepp Tickets, a fictious division of Hepp Research Gmbh"@en . # You should add address details and geo-position data using external vocabularies
Scenario: An offer for tickets for the Bryan Adams concert at the Verizon Wireless Ampitheatre, at $ 19.99 per ticket.
Turtle
# We reuse this event: http://data.linkedevents.org/event/3018e1eb-b1dc-4b62-8cb2-f1457c7a31cf # Bryan Adams at the Verizon Wireless Amphitheatre foo:ticket1 a tio:TicketPlaceholder ; rdfs:label "Ticket for Bryan Adams at the Verizon Wireless Amphitheatre"@en ; tio:accessTo <http://data.linkedevents.org/event/3018e1eb-b1dc-4b62-8cb2-f1457c7a31cf> . foo:HeppTickets gr:offers foo:offer1 . foo:offer1 a gr:Offering ; gr:name "Ticket for Bryan Adams at the Verizon Wireless Amphitheatre"@en ; gr:description "Don't miss this: Bryan Adams at the Verizon Wireless Amphitheatre!"@en ; gr:includes foo:ticket1 ; gr:hasBusinessFunction gr:Sell ; gr:hasPriceSpecification [ a gr:UnitPriceSpecification ; gr:hasCurrency "USD"@en ; gr:hasCurrencyValue "19.99"^^xsd:float ; gr:validThrough "2010-11-11T23:59:59"^^xsd:dateTime ] .
RDFa
<div xmlns="http://www.w3.org/1999/xhtml" xmlns:tio="http://purl.org/tio/ns#" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" about="#offer1" typeof="gr:Offering" xml:lang="en"> <div property="gr:name">Ticket for Bryan Adams at the Verizon Wireless Amphitheatre</div> <div property="gr:description">Don't miss this: Bryan Adams at the Verizon Wireless Amphitheatre!</div> <div rev="gr:offers" resource="http://www.example.com/#company"></div> <div rel="gr:hasBusinessFunction" resource="http://purl.org/goodrelations/v1#Sell"></div> Price: <div rel="gr:hasPriceSpecification"> <div typeof="gr:UnitPriceSpecification"> <span property="gr:hasCurrency" content="USD" datatype="xsd:string">$ </span> <span property="gr:hasCurrencyValue" content="19.99" datatype="xsd:float">19.99</span> <div property="gr:validThrough" content="2010-11-11T23:59:59" datatype="xsd:dateTime">Offer ends: Nov 11, 2010</div> </div> </div> <div rel="gr:includes"> <div about="#ticket1" typeof="tio:TicketPlaceholder"> Event link: <a rel="tio:accessTo" href="http://data.linkedevents.org/event/3018e1eb-b1dc-4b62-8cb2-f1457c7a31cf"> Bryan Adams at the Verizon Wireless Amphitheatre</a> <div property="rdfs:label" content="Ticket for Bryan Adams at the Verizon Wireless Amphitheatre"></div> </div> </div> </div>
Scenario: An offer for day tickets for the Deutsches Museum in Munich for EUR 8
Turtle
# Point of interest: http://dbpedia.org/resource/Deutsches_Museum foo:ticket3 a tio:TicketPlaceholder ; rdfs:label "Day ticket for the Deutsches Museum in Munich"@en ; tio:accessTo <http://dbpedia.org/resource/Deutsches_Museum> . foo:HeppTickets gr:offers foo:offer3 . foo:offer3 a gr:Offering ; gr:name "Day tickets for the Deutsches Museum in Munich - just EUR 8"@en ; gr:description "Day tickets for one of the leading exhibitions of technology"@en ; gr:includes foo:ticket3 ; gr:hasBusinessFunction gr:Sell ; gr:hasPriceSpecification [ a gr:UnitPriceSpecification ; gr:hasCurrency "EUR"@en ; gr:hasCurrencyValue "8"^^xsd:float ; gr:validThrough "2010-12-31T23:59:59"^^xsd:dateTime ] .
RDFa
<div xmlns="http://www.w3.org/1999/xhtml" xmlns:tio="http://purl.org/tio/ns#" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" about="#offer3" typeof="gr:Offering" xml:lang="en"> <div property="gr:name">Day tickets for the Deutsches Museum in Munich - just EUR 8</div> <div property="gr:description">Day tickets for one of the leading exhibitions of technology</div> <div rev="gr:offers" resource="http://www.example.com/#company"></div> <div rel="gr:hasBusinessFunction" resource="http://purl.org/goodrelations/v1#Sell"></div> Price: <div rel="gr:hasPriceSpecification"> <div typeof="gr:UnitPriceSpecification"> <span property="gr:hasCurrency" content="EUR" datatype="xsd:string">Euro </span> <span property="gr:hasCurrencyValue" content="8" datatype="xsd:float">8</span> <div property="gr:validThrough" content="2010-12-31T23:59:59" datatype="xsd:dateTime"> (valid until: Dec 31, 2010)</div> </div> </div> <div rel="gr:includes"> <div about="#ticket3" typeof="tio:TicketPlaceholder"> Link to the location: <a rel="tio:accessTo" href="http://dbpedia.org/resource/Deutsches_Museum">Deutsches Museum</a> <div property="rdfs:label" content="Day ticket for the Deutsches Museum in Munich"></div> </div> </div> </div>
Scenario: Subway ticket from King's Cross to Euston Square for GBP 4.75
Turtle
# Station 1: <http://dbpedia.org/resource/King%27s_Cross_St._Pancras_tube_station> # Station 2: <http://dbpedia.org/resource/Euston_Square_tube_station> foo:subway1234 a tio:TrainService ; tio:from <http://dbpedia.org/resource/King%27s_Cross_St._Pancras_tube_station> ; tio:to <http://dbpedia.org/resource/Euston_Square_tube_station> . foo:ticket6 a tio:TicketPlaceholder ; rdfs:label "Subway ticket from King's Cross to Euston Square"@en ; tio:accessTo foo:subway1234 . foo:HeppTickets gr:offers foo:offer6 . foo:offer6 a gr:Offering ; gr:name "Subway ticket from King's Cross to Euston Square"@en ; gr:description "Subway ticket from King's Cross to Euston Square"@en ; gr:includes foo:ticket6 ; gr:hasBusinessFunction gr:Sell ; gr:hasPriceSpecification [ a gr:UnitPriceSpecification ; gr:hasCurrency "GBP"@en ; gr:hasCurrencyValue "4.75"^^xsd:float ; gr:validThrough "2010-12-31T23:59:59"^^xsd:dateTime ] .
RDFa
<div xmlns="http://www.w3.org/1999/xhtml" xmlns:tio="http://purl.org/tio/ns#" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" about="#offer6" typeof="gr:Offering" xml:lang="en"> <div property="gr:name">Subway ticket from King's Cross to Euston Square</div> <div property="gr:description">Subway ticket from King's Cross to Euston Square</div> <div rev="gr:offers" resource="http://www.example.com/#company"></div> <div rel="gr:hasBusinessFunction" resource="http://purl.org/goodrelations/v1#Sell"></div> Price: <div rel="gr:hasPriceSpecification"> <div typeof="gr:UnitPriceSpecification"> <span property="gr:hasCurrency" content="GBP" datatype="xsd:string">GBP </span> <span property="gr:hasCurrencyValue" content="4.75" datatype="xsd:float">4.75</span> <div property="gr:validThrough" content="2010-12-31T23:59:59" datatype="xsd:dateTime"> (valid until: Dec 31, 2010)</div> </div> </div> <div rel="gr:includes"> <div about="#ticket6" typeof="tio:TicketPlaceholder"> <div property="rdfs:label" content="Subway ticket from King's Cross to Euston Square"></div> <div rel="tio:accessTo"> <div about="#subway1234" typeof="tio:TrainService"> From: <a rel="tio:from" href="http://dbpedia.org/resource/King%27s_Cross_St._Pancras_tube_station">King's Cross</a> To: <a rel="tio:to" href="http://dbpedia.org/resource/Euston_Square_tube_station">Euston Square</a> </div> </div> </div> </div> </div>
Scenario: There is a direct flight from Frankfurt to London Heathrow, operated by Lufthansa, departure at 20:00 GMTZ on November 12, 2010, arrival at 21:45 GMT. Available service classes are Economy and Business Class. An Economy ticket for one-way is EUR 99 if booked at least 7 and not more than 30 days before the flight. The offer is valid for Germany only ("DE"), and payment is accepted via MasterCard or VISA. The ticket is issued as an etix(R) electronic ticket.
Turtle
# Airfare # FRA: <http://dbpedia.org/resource/Frankfurt_Airport> # HRH: <http://dbpedia.org/resource/London_Heathrow_Airport> foo:LH1234 a tio:Flight ; tio:from [ a tio:Stop ; tio:at <http://dbpedia.org/resource/Frankfurt_Airport> ; tio:departs "2010-11-12T20:00:00Z"^^xsd:dateTime ] ; tio:to [ a tio:Stop ; tio:at <http://dbpedia.org/resource/London_Heathrow_Airport> ; tio:arrives "2010-11-12T21:45:00Z"^^xsd:dateTime ] ; tio:availableServiceLevel tio:Economy, tio:BusinessClass ; tio:operatedBy <http://dbpedia.org/resource/Lufthansa> . foo:ticket5 a tio:TicketPlaceholder ; rdfs:label "Economy tickets from Frankfurt to London Heathrow"@en ; tio:scope [ a tio:ScopeOfAccess ; tio:accessTo foo:LH1234 ; tio:eligibleServiceLevel tio:Economy ] . foo:HeppTickets gr:offers foo:offer5 . foo:offer5 a gr:Offering ; gr:name "Economy tickets from Frankfurt to London Heathrow - just EUR 99"@en ; gr:description "Special Offer: Economy tickets from Frankfurt to London Heathrow for just EUR 99"@en ; gr:includes foo:ticket5 ; gr:advanceBookingRequirement [ a gr:QuantitativeValue ; # 7...30 days gr:hasMinValue "7"^^xsd:int ; gr:hasMaxValue "30"^^xsd:int ; gr:hasUnitOfMeasurement "DAY"^^xsd:string ] ; gr:eligibleRegions "DE"^^xsd:string ; gr:hasBusinessFunction gr:Sell ; gr:hasPriceSpecification [ a gr:UnitPriceSpecification ; gr:hasCurrency "EUR"@en ; gr:hasCurrencyValue "99"^^xsd:float ; gr:validThrough "2010-11-11T23:59:59"^^xsd:dateTime ] ; gr:acceptedPaymentMethods gr:MasterCard, gr:VISA ; gr:availableDeliveryMethods tio:Etix .
Scenario: An offer for a family ticket for the Bryan Adams concert at the Verizon Wireless Amphitheatre for 1-2 adults and 0-2 kids aged 0-6 years
Turtle
# We reuse this event: http://data.linkedevents.org/event/3018e1eb-b1dc-4b62-8cb2-f1457c7a31cf foo:ticket2 a tio:TicketPlaceholder ; rdfs:label "Family ticket for for Bryan Adams at the Verizon Wireless Amphitheatre: 1-2 adults and 0-2 kids aged 0-6 years"@en ; tio:scope [ a tio:ScopeOfAccess ; tio:accessTo <http://data.linkedevents.org/event/3018e1eb-b1dc-4b62-8cb2-f1457c7a31cf> ; tio:ageRange [ a gr:QuantitativeValue ; gr:hasMinValue "18"^^xsd:int ; gr:hasUnitOfMeasurement "ANN"^^xsd:string ] ; # >= 18 years tio:participants [ a gr:QuantitativeValue ; gr:hasMinValue "1"^^xsd:int ; gr:hasMaxValue "2"^^xsd:int ; gr:hasUnitOfMeasurement "C62"^^xsd:string ] ; # no unit / "persons" tio:validFrom "2010-11-12T20:00:00Z"^^xsd:dateTime ; tio:validThrough "2010-11-12T23:00:00Z"^^xsd:dateTime ] ; tio:scope [ a tio:ScopeOfAccess ; tio:accessTo <http://data.linkedevents.org/event/3018e1eb-b1dc-4b62-8cb2-f1457c7a31cf> ; tio:ageRange [ a gr:QuantitativeValue ; gr:hasMaxValue "6"^^xsd:int ; gr:hasUnitOfMeasurement "ANN"^^xsd:string ] ; # <= 6 years tio:participants [ a gr:QuantitativeValue ; gr:hasMinValue "0"^^xsd:int ; gr:hasMaxValue "2"^^xsd:int ; gr:hasUnitOfMeasurement "C62"^^xsd:string ] ; # no unit / "persons" tio:validFrom "2010-11-12T20:00:00Z"^^xsd:dateTime ; tio:validThrough "2010-11-12T23:00:00Z"^^xsd:dateTime ] . foo:HeppTickets gr:offers foo:offer2 . foo:offer2 a gr:Offering ; gr:name "Family Ticket for Bryan Adams at the Verizon Wireless Amphitheatre"@en ; gr:description """Don't miss this: A discounted family ticket for 1-2 adults and up to two kids for the only concert of Bryan Adams in town!"""@en ; gr:includes foo:ticket2 ; gr:hasBusinessFunction gr:Sell ; gr:hasPriceSpecification [ a gr:UnitPriceSpecification ; gr:hasCurrency "USD"@en ; gr:hasCurrencyValue "49.99"^^xsd:float ; gr:validThrough "2010-11-11T23:59:59"^^xsd:dateTime ] .
You can try the query against the sample data provided at http://www.heppnetz.de/ontologies/tio/examples.rdf.
Scenario 1: We want to list available tickets for a given event.
SPARQL Query
# Find tickets for a given event, order by price # Mind the two ways of using tio:accessTo SELECT ?ticket, ?orderlink, ?currency, ?price WHERE { ?ticket a tio:Ticket . { { ?ticket tio:accessTo <http://data.linkedevents.org/event/3018e1eb-b1dc-4b62-8cb2-f1457c7a31cf> . } UNION { ?ticket tio:scope ?s . ?s tio:accessTo <http://data.linkedevents.org/event/3018e1eb-b1dc-4b62-8cb2-f1457c7a31cf> . } } ?offer a gr:Offering . OPTIONAL {?offer foaf:page ?orderlink . } { { ?offer gr:includes ?ticket . } UNION { ?offer gr:includesObject ?t . ?t a gr:TypeAndQuantityNode . ?t gr:typeOfGood ?ticket . } } ?offer gr:hasPriceSpecification ?p. ?p a gr:UnitPriceSpecification . ?p gr:hasCurrency ?currency . ?p gr:hasCurrencyValue ?price . } ORDER BY ASC (?price) LIMIT 10
Scenario 2: Find Economy class tickets from Frankfurt to London, operated by Lufthansa. The connection should depart between 16:00 and 21:00 GMT on November 12, 2010.
SPARQL Query
# Find economy class tickets from FRA to HRH, operated by Lufthansa, order by price, in a given time-frame # The connection should depart between 16:00 and 21:00 GMT on November 12, 2010 # Mind the two ways of using tio:accessTo PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX gr: <http://purl.org/goodrelations/v1#> PREFIX tio: <http://purl.org/tio/ns#> PREFIX dbpedia: <http://dbpedia.org/resource/> SELECT ?ticket, ?departure, ?arrival, ?currency, ?price, ?orderlink WHERE { # Step 1: Find a suitable connection ?connection tio:from ?from . ?from tio:at dbpedia:Frankfurt_Airport . ?from tio:departs ?departure . ?connection tio:to ?to . ?to tio:at dbpedia:London_Heathrow_Airport . ?to tio:arrives ?arrival . ?connection tio:availableServiceLevel tio:Economy . FILTER (?departure > "2010-11-12T16:00:00Z"^^xsd:dateTime && ?departure < "2010-11-12T21:00:00Z"^^xsd:dateTime) # Step 2: Search for tickets for this connection ?ticket a tio:Ticket . ?ticket tio:scope ?s . ?s tio:accessTo ?connection . ?s tio:eligibleServiceLevel tio:Economy . # Step 3: Search for offers for such tickets ?offer a gr:Offering . OPTIONAL { ?offer foaf:page ?orderlink } { { ?offer gr:includes ?ticket } UNION { ?offer gr:includesObject ?t . ?t a gr:TypeAndQuantityNode . ?t gr:typeOfGood ?ticket } } ?offer gr:hasPriceSpecification ?p . ?p a gr:UnitPriceSpecification . ?p gr:hasCurrency ?currency . ?p gr:hasCurrencyValue ?price . } ORDER BY ASC (?price) LIMIT 10
Note: The queries shown require that your triplestore (RDF database) supports RDFS-style reasoning, i.e. that it considers rdfs:subClassOf relations. If the queries do not return the expected results, you can replace
?ticket a tio:Ticket
by
{ { ?ticket a tio:TicketPlaceholder . } UNION { ?ticket a tio:ActualTicket . } UNION { ?ticket a tio:Ticket . } }
URI http://purl.org/tio/ns#
rdfs:label Tickets Ontology
dc:subject E-Commerce, E-Business, GoodRelations, Ontology, Tickets, Transportation, Events, Concerts, Museums
dc:contributor Some class and property definitions are inspired by or based on abstracts from Wikipedia, the free encyclopedia.
dc:rights The Tickets Ontology is available under the Creative Commons Attribution 3.0 Unported license; see http://creativecommons.org/licenses/by/3.0/. In a nutshell, you are free to copy, distribute and transmit the work; to remix/adapt the work (e.g. to import the ontology and create specializations of its elements), as long as you attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
Cardinality Recommendations
For properties, cardinality
recommendations are given in the form "propertyName (0..*)".
This indicates the recommended range for the number of occurrences of this property for the same subject.
The following variants are used:
Note: These cardinality recommendations are NOT modeled as OWL cardinality constraints, since the OWL formal semantics does not match the intended semantics.
URI http://purl.org/tio/ns#ActualTicket
rdfs:subClassOf http://purl.org/goodrelations/v1#ActualProductOrServiceInstance tio:Ticket
rdfs:label ActualTicket (gr:ProductOrService)
An actual ticket is single, identifiable right to access a particular event, location, or transportation service.
is rdfs:domain of tio:accessTo tio:scope tio:ticketID tio:validFrom tio:validThrough
URI http://purl.org/tio/ns#CoachService
rdfs:subClassOf tio:TransportationService
rdfs:label CoachService
A regular or individual service to transport passengers or cargo from one location to another location by means of a coach or bus.
is rdfs:domain of tio:availableServiceLevel tio:from tio:operatedBy tio:to tio:via
is rdfs:range of tio:accessTo
URI http://purl.org/tio/ns#DiscountType
rdfs:subClassOf http://purl.org/goodrelations/v1#QualitativeValue
rdfs:label DiscountType (gr:QualitativeValue)
The class of qualitative values indicating a discount type, audience, or group type - e.g. students, military personnel, etc.
Note: Discount types that solely represent age ranges (e.g. children, senior citizens, ...) are better expressed using tio:ageRange.
URI http://purl.org/tio/ns#Event
rdfs:subClassOf http://linkedevents.org/ontology/Event http://purl.org/NET/c4dm/event.owl#Event http://www.loa-cnr.it/ontologies/DUL.owl#Event
rdfs:label Event
An event, e.g. a concert, a show, etc. You can also safely use the following external classes for describing the respective event:
http://linkedevents.org/ontology/Event (lode:Event)
http://purl.org/NET/c4dm/event.owl#Event (event:Event)
http://www.loa-cnr.it/ontologies/DUL.owl#Event (dul:Event)
Note: You can attach the time and date of the event using tio:starts and tio:ends as simple datatype properties, even if lode:Event and event:Event recommend other, more sophisticated ways of modeling the temporal aspects of events.
is rdfs:domain of tio:ends tio:starts tio:takesPlaceAt
is rdfs:range of tio:accessTo
URI http://purl.org/tio/ns#Flight
rdfs:subClassOf tio:TransportationService
rdfs:label Flight
A regular or individual service to transport passengers or cargo from one location to another location by means of an aircraft
Note: By design, the Tickets Ontology does not provide mechanisms for modeling rules for recurring patterns of transportation services (e.g. every Monday at 8:00). Instead, it expects that you materialize each individual connection on a given day.
Most flight schedule applications are complex databases, so they will have to be exposed as SPARQL endpoints anyway.
is rdfs:domain of tio:availableServiceLevel tio:flightNo tio:from tio:operatedBy tio:to tio:via
is rdfs:range of tio:accessTo
URI http://purl.org/tio/ns#POI
rdfs:subClassOf http://purl.org/goodrelations/v1#LocationOfSalesOrServiceProvisioning
rdfs:label POI (gr:LocationOfSalesOrServiceProvisioning)
A point or area of interest, e.g. a museum, a train station, an airport, a bus stop, a store, a box office, etc.
Note 1: Use existing vocabularies like vcard or geo to attach address and geoposition (lat/long) details to the location.
Note 2: You can safely re-use any existing location, area, or point of interest from other data sources, e.g. DBPedia.
is rdfs:domain of tio:availableLayouts tio:includes tio:openingHours
is rdfs:range of tio:accessTo tio:at tio:from tio:includes tio:takesPlaceAt tio:to tio:via
URI http://purl.org/tio/ns#ScopeOfAccess
rdfs:label ScopeOfAccess
This is a conceptual entity that collates all properties defining the type of access a ticket provides to a particular event, location, or transportation.
is rdfs:domain of tio:accessTo tio:ageRange tio:durationOfAccess tio:eligibleAudience tio:eligibleServiceLevel tio:eligibleTimes tio:noOfEntrances tio:participants tio:seat tio:validFrom tio:validThrough
is rdfs:range of tio:scope
URI http://purl.org/tio/ns#SeatingLayout
rdfs:label SeatingLayout
A seating layout for a particular location, vessel, or single transportation service
is rdfs:domain of tio:availableSeats
is rdfs:range of tio:availableLayouts
URI http://purl.org/tio/ns#SeatOrSeatCategory
rdfs:subClassOf http://purl.org/goodrelations/v1#QualitativeValue
rdfs:label SeatOrSeatCategory (gr:QualitativeValue)
The class of qualitative values indicating a seat position (e.g. the seat 4B in a given plane) or a seat category (e.g. window seat).
Note that the same vessel or building may have multiple seating layouts.
URI http://purl.org/tio/ns#ServiceLevel
rdfs:subClassOf http://purl.org/goodrelations/v1#QualitativeValue
rdfs:label ServiceLevel (gr:QualitativeValue)
The class of qualitative values indicating a service level oder fare class (e.g. Business Class).
Predefined Individuals
is rdfs:range of tio:availableServiceLevel tio:eligibleServiceLevel
URI http://purl.org/tio/ns#Stop
rdfs:label Stop
The initial, final, or any intermediate point in time and space of a particular tio:TransportationService,
characterized by its location (tio:at), arrival time (tio:arrives), and departure time (tio:departs).
Each tio:TransportationService has at least one tio:Stop for the point and time of departure and another one for the final destination.
is rdfs:domain of tio:arrives tio:at tio:departs
is rdfs:range of tio:from tio:to tio:via
URI http://purl.org/tio/ns#Taxi
rdfs:subClassOf tio:TransportationService
rdfs:label Taxi
A taxi service to transport passengers from one location to another location
is rdfs:domain of tio:availableServiceLevel tio:from tio:operatedBy tio:to tio:via
is rdfs:range of tio:accessTo
URI http://purl.org/tio/ns#Ticket
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrService
rdfs:label Ticket (gr:ProductOrService)
A ticket is a tradeable right to access a particular event or location, or to use a particular transportation service.
is rdfs:domain of tio:accessTo tio:scope tio:ticketID tio:validFrom tio:validThrough
Subclasses
URI http://purl.org/tio/ns#TicketPlaceholder
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrServicesSomeInstancesPlaceholder tio:Ticket
rdfs:label TicketPlaceholder (gr:ProductOrService)
A ticket placeholder is a dummy for multiple tickets that are themselves not exposed as data.
is rdfs:domain of tio:accessTo tio:available tio:scope tio:sold tio:ticketID tio:total tio:validFrom tio:validThrough
URI http://purl.org/tio/ns#TrainService
rdfs:subClassOf tio:TransportationService
rdfs:label TrainService
A regular or individual service to transport passengers or cargo from one location to another location by means of a train, subway, or other railroad vehicle
Note: By design, the Tickets Ontology does not provide mechanisms for modeling rules for recurring patterns of transportation services (e.g. every Monday at 8:00). Instead, it expects that you materialize each individual connection on a given day.
Most train schedule applications are complex databases, so they will have to be exposed as SPARQL endpoints anyway.
is rdfs:domain of tio:availableServiceLevel tio:from tio:operatedBy tio:to tio:via
is rdfs:range of tio:accessTo
URI http://purl.org/tio/ns#TransportationService
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrService
rdfs:label TransportationService
A service to transport passengers or cargo from one location to another location, with optionally intermediate stops
Note: By design, the Tickets Ontology does not provide mechanisms for modeling rules for recurring patterns of transportation services (e.g. every Monday at 8:00). Instead, it expects that you materialize each individual connection on a given day.
Most timetable applications are complex databases, so they will have to be exposed as SPARQL endpoints anyway.
is rdfs:domain of tio:availableServiceLevel tio:from tio:operatedBy tio:to tio:via
is rdfs:range of tio:accessTo
Subclasses
URI http://purl.org/tio/ns#arrives
rdfs:label arrives (0..1)
The date and time at which the transportation service will arrive at the respective tio:Stop
rdfs:domain tio:Stop
rdfs:range http://www.w3.org/2001/XMLSchema#dateTime
URI http://purl.org/tio/ns#available
rdfs:label available (0..1)
The number of tickets of this category still available at the time of publishing the data
rdfs:domain tio:TicketPlaceholder
rdfs:range http://www.w3.org/2001/XMLSchema#integer
URI http://purl.org/tio/ns#departs
rdfs:label departs (0..1)
The date and time at which the transportation service will depart from the respective tio:Stop
rdfs:domain tio:Stop
rdfs:range http://www.w3.org/2001/XMLSchema#dateTime
URI http://purl.org/tio/ns#ends
rdfs:label ends (0..1)
The date and time for which the event is scheduled to end
Note: You can attach the time and date of the event using tio:starts and tio:ends as simple datatype properties,
even if lode:Event and event:Event recommend other, more sophisticated ways of modeling the temporal aspects of events.
rdfs:domain tio:Event
rdfs:range http://www.w3.org/2001/XMLSchema#dateTime
URI http://purl.org/tio/ns#flightNo
rdfs:label flightNo (0..*)
The flight number (or numbers, in case of codeshare flights)
rdfs:domain tio:Flight
rdfs:range http://www.w3.org/2001/XMLSchema#string
URI http://purl.org/tio/ns#sold
rdfs:label sold (0..1)
The number of tickets of this category already sold at the time of publishing the data
rdfs:domain tio:TicketPlaceholder
rdfs:range http://www.w3.org/2001/XMLSchema#integer
URI http://purl.org/tio/ns#starts
rdfs:label starts (0..1)
The date and time for which the event is scheduled to begin
Note: You can attach the time and date of the event using tio:starts and tio:ends as simple datatype properties,
even if lode:Event and event:Event recommend other, more sophisticated ways of modeling the temporal aspects of events.
rdfs:domain tio:Event
rdfs:range http://www.w3.org/2001/XMLSchema#dateTime
URI http://purl.org/tio/ns#ticketID
rdfs:subPropertyOf http://purl.org/goodrelations/v1#datatypeProductOrServiceProperty
rdfs:label ticketID (0..1)
A unique identifier for a particular ticket or ticket type.
rdfs:domain tio:ActualTicket tio:Ticket tio:TicketPlaceholder
rdfs:range http://www.w3.org/2001/XMLSchema#string
URI http://purl.org/tio/ns#total
rdfs:label total (0..1)
The total number of tickets of this category that will be issued for the event
rdfs:domain tio:TicketPlaceholder
rdfs:range http://www.w3.org/2001/XMLSchema#integer
URI http://purl.org/tio/ns#validFrom
rdfs:label validFrom (0..1)
This property specifies the beginning of the validity of the access or right that the ticket grants.
It can be attached to the tio:Ticket (if meant for the ticket as a whole) and to individual tio:ScopeOfAccess entities (if meant for just a particular part of the access rights).
A time-zone should be specified. For a time in GMT/UTC, simply add a "Z" following the time:
2010-11-15T09:30:10Z.
Alternatively, you can specify an offset from the UTC time by adding a positive or negative time following the time:
2010-11-15T09:30:10-09:00
or
2010-11-15T09:30:10+09:00.
rdfs:domain tio:ActualTicket tio:ScopeOfAccess tio:Ticket tio:TicketPlaceholder
rdfs:range http://www.w3.org/2001/XMLSchema#dateTime
URI http://purl.org/tio/ns#validThrough
rdfs:label validThrough (0..1)
This property specifies the ending of the validity of the access or right that the ticket grants.
It can be attached to the tio:Ticket (if meant for the ticket as a whole) and to individual tio:ScopeOfAccess entities (if meant for just a particular part of the access rights).
A time-zone should be specified. For a time in GMT/UTC, simply add a "Z" following the time:
2010-11-15T09:30:10Z.
Alternatively, you can specify an offset from the UTC time by adding a positive or negative time following the time:
2010-11-15T09:30:10-09:00
or
2010-11-15T09:30:10+09:00.
rdfs:domain tio:ActualTicket tio:ScopeOfAccess tio:Ticket tio:TicketPlaceholder
rdfs:range http://www.w3.org/2001/XMLSchema#dateTime
URI http://purl.org/tio/ns#accessTo
rdfs:label accessTo (0..*)
This links a tio:Ticket or a tio:ScopeOfAccess node to the tio:POI, tio:Event, or tio:TransportationService for which the tio:Ticket grants access.
Note: When used to link a tio:Ticket directly to a tio:POI, tio:Event, or tio:TransportationService, you cannot specify the various details of a tio:ScopeOfAccess node.
rdfs:domain tio:ActualTicket tio:ScopeOfAccess tio:Ticket tio:TicketPlaceholder
rdfs:range tio:CoachService tio:Event tio:Flight tio:POI tio:Taxi tio:TrainService tio:TransportationService
URI http://purl.org/tio/ns#ageRange
rdfs:label ageRange (0..*)
The eligible age range or age ranges for admission to the revent, POI, or transportation service
Typical unit code(s): ANN for year (less frequently used: MON for months, WEE for weeks)
rdfs:domain tio:ScopeOfAccess
rdfs:range http://purl.org/goodrelations/v1#QuantitativeValue
URI http://purl.org/tio/ns#at
rdfs:label at (1..1)
This indicates the location of a tio:Stop.
URI http://purl.org/tio/ns#availableLayouts
rdfs:label availableLayouts (0..*)
This indicates the available seating layouts for a tio:POI.
URI http://purl.org/tio/ns#availableSeats
rdfs:label availableSeats (0..*)
This indicates the individual seats for a given seating layout.
rdfs:domain tio:SeatingLayout
rdfs:range tio:SeatOrSeatCategory
URI http://purl.org/tio/ns#availableServiceLevel
rdfs:subPropertyOf http://purl.org/goodrelations/v1#qualitativeProductOrServiceProperty
rdfs:label availableServiceLevel (0..*)
This indicates the service level(s) or fare class(es) available for the particular tio:TransportationService.
rdfs:domain tio:CoachService tio:Flight tio:Taxi tio:TrainService tio:TransportationService
rdfs:range tio:ServiceLevel
URI http://purl.org/tio/ns#durationOfAccess
rdfs:label durationOfAccess (0..1)
The eligible duration of uninterrupted attendance or access.
Typical unit code(s): HUR for hours, DAY for days, WEE for weeks, MON for months, ANN for years
rdfs:domain tio:ScopeOfAccess
rdfs:range http://purl.org/goodrelations/v1#QuantitativeValue
URI http://purl.org/tio/ns#eligibleAudience
rdfs:label eligibleAudience (0..*)
This links a tio:ScopeOfAccess node to the tio:DiscountType for which the specified access is granted.
URI http://purl.org/tio/ns#eligibleServiceLevel
rdfs:label eligibleServiceLevel (0..*)
This indicates the service level(s) or fare class(es) to which the tio:Ticket entitles.
URI http://purl.org/tio/ns#eligibleTimes
rdfs:label eligibleTimes (0..*)
This links a tio:ScopeOfAccess node to one or more gr:OpeningHoursSpecifications that indicate the times of access.
Note: The times of access for a particular ticket may be more constrained than the opening hours of the location, event, or transportation service. Use tio:openingHours for specifying the overall opening hours or hours of operation.
rdfs:domain tio:ScopeOfAccess
rdfs:range http://purl.org/goodrelations/v1#OpeningHoursSpecification
URI http://purl.org/tio/ns#from
rdfs:label from (1..1)
This indicates the location of origin and time of departure.
Note: When the object of the statement is a tio:Stop, one can indicate the exact date and time for a single connection.
If such a level of detail is not needed, you can directly link to a point of interest, e.g. an instance of tio:POI.
rdfs:domain tio:CoachService tio:Flight tio:Taxi tio:TrainService tio:TransportationService
rdfs:range tio:POI tio:Stop
URI http://purl.org/tio/ns#includes
rdfs:label includes (0..*)
This indicates that a particular area includes another area or points of interest.
Note: Modeling geo-spatial relationships is non-trivial. This property is a very simple approach, sufficient for e.g. grouping all train stations in a particular fare area.
URI http://purl.org/tio/ns#noOfEntrances
rdfs:label noOfEntrances (0..1)
The number of times the respective participant(s) is/are allowed to enter the event, POI, or transportation service
Typical unit code(s): C62 for times
rdfs:domain tio:ScopeOfAccess
rdfs:range http://purl.org/goodrelations/v1#QuantitativeValueInteger
URI http://purl.org/tio/ns#openingHours
rdfs:label openingHours (0..*)
This indicates the opening hours for a point of interest.
Note: The opening hours of the location and the time-windows for which a particular ticket is eligible may differ. Use tio:eligibleTimes for the latter.
rdfs:domain tio:POI
rdfs:range http://purl.org/goodrelations/v1#OpeningHoursSpecification
URI http://purl.org/tio/ns#operatedBy
rdfs:label operatedBy (0..1)
This indicates the business entity that actually operates the vessel used for a transportation service.
rdfs:domain tio:CoachService tio:Flight tio:Taxi tio:TrainService tio:TransportationService
rdfs:range http://purl.org/goodrelations/v1#BusinessEntity
URI http://purl.org/tio/ns#participants
rdfs:label participants (0..1)
The number of participants that are allowed to enter the event, POI, or use transportation service
Typical unit code(s): C62 for persons
rdfs:domain tio:ScopeOfAccess
rdfs:range http://purl.org/goodrelations/v1#QuantitativeValueInteger
URI http://purl.org/tio/ns#scope
rdfs:label scope (0..*)
This links a tio:Ticket to the tio:ScopeOfAccess node or nodes that are included in the ticket.
Note: For simple scenarios, you can also directly use tio:accessTo.
rdfs:domain tio:ActualTicket tio:Ticket tio:TicketPlaceholder
rdfs:range tio:ScopeOfAccess
URI http://purl.org/tio/ns#seat
rdfs:label seat (0..*)
This indicates the seat or seat category.
rdfs:domain tio:ScopeOfAccess
rdfs:range tio:SeatOrSeatCategory
URI http://purl.org/tio/ns#takesPlaceAt
rdfs:label takesPlaceAt (0..*)
This indicates the location or locations of a tio:Event.
URI http://purl.org/tio/ns#to
rdfs:label to (1..1)
This indicates the destination and time of arrival.
Note: When the object of the statement is a tio:Stop, one can indicate the exact date and time for a single connection.
If such a level of detail is not needed, you can directly link to a point of interest, e.g. an instance of tio:POI.
rdfs:domain tio:CoachService tio:Flight tio:Taxi tio:TrainService tio:TransportationService
rdfs:range tio:POI tio:Stop
URI http://purl.org/tio/ns#via
rdfs:label via (0..*)
This indicates the location, time of arrival, and time of departure for an intermediate stop.
Note: When the object of the statement is a tio:Stop, one can indicate the exact date and time for a single connection.
If such a level of detail is not needed, you can directly link to a point of interest, e.g. an instance of tio:POI.
rdfs:domain tio:CoachService tio:Flight tio:Taxi tio:TrainService tio:TransportationService
rdfs:range tio:POI tio:Stop
URI http://purl.org/tio/ns#BusinessClass
rdfs:label BusinessClass (tio:ServiceLevel)
Business class as a service level / fare class for transportation by aircraft
Note: The exact character of a particular fare class may vary by carrier or country.
You can create individual instances of tio:ServiceLevel for a particular fare class for a particular airline.
URI http://purl.org/tio/ns#Economy
rdfs:label Economy (tio:ServiceLevel)
Economy class as a service level / fare class for transportation by aircraft
Note: The exact character of a particular fare class may vary by carrier or country.
You can create individual instances of tio:ServiceLevel for a particular fare class for a particular airline.
URI http://purl.org/tio/ns#Etix
rdfs:label Etix (gr:DeliveryMethod)
A special form of electronic ticket delivery, mainly for flight tickets
URI http://purl.org/tio/ns#FirstClass
rdfs:label FirstClass (tio:ServiceLevel)
First class as a service level / fare class for transportation by aircraft
Note: The exact character of a particular fare class may vary by carrier or country.
You can create individual instances of tio:ServiceLevel for a particular fare class for a particular airline.
Univ.-Prof. Dr. Martin Hepp
Hepp Research GmbH
Karlstraße 8
D-88212 Ravensburg
Germany
Phone: +49 751 205 8512
eMail: contact@heppresearch.com
Web: http://www.heppresearch.com/
The Tickets Ontology is available under the Creative Commons Attribution 3.0 license. You are free to copy, distribute and transmit the work; to remix/adapt the work (e.g. to import the ontology and create specializations of its elements), as long as you attribute the work and link back to http://purl.org/tio/ns.
This documentation has been generated automatically from the most recent ontology specification in OWL using a Python script written by Alex Stolz and Martin Hepp. Our script uses the RDFlib library for parsing and handling RDF and the Jinja template engine for generating the HTML document.
Hepp, Martin: GoodRelations: An Ontology for Describing Products and Services Offers on the Web, Proceedings of the 16th International Conference on Knowledge Engineering and Knowledge Management (EKAW2008), Acitrezza, Italy, September 29 - October 3, 2008, Springer LNCS, Vol 5268, pp. 332-347.
rdfs:comment
TIO: The TIckets Ontology
A vocabulary for describing tickets for events, transportation, or points of interest for e-commerce.
Vocabulary: http://purl.org/tio/ns#
Namespace: http://purl.org/tio/ns#
The Tickets Ontology is designed to be used in combination with GoodRelations, a standard vocabulary for the commercial aspects of offers of tickets.
See http://purl.org/goodrelations/ for more information.