<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE daml [
  <!ENTITY daml "http://www.daml.org/2001/03/daml+oil#">
  <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#">
  <!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema#">
  <!ENTITY dc "http://purl.org/dc/elements/1.1/">
  <!ENTITY dct "http://purl.org/dc/terms/">
  <!ENTITY support "http://www.aktors.org/ontology/support#">
  <!ENTITY base "http://www.aktors.org/ontology/support">
]>
<rdf:RDF xmlns:daml="&daml;"
         xmlns:rdf="&rdf;"
         xmlns:rdfs="&rdfs;"
	 xmlns:dc="&dc;"
	 xmlns:dct="&dct;"
         xmlns:xsd="&xsd;"
	 xmlns:support="&support;"
         xml:base="&base;">

  <daml:Ontology rdf:about="&base;">
    <rdfs:label>AKT Reference Ontology (Support Ontology)</rdfs:label>
    <dc:title xml:lang="en">AKT Reference Ontology (Support Ontology)</dc:title>
    <dc:description xml:lang="en">The AKT Reference Ontology has been designed to support the AKT-2 demonstrator ("AKTive Portal"), and subsequent activities. The ontology, designed by the AKT-2 group and codified by Enrico Motta, extends Version 1.</dc:description>
    <dc:creator>AKT Project</dc:creator>
    <dc:creator>Enrico Motta (OCML version)</dc:creator>
    <dc:creator>Nick Gibbins (DAML+OIL translation)</dc:creator>
    <dct:created>2003-06-28</dct:created>
    <dc:source rdf:resource="http://d3e.open.ac.uk/akt/2002/ref-onto.html"/>
    <rdfs:seeAlso rdf:resource="http://d3e.open.ac.uk/akt/2002/ref-onto.html"/>
    <daml:versionInfo>2.0</daml:versionInfo>
  </daml:Ontology>

  <!-- Does not include definitions from frames.lisp or basic.lisp 
       (which are operational descriptions of the basic metamodel, and
       so not needed when using RDF(S) or OWL)
    -->

  <!-- FOUNDATIONS -->
  <!-- Excluded entities: Individual
    -->

  <daml:Class rdf:ID="Thing">
    <rdfs:label>Thing</rdfs:label>
    <rdfs:comment>This is the top-level concept in the AKT reference ontology</rdfs:comment>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:DatatypeProperty rdf:ID="has-pretty-name">
    <rdfs:label>has pretty name</rdfs:label>
    <rdfs:comment>A human readable name</rdfs:comment>
    <rdfs:domain rdf:resource="#Thing"/>
    <rdfs:range rdf:resource="&xsd;string"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:DatatypeProperty rdf:ID="has-variant-name">
    <rdfs:label>has variant name</rdfs:label>
    <rdfs:comment>Other variants of the human readable name</rdfs:comment>
    <rdfs:domain rdf:resource="#Thing"/>
    <rdfs:range rdf:resource="&xsd;string"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:Class rdf:ID="Intangible-Thing">
    <rdfs:label>Intangible Thing</rdfs:label>
    <rdfs:comment>This comes from HPKB upper level. The collection of things that are not physical - are not made of, or encoded in, matter. Every Collection is an Intangible (even if its instances are tangible), and so are some Individuals. Caution: do not confuse `tangibility' with `perceivability' - humans can perceive light even though it's intangible - at least in a sense.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Thing"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:Class rdf:ID="Temporal-Thing">
    <rdfs:label>Temporal Thing</rdfs:label>
    <rdfs:comment>Like in Cyc, this is something which has a temporal extent.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Thing"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:ObjectProperty rdf:ID="has-time-interval">
    <rdfs:label>has time interval</rdfs:label>
    <rdfs:domain rdf:resource="#Temporal-Thing"/>
    <rdfs:range rdf:resource="#Time-Interval"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:ObjectProperty>

  <daml:Class rdf:ID="Tangible-Thing">
    <rdfs:label>Tangible Thing</rdfs:label>
    <rdfs:comment>Something which is not intangible, something which is physical, made of matter. It does not matter whether things are real of imaginary.  Therefore we consider Mickey Mouse's car and a hippogriff as  tangible things</rdfs:comment> 
    <rdfs:subClassOf rdf:resource="#Temporal-Thing"/>
    <daml:complementOf rdf:resource="#Intangible-Thing"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:Class rdf:ID="Quantity">
    <rdfs:label>Quantity</rdfs:label>
    <rdfs:comment>From SUO: Any specification of how many or how much of something there is. Accordingly, there are two subclasses of Quantity: Number (how many) and Physical-Quantity (how much).</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Intangible-Thing"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:Class rdf:ID="Physical-Quantity">
    <rdfs:label>Physical Quantity</rdfs:label>
    <rdfs:comment>SUO: Physical Quantities are distinguished from Numbers by the fact that the former are associated with a dimension of measurement.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Quantity"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:DatatypeProperty rdf:ID="has-magnitude">
    <rdfs:label>has magnitude</rdfs:label>
    <rdfs:domain rdf:resource="#Physical-Quantity"/>
    <rdfs:range rdf:resource="&xsd;decimal"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:ObjectProperty rdf:ID="has-unit-of-measure">
    <rdfs:label>has unit of measure</rdfs:label>
    <rdfs:domain rdf:resource="#Physical-Quantity"/>
    <rdfs:range rdf:resource="#Unit-Of-Measure"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:ObjectProperty>

  <daml:Class rdf:ID="Unit-Of-Measure">
    <rdfs:label>Unit of Measure</rdfs:label>
    <rdfs:comment>Any kind of unit of measure, metre, dollar, kilogram, etc.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Intangible-Thing"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <!-- TIME -->
  <!-- Excluded entities: Year-In-Time
                          Month-In-Time
                          Day-In-Time
                          Hour-In-Time
                          Minute-In-Time
                          Second-In-Time
                          Timezone
                          DURATION-IS-BEGIN-TIME-MINUS-END-TIME (axiom)
                          TIME-DIFFERENCE (function)
    -->

  <daml:Class rdf:ID="Time-Position">
    <rdfs:label>Time Position</rdfs:label>
    <rdfs:comment>A time position is either a time interval or a time point. Any time position is relative to a time zone</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Intangible-Thing"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:DatatypeProperty rdf:ID="in-timezone">
    <rdfs:label>in timezone</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Position"/>
    <rdfs:range rdf:resource="&xsd;integer"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:Class rdf:ID="Time-Point">
    <rdfs:label>Time Point</rdfs:label>
    <rdfs:comment>A point in time</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Time-Position"/>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#second-of"/>
        <daml:maxCardinality>1</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#minute-of"/>
        <daml:maxCardinality>1</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#hour-of"/>
        <daml:maxCardinality>1</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#day-of"/>
        <daml:maxCardinality>1</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#month-of"/>
        <daml:maxCardinality>1</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#year-of"/>
        <daml:maxCardinality>1</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:DatatypeProperty rdf:ID="second-of">
    <rdfs:label>second of</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Point"/>
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:DatatypeProperty rdf:ID="minute-of">
    <rdfs:label>minute of</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Point"/>
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:DatatypeProperty rdf:ID="hour-of">
    <rdfs:label>hour of</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Point"/>
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:DatatypeProperty rdf:ID="day-of">
    <rdfs:label>day of</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Point"/>
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:DatatypeProperty rdf:ID="month-of">
    <rdfs:label>month of</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Point"/>
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:DatatypeProperty rdf:ID="year-of">
    <rdfs:label>year of</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Point"/>
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:DatatypeProperty>

  <daml:Class rdf:ID="Calendar-Date">
    <rdfs:label>Calendar Date</rdfs:label>
    <rdfs:comment>A point in time</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Time-Point"/>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#second-of"/>
        <daml:maxCardinality>0</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#minute-of"/>
        <daml:maxCardinality>0</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#hour-of"/>
        <daml:maxCardinality>0</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#day-of"/>
        <daml:maxCardinality>1</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#month-of"/>
        <daml:maxCardinality>1</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#year-of"/>
        <daml:maxCardinality>1</daml:maxCardinality>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:Class rdf:ID="Time-Interval">
    <rdfs:label>Time Interval</rdfs:label>
    <rdfs:comment>An interval is defined by two time points or a duration. Classes of intervals, e.g., a day, can be defined by specifying only a duration.  A time interval has no gaps</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Time-Position"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:ObjectProperty rdf:ID="begins-at-time-point">
    <rdfs:label>begins at time point</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Interval"/>
    <rdfs:range rdf:resource="#Time-Point"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:ObjectProperty>

  <daml:ObjectProperty rdf:ID="ends-at-time-point">
    <rdfs:label>ends at time point</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Interval"/>
    <rdfs:range rdf:resource="#Time-Point"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:ObjectProperty>

  <daml:ObjectProperty rdf:ID="has-duration">
    <rdfs:label>has duration</rdfs:label>
    <rdfs:domain rdf:resource="#Time-Interval"/>
    <rdfs:range rdf:resource="#Duration"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:ObjectProperty>

  <daml:Class rdf:ID="Day">
    <rdfs:label>Day</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Time-Interval"/>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#has-duration"/>
        <daml:hasValue rdf:resource="#twentyfour-hour-duration"/>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:Class rdf:ID="Week">
    <rdfs:label>Week</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Time-Interval"/>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#has-duration"/>
        <daml:hasValue rdf:resource="#seven-day-duration"/>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:Class rdf:ID="Month">
    <rdfs:label>Month</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Time-Interval"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:Class rdf:ID="Year">
    <rdfs:label>Year</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Time-Interval"/>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#has-duration"/>
        <daml:hasValue rdf:resource="#twelve-month-duration"/>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <daml:Class rdf:ID="Duration">
    <rdfs:label>Duration</rdfs:label>
    <rdfs:comment>A measure of time, e.g., 5 hours</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Physical-Quantity"/>
    <rdfs:subClassOf>
      <daml:Restriction>
        <daml:onProperty rdf:resource="#has-unit-of-measure"/>
        <daml:toClass rdf:resource="#Time-Measure"/>
      </daml:Restriction>
    </rdfs:subClassOf>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <support:Duration rdf:ID="twentyfour-hour-duration">
    <rdfs:label>24 hour duration</rdfs:label>
    <support:has-unit-of-measure rdf:resource="#time-measure-hour"/>
    <support:has-magnitude><xsd:decimal rdf:value="24"/></support:has-magnitude>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Duration>

  <support:Duration rdf:ID="seven-day-duration">
    <rdfs:label>7 day duration</rdfs:label>
    <support:has-unit-of-measure rdf:resource="#time-measure-day"/>
    <support:has-magnitude><xsd:decimal rdf:value="7"/></support:has-magnitude>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Duration>

  <support:Duration rdf:ID="twentyeight-day-duration">
    <rdfs:label>28 day duration</rdfs:label>
    <support:has-unit-of-measure rdf:resource="#time-measure-day"/>
    <support:has-magnitude><xsd:decimal rdf:value="28"/></support:has-magnitude>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Duration>

  <support:Duration rdf:ID="twentynine-day-duration">
    <rdfs:label>29 day duration</rdfs:label>
    <support:has-unit-of-measure rdf:resource="#time-measure-day"/>
    <support:has-magnitude><xsd:decimal rdf:value="29"/></support:has-magnitude>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Duration>

  <support:Duration rdf:ID="thirty-day-duration">
    <rdfs:label>30 day duration</rdfs:label>
    <support:has-unit-of-measure rdf:resource="#time-measure-day"/>
    <support:has-magnitude><xsd:decimal rdf:value="30"/></support:has-magnitude>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Duration>

  <support:Duration rdf:ID="thirtyone-day-duration">
    <rdfs:label>31 day duration</rdfs:label>
    <support:has-unit-of-measure rdf:resource="#time-measure-day"/>
    <support:has-magnitude><xsd:decimal rdf:value="31"/></support:has-magnitude>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Duration>

  <support:Duration rdf:ID="twelve-month-duration">
    <rdfs:label>12 month duration</rdfs:label>
    <support:has-unit-of-measure rdf:resource="#time-measure-month"/>
    <support:has-magnitude><xsd:decimal rdf:value="12"/></support:has-magnitude>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Duration>

  <daml:Class rdf:ID="Time-Measure">
    <rdfs:label>Time Measure</rdfs:label>
    <rdfs:comment>The class of all unit of measures used to measure time, e.g., minute, second, hour, etc.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Unit-Of-Measure"/>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </daml:Class>

  <support:Time-Measure rdf:ID="time-measure-second">
    <rdfs:label>second</rdfs:label>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Time-Measure>

  <support:Time-Measure rdf:ID="time-measure-minute">
    <rdfs:label>minute</rdfs:label>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Time-Measure>

  <support:Time-Measure rdf:ID="time-measure-hour">
    <rdfs:label>hour</rdfs:label>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Time-Measure>

  <support:Time-Measure rdf:ID="time-measure-day">
    <rdfs:label>day</rdfs:label>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Time-Measure>

  <support:Time-Measure rdf:ID="time-measure-month">
    <rdfs:label>month</rdfs:label>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Time-Measure>

  <support:Time-Measure rdf:ID="time-measure-year">
    <rdfs:label>year</rdfs:label>
    <rdfs:isDefinedBy rdf:resource="&base;"/>
  </support:Time-Measure>
</rdf:RDF>
