Points of Service

From OpenOrg
Jump to: navigation, search

This is basically just a subset of Good Relations. Obviously you can extend it as much as you like but this basic definition of how to define the points-of-service for an organisation.

In a large organisation, several service providers may each maintain their own document describing their points of sale.

Namespaces

geo gr rdfs spacerel

URIS

Ideally, Don't make a sub-scheme for each type of service/sale but rather put them all in one namesapce and put a simple prefix for each provider of a service, plus their ID for that point-of-service (or sale)

Example:

http://id.example.org/point-of-service/student-services-3
http://id.example.org/point-of-service/carpark-x123

If each service is minting their own URIs and managing their own data then it might make more sense to use something within their domains:

http://catering.example.org/id/point-of-service/coffeshop-c

Generic Offerings

We really need to start a vocab for these, but until we do, or if referring to things which don't make sense outside your organisation, use something like:

 http://id.example.org/generic-offerings/catering-Snacks
 http://id.example.org/generic-offerings/catering-Hot-Drinks

Basic Example

<syntaxhighlight lang="xml">

<rdf:Description rdf:about="...POS_URI...">
  <rdfs:label>Café</rdfs:label>
  <rdf:type rdf:resource="http://purl.org/goodrelations/v1#LocationOfSalesOrServiceProvisioning"/>
</rdf:Description>

</syntaxhighlight>

Location

Either add a geo:lat & geo:long directly to the point of sale.

<syntaxhighlight lang="xml">

  <geo:lat>50.934654</geo:lat>
  <geo:long>-1.395784</geo:long>

</syntaxhighlight> or describe the place the POS is in, generally either a room or building.

<syntaxhighlight lang="xml">

  <spacerel:within rdf:resource="..Place-URI.."/>

</syntaxhighlight> Ideally then include the location of this place directly in the same file. <syntaxhighlight lang="xml">

 <rdf:Description rdf:about="...Place-URI...">
   <rdfs:label>Badger Building>
   <geo:lat>50.934654</geo:lat>
   <geo:long>-1.395784</geo:long>
 </rdf:Description>

</syntaxhighlight> OR, make it possible to follow your nose to the description or the location.

If you really want to list what room a POS is in, but only the building has a lat/long: Don't rely on the transitive property. List the POS as within both the room and the building. This gives the most accurate data while still letting a service easily find the lat/long.

Opening Hours

Opening and closing hours are in the local timezone.

An opening hours specification lists one opening and closing time and can be valid for one or more days of the week. If you want to give a URI to the description we suggest a # style URI based on that for the point of sale, but add (at least) the day of week, the opening time and the date this is valid from to make it unique.

If you want to have more than one opening/closing time on the same day (eg. closes for lunch) then you'll need one open hours specification for each opening time.

It is strongly recommended that you include the validFrom and ValidThrough, if you have that information, as otherwise 3rd parties may cache your data and be working with out of date information, and not even know it. <syntaxhighlight lang="xml">

  <gr:hasOpeningHoursSpecification>

    <rdf:Description rdf:about="...POS-URI...#Monday-0800-2011-01-01">
      <rdf:type rdf:resource="http://purl.org/goodrelations/v1#OpeningHoursSpecification"/>
      <gr:opens rdf:datatype="http://www.w3.org/2001/XMLSchema#time">08:00:00</gr:opens>
      <gr:closes rdf:datatype="http://www.w3.org/2001/XMLSchema#time">19:30:00</gr:closes>
      <gr:hasOpeningHoursDayOfWeek rdf:resource="http://purl.org/goodrelations/v1#Monday"/>
      <gr:validFrom rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-01-01T00:00:00+0000</gr:validFrom>
      <gr:validThrough rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-01-01T23:59:59+0000</gr:validThrough>
    </rdf:Description>
    ...repeat for each set of opening hours...

  </gr:hasOpeningHoursSpecification>

</syntaxhighlight>

General indication of what the POS Offers

This is to provide a broad overview of what is offered. Eg. car-parking, or hot-drinks. We'll provide a separate recipe for individual produces and services.

Gettting detailed product descriptions, and keeping them up to date, is a potentially difficult and time-expensive task, so this is a short cut. It's recommended you use this even if some or all of the points of service have detailed lists, as it's useful to be able to provide an overview of what each provides. <syntaxhighlight lang="xml">

 <rdf:Description rdf:about="...Offering-URI...">
   <rdfs:label>Snacks</rdfs:label>
   <rdf:type rdf:resource="http://purl.org/goodrelations/v1#Offering"/>
   <rdf:type rdf:resource="http://purl.org/openorg/GenericOffering"/>
   <gr:availableAtOrFrom rdf:resource="...POS-1-URI.."/>
   <gr:availableAtOrFrom rdf:resource="...POS-2-URI.."/>
   <gr:availableAtOrFrom rdf:resource="...POS-3-URI.."/>
 </rdf:Description>

</syntaxhighlight>