<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns="http://ontology.ist-spice.org/mobile-ontology/1/0/core/0/core.owl#"
  xml:base="http://ontology.ist-spice.org/mobile-ontology/1/0/core/0/core.owl">
  <owl:Ontology rdf:about="">
    <rdfs:comment xml:lang="en">Mobile ontology core vocabulary is a machine readable schema intended for sharing knowledge and exchanging information both across people and across services/applications, it covers domains related to mobile communications, such as persons, terminals, services, networks. Alignment with relevant standards makes SPICE outcomes interoperable with other efforts in the field. Supporting mechanisms and techniques facilitate usage of the vocabulary and other ontological standards.</rdfs:comment>
  </owl:Ontology>
  <owl:Class rdf:ID="UserGroup">
    <rdfs:comment xml:lang="en">The UserGroup class represents a group of SPICE users. Since a SPICE user does not have to be a human being, a SPICE UserGroup does not have to be a group of human beings.
Introduced by: Michael Sutterer</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Class rdf:ID="VirtualEntity"/>
    </rdfs:subClassOf>
    <owl:disjointWith>
      <owl:Class rdf:ID="User"/>
    </owl:disjointWith>
    <owl:disjointWith>
      <owl:Class rdf:ID="Service"/>
    </owl:disjointWith>
  </owl:Class>
  <owl:Class rdf:ID="Location">
    <rdfs:comment xml:lang="en">The Location class represents where any resource is located. It can be either an absolute location, such as geographical coordinates, or a relative location, such as in relation to some object (e.g. near a specific restaurant or a specific person), or a virtual location (e.g. in a meeting room).</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:about="#User">
    <owl:disjointWith rdf:resource="#UserGroup"/>
    <owl:disjointWith>
      <owl:Class rdf:about="#Service"/>
    </owl:disjointWith>
    <rdfs:comment xml:lang="en">The User class represents a SPICE user. A SPICE user does not have to be a human being.
Introduced by: Michael Sutterer</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Class rdf:about="#VirtualEntity"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="Device">
    <rdfs:subClassOf>
      <owl:Class rdf:ID="SpatialEntity"/>
    </rdfs:subClassOf>
    <owl:disjointWith>
      <owl:Class rdf:ID="Place"/>
    </owl:disjointWith>
    <owl:disjointWith>
      <owl:Class rdf:ID="PersonGroup"/>
    </owl:disjointWith>
    <owl:disjointWith>
      <owl:Class rdf:ID="Person"/>
    </owl:disjointWith>
    <rdfs:comment xml:lang="en">The Device class represents devices. This device  that can be part of a DCS of a user. The Device class is a subclass of the class dcs:DcsResource in the DCS ontology.
Introduced by: Claudia Villalonga</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:about="#Service">
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >The Service class represents a SPICE service which can be deployed in the Service Execution Environment and that can be described in SPATEL.
Responsible: Mariano Belaunde</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Class rdf:about="#VirtualEntity"/>
    </rdfs:subClassOf>
    <owl:disjointWith rdf:resource="#UserGroup"/>
    <owl:disjointWith rdf:resource="#User"/>
  </owl:Class>
  <owl:Class rdf:ID="Time">
    <rdfs:comment xml:lang="en">The Time represents time. The time can be expressed either in an absolute way (i.e., using GMT scale) or in a relative way (e.g., “half an hour after taking off on the plane”).
This generic class allows alignment with existing ontologies covering the topic of time, e.g. “Time Ontology in OWL”.</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:ID="SpiceEntity">
    <owl:versionInfo xml:lang="en">TODO: to figure out how such an identifier would look like and where would it be used.</owl:versionInfo>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:FunctionalProperty rdf:ID="hasUniqueIdentifier"/>
        </owl:onProperty>
        <owl:someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    <rdfs:comment xml:lang="en">Anything that may have an (internal) identifier in the mobile platform.
Introduced by: Martin Strohbach</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:about="#PersonGroup">
    <rdfs:subClassOf>
      <owl:Class rdf:about="#SpatialEntity"/>
    </rdfs:subClassOf>
    <owl:disjointWith>
      <owl:Class rdf:about="#Place"/>
    </owl:disjointWith>
    <owl:disjointWith>
      <owl:Class rdf:about="#Person"/>
    </owl:disjointWith>
    <owl:disjointWith rdf:resource="#Device"/>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >The PersonGroup class represents a group of Persons, i.e. a group of human beings. This PersonGroup does not have to be a SPICE UserGroup.
Introduced by: Michael Sutterer</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:about="#SpatialEntity">
    <owl:disjointWith>
      <owl:Class rdf:about="#VirtualEntity"/>
    </owl:disjointWith>
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#SpiceEntity"/>
          <owl:Restriction>
            <owl:onProperty>
              <owl:FunctionalProperty rdf:ID="hasLocation"/>
            </owl:onProperty>
            <owl:someValuesFrom rdf:resource="#Location"/>
          </owl:Restriction>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >An entity that has a location and or physical extent.
Introduced by: Martin Strohbach</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:about="#Place">
    <rdfs:subClassOf rdf:resource="#SpatialEntity"/>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >A physical area.
Introduced by: Martin Strohbach</rdfs:comment>
    <owl:disjointWith rdf:resource="#PersonGroup"/>
    <owl:disjointWith>
      <owl:Class rdf:about="#Person"/>
    </owl:disjointWith>
    <owl:disjointWith rdf:resource="#Device"/>
  </owl:Class>
  <owl:Class rdf:about="#Person">
    <rdfs:subClassOf rdf:resource="#SpatialEntity"/>
    <rdfs:comment xml:lang="en">The Person class represents a human being. This human being does not have to be a SPICE User, but it can also be a SPICE User and hence can have a SPICE User representation.
Introduced by: Michael Sutterer</rdfs:comment>
    <owl:disjointWith rdf:resource="#Place"/>
    <owl:disjointWith rdf:resource="#PersonGroup"/>
    <owl:disjointWith rdf:resource="#Device"/>
  </owl:Class>
  <owl:Class rdf:about="#VirtualEntity">
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >An entity that is idenitifiable in the system, but does not have a physical representation, e.g. policies.
Introduced by: Martin Strohbach</rdfs:comment>
    <rdfs:subClassOf>
      <owl:Class>
        <owl:complementOf>
          <owl:Restriction>
            <owl:onProperty>
              <owl:FunctionalProperty rdf:about="#hasLocation"/>
            </owl:onProperty>
            <owl:someValuesFrom rdf:resource="#Location"/>
          </owl:Restriction>
        </owl:complementOf>
      </owl:Class>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="#SpiceEntity"/>
    <owl:disjointWith rdf:resource="#SpatialEntity"/>
  </owl:Class>
  <owl:ObjectProperty rdf:ID="consistsOfUser">
    <rdfs:domain rdf:resource="#UserGroup"/>
    <rdfs:range rdf:resource="#User"/>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >The consistsOfUser property describes the relation between the UserGroup and User class. A UserGroup can consist of multiple Users.
Introduced by: Michael Sutterer</rdfs:comment>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="consistsOfPerson">
    <rdfs:range rdf:resource="#Person"/>
    <rdfs:domain rdf:resource="#PersonGroup"/>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >The consistsOfPerson property describes the relation between the PersonGroup and Person class. A PersonGroup can consist of multiple Persons.
Introduced by: Michael Sutterer</rdfs:comment>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="hasUserGroupRepesentation">
    <rdfs:range rdf:resource="#UserGroup"/>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >The hasUserGroupRepresentation property describes the relation between the PersonGroup and the UserGroup class. A group of persons can have a representation as a group of SPICE Users.
Introduced by: Claudia Villalonga</rdfs:comment>
    <rdfs:domain rdf:resource="#PersonGroup"/>
  </owl:ObjectProperty>
  <owl:FunctionalProperty rdf:ID="representsPerson">
    <rdfs:domain rdf:resource="#User"/>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Links the user to a Person. 
Introduced by: Martin Strohbach</rdfs:comment>
    <owl:inverseOf>
      <owl:InverseFunctionalProperty rdf:ID="hasUserRepresentation"/>
    </owl:inverseOf>
    <rdfs:range rdf:resource="#Person"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="#hasLocation">
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >the location of the Entity
Introduced by: Martin Strohbach</rdfs:comment>
    <rdfs:range rdf:resource="#Location"/>
    <rdfs:domain rdf:resource="#SpatialEntity"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="#hasUniqueIdentifier">
    <rdfs:domain rdf:resource="#SpiceEntity"/>
    <owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >TODO: decide on the format of identifiers</owl:versionInfo>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Uniquely identifies this entity within the SPICE platform. 
Introduced by: Martin Strohbach</rdfs:comment>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
  </owl:FunctionalProperty>
  <owl:InverseFunctionalProperty rdf:about="#hasUserRepresentation">
    <owl:inverseOf rdf:resource="#representsPerson"/>
    <rdfs:domain rdf:resource="#Person"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
    <rdfs:range rdf:resource="#User"/>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >The hasUserRepresentation property describes the relation between the Person and User class. A Person can have a SPICE User representation.
Introduced by: Michael Sutterer</rdfs:comment>
  </owl:InverseFunctionalProperty>
</rdf:RDF>

<!-- Created with Protege (with OWL Plugin 3.3, Build 407)  http://protege.stanford.edu -->
