Tickets Ontology

A GoodRelations-compliant domain vocabulary

V 1.0, Release 2010-11-17

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:

Examples

In this section we give brief examples of how to use the Tickets Sales Ontology in combination with GoodRelations.

Preliminaries: Prefix Declaration and Company Data

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	

Concert Ticket

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>			
		

Museum Ticket

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>			
		

Subway / Public Transport

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&#x27;s Cross to Euston Square</div>
    <div property="gr:description">Subway ticket from King&#x27;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&#x27;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&#x27;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>	

Airfare

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 .	

Family Ticket

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 ] .	

SPARQL Queries

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 . }
  }			
		

Table of Contents

  1. Ontology Metadata
  2. Conventions
  3. Classes
  4. Datatype Properties
  5. Object Properties
  6. Individuals
  7. Contact Information
  8. License
  9. Acknowledgments
  10. References
  11. Change Log

[back to top]

Tickets Ontology Metadata (rdf:type owl:Ontology)

URI http://purl.org/tio/ns#
rdfs:label Tickets Ontology

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.

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).

[back to top]

Conventions

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.

[back to top]

Classes

[back to top]

tio:ActualTicket (rdf:type owl:Class)

URI http://purl.org/tio/ns#ActualTicket
rdfs:subClassOf http://purl.org/goodrelations/v1#ActualProductOrServiceInstance tio:Ticket
rdfs:label ActualTicket (gr:ProductOrService)

rdfs:comment

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

[back to top]

tio:CoachService (rdf:type owl:Class)

URI http://purl.org/tio/ns#CoachService
rdfs:subClassOf tio:TransportationService
rdfs:label CoachService

rdfs:comment

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

[back to top]

tio:DiscountType (rdf:type owl:Class)

URI http://purl.org/tio/ns#DiscountType
rdfs:subClassOf http://purl.org/goodrelations/v1#QualitativeValue
rdfs:label DiscountType (gr:QualitativeValue)

rdfs:comment

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.

is rdfs:range of tio:eligibleAudience

[back to top]

tio:Event (rdf:type owl:Class)

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

rdfs:comment

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

[back to top]

tio:Flight (rdf:type owl:Class)

URI http://purl.org/tio/ns#Flight
rdfs:subClassOf tio:TransportationService
rdfs:label Flight

rdfs:comment

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

[back to top]

tio:POI (rdf:type owl:Class)

URI http://purl.org/tio/ns#POI
rdfs:subClassOf http://purl.org/goodrelations/v1#LocationOfSalesOrServiceProvisioning
rdfs:label POI (gr:LocationOfSalesOrServiceProvisioning)

rdfs:comment

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

[back to top]

tio:ScopeOfAccess (rdf:type owl:Class)

URI http://purl.org/tio/ns#ScopeOfAccess
rdfs:label ScopeOfAccess

rdfs:comment

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

[back to top]

tio:SeatingLayout (rdf:type owl:Class)

URI http://purl.org/tio/ns#SeatingLayout
rdfs:label SeatingLayout

rdfs:comment

A seating layout for a particular location, vessel, or single transportation service

is rdfs:domain of tio:availableSeats
is rdfs:range of tio:availableLayouts

[back to top]

tio:SeatOrSeatCategory (rdf:type owl:Class)

URI http://purl.org/tio/ns#SeatOrSeatCategory
rdfs:subClassOf http://purl.org/goodrelations/v1#QualitativeValue
rdfs:label SeatOrSeatCategory (gr:QualitativeValue)

rdfs:comment

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.

is rdfs:range of tio:availableSeats tio:seat

[back to top]

tio:ServiceLevel (rdf:type owl:Class)

URI http://purl.org/tio/ns#ServiceLevel
rdfs:subClassOf http://purl.org/goodrelations/v1#QualitativeValue
rdfs:label ServiceLevel (gr:QualitativeValue)

rdfs:comment

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

[back to top]

tio:Stop (rdf:type owl:Class)

URI http://purl.org/tio/ns#Stop
rdfs:label Stop

rdfs:comment

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

[back to top]

tio:Taxi (rdf:type owl:Class)

URI http://purl.org/tio/ns#Taxi
rdfs:subClassOf tio:TransportationService
rdfs:label Taxi

rdfs:comment

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

[back to top]

tio:Ticket (rdf:type owl:Class)

URI http://purl.org/tio/ns#Ticket
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrService
rdfs:label Ticket (gr:ProductOrService)

rdfs:comment

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

[back to top]

tio:TicketPlaceholder (rdf:type owl:Class)

URI http://purl.org/tio/ns#TicketPlaceholder
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrServicesSomeInstancesPlaceholder tio:Ticket
rdfs:label TicketPlaceholder (gr:ProductOrService)

rdfs:comment

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

[back to top]

tio:TrainService (rdf:type owl:Class)

URI http://purl.org/tio/ns#TrainService
rdfs:subClassOf tio:TransportationService
rdfs:label TrainService

rdfs:comment

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

[back to top]

tio:TransportationService (rdf:type owl:Class)

URI http://purl.org/tio/ns#TransportationService
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrService
rdfs:label TransportationService

rdfs:comment

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

[back to top]

Datatype Properties

[back to top]

tio:arrives (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#arrives
rdfs:label arrives (0..1)

rdfs:comment

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

[back to top]

tio:available (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#available
rdfs:label available (0..1)

rdfs:comment

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

[back to top]

tio:departs (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#departs
rdfs:label departs (0..1)

rdfs:comment

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

[back to top]

tio:ends (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#ends
rdfs:label ends (0..1)

rdfs:comment

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

[back to top]

tio:flightNo (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#flightNo
rdfs:label flightNo (0..*)

rdfs:comment

The flight number (or numbers, in case of codeshare flights)

rdfs:domain tio:Flight
rdfs:range http://www.w3.org/2001/XMLSchema#string

[back to top]

tio:sold (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#sold
rdfs:label sold (0..1)

rdfs:comment

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

[back to top]

tio:starts (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#starts
rdfs:label starts (0..1)

rdfs:comment

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

[back to top]

tio:ticketID (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#ticketID
rdfs:subPropertyOf http://purl.org/goodrelations/v1#datatypeProductOrServiceProperty
rdfs:label ticketID (0..1)

rdfs:comment

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

[back to top]

tio:total (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#total
rdfs:label total (0..1)

rdfs:comment

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

[back to top]

tio:validFrom (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#validFrom
rdfs:label validFrom (0..1)

rdfs:comment

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

[back to top]

tio:validThrough (rdf:type owl:DatatypeProperty)

URI http://purl.org/tio/ns#validThrough
rdfs:label validThrough (0..1)

rdfs:comment

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

[back to top]

Object Properties

[back to top]

tio:accessTo (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#accessTo
rdfs:label accessTo (0..*)

rdfs:comment

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

[back to top]

tio:ageRange (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#ageRange
rdfs:label ageRange (0..*)

rdfs:comment

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

[back to top]

tio:at (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#at
rdfs:label at (1..1)

rdfs:comment

This indicates the location of a tio:Stop.

rdfs:domain tio:Stop
rdfs:range tio:POI

[back to top]

tio:availableLayouts (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#availableLayouts
rdfs:label availableLayouts (0..*)

rdfs:comment

This indicates the available seating layouts for a tio:POI.

rdfs:domain tio:POI
rdfs:range tio:SeatingLayout

[back to top]

tio:availableSeats (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#availableSeats
rdfs:label availableSeats (0..*)

rdfs:comment

This indicates the individual seats for a given seating layout.

rdfs:domain tio:SeatingLayout
rdfs:range tio:SeatOrSeatCategory

[back to top]

tio:availableServiceLevel (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#availableServiceLevel
rdfs:subPropertyOf http://purl.org/goodrelations/v1#qualitativeProductOrServiceProperty
rdfs:label availableServiceLevel (0..*)

rdfs:comment

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

[back to top]

tio:durationOfAccess (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#durationOfAccess
rdfs:label durationOfAccess (0..1)

rdfs:comment

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

[back to top]

tio:eligibleAudience (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#eligibleAudience
rdfs:label eligibleAudience (0..*)

rdfs:comment

This links a tio:ScopeOfAccess node to the tio:DiscountType for which the specified access is granted.

rdfs:domain tio:ScopeOfAccess
rdfs:range tio:DiscountType

[back to top]

tio:eligibleServiceLevel (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#eligibleServiceLevel
rdfs:label eligibleServiceLevel (0..*)

rdfs:comment

This indicates the service level(s) or fare class(es) to which the tio:Ticket entitles.

rdfs:domain tio:ScopeOfAccess
rdfs:range tio:ServiceLevel

[back to top]

tio:eligibleTimes (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#eligibleTimes
rdfs:label eligibleTimes (0..*)

rdfs:comment

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

[back to top]

tio:from (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#from
rdfs:label from (1..1)

rdfs:comment

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

[back to top]

tio:includes (rdf:type owl:ObjectProperty, owl:TransitiveProperty)

URI http://purl.org/tio/ns#includes
rdfs:label includes (0..*)

rdfs:comment

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.

rdfs:domain tio:POI
rdfs:range tio:POI

[back to top]

tio:noOfEntrances (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#noOfEntrances
rdfs:label noOfEntrances (0..1)

rdfs:comment

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

[back to top]

tio:openingHours (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#openingHours
rdfs:label openingHours (0..*)

rdfs:comment

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

[back to top]

tio:operatedBy (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#operatedBy
rdfs:label operatedBy (0..1)

rdfs:comment

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

[back to top]

tio:participants (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#participants
rdfs:label participants (0..1)

rdfs:comment

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

[back to top]

tio:scope (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#scope
rdfs:label scope (0..*)

rdfs:comment

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

[back to top]

tio:seat (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#seat
rdfs:label seat (0..*)

rdfs:comment

This indicates the seat or seat category.

rdfs:domain tio:ScopeOfAccess
rdfs:range tio:SeatOrSeatCategory

[back to top]

tio:takesPlaceAt (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#takesPlaceAt
rdfs:label takesPlaceAt (0..*)

rdfs:comment

This indicates the location or locations of a tio:Event.

rdfs:domain tio:Event
rdfs:range tio:POI

[back to top]

tio:to (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#to
rdfs:label to (1..1)

rdfs:comment

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

[back to top]

tio:via (rdf:type owl:ObjectProperty)

URI http://purl.org/tio/ns#via
rdfs:label via (0..*)

rdfs:comment

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

[back to top]

Individuals

[back to top]

tio:BusinessClass (rdf:type tio:ServiceLevel)

URI http://purl.org/tio/ns#BusinessClass
rdfs:label BusinessClass (tio:ServiceLevel)

rdfs:comment

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.

[back to top]

tio:Economy (rdf:type tio:ServiceLevel)

URI http://purl.org/tio/ns#Economy
rdfs:label Economy (tio:ServiceLevel)

rdfs:comment

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.

[back to top]

tio:Etix (rdf:type http://purl.org/goodrelations/v1#DeliveryMethod)

URI http://purl.org/tio/ns#Etix
rdfs:label Etix (gr:DeliveryMethod)

rdfs:comment

A special form of electronic ticket delivery, mainly for flight tickets

[back to top]

tio:FirstClass (rdf:type tio:ServiceLevel)

URI http://purl.org/tio/ns#FirstClass
rdfs:label FirstClass (tio:ServiceLevel)

rdfs:comment

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.

[back to top]

Contact Information

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/

[back to top]

License

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.

[back to top]

Acknowledgements

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.

[back to top]

References

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.

[back to top]

Change Log

2010-11-17: added tio:flightNo

2010-11-15: Initial release