Search code examples
rdfsemantic-webontologyowl

How to model opening hours in RDF


What is the most pragmatic way to model opening hours of a service, so that SPARQL queries would be able to query things that are open at a certain timestamp/during a certain time interval?

Answers to this question should contain:

  1. example of an ontology
  2. data sample which uses this ontology
  3. a SPARQL query* which returns everything from this sample that is open at a certain timestamp

( * extra points for simplicity and performance)


Solution

  • There are various ways to describe calendars online. Amongst others, iCal (or the rdf-ized RDFCal), http://schema.org/OpeningHoursSpecification or the Time ontology (for e.g., describing the time interval of an event).

    Opening Hours can be seen as a combination of calendars. Using an rdf:list we can stack calendars and indicate whether each of these calendars indicate closing hours or opening hours. For example, for a simple business I would add 2 calendars: * Opening Hours: open from 9 to 5 from Monday to Sunday * Closing Hours: official holidays

    I've published a paper about this and I've created a concise ontology to create opening hours at http://openinghours.io.