#
# Copyright (c) 2007-2009 DFKI
# All rights reserved, licensed under either CC-BY or BSD.
#
# You are free:
#  * to Share - to copy, distribute and transmit the work
#  * to Remix - to adapt the work
# Under the following conditions:
#  * Attribution - You must attribute the work in the manner specified by the author
#    or licensor (but not in any way that suggests that they endorse you or your use 
#    of the work).
#
# Redistribution and use in source and binary forms, with or without modification, 
# are permitted provided that the following conditions are met:
#  * Redistributions of source code must retain the above copyright notice, this 
#    list of conditions and the following disclaimer.
#  * Redistributions in binary form must reproduce the above copyright notice, this 
#    list of conditions and the following disclaimer in the documentation and/or 
#    other materials provided with the distribution.
#  * Neither the names of the authors nor the names of contributors may
#    be used to endorse or promote products derived from this ontology without 
#    specific prior written permission.
#
# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

@prefix dc:      <http://purl.org/dc/elements/1.1/> .
@prefix exif:    <http://www.kanzaki.com/ns/exif#> .
@prefix geo:     <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix protege:  <http://protege.stanford.edu/system#> .
@prefix nao:     <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
@prefix nfo:     <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#> .
@prefix nie:     <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> .
@prefix ncal:    <http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#> .
@prefix nco:     <http://www.semanticdesktop.org/ontologies/2007/03/22/nco#> .
@prefix dcterms:  <http://purl.org/dc/terms/> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pimo:    <http://www.semanticdesktop.org/ontologies/2007/11/01/pimo#> .
@prefix nmo:     <http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#> .
@prefix nrl:     <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
@prefix tmo:     <http://www.semanticdesktop.org/ontologies/2008/05/20/tmo#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix nid3:    <http://www.semanticdesktop.org/ontologies/2007/05/10/nid3#> .
@prefix nexif:   <http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#> .

pimo: {pimo:State
          a       rdfs:Class ;
          rdfs:comment "Administrative subdivisions of a Nation that are broader than any other political subdivisions that may exist. This Class includes the states of the United States, as well as the provinces of Canada and European countries. (Definition from SUMO)." ;
          rdfs:label "State" ;
          rdfs:subClassOf pimo:Location .

    pimo:Room
          a       rdfs:Class ;
          rdfs:comment "A properPart of a Building which is separated from the exterior of the Building and/or other Rooms of the Building by walls. Some Rooms may have a specific purpose, e.g. sleeping, bathing, cooking, entertainment, etc. (Definition from SUMO)." ;
          rdfs:label "Room" ;
          rdfs:subClassOf pimo:Location .

    pimo:RuleViewSpecificationInferOccurrences
          a       nrl:RuleViewSpecification ;
          rdfs:label "RuleViewSpecificationInferOccurrences" .

    geo:lat
          a       rdf:Property ;
          rdfs:range xsd:float ;
          rdfs:subPropertyOf pimo:datatypeProperty ;
          nrl:maxCardinality "1" .

    pimo:InferOccurrences
          a       nrl:GraphView ;
          rdfs:label "InferOccurrences" .

    pimo:Country
          a       rdfs:Class ;
          rdfs:comment "The territory occupied by a nation; \"he returned to the land of his birth\"; \"he visited several European countries\". (Definition from SUMO)" ;
          rdfs:label "Country" ;
          rdfs:subClassOf pimo:Location .

    pimo:hasTag
          a       rdf:Property ;
          rdfs:comment "The subject's contents describes the object. Or the subject can be seen as belonging to the thing described by the object.  Similar semantics as skos:subject." ;
          rdfs:domain pimo:Thing ;
          rdfs:label "has tag" ;
          rdfs:range pimo:Tag ;
          rdfs:subPropertyOf nao:hasTag , pimo:objectProperty ;
          nrl:inverseProperty pimo:isTagFor .

    pimo:tagLabel
          a       rdf:Property ;
          rdfs:comment "The unique label of the tag. The label must be unique within the scope of one PersonalInformationModel. It is required and a subproperty of nao:prefLabel. It clarifies the use of nao:personalIdentifier by restricting the scope to tags. Semantically equivalent to skos:prefLabel, where uniqueness of labels is also recommended." ;
          rdfs:domain pimo:Tag ;
          rdfs:label "tag label" ;
          rdfs:range rdfs:Literal ;
          rdfs:subPropertyOf nao:prefLabel , nao:personalIdentifier ;
          nrl:maxCardinality "1" ;
          nrl:minCardinality "1" .

    pimo:hasOtherRepresentation
          a       rdf:Property , nrl:TransitiveProperty ;
          rdfs:comment """hasOtherRepresentation points from a Thing in your PIMO to a thing in an ontology that represents the same real world thing. 
This means that the real world object O represented by an instance I1 has additional representations (as instances I2-In of different conceptualizations).
This means: IF (I_i represents O_j in Ontology_k) AND (I_m represents O_n in Ontology_o) THEN (O_n and O_j are the same object).
hasOtherRepresentation is a transitive relation, but not equivalent (not symmetric nor reflexive).

For example, the URI of a  foaf:Person representation published on the web is a hasOtherRepresentation for the person. This property is inverse functional, two Things from two information models having the same hasOtherRepresentation are considered to be representations of the same entity from the real world.

TODO: rename this to subjectIndicatorRef to resemble topic maps ideas?""" ;
          rdfs:domain pimo:Thing ;
          rdfs:label "has other representation" ;
          rdfs:range rdfs:Resource ;
          rdfs:subPropertyOf pimo:occurrence .

    pimo:Collection
          a       rdfs:Class ;
          rdfs:comment "A collection of Things, independent of their class. The items in the collection share a common property. Which property may be modelled explicitly or mentioned in the description of the Collection. The requirement of explicit modelling the semantic meaning of the collection is not mandatory, as collections can be created ad-hoc. Implizit modelling can be applied by the system by learning the properties. For example, a Collection of \"Coworkers\" could be defined as that all elements must be of class \"Person\" and have an attribute \"work for the same Organization as the user\". Further standards can be used to model these attributes." ;
          rdfs:label "Collection" ;
          rdfs:subClassOf pimo:Thing .

    pimo:hasOtherConceptualization
          a       rdf:Property , nrl:TransitiveProperty ;
          rdfs:comment """Short: hasOtherRepresentation points from a Class in your PIMO to a class in a domain ontology that represents the same class. Longer: hasOtherConceptualization means that a class of real world objects O represented by a concept C1 in the ontology has additional conceptualizations (as classes C2-Cn in different domain ontologies).
This means: IF (O_i is conceptialized by C_j in Ontology_k) AND (O_l is conceptialized by C_m in Ontology_n) THEN (O_i and O_l is the same set of objects).
hasOtherConceptualization is an transitive relation, but not equivalent (not symmetric nor reflexive).""" ;
          rdfs:domain rdfs:Class ;
          rdfs:label "has other conceptualization" ;
          rdfs:range rdfs:Class ;
          rdfs:subPropertyOf rdfs:subClassOf , pimo:occurrence .

    pimo:hasGlobalNamespace
          a       rdf:Property ;
          rdfs:comment "The global namespace of this user using the semdesk uri scheme, based on the Global Identifier of the user. Example semdesk://bob@example.com/things/. See http://dev.nepomuk.semanticdesktop.org/repos/trunk/doc/2008_09_semdeskurischeme/index.html" ;
          rdfs:domain pimo:PersonalInformationModel ;
          rdfs:label "global namespace" ;
          rdfs:range rdfs:Literal .

    pimo:Attendee
          a       rdfs:Class ;
          rdfs:comment "The role of someone attending a social event." ;
          rdfs:label "Attendee" ;
          rdfs:subClassOf pimo:PersonRole .

    pimo:superTopic
          a       rdf:Property , nrl:TransitiveProperty ;
          rdfs:comment "The object topic is more general in meaning than the subject topic. Transitive. Similar to skos:broader." ;
          rdfs:domain pimo:Topic ;
          rdfs:label "broader topic" ;
          rdfs:range pimo:Topic ;
          rdfs:subPropertyOf pimo:partOf , pimo:objectProperty ;
          nrl:inverseProperty pimo:subTopic .

    pimo:wikiText
          a       rdf:Property ;
          rdfs:comment "A wiki-like free-text description of a Thing or a Class. The text can be formatted using a limited set of HTML elements and can contain links to other Things. The format is described in detail in the WIF specification (http://semanticweb.org/wiki/Wiki_Interchange_Format)." ;
          rdfs:domain pimo:ClassOrThing ;
          rdfs:label "wiki text" ;
          rdfs:range rdfs:Literal ;
          nrl:maxCardinality "1" .

    pimo:Note
          a       rdfs:Class ;
          rdfs:comment "A note. The textual contents of the note should be expressed in the nao:description value of the note." ;
          rdfs:label "Note" ;
          rdfs:subClassOf pimo:Document .

    pimo:associationMember
          a       rdf:Property ;
          rdfs:comment "An super-property of all roles that an entity can have in an association. Member is the generic role of a thing in an association. Association subclasses should define sub-properties of this property. Associations can have Things as" ;
          rdfs:domain pimo:Association ;
          rdfs:label "association member" ;
          rdfs:range pimo:Thing .

    pimo:roleHolder
          a       rdf:Property ;
          rdfs:comment "the person taking the role" ;
          rdfs:domain pimo:PersonRole ;
          rdfs:label "role holder" ;
          rdfs:range pimo:Person ;
          rdfs:subPropertyOf pimo:associationMember .

    pimo:Person
          a       rdfs:Class ;
          rdfs:comment "Represents a person. Either living, dead, real or imaginary. (Definition from foaf:Person)" ;
          rdfs:label "Person" ;
          rdfs:subClassOf pimo:Agent , pimo:Locatable .

    pimo:objectProperty
          a       rdf:Property ;
          rdfs:comment "The object of statements is another Thing. Users should be able to edit statements defined with this property. Abstract super-property." ;
          rdfs:domain pimo:Thing ;
          rdfs:label "object property" ;
          rdfs:range pimo:Thing .

    pimo:RuleViewSpecificationGroundingClosure
          a       nrl:RuleViewSpecification ;
          rdfs:label "RuleViewSpecificationGroundingClosure" .

    pimo:duration
          a       rdf:Property ;
          rdfs:comment "The duration of the meeting. Begin and end time." ;
          rdfs:domain pimo:SocialEvent ;
          rdfs:label "duration" ;
          rdfs:range rdfs:Resource ;
          rdfs:subPropertyOf pimo:datatypeProperty ;
          nrl:maxCardinality "1" .

    pimo:hasLocalNamespace
          a       rdf:Property ;
          rdfs:comment "The local namespace of this user using the semdesk uri scheme, based on the Local Identifier of the user. Example semdesk://bob@/things/. See http://dev.nepomuk.semanticdesktop.org/repos/trunk/doc/2008_09_semdeskurischeme/index.html" ;
          rdfs:domain pimo:PersonalInformationModel ;
          rdfs:label "local namespace" ;
          rdfs:range rdfs:Literal .

    pimo:dtstart
          a       rdf:Property ;
          rdfs:comment "This property specifies when the process begins. Inspired by NCAL:dtstart." ;
          rdfs:domain pimo:ProcessConcept ;
          rdfs:label "start date" ;
          rdfs:range xsd:dateTime ;
          rdfs:subPropertyOf pimo:datatypeProperty ;
          nrl:maxCardinality "1" .

    pimo:hasOrganizationMember
          a       rdf:Property ;
          rdfs:comment "The subject organization has the object person or organization (Agent) as a member." ;
          rdfs:domain pimo:Organization ;
          rdfs:label "organization has member" ;
          rdfs:range pimo:Agent ;
          rdfs:subPropertyOf pimo:hasPart ;
          nrl:inverseProperty pimo:isOrganizationMemberOf .

    pimo:attendee
          a       rdf:Property ;
          rdfs:comment "A social event is attended by a person." ;
          rdfs:domain pimo:SocialEvent ;
          rdfs:label "attendee" ;
          rdfs:range pimo:Person ;
          rdfs:subPropertyOf pimo:isRelated ;
          nrl:inverseProperty pimo:attends .

    pimo:PersonRole
          a       rdfs:Class ;
          rdfs:comment "A person takes a certain role in a given context. The role can be that of \"a mentor or another person\" or \"giving a talk at a meeting\", etc." ;
          rdfs:label "Role of Person" ;
          rdfs:subClassOf pimo:Association .

    pimo:OccurrenceClosure
          a       nrl:GraphView ;
          rdfs:label "OccurrenceClosure" .

    pimo:Organization
          a       rdfs:Class ;
          rdfs:comment "An administrative and functional structure (as a business or a political party). (Definition from Merriam-Webster)" ;
          rdfs:label "Organization" ;
          rdfs:subClassOf pimo:Agent , pimo:Locatable .

    pimo:Topic
          a       rdfs:Class ;
          rdfs:comment "A topic is the subject of a discussion or document. Topics are distinguished from Things in their taxonomic nature, examples are scientific areas such as \"Information Science\", \"Biology\", or categories used in content syndication such as \"Sports\", \"Politics\". They are specific to the user's domain." ;
          rdfs:label "Topic" ;
          rdfs:subClassOf pimo:Tag , pimo:Thing .

    pimo:jabberId
          a       rdf:Property ;
          rdfs:comment "Jabber-ID of the user. Used to communicate amongst peers in the social scenario of the semantic desktop. Use the xmpp node identifier as specified by RFC3920, see http://www.xmpp.org/specs/rfc3920.html#addressing-node. The format is the same as e-mail addresses: username@hostname." ;
          rdfs:domain pimo:Person ;
          rdfs:label "jabber ID of the user" ;
          rdfs:range rdfs:Literal ;
          nrl:maxCardinality "1" .

    pimo:isLocationOf
          a       rdf:Property ;
          rdfs:comment "The subject location is the current location of the object." ;
          rdfs:domain pimo:Location ;
          rdfs:label "is location of" ;
          rdfs:range pimo:Thing ;
          rdfs:subPropertyOf pimo:isRelated ;
          nrl:inverseProperty pimo:hasLocation .

    pimo:Document
          a       rdfs:Class ;
          rdfs:comment "A generic document. This is a placeholder class for document-management domain ontologies to subclass. Create more and specified subclasses of pimo:Document for the document types in your domain. Documents are typically instances of both NFO:Document (modeling the information element used to store the document) and a LogicalMediaType subclass. Two examples are given for what to model here: a contract for a business domain, a BlogPost for an informal domain." ;
          rdfs:label "Document" ;
          rdfs:subClassOf pimo:LogicalMediaType .

    pimo:hasDeprecatedRepresentation
          a       rdf:Property ;
          rdfs:comment "The subject Thing was represented previously using the object resource. This indicates that the object resource was a duplicate representation of the subject and merged with the subject. Implementations can use this property to resolve dangling links in distributed system. When encountering resources that are deprecated representations of a Thing, they should be replaced with the Thing. The range is not declared as we assume all knowledge about the object is gone, including its rdf:type." ;
          rdfs:domain pimo:Thing ;
          rdfs:label "has deprecated representation" ;
          rdfs:range rdfs:Resource .

    pimo:hasOtherSlot
          a       rdf:Property , nrl:TransitiveProperty ;
          rdfs:comment "hasOtherSlot points from a clot  in your PIMO to a slot in a domain ontology that represents the same connection idea." ;
          rdfs:domain rdf:Property ;
          rdfs:label "represented by other slot" ;
          rdfs:range rdf:Property , rdfs:Resource ;
          rdfs:subPropertyOf rdfs:subPropertyOf .

    pimo:Tag
          a       rdfs:Class ;
          rdfs:comment "Tags in the context of PIMO. A marker class for Things that are used to categorize documents (or other things). Tags must be a kind of Thing and must have a unique label. Documents should not be Tags by default." ;
          rdfs:label "Tag" ;
          rdfs:subClassOf pimo:Thing , nao:Tag ;
          protege:role "abstract" ;
          pimo:classRole pimo:AbstractClass .

    pimo:ClassRole
          a       rdfs:Class ;
          rdfs:comment "Roles of classes in PIMO: concrete instances are Abstract and Concrete." ;
          rdfs:label "ClassRole" ;
          rdfs:subClassOf rdfs:Resource .

    pimo:groundingForDeletedThing
          a       rdf:Property ;
          rdfs:comment "This NIE Information Element was used as a grounding occurrence for the object Thing. The Thing was then deleted by the user manually, indicating that this Information Element should not cause an automatic creation of another Thing in the future. The object resource has no range to indicate that it was completely removed from the user's PIMO, including the rdf:type statement. Relevant for data alignment and enrichment algorithms." ;
          rdfs:label "grounding for deleted thing" ;
          rdfs:range rdfs:Resource .

    pimo:organization
          a       rdf:Property ;
          rdfs:comment "relation to the organization in an OrganizationMember association." ;
          rdfs:domain pimo:OrganizationMember ;
          rdfs:label "organization" ;
          rdfs:range pimo:Organization ;
          rdfs:subPropertyOf pimo:associationMember .

    pimo:Locatable
          a       rdfs:Class ;
          rdfs:comment "Things that can be at a location. Abstract class, use it as a superclass of things that can be placed in physical space." ;
          rdfs:label "Locatable" ;
          rdfs:subClassOf pimo:Thing ;
          protege:role "abstract" ;
          pimo:classRole pimo:AbstractClass .

    pimo:roleContext
          a       rdf:Property ;
          rdfs:comment "The context where the role-holder impersonates this role. For example, the company where a person is employed." ;
          rdfs:domain pimo:PersonRole ;
          rdfs:label "role context" ;
          rdfs:range pimo:Thing ;
          rdfs:subPropertyOf pimo:associationMember .

    pimo:isRelated
          a       rdf:Property ;
          rdfs:comment "The thing is related to the other thing. Similar in meaning to skos:related. Symmetric but not transitive." ;
          rdfs:domain pimo:Thing ;
          rdfs:label "is related" ;
          rdfs:range pimo:Thing ;
          rdfs:subPropertyOf nao:isRelated , pimo:objectProperty ;
          nrl:inverseProperty pimo:isRelated .

    pimo:ConcreteClass
          a       pimo:ClassRole ;
          rdfs:label "ConcreteClass" .

    pimo:attendingMeeting
          a       rdf:Property ;
          rdfs:comment "the attended meeting" ;
          rdfs:domain pimo:Attendee ;
          rdfs:label "attending meeting" ;
          rdfs:range pimo:SocialEvent ;
          rdfs:subPropertyOf pimo:roleContext .

    pimo:groundingOccurrence
          a       rdf:Property , nrl:InverseFunctionalProperty ;
          rdfs:comment "The subject Thing represents the entity that is described in the object InformationElement. The subject Thing is the canonical, unique representation in the personal information model for the entity described in the object. Multiple InformationElements can be the grounding occurrence of the same Thing,  one InformationElement can be the groundingOccurrence of only one Thing." ;
          rdfs:domain pimo:Thing ;
          rdfs:label "grounding occurrence" ;
          rdfs:range nie:InformationElement ;
          rdfs:subPropertyOf pimo:occurrence .

    pimo:City
          a       rdfs:Class ;
          rdfs:comment "A large and densely populated urban area; may include several independent administrative districts; \"Ancient Troy was a great city\". (Definition from SUMO)" ;
          rdfs:label "City" ;
          rdfs:subClassOf pimo:Location .

    pimo:hasFolder
          a       rdf:Property ;
          rdfs:comment "Folders can be used to store information elements related to a Thing or Class. This property can be used to connect a Class or Thing to existing Folders. Implementations can suggest annotations for documents stored inside these folders or  suggest the folder for new documents related to the Thing or Class." ;
          rdfs:domain pimo:ClassOrThing ;
          rdfs:label "has folder" ;
          rdfs:range nfo:Folder .

    pimo:locatedWithin
          a       rdf:Property ;
          rdfs:comment "The subject location is contained within the object location. For example, a room is located within a building or a city is located within a country." ;
          rdfs:domain pimo:Location ;
          rdfs:label "located within" ;
          rdfs:range pimo:Location ;
          rdfs:subPropertyOf pimo:partOf ;
          nrl:inverseProperty pimo:containsLocation .

    pimo:partOf
          a       rdf:Property ;
          rdfs:comment "This is part of the object. Like a page is part of a book or an engine is part of a car. You can make sub-properties of this to reflect more detailed relations." ;
          rdfs:domain pimo:Thing ;
          rdfs:label "part of" ;
          rdfs:range pimo:Thing ;
          rdfs:subPropertyOf pimo:objectProperty ;
          nrl:inverseProperty pimo:hasPart .

    pimo:LogicalMediaType
          a       rdfs:Class ;
          rdfs:comment """Logical media types represent the content aspect of information elements e.g. a flyer, a contract, a promotional video, a todo list.  The user can create new logical media types dependend on their domain: a salesman will need MarketingFlyer, Offer, Invoice while a student might create Report, Thesis and Homework. This is independent from the information element and data object (NIE/NFO) in which the media type will be stored. The same contract can be stored in a PDF file, a text file, or an HTML website.
The groundingOccurrence of a LogicalMediaType is the Document that stores the content.""" ;
          rdfs:label "Logical Media Type" ;
          rdfs:subClassOf pimo:Thing ;
          protege:role "abstract" ;
          pimo:classRole pimo:AbstractClass .

    pimo:isTagFor
          a       rdf:Property ;
          rdfs:comment "This thing is described further in the object thing. Similar  semantics as skos:isSubjectOf." ;
          rdfs:domain pimo:Tag ;
          rdfs:label "is tag for" ;
          rdfs:range pimo:Thing ;
          rdfs:subPropertyOf nao:isTagFor , pimo:objectProperty ;
          nrl:inverseProperty pimo:hasTag .

    pimo:Meeting
          a       rdfs:Class ;
          rdfs:comment "The social act of assembling for some common purpose; \"his meeting with the salesman was the high point of his day\". (Definition from SUMO)" ;
          rdfs:label "Meeting" ;
          rdfs:subClassOf pimo:SocialEvent .

    pimo:isOrganizationMemberOf
          a       rdf:Property ;
          rdfs:comment "The subject person or organozation (Agent) is member of the object organization." ;
          rdfs:domain pimo:Agent ;
          rdfs:label "is member of organization" ;
          rdfs:range pimo:Organization ;
          rdfs:subPropertyOf pimo:partOf ;
          nrl:inverseProperty pimo:hasOrganizationMember .

    pimo:Contract
          a       rdfs:Class ;
          rdfs:comment "A binding agreement between two or more persons that is enforceable by law. (Definition from SUMO). This is an example class for a document type, there are more detailled ontologies to model Contracts." ;
          rdfs:label "Contract" ;
          rdfs:subClassOf pimo:Document .

    pimo:PersonGroup
          a       rdfs:Class ;
          rdfs:comment "A group of Persons. They are connected to each other by sharing a common attribute, for example they all belong to the same organization or have a common interest. Refer to pimo:Collection for more information about defining collections." ;
          rdfs:label "Group of Persons" ;
          rdfs:subClassOf pimo:Agent , pimo:Collection .

    pimo:datatypeProperty
          a       rdf:Property ;
          rdfs:comment "The object of statements is a literal, resource, or datatype value describing the subject thing. Users should be able to edit statements defined with this property. Abstract super-property." ;
          rdfs:domain pimo:Thing ;
          rdfs:label "datatype property" .

    pimo:Event
          a       rdfs:Class ;
          rdfs:comment """Something that happens
An Event is conceived as compact in time. (Definition from Merriam-Webster)""" ;
          rdfs:label "Event" ;
          rdfs:subClassOf pimo:ProcessConcept .

    pimo:SocialEvent
          a       rdfs:Class ;
          rdfs:comment "A social occasion or activity. (Definition from Merriam-Webster)" ;
          rdfs:label "Social Event" ;
          rdfs:subClassOf pimo:Event , pimo:Locatable .

    pimo:ClassOrThingOrPropertyOrAssociation
          a       rdfs:Class ;
          rdfs:comment "Superclass of resources that can be generated by the user." ;
          rdfs:label "ClassOrThingOrPropertyOrAssociation" ;
          rdfs:subClassOf rdfs:Resource ;
          protege:role "abstract" ;
          pimo:classRole pimo:AbstractClass .

    pimo:isWriteable
          a       rdf:Property ;
          rdfs:comment "Defines if this information model can be modified by the user of the system. This is usually false for imported ontologies and true for the user's own PersonalInformationModel." ;
          rdfs:label "is writeable" ;
          rdfs:range rdfs:Literal .

    pimo:BlogPost
          a       rdfs:Class ;
          rdfs:comment "A blog note. You just want to write something down right now and need a place to do that. Add a blog-note! This is an example class for a document type, there are more detailled ontologies to model Blog-Posts (like SIOC)." ;
          rdfs:label "Blog Post" ;
          rdfs:subClassOf pimo:Document .

    pimo:Agent
          a       rdfs:Class ;
          rdfs:comment """An agent (eg. person, group, software or physical artifact). The Agent class is the class of agents; things that do stuff. A well known sub-class is Person, representing people. Other kinds of agents include Organization and Group.
(inspired by FOAF).
Agent is not a subclass of NAO:Party.""" ;
          rdfs:label "Agent" ;
          rdfs:subClassOf pimo:Thing ;
          protege:role "abstract" ;
          pimo:classRole pimo:AbstractClass .

    pimo:associationEffectual
          a       rdf:Property ;
          rdfs:comment """During which time is this association effective? If omitted, the association is always effective. Start time and end-time may be left open, an open start time indicates that the fact is unknown, an open end-time indicates that the end-date is either unknown or the association has not ended.
There can be multiple effectual periods.""" ;
          rdfs:domain pimo:Association ;
          rdfs:label "association effectual during" ;
          rdfs:range rdfs:Resource .

    pimo:occurrence
          a       rdf:Property ;
          rdfs:comment "The subject Thing is represented also in the object resource. All facts added to the object resource are valid for the subject thing. The subject is the canonical represtation of the object. In particual, this implies when (?object ?p ?v) -> (?subject ?p ?v) and (?s ?p ?object) -> (?s ?p ?subject). The class of the object is not defined, but should be compatible with the class of the subject. Occurrence relations can be inferred through same identifiers or referencingOccurrence relations." ;
          rdfs:domain pimo:Thing ;
          rdfs:label "occurrence" ;
          rdfs:range rdfs:Resource .

    pimo:classRole
          a       rdf:Property ;
          rdfs:comment "Annotating abstract and concrete classes. Implementations may offer the feature to hide abstract classes. By default, classes are concrete. Classes can be declared abstract by setting their classRole to abstract. Instances should not have an abstract class as type (if not inferred)." ;
          rdfs:label "class role" ;
          rdfs:range pimo:ClassRole ;
          nrl:maxCardinality "1" .

    pimo:ClassOrThing
          a       rdfs:Class ;
          rdfs:comment "Superclass of class and thing. To add properties to both class and thing." ;
          rdfs:label "ClassOrThing" ;
          rdfs:subClassOf pimo:ClassOrThingOrPropertyOrAssociation ;
          protege:role "abstract" ;
          pimo:classRole pimo:AbstractClass .

    pimo:OrganizationMember
          a       rdfs:Class ;
          rdfs:comment "The role of one or multiple persons being a member in one or multiple organizations. Use pimo:organization and pimo:roleHolder to link to the organizations and persons." ;
          rdfs:label "Member" ;
          rdfs:subClassOf pimo:PersonRole .

    pimo:dtend
          a       rdf:Property ;
          rdfs:comment "This property specifies the date and time when a process ends. Inspired by NCAL:dtend." ;
          rdfs:domain pimo:ProcessConcept ;
          rdfs:label "end date" ;
          rdfs:range xsd:dateTime ;
          rdfs:subPropertyOf pimo:datatypeProperty ;
          nrl:maxCardinality "1" .

    pimo:referencingOccurrence
          a       rdf:Property ;
          rdfs:comment "The subject thing is described in the object document. Ideally, the document is public and its primary topic is the thing. Although this property is not inverse-functional (because the Occurrences are not canonical elements of a formal ontology) this property allows to use public documents, such as wikipedia pages, as indicators identity.  The more formal hasOtherRepresentation property can be used when an ontology about the subject exists." ;
          rdfs:domain pimo:Thing ;
          rdfs:label "referencing occurrence" ;
          rdfs:range nie:InformationElement .

    pimo:createdPimo
          a       rdf:Property ;
          rdfs:comment "The creator of the Personal Information Model. The human being whose mental models are represented in the PIMO." ;
          rdfs:domain pimo:Agent ;
          rdfs:label "created Pimo" ;
          rdfs:range pimo:PersonalInformationModel ;
          nrl:inverseProperty pimo:creator .

    pimo:PersonalInformationModel
          a       rdfs:Class ;
          rdfs:comment "A Personal Information Model (PIMO) of a user. Represents the sum of all information from the personal knowledge workspace (in literature also referred to as Personal Space of Information (PSI)) which a user needs for Personal Information Management (PIM)." ;
          rdfs:label "Personal Information Model" ;
          rdfs:subClassOf rdfs:Resource , nrl:KnowledgeBase .

    geo:alt
          a       rdf:Property ;
          rdfs:range xsd:float ;
          rdfs:subPropertyOf pimo:datatypeProperty ;
          nrl:maxCardinality "1" .

    pimo:containsLocation
          a       rdf:Property ;
          rdfs:comment "The subject location contains the object location. For example, a building contains a room or a country contains a city." ;
          rdfs:domain pimo:Location ;
          rdfs:label "contains location" ;
          rdfs:range pimo:Location ;
          rdfs:subPropertyOf pimo:hasPart ;
          nrl:inverseProperty pimo:locatedWithin .

    pimo:isDefinedBy
          a       rdf:Property ;
          rdfs:comment "Each element in a PIMO must be connected to the PIMO, to be able to track multiple PIMOs in a distributed scenario. Also, this is the way to find the user that this Thing belongs to." ;
          rdfs:domain pimo:ClassOrThingOrPropertyOrAssociation ;
          rdfs:label "is defined by" ;
          rdfs:range pimo:PersonalInformationModel ;
          nrl:maxCardinality "1" ;
          nrl:minCardinality "1" .

    pimo:hasRootTopic
          a       rdf:Property ;
          rdfs:comment "The root topics of this PersonalInformationModel's topic hierarchy. Every topic that has no pimo:superTopic is a root topic. Semantically equivalent to skos:hasTopConcept." ;
          rdfs:domain pimo:PersonalInformationModel ;
          rdfs:label "root topic" ;
          rdfs:range pimo:Topic .

    pimo:Association
          a       rdfs:Class ;
          rdfs:comment "An association between two or more pimo-things. This is used to model n-ary relations and metadata about relations. For example, the asociation of a person being organizational member is only effectual within a period of time (after the person joined the organization and before the person left the organization). There can be multiple periods of time when associations are valid." ;
          rdfs:label "Association" ;
          rdfs:subClassOf rdfs:Resource , pimo:ClassOrThingOrPropertyOrAssociation .

    pimo:hasPart
          a       rdf:Property ;
          rdfs:comment "The object is part of the subject. Like a page is part of a book or an engine is part of a car. You can make sub-properties of this to reflect more detailed relations. The semantics of this relations is the same as skos:narrowerPartitive" ;
          rdfs:domain pimo:Thing ;
          rdfs:label "has part" ;
          rdfs:range pimo:Thing ;
          rdfs:subPropertyOf pimo:objectProperty ;
          nrl:inverseProperty pimo:partOf .

    pimo:taskDueTime
          a       rdf:Property ;
          rdfs:comment "when is this task due? Represented in ISO 8601, example: 2003-11-22T17:00:00" ;
          rdfs:domain pimo:Task ;
          rdfs:label "task due time" ;
          rdfs:range xsd:dateTime ;
          rdfs:subPropertyOf pimo:datatypeProperty ;
          nrl:maxCardinality "1" .

    geo:long
          a       rdf:Property ;
          rdfs:range xsd:float ;
          rdfs:subPropertyOf pimo:datatypeProperty ;
          nrl:maxCardinality "1" .

    pimo:GroundingClosure
          a       nrl:GraphView ;
          rdfs:label "GroundingClosure" .

    pimo:RuleViewSpecificationOccurrenceClosure
          a       nrl:RuleViewSpecification ;
          rdfs:label "RuleViewSpecificationOccurrenceClosure" .

    pimo:AbstractClass
          a       pimo:ClassRole ;
          rdfs:label "AbstractClass" .

    pimo:creator
          a       rdf:Property ;
          rdfs:comment "The creator of the Personal Information Model. A subproperty of NAO:creator. The human being whose mental models are represented in the PIMO. Range is an Agent." ;
          rdfs:domain pimo:PersonalInformationModel ;
          rdfs:label "creator" ;
          rdfs:range pimo:Agent ;
          rdfs:subPropertyOf nao:creator ;
          nrl:inverseProperty pimo:createdPimo ;
          nrl:maxCardinality "1" ;
          nrl:minCardinality "1" .

    pimo:Thing
          a       rdfs:Class ;
          rdfs:comment "Entities that are in the direct attention of the user when doing knowledge work." ;
          rdfs:label "Thing" ;
          rdfs:subClassOf pimo:ClassOrThing , rdfs:Resource .

    pimo:subTopic
          a       rdf:Property , nrl:TransitiveProperty ;
          rdfs:comment "The object topic is more specific in meaning than the subject topic. Transitive. Similar in meaning to skos:narrower" ;
          rdfs:domain pimo:Topic ;
          rdfs:label "sub topic" ;
          rdfs:range pimo:Topic ;
          rdfs:subPropertyOf pimo:objectProperty , pimo:hasPart ;
          nrl:inverseProperty pimo:superTopic .

    pimo:ProcessConcept
          a       rdfs:Class ;
          rdfs:comment "Concepts that relate to a series of actions or operations conducing to an end. Abstract class. Defines optional start and endtime properties, names taken from NCAL." ;
          rdfs:label "Process Concept" ;
          rdfs:subClassOf pimo:Thing ;
          protege:role "abstract" ;
          pimo:classRole pimo:AbstractClass .

    pimo:FullPimoView
          a       nrl:GraphView ;
          rdfs:label "FullPimoView" .

    pimo:Project
          a       rdfs:Class ;
          rdfs:comment "Any piece of work that is undertaken or attempted (Wordnet). An enterprise carefully planned to achieve a particular aim (Oxford Dictionary)." ;
          rdfs:label "Project" ;
          rdfs:subClassOf pimo:ProcessConcept .

    pimo:hasLocation
          a       rdf:Property ;
          rdfs:comment "The subject thing is currently located at the object location." ;
          rdfs:domain pimo:Locatable ;
          rdfs:label "has location" ;
          rdfs:range pimo:Location ;
          rdfs:subPropertyOf pimo:isRelated ;
          nrl:inverseProperty pimo:isLocationOf ;
          nrl:maxCardinality "1" .

    pimo:Location
          a       rdfs:Class ;
          rdfs:comment "A physical location. Subclasses are modeled for the most common locations humans work in: Building, City, Country, Room, State. This selection is intended to be applicable cross-cultural and cross-domain. City is a prototype that can be further refined for villages, etc. Subclass of a WGS84:SpatialThing, can have geo-coordinates." ;
          rdfs:label "Location" ;
          rdfs:subClassOf pimo:Thing , geo:SpatialThing .

    pimo:Task
          a       rdfs:Class ;
          rdfs:comment "A (usually assigned) piece of work (often to be finished within a certain time). (Definition from Merriam-Webster)" ;
          rdfs:label "Task" ;
          rdfs:subClassOf pimo:ProcessConcept .

    pimo:attends
          a       rdf:Property ;
          rdfs:comment "A person attends a social event." ;
          rdfs:domain pimo:Person ;
          rdfs:label "attends event" ;
          rdfs:range pimo:SocialEvent ;
          rdfs:subPropertyOf pimo:isRelated ;
          nrl:inverseProperty pimo:attendee .

    pimo:Building
          a       rdfs:Class ;
          rdfs:comment "A structure that has a roof and walls and stands more or less permanently in one place; \"there was a three-story building on the corner\"; \"it was an imposing edifice\". (Definition from SUMO)." ;
          rdfs:label "Building" ;
          rdfs:subClassOf pimo:Location .
}

<http://www.semanticdesktop.org/ontologies/2007/11/01/pimo_metadata#> {<http://www.semanticdesktop.org/ontologies/2007/11/01/pimo_metadata#>
          a       nrl:GraphMetadata ;
          nrl:coreGraphMetadataFor
                  pimo: .

    pimo:
          a       nrl:Ontology ;
          nao:creator <http://www.dfki.uni-kl.de/~sauermann/> ;
          nao:hasDefaultNamespace
                  "http://www.semanticdesktop.org/ontologies/2007/11/01/pimo#" ;
          nao:hasDefaultNamespaceAbbreviation
                  "pimo" ;
          nao:lastModified "2009-01-30T11:23:58.125Z" ;
          nao:status "Recommendation" ;
          nao:updatable "0 " ;
          nao:version "1.1" .
}

