@prefix days: <http://ontologi.es/days#> .
@prefix dc:   <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tl:   <http://purl.org/NET/c4dm/timeline.owl#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .

days:
	a owl:Ontology ;
	dc:title "Days of the Week" ;
	foaf:maker [ foaf:name "Toby Inkster" ] , [ foaf:name "Libby Miller" ] ;
	dc:issued "2009-09-11"^^xsd:date ;
	owl:imports <http://motools.sourceforge.net/timeline/timeline.rdf> ;
	rdfs:seeAlso <http://buzzword.org.uk/2009/vocamp-bristol/days-example.ttl> .

<http://buzzword.org.uk/2009/vocamp-bristol/days-example.ttl>
	a foaf:Document ;
	rdfs:label "Example: Days of the Week" ;
	dc:format "text/turtle" .

days:MondayInterval
	a owl:Class ;
	rdfs:label "Monday Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:monday_timeline
			]
			tl:Interval
		)
	] .

days:MondayInstant
	a owl:Class ;
	rdfs:label "Monday Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:monday_timeline
			]
			tl:Instant
		)
	] .

days:monday_timeline
	a tl:TimeLine ;
	rdfs:label "Monday Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a Monday." .

days:TuesdayInterval
	a owl:Class ;
	rdfs:label "Tuesday Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:tuesday_timeline
			]
			tl:Interval
		)
	] .

days:TuesdayInstant
	a owl:Class ;
	rdfs:label "Tuesday Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:tuesday_timeline
			]
			tl:Instant
		)
	] .

days:tuesday_timeline
	a tl:TimeLine ;
	rdfs:label "Tuesday Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a Tuesday." .

days:WednesdayInterval
	a owl:Class ;
	rdfs:label "Wednesday Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:wednesday_timeline
			]
			tl:Interval
		)
	] .

days:WednesdayInstant
	a owl:Class ;
	rdfs:label "Wednesday Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:wednesday_timeline
			]
			tl:Instant
		)
	] .

days:wednesday_timeline
	a tl:TimeLine ;
	rdfs:label "Wednesday Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a Wednesday." .

days:ThursdayInterval
	a owl:Class ;
	rdfs:label "Thursday Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:thursday_timeline
			]
			tl:Interval
		)
	] .

days:ThursdayInstant
	a owl:Class ;
	rdfs:label "Thursday Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:thursday_timeline
			]
			tl:Instant
		)
	] .

days:thursday_timeline
	a tl:TimeLine ;
	rdfs:label "Thursday Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a Thursday." .

days:FridayInterval
	a owl:Class ;
	rdfs:label "Friday Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:friday_timeline
			]
			tl:Interval
		)
	] .

days:FridayInstant
	a owl:Class ;
	rdfs:label "Friday Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:friday_timeline
			]
			tl:Instant
		)
	] .

days:friday_timeline
	a tl:TimeLine ;
	rdfs:label "Friday Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a Friday." .

days:SaturdayInterval
	a owl:Class ;
	rdfs:label "Saturday Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:saturday_timeline
			]
			tl:Interval
		)
	] .

days:SaturdayInstant
	a owl:Class ;
	rdfs:label "Saturday Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:saturday_timeline
			]
			tl:Instant
		)
	] .

days:saturday_timeline
	a tl:TimeLine ;
	rdfs:label "Saturday Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a Saturday." .

days:SundayInterval
	a owl:Class ;
	rdfs:label "Sunday Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:sunday_timeline
			]
			tl:Interval
		)
	] .

days:SundayInstant
	a owl:Class ;
	rdfs:label "Sunday Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:sunday_timeline
			]
			tl:Instant
		)
	] .

days:sunday_timeline
	a tl:TimeLine ;
	rdfs:label "Sunday Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a Sunday." .

days:WeekdayInterval
	a owl:Class ;
	rdfs:label "Weekday Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:weekday_timeline
			]
			tl:Interval
		)
	] .

days:WeekdayInstant
	a owl:Class ;
	rdfs:label "Weekday Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:weekday_timeline
			]
			tl:Instant
		)
	] .

days:weekday_timeline
	a tl:TimeLine ;
	rdfs:label "Weekday Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a week day (i.e. Monday to Friday in most cultures)." .

days:WeekendDayInterval
	a owl:Class ;
	rdfs:label "WeekendDay Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:weekendday_timeline
			]
			tl:Interval
		)
	] .

days:WeekendDayInstant
	a owl:Class ;
	rdfs:label "WeekendDay Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:weekendday_timeline
			]
			tl:Instant
		)
	] .

days:weekendday_timeline
	a tl:TimeLine ;
	rdfs:label "WeekendDay Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a day of the weekend (i.e. Saturday or Sunday in most cultures)." .

days:DayInterval
	a owl:Class ;
	rdfs:label "Day Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:day_timeline
			]
			tl:Interval
		)
	] .

days:DayInstant
	a owl:Class ;
	rdfs:label "Day Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:day_timeline
			]
			tl:Instant
		)
	] .

days:day_timeline
	a tl:TimeLine ;
	rdfs:label "Day Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a day." .

days:HolidayInterval
	a owl:Class ;
	rdfs:label "Holiday Interval" ;
	rdfs:comment "Specify a start time relative to midnight using tl:at and a duration using tl:duration." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:holiday_timeline
			]
			tl:Interval
		)
	] .

days:HolidayInstant
	a owl:Class ;
	rdfs:label "Holiday Instant" ;
	rdfs:comment "Specify an exact time relative to midnight using tl:at." ;
	owl:equivalentClass [
		a owl:Class ;
		owl:intersectionOf (
			[
				a owl:Restriction ;
				owl:onProperty tl:timeline ;
				owl:hasValue days:holiday_timeline
			]
			tl:Instant
		)
	] .

days:holiday_timeline
	a tl:TimeLine ;
	rdfs:label "Holiday Timeline" ;
	dc:description "Starting and ending on midnight in the relevant timezone and encompassing a day when somebody is not working." .

# some owl stuff
foaf:Person a owl:Class.
foaf:Document a owl:Class.
foaf:maker a owl:ObjectProperty.
foaf:name a owl:DatatypeProperty.
dc:description a owl:DatatypeProperty.
dc:title a owl:DatatypeProperty.
dc:issued a owl:DatatypeProperty.
dc:format a owl:DatatypeProperty.

