W3C home > Mailing lists > Public > public-vocabs@w3.org > January 2013

Problems with schema:openingHours as owl:objectProperty

From: Adrian Pohl <ad.pohl@gmail.com>
Date: Thu, 17 Jan 2013 12:05:18 +0100
Message-ID: <CAOtd05FpNryZSy_ydk9cK_KD-b636i7pzNLM1Je3TfQPv05+YQ@mail.gmail.com>
To: public-vocabs@w3.org
Hello,

first I'll explain the background for my question:

- We are running a service with URIs for and RDF descriptions of
libraries and related institutions [1] and want to add human-readable
opening hours information from the source data. This opening hour
information isn't structured homogenously so that we can't transform
it to a standard syntax like ISO 8601. Thus, we want to use a RDF
property that takes plain literals in object position.

Example: <http://lobid.org/organisation/DE-380> ex:hasOpeningHours "Di
und Do 10.00-20.00, Mi und Fr 10.00-18.00, Sa 10.00-15.00" .

I thought that schema:openingHours might be good for this as it
doesn't require a structured Opening Hours Specification like the
property schema:openingHoursSpecification does. But I got quite
confused by the definition of schema:openingHours in the schema.org
OWL2 ontology [2] which reads:

:openingHours
    a owl:ObjectProperty ;
    rdfs:comment "The opening hours for a business. Opening hours can
be specified as a weekly time range, starting with days, then times
per day. Multiple days can be listed with commas ',' separating each
day. Day or time ranges are specified using a hyphen '-'.<br />- Days
are specified using the following two-letter combinations:
<code>Mo</code>, <code>Tu</code>, <code>We</code>, <code>Th</code>,
<code>Fr</code>, <code>Sa</code>, <code>Su</code>.<br />- Times are
specified using 24:00 time. For example, 3pm is specified as
<code>15:00</code>.<br />Here is an example: <code>&lt;time
itemprop=&quot;openingHours&quot; datetime=&quot;Tu,Th
16:00-20:00&quot;&gt;Tuesdays and Thursdays
4-8pm&lt;/time&gt;</code>"@en ;
    rdfs:domain [
        a owl:Class ;
        owl:unionOf (:CivicStructure
            :LocalBusiness
        )
    ] ;
    rdfs:label "openingHours"@en ;
    rdfs:range [
        a owl:Class ;
        owl:unionOf (:Duration
        )
    ] .

The comment says how opening hours "can" be specified, so that lets me
think I can also do it in another way. What got me confused was the
type of this property as owl:ObjectProperty and its range definition.
I haven't seen before that an owl:ObjectProperty with an owl:Class as
range is used with literals in object position. This doesn't seem
correct to me the OWL2 spec says as "Object properties connect pairs
of individuals." and "Individual := NamedIndividual |
AnonymousIndividual". [3]

Probably, this is because of the provisional status of the schema.org
OWL ontology. Then it would be nice if this could be corrected in the
next version. Or I am missing something?

Another possibility would be to use a blank node construction - like
e.g. GoodRelations does with quantities - but then I am missing a
property like schema:value:

<http://lobid.org/organisation/DE-380> ex:hasOpeningHours [
    a schema:Duration ;
    schema:value "Di und Do 10.00-20.00, Mi und Fr 10.00-18.00, Sa
10.00-15.00" # schema:value doesn't exist.
   ] .

All the best
Adrian

[1] http://lobid.org/organisation

[2] http://schema.org/docs/schemaorg.owl

[3] http://www.w3.org/TR/owl2-syntax/#Object_Properties
Received on Thursday, 17 January 2013 14:51:46 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 17 January 2013 14:51:46 GMT