Reputation: 117
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:
( * extra points for simplicity and performance)
Upvotes: 7
Views: 676
Reputation: 117
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.
Upvotes: 2
Reputation: 31
The few temporal-query triple stores like Parliament use the time vocabulary. They should be able to answer queries like "events between X and Y" I'm sure an inferred time model from schema.org could be helpful to see wether something is open or not.
Upvotes: 1
Reputation: 3136
I suggest that you look at schema.org. It provides a model for opening hours: http://schema.org/OpeningHoursSpecification. You can see an example applied to businesses: http://schema.org/LocalBusiness
You can build your RDF graph accordingly, and it should be straightforward to query later on. Plus, in case you generate web pages from it, major search engines will be able to exploit better your information and use it their own way.
Upvotes: 9