A Top-Level Ontology

Metadata retrieval and reuse is enhanced when metadata providers follow common or interconnected ontologies. Below, we propose a top-level ontology to ease and guide metadata representation and organization. It reuses the classes and properties declared in [RDFMS] and [RDFSchema] and adds about 80 new classes and 120 new relations (properties). Some classes come from the Frame Ontology of Ontolingua [FrameOntol] (not all the classes and relations of this ontology have been reused since many are not relevant to RDF, e.g. n-ary relations with n > 2). Most classes and properties were selected and adapted from works of John Sowa [Sowa84] and completed with classes and relations from various other top-level ontologies (e.g. to a small extent, the CYC top-level ontology and the Generalized Upper Model). Whereas the set of proposed relations can be seen as relatively complete for the representation of most natural language sentences, we have mainly limited the introduction of classes to those required for the signatures of the relations (i.e. to constrain their ranges and domains). The whole file of this top-level ontology is accessible in RDF format and in a more readable format (that is also parsable)

To complete that work on classes, we have also worked on the WordNet lexical database [WN]. First, we have inserted the WordNet top-level classes into our top-level ontology (cf. section 1.2). Second, we have translated this database (plus the top-level ontology) into a 24Mb RDF file (click here for a 4.2Mb gzipped version). A version of this file in also given in the more readable format (click here for a 3.7Mb gzipped version). Third, to search this ontology of 84,000 categories and navigate along the various kinds of relations between them, we have implemented a CGI script and an HTML+Javascript interface to use it. The results are given in RDF or simpler formats.

Following our conventions, we have only used singular nouns for class names and have not introduced inverse relations (e.g. subClass and agentOf have not be introduced since subClassOf and agent are have been declared).


Table of Contents                 (Postscript version:  full text (39 p),  without RDF (15 p))





1. Presentation of the Ontology

We present our top-level ontology via subClassOf hierarchies (and one instanceOf hierarchy) preceded by some comments.

Explanation of the notations in the following subClassOf/instanceOf hierarchies

"(^...^)" are used for annotations
"=" for equivalent resources,
"~" for exclusive classes (i.e. that cannot have common subclasses or instances),
"%" for classes with several superclasses,
"(domain,range)" for signatures of relations,
"ph:" for the terms introduced by this ontology, and
"kif:" for their equivalent in the Frame Ontology of Ontolingua [FrameOntol]



1.1. General Classes

In the upper layers of this ontology (see the next 3 tables), we integrated important distinctions from other top-level ontologies: Concept/Relation [Sowa84] (see Thing/relation here), Entity/Situation [Barwise83][Sowa84], State/Process, SpatialEntity/NonSpatialEntity, DivisibleEntity/UndivisibleEntity (a generalization of the distinction IndividualThing/Collection of the Frame Ontology of Ontolingua [FrameOntol]), LivingEntity/DeadEntity. We added other distinctions, e.g. EntityThatCanBeAlive/EntityThatCannotBeAlive (a refinement of the classic distinction LivingThing/NonLivingThing), Description/DescriptionContainer/Measure.
Such general distinctions permit an easier understanding of the ontology. Furthermore, the conjunction of the exclusive links between the categories, the specialization relations and the relation signatures permit some automatic semantic checking on the ontology update and its use of its terms in statements. For instance, if a class named Observation has been declared as a subclass of DescriptionContent, an RDF engine can check that (i) no statement specifies that an instance of Observation (or its subclasses) is the source of a relation of class relationFromSituation, and (ii) Observation is not subclassed with a class that represents a process (e.g. the class RadioObservation indirect subclass of Process; the exclusion link between Entity and Situation forbids this).
Such constraints may also be exploited for automatic/semi-automatic metadata classification or fusion.

We introduced the class ThingPlayingSomeRole to provide an anchor for the classification of things according to some roles they play (or in other words, according to some viewpoints). Thus, these classes can only be specialized in the context of an application. This is also the case for some other classes, e.g. Event.

Some (meta)classes from [RDFSchema] represent different kinds of classes: rdfs:Class, rdf:Property and rdfs:ConstraintResource. Since a class represents a collection of individual having some common features, we have placed those (meta)classes under Collection (and rdfs:Container too).

The class AttributeOrMeasure permits the classification of attributes or characteristics (e.g. physical characteristics such as mass and color) and measures (e.g. 2 kg, light_weight, red and all time measures such as 2 hours and Precambrian_period). Some knowledge providers often use names of attributes/characteristics (e.g. of physical characteristics such as mass and color) as relation names. This practice would not be a problem if all attributes could be represented as relations and organized into a specialization hierarchy. Unfortunately, after exploring this option with WordNet [WN], we realized that relatively few attributes can be used as relations.

To permit the classification of relation classes (i.e. rdf:Property instances) via subClassOf relations (SubPropertyOf relations in RDF terminology), we introduced the category relation and specialized it with several subcategories: relationFromProperty, relationFromClass, relationFromCollection, relationFromDescription, relationFromSituation, relationFromTimeMeasure, relationFromSpatialEntity, etc. These general relations should ease the retrieval/specialization of the adequate class of relations by people and be useful to them whem building general queries (especially relation). Note: we assume that if a relation class r1 specializes a relation class r2, the domain and range of r1 are equal or specializations of the domain and range of r2.


subClassOf hierarchy of the most general classes   (cf. notation explanations; cf. RDF)
ph:Thing (^anything that is not a relation^)                 ~ ph:relation

   ph:Situation (^thing "occuring" in some region of time and space^)
      ph:State (^situation that is not changing and that does not make a change
                 during a given period of time^)             ~ ph:Process 
      ph:Process (^situation that makes a change during some period of time^)
         ph:Event (^process considered instantaneous from some viewpoint^)
      ph:Phenomenon (^situation known through the senses rather than 
                       by intuition or reasoning^)
     %ph:SituationPlayingSomeRole (^e.g. a causal situation^)

   ph:Entity (^thing that can be "involved" in a situation^) ~ ph:Situation
      ph:SpatialEntity (^space region or thing occupying a space region^)
         ph:Space (^a point or extent in space^)
         ph:PhysicalEntity (^spatial entity made of matter^)
            ph:EntityThatCanBeAlive (^e.g. animal, cell^)
              %ph:LivingEntity (^entity that can and is alive^) ~ ph:DeadEntity
            ph:EntityThatCannotBeAlive (^e.g. bottle^)  ~ ph:EntityThatCanBeAlive
            ph:DeadEntity
      ph:NonspatialEntity (^e.g. knowledge, measure^)     ~ ph:SpatialEntity
         ph:PsychologicalEntity (^feature/product of mental activity^)
         ph:InformationEntity (^content/element of a description^)
            ph:Description (^description of a situation^)
            ph:DescriptionContainer (^e.g. file, image (but not disk or paper)^)
            ph:AttributeOrMeasure (^e.g. 1 kg, [2-3] hz, blue; measure units^)
        %ph:Collection
      ph:UndivisibleEntity (^from some viewpoints^)  = kif:Individual-Thing 
      ph:DivisibleEntity                                  ~ ph:UndivisibleEntity
         ph:DivisibleEntityWithoutDiscreteParts           ~ ph:CompositeEntity
         ph:CompositeEntity (^divisible entity with discrete parts^)
           %ph:Collection (^to gather separate things^)
               rdfs:Container
               rdfs:Class (^all classes are instance of rdfs:Class^)
               rdf:Property (^all relation classes are instance of rdf:Property^)
                 %rdfs:ConstraintProperty
                  rdfs:ContainerMembershipProperty
                  ph:ConstrainedRelationClass
               rdfs:ConstraintResource
                 %rdfs:ConstraintProperty
     %ph:EntityPlayingSomeRole (^e.g. a causal entity, an agent, an owner^)

   ph:ThingPlayingSomeRole (^to classify things according to roles/viewpoints^)
      ph:CausalThing
      ph:ImaginaryThing (^e.g. imaginary situation, fictional character^)
      ph:ThingNeededForSomeProcess (^e.g. something needed for an application^)
     %ph:SituationPlayingSomeRole (^e.g. causal situation^)
     %ph:EntityPlayingSomeRole (^e.g. agent, owner^)

ph:relation (^superclass of relation classes;  instance of rdf:Property^)


subClassOf hierarchy of top-level relation classes   (cf. notation explanations; cf. RDF)
ph:relation (^superclass of relations classes;  instance of rdf:Property^)
   ph:relationFromProperty (rdf:Property,rdfs:Resource)
      rdfs:range (rdf:Property,rdfs:Class)
      rdfs:domain (rdf:Property,rdfs:Class)
      rdfs:subPropertyOf (rdf:Property,rdf:Property)
      ph:inverse (rdf:Property,rdf:Property)  = kif:inverse
   ph:relationFromClass (rdfs:Class,rdfs:Resource)
      rdfs:subClassOf (rdfs:Class,rdfs:Class)
      ph:exclusiveClass (rdfs:Class,rdfs:Class)
   rdfs:comment (rdfs:Resource,rdfs:Literal)  = kif:documentation
   rdfs:isDefinedBy (rdfs:Resource,rdfs:Resource)
      ph:definition (rdfs:Resource,ph:Description)
   rdfs:label (rdfs:Resource,rdfs:Literal)
   rdfs:seeAlso (rdfs:Resource,rdfs:Resource)
   ph:different (rdfs:Resource,rdfs:Resource)
   ph:relationFromCollection (ph:Collection,rdfs:Resource)
   ph:relationToCollection (rdfs:Resource,ph:Collection)
   ph:relationFromDescription (ph:Description,rdfs:Resource)
   ph:relationFromSituation (ph:Situation,rdfs:Resource)
   ph:relationFromTimeMeasure (ph:TimeMeasure,rdfs:Resource)
   ph:relationFromSpatialEntity (ph:SpatialEntity,rdfs:Resource)
   ph:attributiveRelation (rdfs:Resource,rdfs:Resource)
   ph:orderingRelation (rdfs:Resource,rdfs:Resource) (^e.g. rdf:type,
                                   rdfs:subClassOf, ph:part, ph:equal^)


instanceOf hierarchy of some very general classes   (cf. notation explanations; cf. RDF)
rdfs:Class (^all classes are instance of that object^)
   rdfs:Resource
   rdfs:Literal
   ph:Thing (^everything that can be in a class^)
   ph:Collection (^bounded; can hold / be member of a collection^)
   ph:IndividualThing (^not a bounded collection^)
   ph:Situation (^thing that "occurs" in a region of time and space^)
   ph:Entity (^thing that can be "involved" in a situation^)
   ph:RelationClass (^tuples representing some relationship^)
   rdfs:ConstraintResource
   rdfs:ContainerMembershipProperty
   rdfs:ConstraintProperty
      rdfs:range (rdfs:Class,rdf:Property)
      rdfs:domain (rdfs:Class,rdf:Property)
   ph:ConstrainedRelationClass
   rdf:Property (^all binary relation classes are instance of that object^)
      ph:relation (^superclass of relation classes;  instance of rdf:Property^)


subClassOf hierarchy of information entity classes   (cf. notation explanations; cf. RDF)
ph:InformationEntity (^content/element of a description^)
   ph:Description (^description of a situation^)
      ph:DescriptionContent (^e.g. a narration, an hypothesis^)
      ph:DescriptionMedium (^e.g. a syntax, a language, a script^)
         ph:AbstractDataType (^atomic or structured^)
            ph:AtomicADT
               ph:Boolean (^two instances: True and False^)
            ph:StructuredADT
               ph:RDF (^the RDF model^)
               rdf:Statement (^triple {predicate,subject,object}^)
   ph:DescriptionContainer (^e.g. file, image (but not disk or paper)^)
      ph:DocumentElement (^a part of a document^)
         ph:Document (^the entire content of a document^)
   ph:AttributeOrMeasure (^e.g. 1 kg, [2-3] hz, blue; measure units^)
      ph:TimeMeasure (^measure of points or intervals in time^)
      ph:SpatialAttributeAttributeOrMeasure (^e.g. length measure in meters^)
      ph:PhysicalAttributeAttributeOrMeasure (^e.g. mass/length/color measure^)
      ph:PsychologicalAttributeAttributeOrMeasure (^e.g. memory measure^)
      ph:ProcessAttributeAttributeOrMeasure (^e.g. a speed measure in km/h^)
      ph:ModalityMeasure (^e.g. "Never" might be declared as an instance^)





1.2. Insertion of WordNet Top-Level Classes

WordNet is a lexical database relating words (nouns, adjectives, verbs, adverbs) to categories (word meanings) and organizing these categories by various relations, e.g. specialization, exclusion, part, member, subtance. Each word may be related to various categories (one for each of its registered meanings) and conversely. We have inserted the WordNet top-level categories for the meanings of nouns into our top-level ontology. This gives about 66,000 specializations to our top-level classes. Conversely, our top-level ontology adds structuration and constraints to WordNet (e.g. exclusion relations between living entities and inanimate objects). This permits automating checks on statements using these categories or on further specializations. This may also help people to quickly find the meaning of a category in WordNet (this meaning may not be obvious just by looking at the name(s) of the category). We have built a tool for searching or comparing categories in WordNet and our top-level ontology. It is accessible at http://www-sop.inria.fr/acacia/personnel/phmartin/RDF/tsearch.html.

The next table shows how the top-level categories for nouns were inserted in our top-level ontology. Each WordNet category is referred via its unique identifier followed by its names (each prefixed by "__") and the WordNet name space prefix "wn" is left implicit. However, in the RDF code, the names are stored via label properties.
Seven out of the nine WordNet top-level categories for nouns were inserted: wn16185__state, #wn17487__act, #wn17297__event, #wn20461__phenomenon, #wn12865__psychological_feature, #wn17954__group and #wn18376__possession. The other two (wn13018__abstraction and wn1740__entity) were not inserted but their twenty direct subclasses were inserted at various places in our ontology.



subClassOf relations to WordNet classes   (cf. notation explanations)
ph:Situation
   wn17297__event (^something that happens at a given place and time^)
   ph:State
      wn16185__state (^the way something is with respect to its main attributes^)
   ph:Process
      wn17487__act__human_action__human_activity
   ph:Phenomenon (^situation known through the senses rather than by reasoning^)
      wn20461__phenomenon (^state or process known through the senses^)

ph:Entity (^thing that can be "involved" in a situation^)
   ph:Spatial_entity (^space region or thing occupying a space region^)
      ph:Space (^point or extent in space^)
         wn15975__space (^the unlimited 3-dimensional expanse^)
      ph:Physical_entity (^spatial entity made of matter^)
         ph:Entity_that_can_be_alive (^e.g. an animal, a cell^)
            wn2086__life_form__organism__being__living_thing
            wn3095__cell (^the basic structural unit of all organisms^)
         ph:Entity_that_cannot_be_alive (^e.g. a bottle^)
            wn9457__object__physical_object (^a physical entity^)
   ph:Nonspatial_entity (^e.g. knowledge, motivation, language, measure^)
      ph:Psychological_entity (^feature/product of mental activity^)
         wn12865__psychological_feature (^a feature of the mental life^)
      ph:InformationEntity (^content/element of a description^)
         ph:Attribute_or_measure
            wn20056__measure__quantity__amount__quantum
            wn18604__attribute (^an abstraction belonging to an entity^)
            ph:Time_measure
               wn15594__time (^the continuum of experience^)
      ph:Composite_entity (^divisible entity with discrete parts^)
         wn3614902__whole__whole_thing__unit (^assemblage regarded as a unit^)
         ph:Collection (^something gathering separated things^)
            wn17954__group__grouping (^entities considered as a unit^)
            wn5992373__set (^an abstract collection of numbers or symbols^)
   ph:EntityPlayingSomeRole (^e.g. a causal entity, an agent, an owner^)
      ph:Entity_part
         wn6684175__part__piece (^a portion of a natural object^)
         wn6683928__unit__building_block (^a single undivided natural entity^)
      wn18376__possession  (^anything owned or possessed^)
      wn3435902__subject__content__depicted_object (^picture subject^)
      wn3731__causal_agent__cause__causal_agency 
      wn6331805__imaginary_place (^a place said to exist in fictional writings^)
      wn6847350__variable (^something that is likely to vary^)
      wn6846327__necessity__essential__requirement__requisite__necessary
      wn6847052__inessential__nonessential (^anything that is not essential^)
      wn3495843__thing (^an entity that is not named specifically^)
      wn6847525__anticipation (^some entity anticipating a later one^)

ph:Thing_playing_some_role
  wn18916__relation (^an abstraction belonging to two entities^)





1.3. Container Classes

We introduce some additional classes of containers that are often needed for knowledge representation (e.g. Set which is currently not in [RDFMS] "because the RDF core does not mandate an enforcement mechanism in the event of violations of such constraints").

subClassOf hierarchy of container classes   (cf. notation explanations; cf. RDF)
rdfs:Container
   rdf:Bag (^duplicate elements are allowed^)  ~ ph:Set
   rdf:Seq (^ordered container^)
   rdf:Alt (^are the alternatives exclusive or inclusive?^)
      ph:OrBag  (^bag of OR-ed elements^)
      ph:XorBag (^bag of exclusive elements^)
   ph:Set (^duplicate elements are not allowed^)
      ph:OrSet  (^set of OR-ed elements^)
      ph:XorSet (^set of exclusive elements^)
   ph:NumberContainer (^number collection^)




1.4. Constrained Relations Classes

Here are represented some mathematical characteristics that relations may have. We have used classes because this is the way it is done in the Frame Ontology of Ontolingua [FrameOntol]. Hence, a property that has one of the listed characteristics must be declared as instance of the relevant class. Alternatively, a property ConstrainedRelation could have been declared as a specialization of relation and further specialized. This is the option we adopted for our ordering relations (Section 1.10).

subClassOf hierarchy for ph:ConstrainedRelation   (cf. notation explanations; cf. RDF)
ph:ConstrainedRelationClass
   ph:AntisymmetricRelationClass = kif:Antisymmetric-Relation
     %ph:AsymmetricRelationClass = kif:Asymmetric-Relation
     %ph:PartialOrderRelationClass = kif:Partial-Order-Relation
         ph:TotalOrderRelationClass = kif:Total-Order-Relation
   ph:IrreflexiveRelationClass = kif:Irreflexive-Relation
     %ph:AsymmetricRelationClass = kif:Asymmetric-Relation
   ph:ReflexiveRelationClass = kif:Reflexive-Relation
     %ph:EquivalenceRelationClass = kif:Equivalence-Relation
     %ph:PartialOrderRelationClass = kif:Partial-Order-Relation
   ph:SymmetricRelationClass = kif:Symmetric-Relation
     %ph:EquivalenceRelationClass = kif:Equivalence-Relation
   ph:TransitiveRelationClass = kif:Transitive-Relation
     %ph:EquivalenceRelationClass = kif:Equivalence-Relation
     %ph:PartialOrderRelationClass = kif:Partial-Order-Relation
   ph:WeakTransitiveRelationClass = kif:Weak-Transitive-Relation
   ph:ManyToManyRelationClass = kif:Many-To-Many-Relation
   ph:ManyToOneRelationClass = kif:Many-To-One-Relation
   ph:OneToManyRelationClass = kif:One-To-Many-Relation



1.5. Relations From/To Collections

Below, we declare some common relations from or to collections. Some of them should have numbers for ranges but we use rdfs:Literal in their signatures for lack of better data types. Subclasses of rdfs:Literal are not recognized by current parsers. The relations minimalSize and maximalSize have a lot of applications. As an illustration, consider the representation in RDF/XML of the sentence "Tom is the creator of 10 to 20 documents, including http://www.foo.org/bar".

<!-- Tom is the creator of 10 to 20 documents, including http://www.foo.org/bar --> <ph:Set rdf:ID="s"><rdf:li rdf:resource="http://www.foo.org/bar"/></ph:Set> <rdf:Description rdf:about="#s"><ph:minimalSize>10</ph:minimalSize> <ph:maximalSize>20</ph:maximalSize> </rdf:Description> <rdf:Description rdf:aboutEach="#s"> <rdf:type rdf:resource="#Document"/> <dc:creator><ph:Person rdf:ID="Tom"/></<dc:creator> </rdf:Description>


subClassOf hierarchy of relations from/to collections   (cf. notation explanations; cf. RDF)
ph:relationFromCollection (ph:Collection,rdfs:Resource)
   ph:member (ph:Collection,rdfs:Resource)
   ph:size (ph:Collection,rdfs:Literal) (^number of elements^)
   ph:minimalSize (ph:Collection,rdfs:Literal)
   ph:maximalSize (ph:Collection,rdfs:Literal)
   ph:percentage (ph:Collection,rdfs:Literal)
   ph:average (ph:NumberContainer,rdfs:Literal) (^an average on the values^)
   ph:subCollection (ph:Collection,ph:Collection)
   ph:overlappingCollection (ph:Collection,ph:Collection)
   ph:notOverlappingCollection (ph:Collection,ph:Collection)
      ph:collectionComplement (ph:Collection,ph:Collection)

ph:relationToCollection (rdfs:Resource,ph:Collection)
   ph:parts (rdfs:Resource,ph:Collection)
   ph:instances (rdfs:Class,ph:Collection)
   ph:subclasses (rdfs:Class,ph:Collection)




1.6. Relations From Descriptions (e.g. Logic Relations)

The concept of description (i.e. statement or "Proposition" in logic) is important since it permits to combine representations or specify when, how and by whom they have been made.

To specify such details about descriptions, we propose the relations authoring, authoringTime, descriptionObject (for stating the object of the description), descriptionSupport (for stating the kind of "document" used), descriptionInstrument (for stating the kind of language or model used). These relations are similar to some of the Dublin Core except they have restricted signatures, which is important for automatic checking/merging/classification.

When relating or combining descriptions, we propose logic relations and argumentation relations. (No particular rhethorical relation is provided because rhethorical relations are too general: the use of the other relations of this ontology lead to more precise representations). Apart from and, logic relations are "contextualizing", i.e. they specify a restricted context in which the descriptions they connect are true. Other contextualizing relations are modality and believer. It is important for an RDF engine to know whether relations on descriptions are contextualizing or not, because contextualized descriptions cannot be used for inference unless the engine knows the semantics of the contextualizing relation(s).
The logical relations or and xor are represented as contextualizing relations. However, we do not think these two relations will be used by the RDF users because the RDF/XML syntax makes it more natural to use rdf:Alt containers (or for more precision, XorBag/OrBag containers) to represent exclusive/inclusive OR links between descriptions.

To express negation, we have introduced the relation truth and declared two instances of the class Boolean: True and False. Tim Berners-Lee also proposes such a relation but also a unary relation not. However, it's use does not seem permitted by the current syntax of RDF/XML.


subClassOf hierarchy of relations from descriptions   (cf. notation explanations; cf. RDF)
ph:relationFromDescription (ph:Description,rdfs:Resource)
   ph:and (ph:Description,ph:Description)
   ph:contextualizingRelation (ph:Description,rdfs:Resource)
      ph:contextualizingLogicalRelation (ph:Description,rdfs:Resource)
         ph:truth (ph:Description,ph:Boolean)
         ph:or (ph:Description,ph:Description)
         ph:xor (ph:Description,ph:Description)
         ph:implication (ph:Description,ph:Description)
            ph:equivalence (ph:Description,ph:Description)
      ph:modality (ph:Description,ph:ModalityMeasure)
      ph:believer (ph:Description,ph:CausalEntity)
   ph:author (ph:Description,ph:CausalEntity)
   ph:authoringTime (ph:Description,ph:TimeMeasure)
   ph:descriptionObject (ph:Description,rdfs:Resource)
   ph:descriptionInstrument (ph:Description,ph:DescriptionMedium)
   ph:descriptionSupport (ph:Description,ph:DescriptionContainer)
   ph:rhetoricalRelation (ph:Description,ph:Description)
   ph:argumentationRelation (ph:Description,ph:Description)
      ph:answer (ph:Description,ph:Description)
      ph:contribution (ph:Description,ph:Description)
      ph:replacement (ph:Description,ph:Description)
      ph:confirmation (ph:Description,ph:Description)
      ph:reference (ph:Description,ph:Description)
      ph:argument (ph:Description,ph:Description)
         ph:weakArgument (ph:Description,ph:Description)
         ph:strongArgument (ph:Description,ph:Description)
            ph:proof (ph:Description,ph:Description)
      ph:contradiction (ph:Description,ph:Description)


Below is an example of the use for the proposed relations. According to [RDFMS], reified RDF statements are instances of rdf:Statement. Since we declared this class as a subclass of ph:Description, this example should not violate relation signatures.

<!-- Tom believes that Mary is the author of htpp://www.w3c.org/foo.htm even though he also believes she is not member of the W3C. --> <ph:Document rdf:bagID="d1" rdf:about="htpp://www.w3c.org/foo.htm"> <ph:author rdf:resource="#Mary"/> </ph:Document> <ph:Organization rdf:bagID="d2" rdf:ID="W3C"> <ph:member rdf:resource="#Mary"/> </ph:Organization> <rdf:Description rdf:bagID="dd2" rdf:aboutEach="#d2"> <ph:truth rdf:resource="#False"/> </rdf:Description> <rdf:Description rdf:bagID="dd1" rdf:aboutEach="#d1"> <ph:believer rdf:resource="#Tom"/> </rdf:Description> <rdf:Description rdf:bagID="ddd2" rdf:aboutEach="#dd2"> <ph:believer rdf:resource="#Tom"/> </rdf:Description> <rdf:Description rdf:aboutEach="#dd1"><ph:contradiction rdf:resource="#ddd2"/> </rdf:Description>


1.7. Relations From Situations (e.g. Thematic Relations)

Below are some relations from situations to temporal entities, to other situations, or more specifically, from processes (thematic/case relations are in this last category). But first, here is an example of their use.

<!-- On the 15/3/2000, Tom talked to Mary to sell her his merchandise. --> <ph:Merchandise rdf:ID="m"/> <!-- Situation (state) 1: Tom owns #m --> <rdf:Description rdf:bagID="d1" rdf:about="#m"> <ph:owner rdf:resource="#Tom"/> </rdf:Description> <rdf:Description rdf:aboutEach="#d1"> <ph:DescriptionObject><ph:State rdf:ID="s1"/></ph:DescriptionObject> </rdf:Description> <ph:Talk rdf:ID="s2"> <!-- Situation (process) 2: Tom talks to Mary --> <ph:agent rdf:resource="#Tom"/> <ph:recipient rdf:resource="#Mary"/> </ph:Talk> <ph:Sell rdf:ID="s3"> <!-- Situation (process) 3: Tom sells #m to Mary --> <ph:agent rdf:resource="#Tom"/> <ph:object rdf:resource="#m"> <ph:recipient rdf:resource="#Mary"/> </ph:Sell> <rdf:Description rdf:bagID="d4" rdf:about="#m"> <ph:owner rdf:resource="#Mary"/> </rdf:Description> <rdf:Description rdf:aboutEach="#d4"> <ph:DescriptionObject><ph:State rdf:ID="s4"/></ph:DescriptionObject> </rdf:Description> <!-- Situation (state) 4: Mary owns #m --> <ph:State rdf:about="#s1"><ph:laterSituation rdf:resource="#s2"/></ph:State> <ph:Process rdf:about="#s2"> <ph:laterSituation rdf:resource="#s4"/> <ph:purpose rdf:resource="#s3"/> <ph:time><ph:TimeMeasure rdf:ID="Day-15-3-2000"/></ph:time> </ph:Process>



subClassOf hierarchy of relations from situations   (cf. notation explanations; cf. RDF)
ph:relationFromSituation (ph:Situation,rdfs:Resource)

   ph:relationFromSituationToTimeMeasure (ph:Situation,ph:TimeMeasure)
      ph:time       (ph:Situation,ph:TimeMeasure)
      ph:duration   (ph:Situation,ph:TimeMeasure)
      ph:sinceTime  (ph:Situation,ph:TimeMeasure)
      ph:untilTime  (ph:Situation,ph:TimeMeasure)

   ph:relationFromSituationToSituation (ph:Situation,ph:Situation)
      ph:laterSituation    (ph:Situation,ph:Situation)
         ph:nextSituation  (ph:Situation,ph:Situation)
            ph:termination (ph:Situation,ph:Situation)
         ph:consequence    (ph:Situation,ph:Situation)

   ph:relationFromProcess  (ph:Process,rdfs:Resource)
      ph:purpose           (ph:Process,ph:Situation)
      ph:triggeringEvent   (ph:Process,ph:Event)
      ph:endingEvent       (ph:Process,ph:Event)
      ph:precondition      (ph:Process,ph:State)
      ph:postcondition     (ph:Process,ph:State)
      ph:agent             (ph:Process,ph:Entity)
      ph:initiator         (ph:Process,ph:CausalEntity)
      ph:experiencer       (ph:Process,ph:CausalEntity)
      ph:instrument        (ph:Process,ph:Entity)
      ph:object            (ph:Process,rdfs:Resource)
         ph:input          (ph:Process,rdfs:Resource)
            ph:material    (ph:Process,rdfs:Resource)
            ph:parameter   (ph:Process,rdfs:Resource)
         ph:inputOutput    (ph:Process,rdfs:Resource)
            ph:objectToModify (ph:Process,rdfs:Resource) 
            ph:objectToMute   (ph:Process,rdfs:Resource)
            ph:objectToDestroy(ph:Process,rdfs:Resource)
      ph:result            (ph:Process,rdfs:Resource)
         ph:output         (ph:Process,rdfs:Resource)
      ph:recipient         (ph:Process,ph:CausalEntity)
      ph:subProcess        (ph:Process,ph:Process)
      ph:method            (ph:Process,ph:Description)
      ph:source            (ph:Process,ph:SpatialEntity)
      ph:destination       (ph:Process,ph:spatialEntity)
      ph:path              (ph:Process,ph:SpatialEntity)
      ph:processAttribute  (ph:Process,ph:ProcessAttributeAttributeOrMeasure)
         ph:speed          (ph:Process,ph:SpeedMeasure)
         ph:manner         (ph:Process,ph:ProcessAttributeAttributeOrMeasure)




1.8. Relations From Spatial/Temporal Entities

Though we propose some particular spatial/temporal relations, the relations relationFromTimeMeasure and relationFromSpatialEntity are essentially provided for classification purposes. Conforming to our convention, we do not give inverse relations (e.g. after beforeTime, we do not declare afterTime).


subClassOf hierarchy of relations from spatial/temporal entities
(cf. notation explanations; cf. RDF)
ph:relationFromTimeMeasure (ph:TimeMeasure,rdfs:Resource)
   ph:nearTime   (ph:TimeMeasure,ph:TimeMeasure)
   ph:beforeTime (ph:TimeMeasure,ph:TimeMeasure) (^TotalOrderRelation instance^)

ph:relationFromSpatialEntity (ph:SpatialEntity,rdfs:Resource)
   ph:onLocation      (ph:SpatialEntity,ph:SpatialEntity)
   ph:aboveLocation   (ph:SpatialEntity,ph:SpatialEntity)
   ph:inLocation      (ph:SpatialEntity,ph:SpatialEntity)
   ph:nearLocation    (ph:SpatialEntity,ph:SpatialEntity)
   ph:interiorLocation(ph:SpatialEntity,ph:SpatialEntity)
   ph:exteriorLocation(ph:SpatialEntity,ph:SpatialEntity)
   ph:beforeLocation  (ph:SpatialEntity,ph:SpatialEntity)




1.9. Attributive Relations

Here a few relations that can be seen as "attributive". Like relation, the relation attribute can be convenient to use in queries. More precise results are returned if spatialAttribute, physicalAttribute, processAttribute are used. Examples of spatial relations/attributes: length, area, volume, form. Examples of measure: 2 feet, 8.5 square meters, round.


subClassOf hierarchy of attributive relations   (cf. notation explanations; cf. RDF)
ph:attributiveRelation (rdfs:Resource,rdfs:Resource)

   ph:attribute (rdfs:Resource,ph:AttributeOrMeasure)
      ph:spatialAttribute  (ph:SpatialEntity,ph:SpatialAttributeOrMeasure)
      ph:physicalAttribute (ph:PhysicalEntity,ph:PhysicalAttributeOrMeasure)
      ph:processAttribute  (ph:Process,ph:ProcessAttributeOrMeasure)

   ph:owner (rdfs:Resource,ph:CausalEntity)

   ph:generator (rdfs:Resource,ph:CausalEntity)
      ph:parent (rdfs:Resource,ph:CausalEntity)




1.10. Ordering Relations

Here, we give some relations with quite general and fuzzy meaning (the subclasses of part excepted). These relations are provided for classification purposes or queries. They should not be used directly in representations but specialized first.


subClassOf hierarchy of partOf relations   (cf. notation explanations; cf. RDF)
ph:orderingRelation (rdfs:Resource,rdfs:Resource)

   ph:partialOrderRelation (rdfs:Resource,rdfs:Resource) 
                           (^instance of PartialOrderRelationClass^)
      ph:totalOrderRelation (rdfs:Resource,rdfs:Resource) 
      ph:inferior (rdfs:Resource,rdfs:Resource) (^general class to specialize^)
      ph:inferiorOrEqual (rdfs:Resource,rdfs:Resource)
      ph:generalization (rdfs:Resource,rdfs:Resource)
         rdfs:subClassOf (rdfs:Class,rdfs:Class)
         rdf:type (rdfs:Resource,rdfs:Class)
      ph:part (rdfs:Resource,rdfs:Resource)
         ph:physicalPart (ph:PhysicalEntity, ph:PhysicalEntity)
         ph:subCollection (ph:Collection,ph:Collection)
         ph:subSituation (ph:Situation,ph:Situation)
            ph:subProcess (ph:Situation,ph:Situation)
         ph:mainPart (rdfs:Resource,rdfs:Resource)
         ph:firstPart (rdfs:Resource,rdfs:Resource)
         ph:lastPart (rdfs:Resource,rdfs:Resource)

   ph:equivalenceRelation (rdfs:Resource,rdfs:Resource)
                           (^instance of EquivalenceRelationClass^)
      ph:equal (rdfs:Resource,rdfs:Resource) (^"=" in KIF^)








2. Representation of the Ontology With an RDF Schema


Namespaces used in the schema

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 xmlns:ph="http://www-sop.inria.fr/acacia/personnel/phmartin/RDF/phOntology.rdfs">


2.1. General Classes


General Classes

<rdfs:Class rdf:ID="Thing">
 <rdfs:comment>Anything that is not a relation</rdfs:comment>
 <pm:exclusiveClass rdf:resource="#relation"/>
 <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdfs:Class>

  <rdfs:Class rdf:ID="ThingPlayingSomeRole">
   <rdfs:comment>Category to classify things according to roles/viewpoints;
    classification under this category is application-dependant</rdfs:comment>
   <rdfs:subClassOf rdf:resource="#Thing"/> </rdfs:Class>
 
    <rdfs:Class rdf:ID="CausalThing">
     <rdfs:subClassOf rdf:resource="#ThingPlayingSomeRole"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="ImaginaryThing">
     <rdfs:subClassOf rdf:resource="#ThingPlayingSomeRole"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="Mediation">
     <rdfs:comment>Peirce/Sowa's notion of "thirdness"</rdfs:comment>
     <rdfs:subClassOf rdf:resource="#ThingPlayingSomeRole"/>  </rdfs:Class>
 
    <rdfs:Class rdf:ID="ThingNeededForSomeProcess">
     <rdfs:comment>e.g. something needed for an application</rdfs:comment>
     <rdfs:subClassOf rdf:resource="#ThingPlayingSomeRole"/>  </rdfs:Class>
 
      <rdfs:Class rdf:ID="ThingNeededForKnowledgeEngineering">
       <rdfs:subClassOf rdf:resource="#ThingNeededForSomeProcess"/>
      </rdfs:Class>
 
        <rdfs:Class rdf:ID="ThingNeededForKADSknowledgeEngineering">
         <rdfs:subClassOf rdf:resource="#ThingNeededForKnowledgeEngineering"/>
        </rdfs:Class>
 
<rdf:Property rdf:ID="relation">
 <rdfs:comment>Superclass of relations; instance of rdf#Property</rdfs:comment>
 <pm:exclusiveClass rdf:resource="#Thing"/>
 <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Property>







Some classes of relations (i.e. some instances of rdf:Property)

<rdf:Property rdf:ID="relationFromProperty">
 <rdfs:domain
       rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#range">
   <rdfs:subPropertyOf rdf:resource="#relationFromProperty"/>  </rdf:Property>
  <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#domain">
   <rdfs:subPropertyOf rdf:resource="#relationFromProperty"/>  </rdf:Property>
  <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#subPropertyOf">
   <rdfs:subPropertyOf rdf:resource="#relationFromProperty"/>  </rdf:Property>

  <rdf:Property ID="inverse"> <!-- to specify inverse relation -->
   <rdfs:domain 
        rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
   <rdfs:range 
        rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProperty"/>  </rdf:Property>

<rdf:Property rdf:ID="relationFromClass">
 <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#subClassOf">
   <rdfs:range rdf:resource="http://www.w3.org/T2000/01/rdf-schema#Class"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromClass"/>  </rdf:Property>

  <rdf:Property ID="exclusiveClass">
   <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
   <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromClass"/>  </rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#comment">
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#isDefinedBy">
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property ID="definition">
   <rdfs:subPropertyOf
          rdf:resource="http://www.w3.org/2000/01/rdf-schema#isDefinedBy"/>
   <rdfs:range rdf:resource="#Description"/> </rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#label">
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>
<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#seeAlso">
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>
<rdf:Property ID="different">
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>


General classes of entities and situations

<rdfs:Class rdf:ID="Situation">
 <rdfs:comment>Thing that "occurs" in a region of time and space</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#Thing"/>
 <ph:exclusiveClass rdf:resource="#Entity"/>  </rdfs:Class>
  
  <rdfs:Class rdf:ID="State">
   <rdfs:comment>Situation that is not changing and that does not make 
                 a change during a given period of time</rdfs:comment>
   <rdfs:subClassOf rdf:resource="#Situation"/>
   <ph:exclusiveClass rdf:resource="#Process"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="Process">
   <rdfs:comment>Situation that makes a change during some period of time
   </rdfs:comment>  <rdfs:subClassOf rdf:resource="#Situation"/>
   <ph:exclusiveClass rdf:resource="#State"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="Event">
     <rdfs:comment>Process considered instantaneous from some viewpoint
     </rdfs:comment>  <rdfs:subClassOf rdf:resource="#Process"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="Phenomenon">
   <rdfs:comment>Situation known through the senses rather than by reasoning
   </rdfs:comment>  <rdfs:subClassOf rdf:resource="#Situation"/>  </rdfs:Class>

   <rdfs:Class rdf:ID="SituationPlayingSomeRole">
     <rdfs:subClassOf rdf:resource="#Situation"/>  </rdfs:Class>

<rdfs:Class rdf:ID="Entity">
 <rdfs:comment>Something that can be "involved" in a situation</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#Thing"/>
 <ph:exclusiveClass rdf:resource="#Situation"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="NonspatialEntity">
   <rdfs:comment>E.g. knowledge, motivation, language, measure</rdfs:comment>
   <rdfs:subClassOf rdf:resource="#Entity"/>
   <ph:exclusiveClass rdf:resource="#SpatialEntity"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="PsychologicalEntity">
     <rdfs:comment>Feature/product of mental activity</rdfs:comment>
     <rdfs:subClassOf rdf:resource="#NonspatialEntity"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="InformationEntity">
     <rdfs:comment>Content/element of a description</rdfs:comment>
     <rdfs:subClassOf rdf:resource="#NonspatialEntity"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="EntityPlayingSomeRole">
   <rdfs:subClassOf rdf:resource="#Entity"/>  </rdfs:Class>


General classes of divisible and undivisible entities

<rdfs:Class rdf:ID="UndivisibleEntity">
 <rdfs:comment>classification under this category is application-dependant
 </rdfs:comment>
 <rdfs:subClassOf rdf:resource="#Entity"/>
 <pm:exclusiveClass rdf:resource="#DivisibleEntity"/>  </rdfs:Class>

<rdfs:Class rdf:ID="DivisibleEntity">
  <rdfs:subClassOf rdf:resource="#Entity"/>
  <pm:exclusiveClass rdf:resource="#UndivisibleEntity"/>  </rdfs:Class>

   <rdfs:Class rdf:ID="DivisibleEntityWithoutDiscreteParts">
    <rdfs:subClassOf rdf:resource="#DivisibleEntity"/>
    <pm:exclusiveClass rdf:resource="#CompositeEntity"/>  </rdfs:Class>

   <rdfs:Class rdf:ID="CompositeEntity">
    <rdfs:comment>Divisible entity with discrete parts</rdfs:comment>
    <pm:exclusiveClass rdf:resource="#DivisibleEntityWithoutDiscreteParts"/>
    <rdfs:subClassOf rdf:resource="#DivisibleEntity"/>    </rdfs:Class>

     <rdfs:Class rdf:ID="Collection">
      <rdfs:comment>Something gathering separated things (entities/situations)
      </rdfs:comment>
      <rdfs:subClassOf rdf:resource="#NonspatialEntity"/>
      <rdfs:subClassOf rdf:resource="#CompositeEntity"/> </rdfs:Class>

       <rdfs:Class
          rdf:about="http://www.w3.org/2000/01/rdf-schema#Class">
         <rdfs:comment>All classes are instance of that object</rdfs:comment>
         <rdfs:subClassOf rdf:resource="#Collection"/>
       </rdfs:Class>

       <rdfs:Class
          rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property">
        <rdfs:comment>All binary relation classes are instance of that object
        </rdfs:comment>
        <rdfs:subClassOf rdf:resource="#Collection"/> </rdfs:Class>

       <rdfs:Class
          rdf:about="http://www.w3.org/2000/01/rdf-schema#ConstraintResource">
        <rdfs:subClassOf rdf:resource="#Collection"/> </rdfs:Class>


General classes of spatial entities

<rdfs:Class rdf:ID="SpatialEntity">
 <rdfs:comment>Space region or thing occupying a space region</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#Entity"/>
 <ph:exclusiveClass rdf:resource="#NonspatialEntity"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="Space">
   <rdfs:comment>A point or extent in space</rdfs:comment>
   <rdfs:subClassOf rdf:resource="#SpatialEntity"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="PhysicalEntity">
   <rdfs:comment>A spatial entity made of matter</rdfs:comment>
   <rdfs:subClassOf rdf:resource="#SpatialEntity"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="EntityThatCanBeAlive">
     <rdfs:subClassOf rdf:resource="#PhysicalEntity"/>  </rdfs:Class>

      <rdfs:Class rdf:ID="LivingEntity">
       <ph:exclusiveClass rdf:resource="#DeadEntity"/>
       <rdfs:subClassOf rdf:resource="#CausalEntity"/>
       <rdfs:subClassOf rdf:resource="#EntityThatCanBeAlive"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="EntityThatCannotBeAlive">
     <rdfs:subClassOf rdf:resource="#PhysicalEntity"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="DeadEntity">
     <ph:exclusiveClass rdf:resource="#LivingEntity"/>
     <rdfs:subClassOf rdf:resource="#PhysicalEntity"/>  </rdfs:Class>


General classes of descriptions and description containers

<rdfs:Class rdf:ID="Description">
 <rdfs:comment>Description of a situation</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#InformationEntity"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="DescriptionContent">
   <rdfs:subClassOf rdf:resource="#Description"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="DescriptionMedium">
   <rdfs:subClassOf rdf:resource="#Description"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="AbstractDataType">
     <rdfs:subClassOf rdf:resource="#DescriptionMedium"/>  </rdfs:Class>

      <rdfs:Class rdf:ID="AtomicADT">
       <rdfs:subClassOf rdf:resource="#AbstractDataType"/>  </rdfs:Class>

        <rdfs:Class rdf:ID="Boolean">
         <rdfs:subClassOf rdf:resource="#AtomicADT"/>  </rdfs:Class>
        
          <ph:Boolean rdf:ID="True"/> <ph:Boolean rdf:ID="False"/>

      <rdfs:Class rdf:ID="StructuredADT">
       <rdfs:subClassOf rdf:resource="#AbstractDataType"/>  </rdfs:Class>

        <rdfs:Class rdf:ID="RDF">
         <rdfs:subClassOf rdf:resource="#StructuredADT"/>  </rdfs:Class>

        <rdfs:Class
               rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement">
         <rdfs:subClassOf rdf:resource="#StructuredADT"/>  </rdfs:Class>

<rdfs:Class rdf:ID="DescriptionContainer">
 <rdfs:subClassOf rdf:resource="#InformationEntity"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="DocumentElement">
   <rdfs:subClassOf rdf:resource="#DescriptionContainer"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="Document">
     <rdfs:subClassOf rdf:resource="#DocumentElement"/>  </rdfs:Class>


General classes of measure

<rdfs:Class rdf:ID="AttributeOrMeasure">
 <rdfs:subClassOf rdf:resource="#InformationEntity"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="TimeMeasure">
   <rdfs:subClassOf rdf:resource="#AttributeOrMeasure"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="SpatialAttributeAttributeOrMeasure">
   <rdfs:subClassOf rdf:resource="#AttributeOrMeasure"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="LengthMeasure">
     <rdfs:subClassOf rdf:resource="#SpatialAttributeAttributeOrMeasure"/>
    </rdfs:Class>
      <rdfs:Class rdf:ID="LengthMeasureInMeter">
       <rdfs:subClassOf rdf:resource="#LengthMeasure"/> </rdfs:Class>
      <rdfs:Class rdf:ID="LengthMeasureInFeet">
       <rdfs:subClassOf rdf:resource="#LengthMeasure"/> </rdfs:Class>

  <rdfs:Class rdf:ID="PhysicalAttributeAttributeOrMeasure">
   <rdfs:subClassOf rdf:resource="#AttributeOrMeasure"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="MassMeasure">
     <rdfs:subClassOf rdf:resource="#PhysicalAttributeAttributeOrMeasure"/>
    </rdfs:Class>
    <rdfs:Class rdf:ID="ColorMeasure">
     <rdfs:subClassOf rdf:resource="#PhysicalAttributeAttributeOrMeasure"/>
    </rdfs:Class>

  <rdfs:Class rdf:ID="PsychologicalAttributeAttributeOrMeasure">
   <rdfs:subClassOf rdf:resource="#AttributeOrMeasure"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="ProcessAttributeAttributeOrMeasure">
   <rdfs:subClassOf rdf:resource="#AttributeOrMeasure"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="SpeedMeasure">
     <rdfs:subClassOf rdf:resource="#ProcessAttributeAttributeOrMeasure"/>
    </rdfs:Class>
      <rdfs:Class rdf:ID="SpeedMeasureInMeterPerSecond">
       <rdfs:subClassOf rdf:resource="#SpeedMeasure"/> </rdfs:Class>

  <rdfs:Class rdf:ID="ModalityMeasure">
   <rdfs:subClassOf rdf:resource="#Measure"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="TemporalModalityMeasure">
     <rdfs:subClassOf rdf:resource="#ModalityMeasure"/> </rdfs:Class>

    <ph:TemporalModalityMeasure rdf:ID="Never"/>
    <ph:TemporalModalityMeasure rdf:ID="Rarely"/>
    <ph:TemporalModalityMeasure rdf:ID="Often"/>
    <ph:TemporalModalityMeasure rdf:ID="Always"/>





2.2. Insertion of WordNet top-level classes

Please refer to the RDF schema of our top-level ontology: http://www-sop.inria.fr/acacia/personnel/phmartin/RDF/phOntology.rdfs.





2.3. Container Classes


Container classes

<rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Container">
   <rdfs:subClassOf rdf:resource="#Collection"/>  </rdfs:Class>

 <rdfs:Class rdf:ID="OrBag">
  <rdfs:comment>Bag of OR-ed elements</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt"/>
 </rdfs:Class>
 <rdfs:Class rdf:ID="XorBag">
  <rdfs:comment>Bag of exclusive elements</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt"/>
 </rdfs:Class>

 <rdfs:Class rdf:ID="Set">
  <rdfs:comment>Container with no duplicate members</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/>
  <ph:exclusiveClass 
      rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag"/></rdfs:Class>

  <rdfs:Class rdf:ID="OrSet"> <rdfs:subClassOf rdf:resource="#Set"/> </rdfs:Class>
  <rdfs:Class rdf:ID="XorSet"><rdfs:subClassOf rdf:resource="#Set"/> </rdfs:Class>

 <rdfs:Class rdf:ID="NumberContainer">
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/>
 </rdfs:Class>





2.4. Constrained Relation Classes


Some constrained relation classes

<rdfs:Class rdf:ID="AntisymmetricRelationClass"> 
 <rdfs:comment>for all x,y, R(x,y) and R(y,x) implies x=y</rdfs:comment>
 <!-- Tentative of definition with Tim Berners-Lee's notations:
 <ph:definition>
   <tim:forall var="R" v2="x" v3="y">
     <tim:if><rdf:type rdf:about="#R">#AntisymmetricRelation</rdf:type>
             <rdf:property tim:pname="#R" rdf:about="#x">#y</rdf:property>
             <rdf:property tim:pname="#R" rdf:about="#y">#x</rdf:property>
             <tim:then><ph:equal rdf:about="#y">#x</rdf:equal></tim:then>
     </tim:if></tim:forall></ph:definition> -->
 <rdfs:subClassOf rdf:resource="#ConstrainedRelationClass"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="AsymmetricRelationClass">
   <rdfs:comment>Antisymmetric and irreflexive</rdfs:comment>
   <rdfs:subClassOf rdf:resource="#AntisymmetricRelationClass"/>
   <rdfs:subClassOf rdf:resource="#IrreflexiveRelationClass"/>  </rdfs:Class>

<rdfs:Class rdf:ID="SymmetricRelationClass"> 
 <rdfs:comment>for all x,y, R(x,y) implies R(y,x)</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#ConstrainedRelationClass"/>  </rdfs:Class>

<rdfs:Class rdf:ID="ReflexiveRelationClass">
 <rdfs:comment>for all x, R(x,x)</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#ConstrainedRelationClass"/>  </rdfs:Class>

<rdfs:Class rdf:ID="IrreflexiveRelationClass"> 
 <rdfs:comment>for all x, not R(x,y)</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#ConstrainedRelationClass"/>  </rdfs:Class>

<rdfs:Class rdf:ID="TransitiveRelationClass">
 <rdfs:comment>for all x,y,z, R(x,y) and R(y,z) implies R(x,z)</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#ConstrainedRelationClass"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="EquivalenceRelationClass">
   <rdfs:comment>Reflexive, symmetric and transitive</rdfs:comment>
   <rdfs:subClassOf rdf:resource="#ReflexiveRelationClass"/>
   <rdfs:subClassOf rdf:resource="#SymmetricRelationClass"/>
   <rdfs:subClassOf rdf:resource="#TransitiveRelationClass"/>  </rdfs:Class>

  <rdfs:Class rdf:ID="PartialOrderRelationClass">
   <rdfs:comment>Reflexive, asymmetric and transitive</rdfs:comment>
   <rdfs:subClassOf rdf:resource="#ReflexiveRelationClass"/>
   <rdfs:subClassOf rdf:resource="#AsymmetricRelationClass"/>
   <rdfs:subClassOf rdf:resource="#TransitiveRelationClass"/>  </rdfs:Class>

    <rdfs:Class rdf:ID="TotalOrderRelationClass"> 
     <rdfs:comment>partial-order and either R(x,y) or R(y,x)</rdfs:comment>
     <rdfs:subClassOf rdf:resource="#PartialOrderRelationClass"/>  </rdfs:Class>

Some other constrained relation classes

<rdfs:Class rdf:ID="WeakTransitiveRelationClass">
 <rdfs:comment>for all x,y,z, R(x,y) and R(y,z) and x!=z implies R(x,z)
 </rdfs:comment>
 <rdfs:subClassOf rdf:resource="#ConstrainedRelationClass"/>  </rdfs:Class>

<rdfs:Class rdf:ID="ManyToOneRelationClass">
 <rdfs:comment>The relation is a binary function</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#ConstrainedRelationClass"/>  </rdfs:Class>

<rdfs:Class rdf:ID="OneToManyRelationClass">
 <rdfs:comment>The inverse of the relation is a binary function</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#ConstrainedRelationClass"/>  </rdfs:Class>

<rdfs:Class rdf:ID="ManyToManyRelationClass">
 <rdfs:comment>The relation and its inverse are not functions</rdfs:comment>
 <rdfs:subClassOf rdf:resource="#ConstrainedRelationClass"/>  </rdfs:Class>





2.5. Relations From/To Collections


Relations from collections

<rdf:Property rdf:ID="relationFromCollection">
 <rdfs:domain rdf:resource="#Collection"/>
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:ID="member">
   <rdfs:domain rdf:resource="#Collection"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromCollection"/>  </rdf:Property>

  <rdf:Property rdf:ID="size">
   <rdfs:domain rdf:resource="#Collection"/>
   <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromCollection"/>  </rdf:Property>

  <rdf:Property rdf:ID="minimalSize">
   <rdfs:domain rdf:resource="#Collection"/>
   <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromCollection"/>  </rdf:Property>

  <rdf:Property rdf:ID="maximalSize">
   <rdfs:domain rdf:resource="#Collection"/>
   <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromCollection"/>  </rdf:Property>

  <rdf:Property rdf:ID="average">
   <rdfs:domain rdf:resource="#NumberContainer"/>
   <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromCollection"/>  </rdf:Property>

  <rdf:Property rdf:ID="subCollection">
   <rdfs:domain rdf:resource="#Collection"/>
   <rdfs:range rdf:resource="#Collection"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromCollection"/>  </rdf:Property>

  <rdf:Property rdf:ID="overlappingCollection">
   <rdfs:domain rdf:resource="#Collection"/>
   <rdfs:range rdf:resource="#Collection"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromCollection"/>  </rdf:Property>

  <rdf:Property rdf:ID="notOverlappingCollection">
   <rdfs:domain rdf:resource="#Collection"/>
   <rdfs:range rdf:resource="#Collection"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromCollection"/>  </rdf:Property>

    <rdf:Property rdf:ID="collectionComplement">
     <rdfs:domain rdf:resource="#Collection"/>
     <rdfs:range rdf:resource="#Collection"/>
     <rdfs:subPropertyOf rdf:resource="#notOverlappingCollection"/></rdf:Property>


Relations to collections

<rdf:Property rdf:ID="relationToCollection">
 <rdfs:range rdf:resource="#Collection"/>
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:ID="parts">
   <rdfs:range rdf:resource="#Collection"/>
   <rdfs:subPropertyOf rdf:resource="#relationToCollection"/>  </rdf:Property>

  <rdf:Property rdf:ID="instances">
   <rdfs:range rdf:resource="#Collection"/>
   <rdfs:subPropertyOf rdf:resource="#relationToCollection"/>  </rdf:Property>

  <rdf:Property rdf:ID="subclasses">
   <rdfs:range rdf:resource="#Collection"/>
   <rdfs:subPropertyOf rdf:resource="#relationToCollection"/>  </rdf:Property>





2.6. Relations From Descriptions (e.g. Logic Relations)


Relations from descriptions

<rdf:Property rdf:ID="relationFromDescription">
 <rdfs:domain rdf:resource="#Description"/>
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:ID="and">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromDescription"/>  </rdf:Property>

  <rdf:Property rdf:ID="author">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#CausalEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromDescription"/>  </rdf:Property>

  <rdf:Property rdf:ID="authoringTime">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#TimeMeasure"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromDescription"/>  </rdf:Property>

  <rdf:Property rdf:ID="descriptionObject">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromDescription"/>  </rdf:Property>

  <rdf:Property rdf:ID="descriptionInstrument">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#DescriptionMedium"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromDescription"/>  </rdf:Property>

  <rdf:Property rdf:ID="descriptionSupport">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#DescriptionContainer"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromDescription"/>  </rdf:Property>

  <rdf:Property rdf:ID="rhetoricalRelation">
   <rdfs:comment>Rhetorical relations are imprecise; should not be used
   </rdfs:comment>
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromDescription"/>  </rdf:Property>

<rdf:Property rdf:ID="argumentationRelation">
 <rdfs:domain rdf:resource="#Description"/>
 <rdfs:range  rdf:resource="#Description"/>
 <rdfs:subPropertyOf rdf:resource="#relationFromDescription"/>  </rdf:Property>


Contextualizing relations

  <rdf:Property rdf:ID="contextualizingRelation">
   <rdfs:comment>The destination is true in the context only</rdfs:comment>
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

    <rdf:Property rdf:ID="truth">
     <rdfs:domain rdf:resource="#Description"/>
     <rdfs:range rdf:resource="#Boolean"/>
     <rdfs:subPropertyOf rdf:resource="#contextualizingRelation"/> </rdf:Property>

    <rdf:Property rdf:ID="or">
     <rdfs:domain rdf:resource="#Description"/>
     <rdfs:range  rdf:resource="#Description"/>
     <rdfs:subPropertyOf rdf:resource="#contextualizingRelation"/> </rdf:Property>

    <rdf:Property rdf:ID="implication">
     <rdfs:comment>When the source is true, the destination is true</rdfs:comment>
     <rdfs:domain rdf:resource="#Description"/>
     <rdfs:range  rdf:resource="#Description"/>
     <rdfs:subPropertyOf rdf:resource="#contextualizingRelation"/> </rdf:Property>

      <rdf:Property rdf:ID="equivalence">
       <rdfs:domain rdf:resource="#Description"/>
       <rdfs:range  rdf:resource="#Description"/>
       <rdfs:subPropertyOf rdf:resource="#contextualizingRelation"/>
      </rdf:Property>

    <rdf:Property rdf:ID="modality">
     <rdfs:domain rdf:resource="#Description"/>
     <rdfs:range  rdf:resource="#ModalityMeasure"/>
     <rdfs:subPropertyOf rdf:resource="#contextualizingRelation"/> </rdf:Property>

    <rdf:Property rdf:ID="believer">
     <rdfs:domain rdf:resource="#Description"/>
     <rdfs:range  rdf:resource="#CausalEntity"/>
     <rdfs:subPropertyOf rdf:resource="#contextualizingRelation"/> </rdf:Property>


Argumentation relations

  <rdf:Property rdf:ID="answer">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/>  </rdf:Property>

  <rdf:Property rdf:ID="contribution">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/>  </rdf:Property>

  <rdf:Property rdf:ID="replacement">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/>  </rdf:Property>

  <rdf:Property rdf:ID="confirmation">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/>  </rdf:Property>

  <rdf:Property rdf:ID="reference">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/>  </rdf:Property>

  <rdf:Property rdf:ID="argument">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/>  </rdf:Property>

    <rdf:Property rdf:ID="weakArgument">
     <rdfs:domain rdf:resource="#Description"/>
     <rdfs:range  rdf:resource="#Description"/>
     <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/>  </rdf:Property>

    <rdf:Property rdf:ID="strongArgument">
     <rdfs:domain rdf:resource="#Description"/>
     <rdfs:range  rdf:resource="#Description"/>
     <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/>  </rdf:Property>

      <rdf:Property rdf:ID="proof">
       <rdfs:domain rdf:resource="#Description"/>
       <rdfs:range  rdf:resource="#Description"/>
       <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/></rdf:Property>

  <rdf:Property rdf:ID="contradiction">
   <rdfs:domain rdf:resource="#Description"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#argumentationRelation"/>  </rdf:Property>





2.7. Relations From Situations (e.g. Thematic Relations)


Relations from situations

<rdf:Property rdf:ID="relationFromSituation">
 <rdfs:domain rdf:resource="#Situation"/>
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:ID="relationFromSituationToTimeMeasure">
   <rdfs:domain rdf:resource="#Situation"/>
   <rdfs:range rdf:resource="#TimeMeasure"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromSituation"/>  </rdf:Property>

    <rdf:Property rdf:ID="time">
     <rdfs:domain rdf:resource="#Situation"/>
     <rdfs:range rdf:resource="#TimeMeasure"/>
     <rdfs:subPropertyOf rdf:resource="#relationFromSituationToTimeMeasure"/>
    </rdf:Property>

    <rdf:Property rdf:ID="duration">
     <rdfs:domain rdf:resource="#Situation"/>
     <rdfs:range rdf:resource="#TimeMeasure"/>
     <rdfs:subPropertyOf rdf:resource="#relationFromSituationToTimeMeasure"/>
    </rdf:Property>

    <rdf:Property rdf:ID="untilTime">
     <rdfs:domain rdf:resource="#Situation"/>
     <rdfs:range rdf:resource="#TimeMeasure"/>
     <rdfs:subPropertyOf rdf:resource="#relationFromSituationToTimeMeasure"/>
    </rdf:Property>

  <rdf:Property rdf:ID="relationFromSituationToSituation">
   <rdfs:domain rdf:resource="#Situation"/>
   <rdfs:range  rdf:resource="#Situation"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromSituation"/>  </rdf:Property>

    <rdf:Property rdf:ID="laterSituation">
     <rdfs:domain rdf:resource="#Situation"/>
     <rdfs:range rdf:resource="#Situation"/>
     <rdfs:subPropertyOf rdf:resource="#relationFromSituationToSituation"/>
    </rdf:Property>

      <rdf:Property rdf:ID="nextSituation">
       <rdfs:domain rdf:resource="#Situation"/>
       <rdfs:range rdf:resource="#Situation"/>
       <rdfs:subPropertyOf rdf:resource="#laterSituation"/>  </rdf:Property>

        <rdf:Property rdf:ID="termination">
         <rdfs:domain rdf:resource="#Situation"/>
         <rdfs:range  rdf:resource="#Situation"/>
         <rdfs:subPropertyOf rdf:resource="#nextSituation"/>  </rdf:Property>

      <rdf:Property rdf:ID="consequence">
       <rdfs:domain rdf:resource="#Situation"/>
       <rdfs:range  rdf:resource="#Situation"/>
       <rdfs:subPropertyOf rdf:resource="#laterSituation"/>  </rdf:Property>


Some relations from processes

<rdf:Property rdf:ID="relationFromProcess">
 <rdfs:domain rdf:resource="#Process"/>
 <rdfs:subPropertyOf rdf:resource="#relationFromSituation"/>  </rdf:Property>

 <rdf:Property rdf:ID="purpose">
  <rdfs:domain rdf:resource="#Process"/> <rdfs:range rdf:resource="#Situation"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

 <rdf:Property rdf:ID="triggeringEvent">
  <rdfs:domain rdf:resource="#Process"/> <rdfs:range rdf:resource="#Event"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

 <rdf:Property rdf:ID="endingEvent">
  <rdfs:domain rdf:resource="#Process"/> <rdfs:range rdf:resource="#Event"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

 <rdf:Property rdf:ID="precondition">
  <rdfs:domain rdf:resource="#Process"/> <rdfs:range rdf:resource="#State"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

 <rdf:Property rdf:ID="postcondition">
  <rdfs:domain rdf:resource="#Process"/> <rdfs:range rdf:resource="#State"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

 <rdf:Property rdf:ID="agent">
  <rdfs:domain rdf:resource="#Process"/> <rdfs:range rdf:resource="#Entity"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

 <rdf:Property rdf:ID="initiator">
  <rdfs:domain rdf:resource="#Process"/><rdfs:range rdf:resource="#CausalEntity"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

 <rdf:Property rdf:ID="experiencer">
  <rdfs:domain rdf:resource="#Process"/><rdfs:range rdf:resource="#CausalEntity"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

 <rdf:Property rdf:ID="instrument">
  <rdfs:domain rdf:resource="#Process"/><rdfs:range rdf:resource="#Entity"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

 <rdf:Property rdf:ID="recipient">
  <rdfs:domain rdf:resource="#Process"/><rdfs:range rdf:resource="#CausalEntity"/>
  <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>


Object/result relations from processes

  <rdf:Property rdf:ID="object">
   <rdfs:domain rdf:resource="#Process"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

    <rdf:Property rdf:ID="input">
     <rdfs:domain rdf:resource="#Process"/>
     <rdfs:subPropertyOf rdf:resource="#object"/>  </rdf:Property>

      <rdf:Property rdf:ID="material">
       <rdfs:domain rdf:resource="#Process"/>
       <rdfs:subPropertyOf rdf:resource="#input"/>  </rdf:Property>

      <rdf:Property rdf:ID="parameter">
       <rdfs:domain rdf:resource="#Process"/>
       <rdfs:subPropertyOf rdf:resource="#input"/>  </rdf:Property>

     <rdf:Property rdf:ID="inputOutput">
     <rdfs:domain rdf:resource="#Process"/>
     <rdfs:subPropertyOf rdf:resource="#object"/>  </rdf:Property>

      <rdf:Property rdf:ID="objectToModify">
       <rdfs:domain rdf:resource="#Process"/>
       <rdfs:subPropertyOf rdf:resource="#inputOutput"/>  </rdf:Property>

      <rdf:Property rdf:ID="objectToMute">
       <rdfs:domain rdf:resource="#Process"/>
       <rdfs:subPropertyOf rdf:resource="#inputOutput"/>  </rdf:Property>

      <rdf:Property rdf:ID="objectToDestroy">
       <rdfs:domain rdf:resource="#Process"/>
       <rdfs:subPropertyOf rdf:resource="#inputOutput"/>  </rdf:Property>

  <rdf:Property rdf:ID="result">
   <rdfs:domain rdf:resource="#Process"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

    <rdf:Property rdf:ID="output">
     <rdfs:domain rdf:resource="#Process"/>
     <rdfs:subPropertyOf rdf:resource="#result"/>  </rdf:Property>


Other relations from processes

  <rdf:Property rdf:ID="subProcess">
   <rdfs:domain rdf:resource="#Process"/> <rdfs:domain rdf:resource="#Process"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

  <rdf:Property rdf:ID="method">
   <rdfs:domain rdf:resource="#Process"/>
   <rdfs:range  rdf:resource="#Description"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

  <rdf:Property rdf:ID="source">
   <rdfs:domain rdf:resource="#Process"/>
   <rdfs:range  rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

  <rdf:Property rdf:ID="destination">
   <rdfs:domain rdf:resource="#Process"/>
   <rdfs:range  rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

  <rdf:Property rdf:ID="path">
   <rdfs:domain rdf:resource="#Process"/>
   <rdfs:range  rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

  <rdf:Property rdf:ID="processAttribute">
   <rdfs:domain rdf:resource="#Process"/>
   <rdfs:range  rdf:resource="#ProcessAttributeOrMeasure"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromProcess"/>  </rdf:Property>

    <rdf:Property rdf:ID="speed">
     <rdfs:domain rdf:resource="#Process"/>
     <rdfs:range  rdf:resource="#ProcessAttributeOrMeasure"/>
     <rdfs:subPropertyOf rdf:resource="#processAttribute"/>  </rdf:Property>

    <rdf:Property rdf:ID="manner">
     <rdfs:domain rdf:resource="#Process"/>
     <rdfs:range  rdf:resource="#ProcessAttributeOrMeasure"/>
     <rdfs:subPropertyOf rdf:resource="#processAttribute"/>  </rdf:Property>





2.8. Relations From Spatial/Temporal Entities


Relations from spatial entities

<rdf:Property rdf:ID="relationFromSpatialEntity">
 <rdfs:domain rdf:resource="#SpatialEntity"/>
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:ID="onLocation">
   <rdfs:domain rdf:resource="#SpatialEntity"/>
   <rdfs:range rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromSpatialEntity"/> </rdf:Property>

  <rdf:Property rdf:ID="aboveLocation">
   <rdfs:domain rdf:resource="#SpatialEntity"/>
   <rdfs:range rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromSpatialEntity"/> </rdf:Property>

  <rdf:Property rdf:ID="inLocation">
   <rdfs:domain rdf:resource="#SpatialEntity"/>
   <rdfs:range rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromSpatialEntity"/> </rdf:Property>

  <rdf:Property rdf:ID="nearLocation">
   <rdfs:domain rdf:resource="#SpatialEntity"/>
   <rdfs:range rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromSpatialEntity"/> </rdf:Property>

  <rdf:Property rdf:ID="interiorLocation">
   <rdfs:domain rdf:resource="#SpatialEntity"/>
   <rdfs:range rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromSpatialEntity"/> </rdf:Property>

  <rdf:Property rdf:ID="exteriorLocation">
   <rdfs:domain rdf:resource="#SpatialEntity"/>
   <rdfs:range rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromSpatialEntity"/> </rdf:Property>

  <rdf:Property rdf:ID="beforeLocation">
   <rdfs:domain rdf:resource="#SpatialEntity"/>
   <rdfs:range rdf:resource="#SpatialEntity"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromSpatialEntity"/> </rdf:Property>


Relations from time measures

<rdf:Property rdf:ID="relationFromTimeMeasure">
 <rdfs:domain rdf:resource="#TimeMeasure"/>
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:ID="nearTime">
   <rdfs:domain rdf:resource="#TimeMeasure"/>
   <rdfs:range rdf:resource="#TimeMeasure"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromTimeMeasure"/>  </rdf:Property>

  <rdf:Property rdf:ID="beforeTime">
   <rdfs:domain rdf:resource="#TimeMeasure"/>
   <rdfs:range rdf:resource="#TimeMeasure"/>
   <rdfs:subPropertyOf rdf:resource="#relationFromTimeMeasure"/>
   <rdfs:subPropertyOf rdf:resource="#partialOrderRelation"/>  </rdf:Property>





2.9. Attributive Relations


Attributive relations

<rdf:Property rdf:ID="attributiveRelation">
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:ID="attribute">
   <rdfs:range rdf:resource="#AttributeOrMeasure"/>
   <rdfs:subPropertyOf rdf:resource="#attributiveRelation"/>  </rdf:Property>

    <rdf:Property rdf:ID="spatialAttribute">
     <rdfs:domain rdf:resource="#SpatialEntity"/>
     <rdfs:range rdf:resource="#SpatialAttributeOrMeasure"/>
     <rdfs:subPropertyOf rdf:resource="#attribute"/>  </rdf:Property>

    <rdf:Property rdf:ID="physicalAttribute">
     <rdfs:domain rdf:resource="#PhysicalEntity"/>
     <rdfs:range rdf:resource="#PhysicalAttributeOrMeasure"/>
     <rdfs:subPropertyOf rdf:resource="#attribute"/>  </rdf:Property>

    <rdf:Property rdf:about="#processAttribute">
     <rdfs:subPropertyOf rdf:resource="#attribute"/>  </rdf:Property>

  <rdf:Property rdf:ID="owner">
   <rdfs:range rdf:resource="#CausalEntity"/>
   <rdfs:subPropertyOf rdf:resource="#attributiveRelation"/>  </rdf:Property>

  <rdf:Property rdf:ID="generator">
   <rdfs:range rdf:resource="#CausalEntity"/>
   <rdfs:subPropertyOf rdf:resource="#attributiveRelation"/>  </rdf:Property>

    <rdf:Property rdf:ID="parent">
     <rdfs:range rdf:resource="#CausalEntity"/>
     <rdfs:subPropertyOf rdf:resource="#generator"/>  </rdf:Property>





2.10. Ordering Relations


Order relations

<rdf:Property rdf:ID="orderingRelation">
 <rdfs:subPropertyOf rdf:resource="#relation"/>  </rdf:Property>

  <rdf:Property rdf:ID="partialOrderRelation">
   <rdfs:subPropertyOf rdf:resource="#orderingRelation"/>
   <rdf:type rdf:resource="#PartialOrderRelationClass"/>  </rdf:Property>

    <rdf:Property rdf:ID="totalOrderRelation">
     <rdfs:subPropertyOf rdf:resource="#partialOrderRelation"/>  </rdf:Property>

    <rdf:Property rdf:ID="inferior">
     <rdfs:comment>Rather fuzzy meaning; to specialize</rdfs:comment>
     <rdfs:subPropertyOf rdf:resource="#partialOrderRelation"/>  </rdf:Property>

    <rdf:Property rdf:ID="inferiorOrEqual">
     <rdfs:comment>Rather fuzzy meaning; to specialize</rdfs:comment>
     <rdfs:subPropertyOf rdf:resource="#partialOrderRelation"/>  </rdf:Property>

    <rdf:Property rdf:ID="generalization">
     <rdfs:comment>Rather fuzzy meaning; to specialize</rdfs:comment>
     <rdfs:subPropertyOf rdf:resource="#partialOrderRelation"/>  </rdf:Property>

      <rdf:Property 
          rdf:about="http://www.w3.org/2000/01/rdf-schema#subClassOf">
       <rdfs:subPropertyOf rdf:resource="#partialOrderRelation"/>  </rdf:Property>

      <rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
       <rdfs:subPropertyOf rdf:resource="#partialOrderRelation"/>  </rdf:Property>

    <rdf:Property rdf:ID="part">
     <rdfs:comment>Rather fuzzy meaning; to specialize</rdfs:comment>
     <rdfs:subPropertyOf rdf:resource="#partialOrderRelation"/>  </rdf:Property>


  <rdf:Property rdf:ID="equivalenceRelation">
   <rdfs:subPropertyOf rdf:resource="#orderingRelation"/>  </rdf:Property>

    <rdf:Property rdf:ID="equal">
     <rdfs:comment>Equality in content/meaning (^"=" in KIF^)</rdfs:comment>
     <rdfs:subPropertyOf rdf:resource="#equivalenceRelation"/>  </rdf:Property>


Part relations

      <rdf:Property rdf:ID="physicalPart">
       <rdfs:subPropertyOf rdf:resource="#part"/>  </rdf:Property>

      <rdf:Property rdf:about="#subCollection">
       <rdfs:subPropertyOf rdf:resource="#part"/>  </rdf:Property>

      <rdf:Property rdf:ID="subSituation">
       <rdfs:subPropertyOf rdf:resource="#part"/>  </rdf:Property>

        <rdf:Property rdf:about="#subProcess">
         <rdfs:subPropertyOf rdf:resource="#subSituation"/>  </rdf:Property>

      <rdf:Property rdf:ID="mainPart">
       <rdfs:subPropertyOf rdf:resource="#part"/>  </rdf:Property>

      <rdf:Property rdf:ID="firstPart">
       <rdfs:subPropertyOf rdf:resource="#part"/>  </rdf:Property>

      <rdf:Property rdf:ID="lastPart">
       <rdfs:subPropertyOf rdf:resource="#part"/>  </rdf:Property>





Acknowledgments

Many thanks to Dr OLivier Corby and Pr Peter Eklund for their readings and corrections of this article.




References

[Barwise83]
PA.Barwise J. & Perry J.; Situation and Attitudes
MIT Press, Cambridge, MA.
[CGs]
Conceptual Graphs
http://concept.cs.uah.edu/CG/Standard.html
[CYC]
The Upper Cyc® Ontology
http://www.cyc.com/cyc-2-1/cover.html
[DC]
Dublin Core Metadata Initiative
http://purl.org/dc/
[KIF]
Knowledge Interchange Format (KIF)
http://logic.stanford.edu/kif/kif.html
[FrameOntol]
Frame ontology of Ontolingua
http://www-ksl-svc.stanford.edu:5915/FRAME-EDITOR/UID-22&sid=ANONYMOUS&user-id=ALIEN
[RDFMS]
Resource Description Framework (RDF) Model and Syntax, W3C Recommendation, 22 February 1999
http://www.w3.org/TR/1999/REC-rdf-syntax-19990222
[RDFSchema]
Resource Description Framework (RDF) Schema Specification 1.0, W3C Candidate Recommendation 27 March 2000
http://www.w3.org/TR/2000/CR-rdf-schema-20000327
[Sowa84]
J. Sowa; Conceptual Structures: Information Processing in Mind and Machine ,
Addison-Wesley, Reading, MA.
[WN]
WordNet - a Lexical Database for English
http://cogsci.princeton.edu/~wn/



Philippe Martin (philippe.martin@gu.edu.au)
Date: 15/06/2000