diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e420ee4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +target/* diff --git a/ontologies/DUL.owl b/ontologies/DUL.owl new file mode 100644 index 0000000..6cbb535 --- /dev/null +++ b/ontologies/DUL.owl @@ -0,0 +1,3450 @@ + + + + + +]> + + + DOLCE+DnS Ultralite + 3.30 + + Created by Aldo Gangemi as both a simplification and extension of DOLCE and Descriptions and Situations ontologies. + In 3.2, the links between instances of Region or Parameter, and datatypes have been revised and made more powerful, in order to support efficient design patterns for data value modelling in OWL1.0. +Also, the names of the related properties have been changed in order to make them more intuitive. +Furthermore, a large comment field has been added to the 'expresses' object property, in order to clarify some issues about the many interpretations. +In 3.3, the relation between regions, parameters, and datatypes has been still improved. +In 3.5, the person-related classes have been refactored: Person in 3.4 is now SocialPerson, to avoid confusion with commonsense intuition; Person is now the union of social persons and humans, therefore being a subclass of Agent. +In 3.6, other fixes on universal restriction involving expresses. Also added the property 'isConstraintFor' between parameters and entities. Moved the properties: 'assumes' and 'adopts' to the new module: http://www.ontologydesignpatterns.org/ont/dul/Conceptualization.owl. +In 3.7, some fixes on the names of classes and properties related to FormalEntity; created a new separate module for general universal restrictions (DULGCI.owl). +In 3.8, more fixes on the interface to formal entities and links to IOLite.owl. +In 3.9, some naming and comment fixes. +In 3.10, removed cardinality restriction from hasPart and isPartOf restrictions (changed to hasComponent and isComponentOf), for OWL(DL) compatibility. Also enlarged the range of includesAgent to contain both social and physical agents, and of conceptualizes universal restriction on agents, to include all social objects. +In 3.11, some more subproperty axioms have been introduced, and all elements have got English labels. +In 3.12, added some classes to map some old DolceLitePlus classes that were used to align OntoWordNet. +In 3.13, added the LocalConcept class to express a Concept that cannot be used in a Description different from the one that defines it. Also updated some comments. +In 3.14, added some comments. +In 3.15, removed some owl:disjointWith axioms relating Collection to InformationObject, Description, Situation, and SocialAgent. The rationale for doing that is to allow less strict constraints on domain relations involving collections that can be also conceived as descriptions, situations, social agents, or information objects; for example: a collection of sentences from a text (an information object) that are ranked with a relevance criterion can be still considered a text. +In 3.16, name of isActedBy changed to actsThrough, which is clearer. Also added SpatioTemporalRegion as constituted by a SpaceRegion and a TimeInterval. +In 3.17, removed redundant universal axioms from Entity and other top classes. Fixed restrictions on FunctionalSubstance class, and comments in Design and Substance classes. +In 3.18, removed subClassOf axiom from FunctionalSubstance to DesignedArtifact, created a new subclass of FunctionalSubstance, called DesignedSubstance, and created a subClassOf axiom from DesignedSubstance to DesignedArtifact. +In 3.19, removed disjointness axiom between Concept and Collection (the same rationale applies as in 3.15 version. +In 3.20, revised the comment for Quality, added InformationEntity as the superclass for InformationObject and InformationRealization (represented as the union of those classes). This is needed in many domain ontologies that do not need to distinguish between abstract and concrete aspects of information entities. One possible revision (not implemented here) would be to introduce the relations: expresses and isAbout with a broader domain:InformationEntity, and two more specific properties: abstractlyExpresses and isAbstractlyAbout. This last revision has not been implemented yet, since a large revision procedure should be carried out in order to check the impact of the revision on the existing DOLCE-DnS-Ultralite plugins. +In 3.21, added comment to InformationEntity, and optimized representation of equivalence for InformationRealization. +In 3.22, added comment to Personification. +In 3.23, added associatedWith object property, and put all object properties as subproperties of it. +In 3.24, removed hasProxy datatype property. +In 3.25, generalized domain and range of hasComponent and isComponentOf. +In 3.26, updated some comments in order to clarify or exemplify the concepts. +In 3.27, added rdfs:isDefinedBy annotations for Linked Data browsers. +In 3.28, broadened the universe of pre-/post-conditions to give room to events and states. +In 3.29, added some properties to support DBpedia alignment: sameSettingAs (situational analogous to coparticipation), including relations originating e.g. from sharing kinship, ownership, or roleplaying situations. +In 3.30, completed some domains and ranges (formerly owl:Thing, now dul:Entity), and added axiom: Organism subClassOf PhysicalAgent. + The DOLCE+DnS Ultralite ontology. +It is a simplification of some parts of the DOLCE Lite-Plus library (cf. http://www.ontologydesignpatterns.org/ont/dul/DLP397.owl). +Main aspects in which DOLCE+DnS Ultralite departs from DOLCE Lite-Plus are the following: + +- The names of classes and relations have been made more intuitive +- The DnS-related part is closer to the newer 'constructive DnS' ontology (http://www.ontologydesignpatterns.org/ont/dul/cDnS.owl). +- Temporal and spatial relations are simplified +- Axiomatization makes use of simpler constructs than DOLCE Lite-Plus +- The architecture of the ontology is pattern-based, which means that DOLCE+DnS Ultralite is also available in modules, called 'content ontology design patterns', which can be applied independently in the design of domain ontologies (cf. http://www.ontologydesignpatterns.org). If many modules are needes in a same ontology project, is anyway useful to use this integrated version. + +The final result is a lightweight, easy-to-apply foundational ontology for modeling either physical or social contexts. +Several extensions of DOLCE+DnS Ultralite have been designed; see for example the extensions for information objects: http://www.ontologydesignpatterns.org/ont/dul/IOLite.owl, +for systems: http://www.ontologydesignpatterns.org/ont/dul/SystemsLite.owl, +for plans: http://www.ontologydesignpatterns.org/ont/dul/PlansLite.owl, +for the legal domain: http://www.ontologydesignpatterns.org/ont/dul/CLO/CoreLegal.owl, +and for the lexical and semiotic domains: http://www.ontologydesignpatterns.org/ont/lmm/LMM_L2.owl; etc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + acts for + agisce per + The relation holding between any Agent, and a SocialAgent. In principle, a SocialAgent requires at least one PhysicalAgent in order to act, but this dependency can be 'delegated'; e.g. a university can be acted for by a department, which on its turm is acted for by physical agents. + + + + + + + + + + + + + acts through + agisce mediante + The relation holding between a PhysicalAgent and a SocialAgent. In principle, a SocialAgent requires at least one PhysicalAgent in order to act, but this dependency can be 'delegated', e.g. a university can be acted for by a department, which is acted for by physical agents. AKA isActedBy + + + + + + + + + + + + + + associatedWith + A catch-all object property, useful for alignment and querying purposes. + + + + + + + + + + + + characterizes + caratterizza + A relation between concepts and collections, where a Concept is said to characterize a Collection; it corresponds to a link between the (reified) intensional and extensional interpretations of a _proper subset of_ a (reified) class. This is different from covers, because it refers to an interpretation the entire reified class. +E.g. the collection of vintage saxophones is characterized by the Concept 'manufactured by hand', while it gets covered by the Concept 'Saxophone' with the Parameter 'Vintage'. + + + + + + + + + + + + + classifies + classifica + A relation between a Concept and an Entity, e.g. the Role 'student' classifies a Person 'John'. + + + + + + + + + + + + + conceptualizes + concettualizza + A relation stating that an Agent is internally representing a SocialObject: situations, descriptions, concepts, etc. E.g., 'John believes in the conspiracy theory'; 'Niels Bohr created the solar-system metaphor for the atomic theory'; 'Jacques assumes all swans are white'; 'the task force members share the attack plan'. +Conceptualizations can be distinguished into different forms, primarily based on the type of SocialObject that is conceptualized. Descriptions and concepts can be 'assumed', situations can be 'believed' or 'known', plans can be 'adopted', etc. (see ontology: http://www.ontologydesignpatterns.org/ont/dul/Conceptualization.owl. + + + + + + + + + + + + + concretely expresses + esprime concretamente + A relation between an InformationRealization and a Description, e.g. 'the printout of the Italian Constitution concretelyExpresses the Italian Constitution'. It should be supplied also with a rule stating that the InformationRealization realizes an InformationObject that expresses the Description + + + + + + + + + + + + + + co-participates with + copartecipa con + A relation between two objects participating in a same Event; e.g., 'Vitas and Jimmy are playing tennis'. + + + + + + + + + + + + + covers + ricopre + A relation between concepts and collections, where a Concept is said to cover a Collection; it corresponds to a link between the (reified) intensional and extensional interpretations of a (reified) class. +E.g. the collection of vintage saxophones is covered by the Concept 'Saxophone' with the Parameter 'Vintage'. + + + + + + + + + + + + + defines + definisce + A relation between a Description and a Concept, e.g. a Workflow for a governmental Organization defines the Role 'officer', or 'the Italian Traffic Law defines the role Vehicle'. + + + + + + + + + + + + + defines role + definisce il ruolo + A relation between a description and a role, e.g. the recipe for a cake defines the role 'ingredient'. + + + + + + + + + + + + + defines task + definisce il task + A relation between a description and a task, e.g. the recipe for a cake defines the task 'boil'. + + + + + + + + + + + + + describes + descrive + The relation between a Description and an Entity : a Description gives a unity to a Collection of parts (the components), or constituents, by assigning a Role to each of them in the context of a whole Object (the system). +A same Entity can be given different descriptions, for example, an old cradle can be given a unifying Description based on the original aesthetic design, the functionality it was built for, or a new aesthetic functionality in which it can be used as a flower pot. + + + + + + + + + + + + directly follows + segue direttamente + The intransitive follows relation. For example, Wednesday directly precedes Thursday. Directness of precedence depends on the designer conceptualization. + + + + + + + + + + + + directly precedes + precede direttamente + The intransitive precedes relation. For example, Monday directly precedes Tuesday. Directness of precedence depends on the designer conceptualization. + + + + + + + + + + + + + executes task + esegue il task + A relation between an action and a task, e.g. 'putting some water in a pot and putting the pot on a fire until the water starts bubbling' executes the task 'boiling'. + + + + + + + + + + + + expands + espande + A partial order relation that holds between descriptions. It represents the proper part relation between a description and another description featuring the same properties as the former, with at least one additional one. +Descriptions can be expanded either by adding other descriptions as parts, or by refining concepts that are used by them. +An 'intention' to expand must be present (unless purely formal theories are considered, but even in this case a criterion of relevance is usually active). + + + + + + + + + + + + + expresses + esprime + A relation between an InformationObject and a 'meaning', generalized here as a 'SocialObject'. For example: 'A Beehive is a structure in which bees are kept, typically in the form of a dome or box.' (Oxford dictionary)'; 'the term Beehive expresses the concept Beehive in my apiculture ontology'. +The intuition for 'meaning' is intended to be very broad. A separate, large comment is included for those who want to investigate more on what kind of meaning can be represented in what form. + This is a large comment field for those who want to investigate the different uses of the 'expresses' relation for modeling different approaches to meaning characterization and modeling. +For example, in all these cases, some aspect of meaning is involved: + +- Beehive means "a structure in which bees are kept, typically in the form of a dome or box." (Oxford dictionary) +- 'Beehive' is a synonym in noun synset 09218159 "beehive|hive" (WordNet) +- 'the term Beehive can be interpreted as the fact of 'being a beehive', i.e. a relation that holds for concepts such as Bee, Honey, Hosting, etc.' +- 'the text of Italian apiculture regulation expresses a rule by which beehives should be kept at least one kilometer away from inhabited areas' +- 'the term Beehive expresses the concept Beehive' +- ''Beehive' for apiculturists does not express the same meaning as for, say, fishermen' +- 'Your meaning of 'Beautiful' does not seem to fit mine' +- ''Beehive' is formally interpreted as the set of all beehives' +- 'from the term 'Beehive', we can build a vector space of statistically significant cooccurring terms in the documents that contain it' +- the lexeme 'Belly' expresses the role 'Body_Part' in the frame 'ObservableBodyParts' (FrameNet) + +As the examples suggest, the 'meaning of meaning' is dependent on the background approach/theory that one assumes. One can hardly make a summary of the too many approaches and theories of meaning, therefore this relation is maybe the most controversial and difficult to explain; normally, in such cases it would be better to give up formalizing. +However, the usefulness of having a 'semantic abstraction' in modeling information objects is so high (e.g. for the semantic web, interoperability, reengineering, etc.), that we accept this challenging task, although without taking any particular position in the debate. +We provide here some examples, which we want to generalize upon when using the 'expresses' relation to model semantic aspects of social reality. + +In the most common approach, lexicographers that write dictionaries, glossaries, etc. assume that the meaning of a term is a paraphrase (or 'gloss', or 'definition'). +Another approach is provided by concept schemes like thesauri and lexicons, which assume that the meaning of a term is a 'concept', encoded as a 'lemma', 'synset', or 'descriptor'. +Still another approach is that of psychologists and cognitive scientists, which often assume that the meaning of an information object is a concept encoded in the mind or cognitive system of an agent. +A radically different approach is taken by social scientists and semioticians, who usually assume that meanings of an information object are spread across the communication practices in which members of a community use that object. +Another approach that tackles the distributed nature of meaning is assumed by geometrical models of semantics, which assume that the meaning of an InformationObject (e.g. a word) results from the set of informational contexts (e.g. within texts) in which that object is used similarly. +The logical approach to meaning is still different, since it assumes that the meaning of e.g. a term is equivalent to the set of individuals that the term can be applied to; for example, the meaning of 'Ali' is e.g. an individual person called Ali, the meaning of 'Airplane' is e.g. the set of airplanes, etc. +Finally, an approach taken by structuralist linguistics and frame semantics is that a meaning is the relational context in which an information object can be applied; for example, a meaning of 'Airplane' is situated e.g. in the context ('frame') of passenger airline flights. + +These different approaches are not necessarily conflicting, and they mostly talk about different aspects of so-called 'semantics'. They can be summarized and modelled within DOLCE-Ultralite as follows (notice that such list is far from exhaustive): + +(1) Informal meaning (as for linguistic or commonsense semantics: a distinction is assumed between (informal) meaning and reference; see isAbout for an alternative pattern on reference) + - Paraphrase meaning (as for lexicographic semantics). Here it is modelled as the expresses relation between instances of InformationObject and different instances of InformationObject that act as 'paraphrases' + - Conceptual meaning (as for 'concept scheme' semantics). Here it is modelled as the expresses relation between instances of InformationObject and instances of Concept + - Relational meaning (as for frame semantics). Here it is modelled as the expresses relation between instances of InformationObject and instances of Description + - Cognitive meaning (as for 'psychological' semantics). Here it is modelled as the expresses relation between any instance of InformationObject and any different instance of InformationObject that isRealizedBy a mental, cognitive or neural state (depending on which theory of mind is assumed). Such states can be considered here as instances of Process (occurring in the mind, cognitive system, or neural system of an agent) + - Cultural meaning (as for 'social science' semantics). Here it is modelled as the expresses relation between instances of InformationObject and instances of SocialObject (institutions, cultural paradigms, norms, social practices, etc.) + - Distributional meaning (as for geometrical models of meaning). Here it is modelled as the expresses relation between any instance of InformationObject and any different instance of InformationObject that isFormallyRepresentedIn some (geometrical) Region (e.g. a vector space) + +(2) Formal meaning (as for logic and formal semantics: no distinction is assumed between informal meaning and reference, therefore between 'expresses' and 'isAbout', which can be used interchangeably) + - Object-level formal meaning (as in the traditional first-order logic semantics). Here it is modelled as the expresses relation between an instance of InformationObject and an instance of Collection that isGroundingFor (in most cases) a Set; isGroundingFor is defined in the ontology: http://www.ontologydesignpatterns.org/ont/dul/IOLite.owl + - Modal formal meaning (as in possible-world semantics). Here it is modelled as the expresses relation between an instance of InformationObject and an instance of Collection that isGroundingFor a Set, and which isPartOf some different instance of Collection that isGroundingFor a PossibleWorld + +This is only a first step to provide a framework, in which one can model different aspects of meaning. A more developed ontology should approach the problem of integrating the different uses of 'expresses', so that different theories, resources, methods can interoperate. + + + + + + + + + + + + + expresses concept + esprime il concetto + A relation between an InformationObject and a Concept , e.g. the term "dog" expresses the Concept "dog". For expressing a relational meaning, see the more general object property: expresses + + + + + + + + + + + + + + far from + Generic distance relation between any Entity(s). E.g. Rome is far from Beijing, astronomy is far from necromancy. + + + + + + + + + + + + + + follows + segue + A relation between entities, expressing a 'sequence' schema. +E.g. 'year 2000 follows 1999', 'preparing coffee' follows 'deciding what coffee to use', 'II World War follows I World War', etc. +It can be used between tasks, processes or time intervals, and subproperties would fit best in order to distinguish the different uses. + + + + + + + + + + + + + + has common boundary + A relation to encode either formal or informal characterizations of 'boundaries' common to two different entities: an Event that ends when another begins, two abstract regions that have a common topological boundary, two objects that are said to be 'in contact' from a commonsense perspective, etc. + + + + + + + + + + + + + has component + ha componente + The hasPart relation without transitivity, holding between an Object (the system) and another (the component), and assuming a Design that structures the Object. + + + + + + + + + + + + has constituent + ha costituente + 'Constituency' depends on some layering of the world described by the ontology. For example, scientific granularities (e.g. body-organ-tissue-cell) or ontological 'strata' (e.g. social-mental-biological-physical) are typical layerings. +Intuitively, a constituent is a part belonging to a lower layer. Since layering is actually a partition of the world described by the ontology, constituents are not properly classified as parts, although this kinship can be intuitive for common sense. +A desirable advantage of this distinction is that we are able to talk e.g. of physical constituents of non-physical objects (e.g. systems), while this is not possible in terms of parts. +Example of are the persons constituting a social system, the molecules constituting a person, the atoms constituting a river, etc. +In all these examples, we notice a typical discontinuity between the constituted and the constituent object: e.g. a social system is conceptualized at a different layer from the persons that constitute it, a person is conceptualized at a different layer from the molecules that constitute them, and a river is conceptualized at a different layer from the atoms that constitute it. + + + + + + + + + + + + + has constraint + ha vincolo + A relation between parameters and entities. It allows to assert generic constraints (encoded as parameters), e.g. MinimumAgeForDriving isConstraintFor John (where John is a legal subject under the TrafficLaw). +The intended semantics (not expressible in OWL) is that a Parameter isParameterFor a Concept that classifies an Entity; moreover, it entails that a Parameter parametrizes a Region that isRegionFor that Entity. + + + + + + + + + + + + has location + ha localizzazione + A generic, relative localization, holding between any entities. E.g. 'the cat is on the mat', 'Omar is in Samarcanda', 'the wound is close to the femural artery'. +For 'absolute' locations, see SpaceRegion + + + + + + + + + + + + has member + ha membro + A relation between collections and entities, e.g. 'my collection of saxophones includes an old Adolphe Sax original alto' (i.e. my collection has member an Adolphe Sax alto). + + + + + + + + + + + + + has parameter + ha parametro + A Concept can have a Parameter that constrains the attributes that a classified Entity can have in a certain Situation, e.g. a 4WheelDriver Role definedIn the ItalianTrafficLaw has a MinimumAge parameter on the Amount 16. + + + + + + + + + + + + + has part + ha parte + A schematic relation between any entities, e.g. 'the human body has a brain as part', '20th century contains year 1923', 'World War II includes the Pearl Harbour event'. +Subproperties and restrictions can be used to specialize hasPart for objects, events, etc. + + + + + + + + + + + + has participant + ha come partecipante + A relation between an object and a process, e.g. 'John took part in the discussion', 'a large mass of snow fell during the avalanche', or 'a cook, some sugar, flour, etc. are all present in the cooking of a cake'. + + + + + + + + + + + + + has postcondition + ha postcondizione + Direct succession applied to situations. +E.g., 'A postcondition of our Plan is to have things settled'. + + + + + + + + + + + + + + + + + + + + + + + + + + has precondition + ha precondizione + Direct precedence applied to situations. +E.g., 'A precondition to declare war against a foreign country is claiming to find nuclear weapons in it'. + + + + + + + + + + + + + + + + + + + + + + + + + + has quality + ha qualità + A relation between entities and qualities, e.g. 'Dmitri's skin is yellowish'. + + + + + + + + + + + + has region + ha attributo + A relation between entities and regions, e.g. 'the number of wheels of that truck is 12', 'the time of the experiment is August 9th, 2004', 'the whale has been localized at 34 degrees E, 20 degrees S'. + + + + + + + + + + + + has role + ha ruolo + A relation between an object and a role, e.g. the person 'John' has role 'student'. + + + + + + + + + + + + has setting + è nel contesto di + A relation between entities and situations, e.g. 'this morning I've prepared my coffee with a new fantastic Arabica', i.e.: (an amount of) a new fantastic Arabica hasSetting the preparation of my coffee this morning. + + + + + + + + + + + + + has task + ha come obiettivo + A relation between roles and tasks, e.g. 'students have the duty of giving exams' (i.e. the Role 'student' hasTask the Task 'giving exams'). + + + + + + + + + + + + includes action + include azione + A relation between situations and actions, e.g. 'this morning I've prepared my coffee and had my fingers burnt' (i.e.: the preparation of my coffee this morning included a burning of my fingers). + + + + + + + + + + + + includes agent + include l'agente + A relation between situations and persons, e.g. 'this morning I've prepared my coffee and had my fingers burnt' (i.e.: the preparation of my coffee this morning included me). + + + + + + + + + + + + + includes event + include l'evento + A relation between situations and events, e.g. 'this morning I've prepared my coffee and had my fingers burnt' (i.e.: the preparation of my coffee this morning included a burning of my fingers). + + + + + + + + + + + + includes object + include l'oggetto + A relation between situations and objects, e.g. 'this morning I've prepared my coffee and had my fingers burnt' (i.e.: the preparation of my coffee this morning included me). + + + + + + + + + + + + + includes time + include tempo + A relation between situations and time intervals, e.g. 'this morning I've prepared my coffee and had my fingers burnt' (i.e.: preparing my coffee was held this morning). A data value attached to the time interval typically complements this modelling pattern. + + + + + + + + + + + + introduces + introduce + A relation between a Description and a SocialAgent, e.g. a Constitutional Charter introduces the SocialAgent 'PresidentOfRepublic'. + + + + + + + + + + + + involves agent + coinvolge agente + Agent participation. + + + + + + + + + + + + + is about + si riferisce a + A relation between information objects and any Entity (including information objects). It can be used to talk about e.g. entities are references of proper nouns: the proper noun 'Leonardo da Vinci' isAbout the Person Leonardo da Vinci; as well as to talk about sets of entities that can be described by a common noun: the common noun 'person' isAbout the set of all persons in a domain of discourse, which can be represented in DOLCE-Ultralite as an individual of the class: Collection . +The isAbout relation is reflexive (not expressible in OWL1.0), because information objects are also about themselves. + + + + + + + + + + + + + is action included in + è un'azione nel contesto di + + + + + + + + + + + + + is agent included in + è un agente nel contesto di + + + + + + + + + + + + is agent involved in + è un agente coinvolto in + Agent participation. + + + + + + + + + + + + is characterized by {@en-us} + is characterized by + è caratterizzato da + + + + + + + + + + + + is classified by + è classificato da + A relation between a Concept and an Entity, e.g. 'John is considered a typical rude man'; your last concert constitutes the achievement of a lifetime; '20-year-old means she's mature enough'. + + + + + + + + + + + + is component of + è componente di + The hasPart relation without transitivity, holding between an Object (the system) and another (the component), and assuming a Design that structures the Object. + + + + + + + + + + + + + is concept expressed by + è un concetto espresso da + A relation between an InformationObject and a Concept , e.g. the term "dog" expresses the Concept "dog". For expressing a relational meaning, see the more general object property: expresses + + + + + + + + + + + + is concept used in + è un concetto usato in + A more generic relation holding between a Description and a Concept. In order to be used, a Concept must be previously definedIn another Description + + + + + + + + + + + + + is conceptualized by + è concettualizzato da + A relation stating that an Agent is internally representing a Description . E.g., 'John believes in the conspiracy theory'; 'Niels Bohr created a solar-system metaphor for his atomic theory'; 'Jacques assumes all swans are white'; 'the task force shares the attack plan'. + + + + + + + + + + + + is concretely expressed by + è espresso concretamente da + A relation between an InformationRealization and a Description, e.g. 'the printout of the Italian Constitution concretelyExpresses the Italian Constitution'. It should be supplied also with a rule stating that the InformationRealization realizes an InformationObject that expresses the Description + + + + + + + + + + + + is constituent of + è costituente di + 'Constituency' depends on some layering of the world described by the ontology. For example, scientific granularities (e.g. body-organ-tissue-cell) or ontological 'strata' (e.g. social-mental-biological-physical) are typical layerings. +Intuitively, a constituent is a part belonging to a lower layer. Since layering is actually a partition of the world described by the ontology, constituents are not properly classified as parts, although this kinship can be intuitive for common sense. +A desirable advantage of this distinction is that we are able to talk e.g. of physical constituents of non-physical objects (e.g. systems), while this is not possible in terms of parts. +Example of are the persons constituting a social system, the molecules constituting a person, the atoms constituting a river, etc. +In all these examples, we notice a typical discontinuity between the constituted and the constituent object: e.g. a social system is conceptualized at a different layer from the persons that constitute it, a person is conceptualized at a different layer from the molecules that constitute them, and a river is conceptualized at a different layer from the atoms that constitute it. + + + + + + + + + + + + is constraint for + è un vincolo per + A relation between parameters and entities. It allows to assert generic constraints (encoded as parameters), e.g. MinimumAgeForDriving isConstraintFor John (where John is a legal subject under the TrafficLaw). +The intended semantics (not expressible in OWL) is that a Parameter isConstraintFor and Entity if the Parameter isParameterFor a Concept that classifies that Entity; moreover, it entails that a Parameter parametrizes a Region that isRegionFor that Entity. The use in OWL is therefore a shortcut to annotate what Parameter constrains what Entity + + + + + + + + + + + + + is covered by + è ricoperto da + A relation between concepts and collections, where a Concept is said to cover a Collection; it corresponds to a link between the (reified) intensional and extensional interpretations of a (reified) class. +E.g. the collection of vintage saxophones is covered by the Concept 'Saxophone' with the Parameter 'Vintage'. + + + + + + + + + + + + is defined in + è definito in + A relation between a Description and a Concept, e.g. a Workflow for a governmental Organization defines the Role 'officer', or 'the Italian Traffic Law defines the role Vehicle'. + + + + + + + + + + + + is described by + è descritto da + The relation between an Entity and a Description: a Description gives a unity to a Collection of parts (the components), or constituents, by assigning a Role to each of them in the context of a whole Object (the system). +A same Entity can be given different descriptions, for example, an old cradle can be given a unifying Description based on the original aesthetic design, the functionality it was built for, or a new aesthetic functionality in which it can be used as a flower pot. + + + + + + + + + + + + + is event included in + è un evento nel contesto di + + + + + + + + + + + + + is executed in + è eseguito mediante + A relation between an action and a task, e.g. 'putting some water in a pot and putting the pot on a fire until the water starts bubbling' executes the task 'boiling'. + + + + + + + + + + + + + is expanded in + è espansa in + A partial order relation that holds between descriptions. It represents the proper part relation between a description and another description featuring the same properties as the former, with at least one additional one. +Descriptions can be expanded either by adding other descriptions as parts, or by refining concepts that are used by them. +An 'intention' to expand must be present (unless purely formal theories are considered, but even in this case a criterion of relevance is usually active). + + + + + + + + + + + + is expressed by + è espresso da + A relation between a dul:SocialObject (the 'meaning') and a dul:InformationObject (the 'expression'). +For example: 'A Beehive is a structure in which bees are kept, typically in the form of a dome or box.' (Oxford dictionary)'; 'the term Beehive expresses the concept Beehive in my apiculture ontology'. +The intuition for 'meaning' is intended to be very broad. A separate, large comment is included in the encoding of 'expresses', for those who want to investigate more on what kind of meaning can be represented in what form. + + + + + + + + + + + + is introduced by + è introdotto da + A relation between a Description and a SocialAgent, e.g. a Constitutional Charter introduces the SocialAgent 'PresidentOfRepublic'. + + + + + + + + + + + + + is location of + è una localizzazione di + A generic, relative localization, holding between any entities. E.g. 'Rome is the seat of the Pope', 'the liver is the location of the tumor'. +For 'absolute' locations, see SpaceRegion + + + + + + + + + + + + + is member of + è membro di + A relation between collections and entities, e.g. 'the Night Watch by Rembrandt is in the Rijksmuseum collection'; 'Davide is member of the Pen Club', 'Igor is one the subjects chosen for the experiment'. + + + + + + + + + + + + is object included in + è un oggetto nel contesto di + + + + + + + + + + + + is observable at + è osservabile a + A relation to represent a (past, present or future) TimeInterval at which an Entity is observable. +In order to encode a specific time, a data value should be related to the TimeInterval. +An alternative way of representing time is the datatype property: hasIntervalDate + + + + + + + + + + + + + is parameter for + è un parametro per + A Concept can have a Parameter that constrains the attributes that a classified Entity can have in a certain Situation, e.g. a 4WheelDriver Role definedIn the ItalianTrafficLaw has a MinimumAge parameter on the Amount 16. + + + + + + + + + + + + + is parametrized by + è parametrizzato da + The relation between a Parameter, e.g. 'MajorAge', and a Region, e.g. '>17 year'. + + + + + + + + + + + + + + is part of + è parte di + A relation between any entities, e.g.'brain is a part of the human body'. + + + + + + + + + + + + + is participant in + è un partecipante a + A relation between an object and a process, e.g. 'John took part in the discussion', 'a large mass of snow fell during the avalanche', or 'a cook, some sugar, flour, etc. are all present in the cooking of a cake'. + + + + + + + + + + + + is postcondition of + è postcondizione di + Direct succession applied to situations. +E.g., 'Taking some rest is a postcondition of my search for a hotel'. + + + + + + + + + + + + + + + + + + + + + + + + + + + is precondition of + è precondizione di + Direct precedence applied to situations. +E.g., 'claiming to find nuclear weapons in a foreign country is a precondition to declare war against it'. + + + + + + + + + + + + + + + + + + + + + + + + + + + is quality of + è una qualità di + A relation between entities and qualities, e.g. 'Dmitri's skin is yellowish'. + + + + + + + + + + + + + is realized by + è realizzato da + A relation between an information realization and an information object, e.g. the paper copy of the Italian Constitution realizes the text of the Constitution. + + + + + + + + + + + + is reference of + è il riferimento di + A relation between information objects and any Entity (including information objects). It can be used to talk about e.g. entities are references of proper nouns: the proper noun 'Leonardo da Vinci' isAbout the Person Leonardo da Vinci; as well as to talk about sets of entities that can be described by a common noun: the common noun 'person' isAbout the set of all persons in a domain of discourse, which can be represented in DOLCE-Ultralite as an individual of the class: Collection . +The isReferenceOf relation is irreflexive, differently from its inverse isAbout. + + + + + + + + + + + + is reference of information realized by + è riferimento dell'informazione realizzata da + The relation between entities and information realizations, e.g. between Italy and a paper copy of the text of the Italian Constitution. + + + + + + + + + + + + is region for + è una regione di + A relation between entities and regions, e.g. 'the color of my car is red'. + + + + + + + + + + + + + + is related to concept + è associato al concetto + Any relation between concepts, e.g. superordinated, conceptual parthood, having a parameter, having a task, superordination, etc. + + + + + + + + + + + + + + is related to description + è associata alla descrizione + Any relation between descriptions. + + + + + + + + + + + + + is role defined in + è un ruolo definito in + A relation between a description and a role, e.g. the role 'Ingredient' is defined in the recipe for a cake. + + + + + + + + + + + + is role of + è un ruolo di + A relation between an object and a role, e.g. 'student' is the role of 'John'. + + + + + + + + + + + + + is satisfied by + è soddisfatta da + A relation between a Situation and a Description, e.g. the execution of a Plan satisfies that plan. + + + + + + + + + + + + is setting for + include + A relation between situations and entities, e.g. 'this morning I've prepared my coffee with a new fantastic Arabica', i.e.: the preparation of my coffee this morning is the setting for (an amount of) a new fantastic Arabica. + + + + + + + + + + + + + is specialized by + è specializzato da + A partial order relation that holds between social objects. It represents the subsumption relation between e.g. a Concept and another Concept that is broader in extensional interpretation, but narrowe in intensional interpretation. +E.g. PhDStudent Role specializes Student Role + + + + + + + + + + + + + is subordinated to + è subordinato a + Direct succession applied to concepts. E.g. the role 'Officer' is subordinated to 'Director'. + + + + + + + + + + + + + + is superordinated to + è superordinato a + Direct precedence applied to concepts. E.g. the role 'Executive' is superordinated to 'DepartmentManager'. + + + + + + + + + + + + + is task defined in + è un task definito in + A relation between a description and a task, e.g. the task 'boil' is defined in a recipe for a cake. + + + + + + + + + + + + is task of + è un obiettivo per + A relation between roles and tasks, e.g. 'students have the duty of giving exams' (i.e. the Role 'student' hasTask the Task 'giving exams'). + + + + + + + + + + + + + is time included in + è un tempo nel contesto di + + + + + + + + + + + + + is time of observation of + è il tempo di osservazione di + A relation to represent a (past, present or future) TimeInterval at which an Entity is observable. +In order to encode a specific time, a data value should be related to the TimeInterval. +An alternative way of representing time is the datatype property: hasIntervalDate + + + + + + + + + + + + is unified by + è unificato da + A Collection has a unification criterion, provided by a Description; for example, a community of practice can be unified by a shared theory or interest, e.g. the community that makes research on mirror neurons shares some core knowledge about mirror neurons, which can be represented as a Description MirrorNeuronTheory that unifies the community. There can be several unifying descriptions. + + + + + + + + + + + + + near to + Generic distance relation between any Entity(s). E.g. Rome is near to Florence, astronomy is near to physics. + + + + + + + + + + + + + + overlaps + sovrapposto a + A schematic relation between any entities, e.g. 'the chest region overlaps with the abdomen region', 'my spoken words overlap with hers', 'the time of my leave overlaps with the time of your arrival', 'fibromyalgia overlaps with other conditions'. +Subproperties and restrictions can be used to specialize overlaps for objects, events, time intervals, etc. + + + + + + + + + + + + + parametrizes + parametrizza + The relation between a Parameter, e.g. 'MajorAgeLimit', and a Region, e.g. '18_year'. +For a more data-oriented relation, see hasDataValue + + + + + + + + + + + + + precedes + precede + A relation between entities, expressing a 'sequence' schema. +E.g. 'year 1999 precedes 2000', 'deciding what coffee to use' precedes 'preparing coffee', 'World War II follows World War I', 'in the Milan to Rome autoroute, Bologna precedes Florence', etc. +It can then be used between tasks, processes, time intervals, spatially locate objects, situations, etc. +Subproperties can be defined in order to distinguish the different uses. + + + + + + + + + + + + realizes + realizza + A relation between an information realization and an information object, e.g. the paper copy of the Italian Constitution realizes the text of the Constitution. + + + + + + + + + + + + + realizes information about + realizza informazione che si riferisce a a + The relation between entities and information realizations, e.g. between Italy and a paper copy of the text of the Italian Constitution. + + + + + + + + + + + + + + is in the same setting as + è nella stessa situazione di + http://www.ontologydesignpatterns.org/ont/dul/DUL.owl + A relation between two entities participating in a same Situation; e.g., 'Our company provides an antivenom service' (the situation is the service, the two entities are the company and the antivenom). + + + + + + + + + + + + satisfies + soddisfa + A relation between a Situation and a Description, e.g. the execution of a Plan satisfies that plan. + + + + + + + + + + + + + + specializes + specializza + A partial order relation that holds between social objects. +It mainly represents the subsumption relation between e.g. a Concept or Description and another Concept (resp. Description) that is broader in extensional interpretation, but narrower in intensional interpretation. For example, the role PhDStudent specializes the role Student. +Another possible use is between a Collection that isCoveredBy a Concept A, and another Collection that isCoveredBy a Concept B that on its turm specializes A. For example, the 70,000 series Selmer Mark VI saxophone Collection specializes the Selmer Mark VI saxophone Collection. + + + + + + + + + + + + unifies + unifica + A Collection has a unification criterion, provided by a Description; for example, a community of practice can be unified by a shared theory or interest, e.g. the community that makes research on mirror neurons shares some core knowledge about mirror neurons, which can be represented as a Description MirrorNeuronTheory that unifies the community. There can be several unifying descriptions. + + + + + + + + + + + + + uses concept + usa il concetto + A generic relation holding between a Description and a Concept. In order to be used, a Concept must be previously definedIn another Description. This last condition cannot be encoded for object properties in OWL. + + + + + + + + + + + + + + + + + has data value + ha valore + A datatype property that encodes values from a datatype for an Entity. +There are several ways to encode values in DOLCE (Ultralite): + +1) Directly assert an xsd:_ value to an Entity by using hasDataValue +2) Assert a Region for an Entity by using hasRegion, and then assert an xsd:_ value to that Region, by using hasRegionDataValue +3) Assert a Quality for an Entity by using hasQuality, then assert a Region for that Quality, and assert an xsd:_ value to that Region, by using hasRegionDataValue +4) When the value is required, but not directly observed, assert a Parameter for an xsd:_ value by using hasParameterDataValue, and then associate the Parameter to an Entity by using isConstraintFor +5) When the value is required, but not directly observed, you can also assert a Parameter for a Region by using parametrizes, and then assert an xsd:_ value to that Region, by using hasRegionDataValue + +The five approaches obey different requirements. +For example, a simple value can be easily asserted by using pattern (1), but if one needs to assert an interval between two values, a Region should be introduced to materialize that interval, as pattern (2) suggests. +Furthermore, if one needs to distinguish the individual Quality of a value, e.g. the particular nature of the density of a substance, pattern (3) can be used. +Patterns (4) and (5) should be used instead when a constraint or a selection is modeled, independently from the actual observation of values in the real world. + + + + + + + + + + has event date + evento ha data + A datatype property that encodes values from xsd:date for an Event; a same Event can have more than one xsd:date value: begin date, end date, date at which the interval holds, as well as dates expressed in different formats: xsd:gYear, xsd:dateTime, etc. + + + + + + + + + + + + has interval date + intervallo ha data + A datatype property that encodes values from xsd:date for a TimeInterval; a same TimeInterval can have more than one xsd:date value: begin date, end date, date at which the interval holds, as well as dates expressed in different formats: xsd:gYear, xsd:dateTime, etc. + + + + + + + + + + + + has parameter data value + ha valore + Parametrizes values from a datatype. For example, a Parameter MinimumAgeForDriving hasParameterDataValue 18 on datatype xsd:int, in the Italian traffic code. In this example, MinimumAgeForDriving isDefinedIn the Norm ItalianTrafficCodeAgeDriving. +More complex parametrization requires workarounds. E.g. AgeRangeForDrugUsage could parametrize data value: 14 to 50 on the datatype: xsd:int. Since complex datatypes are not allowed in OWL1.0, a solution to this can only work by creating two 'sub-parameters': MinimumAgeForDrugUsage (that hasParameterDataValue 14) and MaximumAgeForDrugUsage (that hasParameterDataValue 50), which are components of (cf. hasComponent) the main Parameter AgeRangeForDrugUsage. +Ordering on subparameters can be created by using or specializing the object property 'precedes'. + + + + + + + + + + + has region data value + regione ha valore + A datatype property that encodes values for a Region, e.g. a float for the Region Height. + + + + + + + + + + + + + + + + Abstract + Astratto + + + + + Any Entity that cannot be located in space-time. E.g. mathematical entities: formal semantics elements, regions within dimensional spaces, etc. + + + + + + + + + Action + Azione + + + + + + + + + + + 1 + + + An Event with at least one Agent that isParticipantIn it, and that executes a Task that typically isDefinedIn a Plan, Workflow, Project, etc. + + + + + + + + + Agent + Agente + + + + + + + + + + Additional comment: a computational agent can be considered as a PhysicalAgent that realizes a certain class of algorithms (that can be considered as instances of InformationObject) that allow to obtain some behaviors that are considered typical of agents in general. For an ontology of computational objects based on DOLCE see e.g. http://www.loa-cnr.it/COS/COS.owl, and http://www.loa-cnr.it/KCO/KCO.owl. + Any agentive Object , either physical (e.g. a whale, a robot, an oak), or social (e.g. a corporation, an institution, a community). + + + + + + + + + Amount + Quantità + + + + + A quantity, independently from how it is measured, computed, etc. + + + + + + + + + Biological object + + + + + + + + + + Chemical object + + + + + + + + + + Classification + Classificazione + + + + + + + + + + + + + + + + + 3 + + + A special kind of Situation that allows to include time indexing for the classifies relation in situations. For example, if a Situation s 'my old cradle is used in these days as a flower pot' isSettingFor the entity 'my old cradle' and the TimeIntervals '8June2007' and '10June2007', and we know that s satisfies a functional Description for aesthetic objects, which defines the Concepts 'flower pot' and 'flower', then we also need to know what concept classifies 'my old cradle' at what time. +In order to solve this issue, we need to create a sub-situation s' for the classification time: 'my old cradle is a flower pot in 8June2007'. Such sub-situation s' isPartOf s. + + + + + + + + + Collection + Collezione + + + + + + + + Any container for entities that share one or more common properties. E.g. "stone objects", "the nurses", "the Louvre Aegyptian collection", all the elections for the Italian President of the Republic. +A collection is not a logical class: a collection is a first-order entity, while a class is second-order. + + + + + + + + + Collective + Collettivo + + + + + + + + A Collection whose members are agents, e.g. "the nurses", "the Italian rockabilly fans". +Collectives, facon de parler, can act as agents, although they are not assumed here to be agents (they are even disjoint from the class SocialAgent). This is represented by admitting collectives in the range of the relations having Agent in their domain or range. + + + + + + + + + Collective agent + Agente collettivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A SocialAgent that is actedBy agents that are (and act as) members of a Collective. A collective agent can have roles that are also roles of those agents. +For example, in sociology, a 'group action' is the situation in which a number of people (that result to be members of a collective) in a given area behave in a coordinated way in order to achieve a (often common) goal. The Agent in such a Situation is not single, but a CollectiveAgent (a Group). This can be generalized to the notion of social movement, which assumes a large Community or even the entire Society as agents. +The difference between a CollectiveAgent and an Organization is that a Description that introduces a CollectiveAgent is also one that unifies the corresponding Collective. In practice, this difference makes collective agents 'less stable' than organizations, because they have a dedicated, publicly recognizable Description that is conceived to introduce them. + + + + + + + + + Community + Comunità + + + + + + + + + + Concept + Concetto + + + + + + + + + + + + + + + + + + A Concept is a SocialObject, and isDefinedIn some Description; once defined, a Concept can be used in other Description(s). If a Concept isDefinedIn exactly one Description, see the LocalConcept class. +The classifies relation relates Concept(s) to Entity(s) at some TimeInterval + + + + + + + + + Configuration + Configurazione + + A collection whose members are 'unified', i.e. organized according to a certain schema that can be represented by a Description. +Typically, a configuration is the collection that emerges out of a composed entity: an industrial artifact, a plan, a discourse, etc. +E.g. a physical book has a configuration provided by the part-whole schema that holds together its cover, pages, ink. That schema, based on the individual relations between the book and its parts, can be represented in a reified way by means of a (structural) description, which is said to 'unify' the book configuration. + + + + + + + + + Contract + Contratto + + (The content of) an agreement between at least two agents that play a Party Role, about some contract object (a Task to be executed). + + + + + + + + + Description + Descrizione + + + + + A Description is a SocialObject that represents a conceptualization. +It can be thought also as a 'descriptive context' that uses or defines concepts in order to create a view on a 'relational context' (cf. Situation) out of a set of data or observations. +For example, a Plan is a Description of some actions to be executed by agents in a certain way, with certain parameters; a Diagnosis is a Description that provides an interpretation for a set of observed entities, etc. + + + + + + + + + Design + Design + + A Description of the Situation, in terms of structure and function, held by an Entity for some reason. +A design is usually accompanied by the rationales behind the construction of the designed Entity (i.e. of the reasons why a design is claimed to be as such). For example, the actual design (a Situation) of a car or of a law is based on both the specification (a Description) of the structure, and the rationales used to construct cars or laws. +While designs typically describe entities to be constructed, they can also be used to describe 'refunctionalized' entities, or to hypothesize unknown functions. For example, a cradle can be refunctionalized as a flowerpot based on a certain home design. + + + + + + + + + Designed artifact + Artefatto progettato + + + + + + + + A PhysicalArtifact that is also described by a Design. This excludes simple recycling or refunctionalization of natural objects. Most common sense 'artifacts' can be included in this class: cars, lamps, houses, chips, etc. + + + + + + + + + + + + + + + + + + + Diagnosis + Diagnosi + + A Description of the Situation of a system, usually applied in order to control a normal behaviour, or to explain a notable behavior (e.g. a functional breakdown). + + + + + + + + + Entity + Entità + + + + + + + + + + + + Anything: real, possible, or imaginary, which some modeller wants to talk about for some purpose. + + + + + + + + + Event + Evento + + + + + + + + + + + + + + + + + + + + + + Any physical, social, or mental process, event, or state. + +More theoretically, events can be classified in different ways, possibly based on 'aspect' (e.g. stative, continuous, accomplishement, achievement, etc.), on 'agentivity' (e.g. intentional, natural, etc.), or on 'typical participants' (e.g. human, physical, abstract, food, etc.). +Here no special direction is taken, and the following explains why: events are related to observable situations, and they can have different views at a same time. +If a position has to be suggested here anyway, the participant-based classification of events seems the most stable and appropriate for many modelling problems. + +(1) Alternative aspectual views + +Consider a same event 'rock erosion in the Sinni valley': it can be conceptualized as an accomplishment (what has brought a certain state to occur), as an achievement (the state resulting from a previous accomplishment), as a punctual event (if we collapse the time interval of the erosion into a time point), or as a transition (something that has changed a state to a different one). +In the erosion case, we could therefore have good motivations to shift from one aspect to another: a) causation focus, b) effectual focus, c) historical condensation d) transition (causality). + +The different views refer to the same event, but are still different: how to live with this seeming paradox? +A typical solution e.g. in linguistics (cf. Levin's aspectual classes) and in DOLCE Full (cf. WonderWeb D18 axiomatization) is to classify events based on aspectual differences. But this solution would create different identities for a same event, where the difference is only based on the modeller's attitude. +An alternative solution is applied here, and exploits the notion of (observable) Situation; a Situation is a view, consistent with a Description, which can be observed of a set of entities. It can also be seen as a 'relational context' created by an observer on the basis of a 'frame'. Therefore, a Situation allows to create a context where each particular view can have a proper identity, while the Event preserves its own identity. +For example, ErosionAsAccomplishment is a Situation where rock erosion is observed as a process leading to a certain achievement: the conditions (roles, parameters) that suggest such view are stated in a Description, which acts as a 'theory of accomplishments'. Similarly, ErosionAsTransition is a Situation where rock erosion is observed as an event that has changed a state to another: the conditions for such interpretation are stated in a different Description, which acts as a 'theory of state transitions'. +Consider that in no case the Event is changed or enriched in parts by the aspectual view. + +(2) Alternative intentionality views + +Similarly to aspectual views, several intentionality views can be provided for a same Event. For example, one can investigate if an avalanche has been caused by immediate natural forces, or if there is any hint of an intentional effort to activate those natural forces. +Also in this case, the Event as such has not different identities, while the causal analysis generates situations with different identities, according to what Description is taken for interpreting the Event. +On the other hand, if the possible actions of an Agent causing the starting of an avalanche are taken as parts of the Event, then this makes its identity change, because we are adding a part to it. +Therefore, if intentionality is a criterion to classify events or not depends on if an ontology designer wants to consider causality as a relevant dimension for events' identity. + +(3) Alternative participant views + +A slightly different case is when we consider the basic participants to an Event. In this case, the identity of the Event is affected by the participating objects, because it depends on them. +For example, if snow, mountain slopes, wind, waves, etc. are considered as an avalanche basic participants, or if we also want to add water, human agents, etc., makes the identity of an avalanche change. +Anyway, this approach to event classification is based on the designer's choices, and more accurately mirrors lexical or commonsense classifications (see. e.g. WordNet 'supersenses' for verb synsets). + +Ultimately, this discussion has no end, because realists will keep defending the idea that events in reality are not changed by the way we describe them, while constructivists will keep defending the idea that, whatever 'true reality' is about, it can't be modelled without the theoretical burden of how we observe and describe it. +Both positions are in principle valid, but, if taken too radically, they focus on issues that are only partly relevant to the aim of computational ontologies, which only attempt to assist domain experts in representing what they want to conceptualize about a certain portion of reality according to their own ideas. +For this reason, in this ontology both events and situations are allowed, together with descriptions, in order to encode the modelling needs independently from the position (if any) chosen by the designer. + + + + + + + + + Event type + Tipo di evento + + + + + + + + + + A Concept that classifies an Event . An event type describes how an Event should be interpreted, executed, expected, seen, etc., according to the Description that the EventType isDefinedIn (or used in) + + + + + + + + + Formal entity + Entità formale astratta + + Entities that are formally defined and are considered independent from the social context in which they are used. They cannot be localized in space or time. Also called 'Platonic entities'. +Mathematical and logical entities are included in this class: sets, categories, tuples, costants, variables, etc. +Abstract formal entities are distinguished from information objects, which are supposed to be part of a social context, and are localized in space and time, therefore being (social) objects. +For example, the class 'Quark' is an abstract formal entity from the purely set-theoretical perspective, but it is an InformationObject from the viewpoint of ontology design, when e.g. implemented in a logical language like OWL. +Abstract formal entities are also distinguished from Concept(s), Collection(s), and Description(s), which are part of a social context, therefore being SocialObject(s) as well. +For example, the class 'Quark' is an abstract FormalEntity from the purely set-theoretical perspective, but it is a Concept within history of science and cultural dynamics. + +These distinctions allow to represent two different notions of 'semantics': the first one is abstract and formal ('formal semantics'), and formallyInterprets symbols that are about entities whatsoever; for example, the term 'Quark' isAbout the Collection of all quarks, and that Collection isFormalGroundingFor the abstract class 'Quark' (in the extensional sense). +The second notion is social, localized in space-time ('social semantics'), and can be used to interpret entities in the intensional sense. For example, the Collection of all quarks isCoveredBy the Concept 'Quark', which is also expressed by the term 'Quark'. + + + + + + + + + Functional substance + + + + + + + + + + Goal + Scopo + + The Description of a Situation that is desired by an Agent, and usually associated to a Plan that describes how to actually achieve it + + + + + + + + + Group + Gruppo + + + + + + + + + + + + + A CollectiveAgent whose acting agents conceptualize a same SocialRelation . + + + + + + + + + + + + + + + + + + A piece of information, be it concretely realized or not. + + + + + + + + + Information object + Oggetto informativo + + + + + + 1 + + + + + + + + + + + A piece of information, such as a musical composition, a text, a word, a picture, independently from how it is concretely realized. + + + + + + + + + Information realization + Informazione concreta + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A concrete realization of an InformationObject, e.g. the written document containing the text of a law. + + + + + + + + + Local concept + + + + + + + 1 + + + + + + A Concept that isDefinedIn exactly 1 Description. For example, the Concept 'coffee' in a 'preparesCoffee' relation can be defined in that relation, and for all other Description(s) that use it, the isConceptUsedIn property should be applied. Notice therefore that not necessarily all Concept(s) isDefinedIn exactly 1 Description. + + + + + + + + + Method + Metodo + + A method is a Description that defines or uses concepts in order to guide carrying out actions aimed at a solution with respect to a problem. +It is different from a Plan, because plans could be carried out in order to follow a method, but a method can be followed by executing alternative plans. + + + + + + + + + Narrative + + + + + + + + + + Natural person + Persona fisica + + + A person in the physical commonsense intuition: 'have you seen that person walking down the street?' + + + + + + + + + Norm + Norma + + A social norm. + + + + + + + + + Object + Oggetto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Any physical, social, or mental object, or a substance + + + + + + + + + Organism + Organismo + + + A physical objects with biological characteristics, typically that organisms can self-reproduce. + + + + + + + + + Organization + Organizzazione + + An internally structured, conventionally created SocialAgent, needing a specific Role and Agent that plays it, in order to act. + Un agente sociale strutturato internamente e creato convenzionalmente. Per agire, ha bisogno di ruoli e agenti che li ricoprano. + + + + + + + + + Parameter + Parametro + + + + + + + + + + + + + + + A Concept that classifies a Region; the difference between a Region and a Parameter is that regions represent sets of observable values, e.g. the height of a given building, while parameters represent constraints or selections on observable values, e.g. 'VeryHigh'. Therefore, parameters can also be used to constrain regions, e.g. VeryHigh on a subset of values of the Region Height applied to buildings, or to add an external selection criterion , such as measurement units, to regions, e.g. Meter on a subset of values from the Region Length applied to the Region Length applied to roads. + + + + + + + + + Pattern + + Any invariance detected from a dataset, or from observation; also, any invariance proposed based on top-down considerations. +E.g. patterns detected and abstracted by an organism, by pattern recognition algorithms, by machine learning techniques, etc. +An occurrence of a pattern is an 'observable', or detected Situation + + + + + + + + + Persona {it} + Person + + + + + + + + + + Persons in commonsense intuition, which does not apparently distinguish between either natural or social persons. + + + + + + + + + Personification + + A social entity with agentive features, but whose status is the result of a cultural transformation from e.g. a PhysicalObject, an Event, an Abstract, another SocialObject, etc. For example: the holy grail, deus ex machina, gods, magic wands, etc. + + + + + + + + + Physical agent + Agente fisico + + + + + + + + + A PhysicalObject that is capable of self-representing (conceptualizing) a Description in order to plan an Action. +A PhysicalAgent is a substrate for (actsFor) a Social Agent + + + + + + + + + Physical artifact + Artefatto fisico + + + + + + + + Any PhysicalObject that isDescribedBy a Plan . +This axiomatization is weak, but allows to talk of artifacts in a very general sense, i.e. including recycled objects, objects with an intentional functional change, natural objects that are given a certain function, even though they are not modified or structurally designed, etc. PhysicalArtifact(s) are not considered disjoint from PhysicalBody(s), in order to allow a dual classification when needed. E.g., +FunctionalSubstance(s) are included here as well. +Immaterial (non-physical) artifacts (e.g. texts, ideas, cultural movements, corporations, communities, etc. can be modelled as social objects (see SocialObject), which are all 'artifactual' in the weak sense assumed here. + + + + + + + + + Physical attribute + Caratteristica fisica + + + + + + + + + + Physical value of a physical object, e.g. density, color, etc. + + + + + + + + + Physical body + + Physical bodies are PhysicalObject(s), for which we tend to neutralize any possible artifactual character. They can have several granularity levels: geological, chemical, physical, biological, etc. + + + + + + + + + Physical object + Oggetto fisico + + + + + + + + + Any Object that has a proper space region. The prototypical physical object has also an associated mass, but the nature of its mass can greatly vary based on the epistemological status of the object (scientifically measured, subjectively possible, imaginary). + + + + + + + + + Physical place + Luogo fisico + + A physical object that is inherently located; for example, a water area. + + + + + + + + + Place + Luogo + + + + + 1 + + + A location, in a very generic sense: a political geographic entity (Roma, Lesotho), a non-material location determined by the presence of other entities ("the area close to Roma"), pivot events or signs ("the area where the helicopter fell"), complements of other entities ("the area under the table"), etc. +In this generic sense, a Place is an "approximate" location. For an "absolute" location, see the class SpaceRegion + + + + + + + + + Plan + Piano + + + + + + + + A Description having an explicit Goal, to be achieved by executing the plan + + + + + + + + + Plan execution + Esecuzione di piano + + + + + + + + + + + + + Plan executions are situations that proactively satisfy a plan. Subplan executions are proper parts of the whole plan execution. + + + + + + + + + Process + Processo + + This is a placeholder for events that are considered in their evolution, or anyway not strictly dependent on agents, tasks, and plans. +See Event class for some thoughts on classifying events. See also 'Transition'. + + + + + + + + + Project + Progetto + + + + + + + + + + + + + + + + + 3 + + + A Plan that defines Role(s), Task(s), and a specific structure for tasks to be executed in relation to goals to be achieved, in order to achieve the main goal of the project. In other words, a project is a plan with a subgoal structure and multiple roles and tasks. + + + + + + + + + Quality + Qualità + + + + + + + + + + + + + + + + + + + + Any aspect of an Entity (but not a part of it), which cannot exist without that Entity. For example, the way the surface of a specific PhysicalObject looks like is a Quality, while the encoding of that Quality into e.g. a PhysicalAttribute should be modeled as a Region. +From the design viewpoint, the Quality-Region distinction is useful only when individual aspects of an Entity are considered in a domain of discourse. +For example, in an automotive context, it would be irrelevant to consider the aspects of car windows for a specific car, unless the factory wants to check a specific window against design parameters (anomaly detection). +On the other hand, in an antiques context, the individual aspects for a specific piece of furniture are a major focus of attention, and may constitute the actual added value, because the design parameters for old furniture are often not fixed, and may not be viewed as 'anomalies'. + + + + + + + + + Region + Regione + + + + + + + + + + + + + + + + + + + + + + + + + + Any region in a dimensional space (a dimensional space is a maximal Region), which can be used as a value for a quality of an Entity . For example, TimeInterval, SpaceRegion, PhysicalAttribute, Amount, SocialAttribute are all subclasses of Region. +Regions are not data values in the ordinary knowledge representation sense; in order to get patterns for modelling data, see the properties: representsDataValue and hasDataValue + + + + + + + + + Relation + Relazione + + Relations are descriptions that can be considered as the counterpart of formal relations (that are included in the FormalEntity class). +For example, 'givingGrantToInstitution(x,y,z)' with three argument types: Provider(x),Grant(y),Recipient(z), can have a Relation counterpart: 'GivingGrantToInstitution', which defines three Concept instances: Provider,Grant,Recipient. +Since social objects are not formal entities, Relation includes here any 'relation-like' entity in common sense, including social relations. + + + + + + + + + Right + Diritto + + + + + 2 + + + + + + 1 + + + A legal position by which an Agent is entitled to obtain something from another Agent , under specified circumstances, through an enforcement explicited either in a Law, Contract , etc. + + + + + + + + + Role + Ruolo + + + + + + + + + + + + + + A Concept that classifies an Object + + + + + + + + + Insieme {it} + Set + + + + + + + + + + Situation + Situazione + + + + + + + + + A view, consistent with ('satisfying') a Description, on a set of entities. +It can also be seen as a 'relational context' created by an observer on the basis of a 'frame' (i.e. a Description). +For example, a PlanExecution is a context including some actions executed by agents according to certain parameters and expected tasks to be achieved from a Plan; a DiagnosedSituation is a context of observed entities that is interpreted on the basis of a Diagnosis, etc. +Situation is also able to represent reified n-ary relations, where isSettingFor is the top-level relation for all binary projections of the n-ary relation. If used in a transformation pattern for n-ary relations, the designer should take care of creating only one subclass of Situation for each n-ary relation, otherwise the 'identification constraint' (Calvanese et al., IJCAI 2001) could be violated. + + + + + + + + + Social agent + Agente sociale + + + + + + + + + Any individual whose existence is granted simply by its social communicability and capability of action (through some PhysicalAgent). + + + + + + + + + Social object + Oggetto sociale + + + + + + + + + + + + + + + + + + + + + + + + + + + Any Object that exists only within some communication Event, in which at least one PhysicalObject participates in. +In other words, all objects that have been or are created in the process of social communication: for the sake of communication (InformationObject), for incorporating new individuals (SocialAgent, Place), for contextualizing existing entities (Situation), for collecting existing entities (Collection), or for describing existing entities (Description, Concept). +Being dependent on communication, all social objects need to be expressed by some information object (information object are self-expressing). + + + + + + + + + Social attribute + Caratteristica sociale + + + + + + + + Any Region in a dimensional space that is used to represent some characteristic of a SocialObject, e.g. judgment values, social scalars, statistical attributes over a collection of entities, etc. + + + + + + + + + Social person + Persona sociale + + + + + + 1 + + + A SocialAgent that needs the existence of a specific NaturalPerson in order to act (but the lifetime of the NaturalPerson has only to overlap that of the SocialPerson). + Formerly: Person (changed to avoid confusion with commonsense intuition) + + + + + + + + + Social relation + Relazione sociale + + Any social relationship + + + + + + + + + Space region + Regione di spazio + + + Any Region in a dimensional space that is used to localize an Entity ; i.e., it is not used to represent some characteristic (e.g. it excludes time intervals, colors, size values, judgment values, etc.). Differently from a Place , a space region has a specific dimensional space. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Substance + Sostanza + + Any PhysicalBody that has not necessarily specified (designed) boundaries, e.g. a pile of trash, some sand, etc. +In this sense, an artistic object made of trash or a dose of medicine in the form of a pill would be a FunctionalSubstance, and a DesignedArtifact, since its boundaries are specified by a Design; aleatoric objects that are outcomes of an artistic process might be still considered DesignedArtifact(s), and Substance(s). + + + + + + + + + Task + Task + + + + + + + + + + + + + + + + + + + + + + + + + + An EventType that classifies an Action to be executed. +For example, reaching a destination is a task that can be executed by performing certain actions, e.g. driving a car, buying a train ticket, etc. +The actions to execute a task can also be organized according to a Plan that is not the same as the one that defines the task (if any). +For example, reaching a destination could be defined by a plan to get on holidays, while the plan to execute the task can consist of putting some travels into a sequence. + + + + + + + + + Theory + Teoria + + + + + + + + A Theory is a Description that represents a set of assumptions for describing something, usually general. Scientific, philosophical, and commonsense theories can be included here. +This class can also be used to act as 'naturalized reifications' of logical theories (of course, they will be necessarily incomplete in this case, because second-order entities are represented as first-order ones). + + + + + + + + + Time interval + Intervallo di tempo + + Any Region in a dimensional space that aims at representing time. + + + + + + + + + Transition + Transizione + + + + + + + + + + + 1 + + + + + + 8 + + + + + + 3 + + + + + + 2 + + + + + + + + + A transition is a Situation that creates a context for three TimeInterval(s), two additional different Situation(s), one Event, one Process, and at least one Object: the Event is observed as the cause for the transition, one Situation is the state before the transition, the second Situation is the state after the transition, the Process is the invariance under some different transitions (including the one represented here), in which at least one Object is situated. Finally, the time intervals position the situations and the transitional event in time. +This class of situations partly encodes the ontology underlying typical engineering algebras for processes, e.g. Petri Nets. +A full representation of the transition ontology is outside the expressivity of OWL, because we would need qualified cardinality restrictions, coreference, property equivalence, and property composition. + + + + + + + + + Type collection + Collezione di un tipo + + A Collection whose members are the maximal set of individuals that share the same (named) type, e.g. "the gem stones", "the Italians". +This class is very useful to apply a variety of the so-called "ClassesAsValues" design pattern, when it is used to talk about the extensional aspect of a class. An alternative variety of the pattern applies to the intensional aspect of a class, and the class Concept should be used instead. + + + + + + + + + Unit of measure + Unità di misura + + + + + + + + Units of measure are conceptualized here as parameters on regions, which can be valued as datatype values. + + + + + + + + + Workflow + Workflow + + + + + + + + + + + + + + + + + 3 + + + A Plan that defines Role(s), Task(s), and a specific structure for tasks to be executed, usually supporting the work of an Organization + + + + + + + + + Workflow execution + Esecuzione di workflow + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ontologies/ssn.owl b/ontologies/ssn.owl new file mode 100644 index 0000000..e0e30aa --- /dev/null +++ b/ontologies/ssn.owl @@ -0,0 +1,1090 @@ + + + + W3C Semantic Sensor Network Incubator Group + http://www.w3.org/2005/Incubator/ssn/ + http://purl.oclc.org/NET/ssnx/ssn + Semantic Sensor Network Ontology + 2009-12-02 + 2011-06-20 + Copyright 2009 - 2011 W3C. + + This ontology describes sensors and observations, and related concepts. It does not describe domain concepts, time, locations, etc. these are intended to be included from other ontologies via OWL imports. + This ontology is developed by the W3C Semantic Sensor Networks Incubator Group (SSN-XG). The concepts and structure of the ontology were discussed in the group's meetings and on the mailing list. For more information on the group's activities see: http://www.w3.org/2005/Incubator/ssn/ + Please report any errors to the Semantic Sensor Network Incubator Activity via the public W3C list public-xg-ssn@w3.org + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Feature of Interest + + + + + + + + + + + + + + + + + + + + + + http://purl.oclc.org/NET/ssnx/ssn + A feature is an abstraction of real world phenomena (thing, person, event, etc). + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + skos:exactMatch 'feature' [O&M] + http://www.opengeospatial.org/standards/om + + + Observation + + + + + + + + + + + + 1 + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + 1 + + + + + + + + + + + + + + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + An Observation is a Situation in which a Sensing method has been used to estimate or calculate a value of a Property of a FeatureOfInterest. Links to Sensing and Sensor describe what made the Observation and how; links to Property and Feature detail what was sensed; the result is the output of a Sensor; other metadata details times etc. + http://purl.oclc.org/NET/ssnx/ssn + skos:closeMatch 'observation' [O&M] + http://www.opengeospatial.org/standards/om + +Observation in this ontology and O&M are described differently (O&M records an observation as an act/event), but they record the same thing and are essentially interchangeable. The difference is in the ontological structure of the two, not the data or use. + +Observation here records a Situation (the estimation of the value of a Property) and a description of the method that was used (along with the participants), while O&M interprets an Observation as the event itself; there must, however, have been an event that lead to our situation, so both are records of events. The distinction is between the event itself and the record of what happened in that event. + + +skos:closeMatch 'measurement result' [VIM 2.9] http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + +Measurement result in VIM is the measured value plus any other relevant information, which means that measurement result and observation will often be associated to the same data (a value, a time, a property, etc.). + + + + + 0 + + + + + + 0 + + + + + + 0 + + + + + Property + + + + + + + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://purl.oclc.org/NET/ssnx/ssn + An observable Quality of an Event or Object. That is, not a quality of an abstract entity as is also allowed by DUL's Quality, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity and is observable by a sensor. + skos:exactMatch 'property' [O&M] + http://www.opengeospatial.org/standards/om + + + Sensing + + http://purl.oclc.org/NET/ssnx/ssn + Sensing is a process that results in the estimation, or calculation, of the value of a phenomenon. + http://www.w3.org/2005/Incubator/ssn/ + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + + + Sensor + + + + + + + + + + + + + + + + + + + + http://purl.oclc.org/NET/ssnx/ssn + skos:exactMatch 'sensor' [SensorML OGC-0700] + http://www.opengeospatial.org/standards/sensorml + + skos:closeMatch 'observation procedure' [O&M] + http://www.opengeospatial.org/standards/om + +O&M allows sensors, methods, instruments, systems, algorithms and process chains as the processUsed of an observation; this ontology allows a similar range of things (any thing that can do sensing), just they are all grouped under the term sensor (which is thus wider than the O&M concept). + A sensor can do (implements) sensing: that is, a sensor is any entity that can follow a sensing method and thus observe some Property of a FeatureOfInterest. Sensors may be physical devices, computational methods, a laboratory setup with a person following a method, or any other thing that can follow a Sensing Method to observe a Property. + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + + + + + + + + + + Sensor Input + + + + + + + + + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://www.w3.org/2005/Incubator/ssn/ + An Event in the real world that 'triggers' the sensor. The properties associated to the stimulus may be different to eventual observed property. It is the event, not the object that triggers the sensor. + + + Sensor Output + + + + + + + + + + + + + + A sensor outputs a piece of information (an observed value), the value itself being represented by an ObservationValue. + http://www.w3.org/2005/Incubator/ssn/ + + skos:closeMatch 'observation result' [O&M] + http://www.opengeospatial.org/standards/om + +See comments at ObservationValue. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + + + Stimulus + + http://www.w3.org/2005/Incubator/ssn/ + http://purl.oclc.org/NET/ssnx/ssn + An Event in the real world that 'triggers' the sensor. The properties associated to the stimulus may be different to eventual observed property. It is the event, not the object that triggers the sensor. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + + + + detects + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://purl.oclc.org/NET/ssnx/ssn + A relation from a sensor to the Stimulus that the sensor can detect. +The Stimulus itself will be serving as a proxy for (see isProxyOf) some observable property. + + + feature of interest + A relation between an observation and the entity whose quality was observed. For example, in an observation of the weight of a person, the feature of interest is the person and the quality is weight. + http://purl.oclc.org/NET/ssnx/ssn + skos:exactMatch 'featureOfInterest' [O&M - ISO/DIS 19156] + http://portal.opengeospatial.org/files/?artifact_id=41579 + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + + + + for property + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://purl.oclc.org/NET/ssnx/ssn + A relation between some aspect of a sensing entity and a property. For example, from a sensor to the properties it can observe, or from a deployment to the properties it was installed to observe. Also from a measurement capability to the property the capability is described for. (Used in conjunction with ofFeature). + + + has property + + http://purl.oclc.org/NET/ssnx/ssn + A relation between a FeatureOfInterest and a Property of that feature. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + + + + implemented by + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://purl.oclc.org/NET/ssnx/ssn + A relation between the description of an algorithm, procedure or method and an entity that implements that method in some executable way. For example, between a scientific measuring method and a sensor the senses via that method. + + + + implements + A relation between an entity that implements a method in some executable way and the description of an algorithm, procedure or method. For example, between a Sensor and the scientific measuring method that the Sensor uses to observe a Property. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://purl.oclc.org/NET/ssnx/ssn + + + + + is property of + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://purl.oclc.org/NET/ssnx/ssn + Relation between a FeatureOfInterest and a Property (a Quality observable by a sensor) of that feature. + + + + isProxyFor + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://purl.oclc.org/NET/ssnx/ssn + A relation from a Stimulus to the Property that the Stimulus is serving as a proxy for. For example, the expansion of the quicksilver is a stimulus that serves as a proxy for temperature, or an increase or decrease in the spinning of cups on a wind sensor is serving as a proxy for wind speed. + + + observation result + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + skos:closeMatch 'result' [O&M - ISO/DIS 19156] + http://portal.opengeospatial.org/files/?artifact_id=41579 + Relation linking an Observation (i.e., a description of the context, the Situation, in which the observatioin was made) and a Result, which contains a value representing the value associated with the observed Property. + + + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://purl.oclc.org/NET/ssnx/ssn + + + + observed property + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://purl.oclc.org/NET/ssnx/ssn + Relation linking an Observation to the Property that was observed. The observedProperty should be a Property (hasProperty) of the FeatureOfInterest (linked by featureOfInterest) of this observation. + skos:exactMatch 'observedProperty' [O&M - ISO/DIS 19156] + http://portal.opengeospatial.org/files/?artifact_id=41579 + + + + of feature + A relation between some aspect of a sensing entity and a feature. For example, from a sensor to the features it can observe properties of, or from a deployment to the features it was installed to observe. Also from a measurement capability to the feature the capability is described for. (Used in conjunction with forProperty). + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + + + sensing method used + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton + http://www.bipm.org/en/committees/jc/jcgm/wg2.html + A (measurement) procedure is a detailed description of a measurement according to one or more measurement principles and to a given measurement method, based on a measurement model and including any calculation to obtain a measurement result [VIM 2.6] + http://purl.oclc.org/NET/ssnx/ssn + + + + + System + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Model#System + http://www.w3.org/2005/Incubator/ssn/ + System is a unit of abstraction for pieces of infrastructure (and we largely care that they are) for sensing. A system has components, its subsystems, which are other systems. + http://purl.oclc.org/NET/ssnx/ssn + + + + has subsystem + Haspart relation between a system and its parts. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Model#System + + + + + Input + + http://marinemetadata.org/community/teams/ontdevices + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Model#Process + http://purl.oclc.org/NET/ssnx/ssn + Any information that is provided to a process for its use [MMI OntDev] + + + Output + Any information that is reported from a process. [MMI OntDev] + http://marinemetadata.org/community/teams/ontdevices + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Model#Process + + + Process + + + + + + + + + + + + + + + + + + + + http://www.w3.org/2005/Incubator/ssn/ + A process has an output and possibly inputs and, for a composite process, describes the temporal and dataflow dependencies and relationships amongst its parts. [SSN XG] + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Model#Process + + + + has input + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Model#Process + http://purl.oclc.org/NET/ssnx/ssn + + + has output + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Model#Process + http://purl.oclc.org/NET/ssnx/ssn + + + is produced by + Relation between a producer and a produced entity: for example, between a sensor and the produced output. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Model#Process + + + + Sensing Device + + + http://www.w3.org/2005/Incubator/ssn/ + A sensing device is a device that implements sensing. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#Measuring + + + + Sensor Data Sheet + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#Measuring + A data sheet records properties of a sensor. A data sheet might describe for example the accuracy in various conditions, the power use, the types of connectors that the sensor has, etc. + +Generally a sensor's properties are recorded directly (with hasMeasurementCapability, for example), but the data sheet can be used for example to record the manufacturers specifications verses observed capabilites, or if more is known than the manufacturer specifies, etc. The data sheet is an information object about the sensor's properties, rather than a direct link to the actual properties themselves. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/ + + + + observes + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#Measuring + http://purl.oclc.org/NET/ssnx/ssn + Relation between a Sensor and a Property that the sensor can observe. + +Note that, given the DUL modelling of Qualities, a sensor defined with 'observes only Windspeed' technically links the sensor to particular instances of Windspeed, not to the concept itself - OWL can't express concept-concept relations, only individual-individual. The property composition ensures that if an observation is made of a particular quality then one can infer that the sensor observes that quality. + + + + + + + + + + + + Accuracy + + skos:exactMatch 'measurement accuracy/accuracy' [VIM 2.13] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + http://purl.oclc.org/NET/ssnx/ssn + The closeness of agreement between the value of an observation and the true value of the observed quality. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + + + detection limit + + skos:exactMatch 'detection limit' [VIM 4.18] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + http://purl.oclc.org/NET/ssnx/ssn + An observed value for which the probability of falsely claiming the absence of a component in a material is β, given a probability α of falsely claiming its presence. + + + Drift + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + A, continuous or incremental, change in the reported values of observations over time for an unchanging quality. + skos:exactMatch 'instrumental drift' [VIM 4.21] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + http://purl.oclc.org/NET/ssnx/ssn + + + Frequency + + The smallest possible time between one observation and the next. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + + + Latency + + http://purl.oclc.org/NET/ssnx/ssn + The time between a request for an observation and the sensor providing a result. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + + + Measurement Capability + + + + + + + + + + + + + + + + + + + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + http://purl.oclc.org/NET/ssnx/ssn + Collects together measurement properties (accuracy, range, precision, etc) and the environmental conditions in which those properties hold, representing a specification of a sensor's capability in those conditions. + +The conditions specified here are those that affect the measurement properties, while those in OperatingRange represent the sensor's standard operating conditions, including conditions that don't affect the observations. + Similar idea to MeasurementCapability in MMI Device Ontology + http://marinemetadata.org/community/teams/ontdevices + +But the the two express the relationship between constraints and multiple measurement properties differently. + +The conditions linked to a MeasurementCapability are skos:exactMatch to 'influence quantity' [VIM 2.52] +http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + + + Measurement Property + + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + An identifiable and observable characteristic of a sensor's observations or ability to make observations. + + + Measurement Range + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + The set of values that the sensor can return as the result of an observation under the defined conditions with the defined measurement properties. (If no conditions are specified or the conditions do not specify a range for the observed qualities, the measurement range is to be taken as the condition for the observed qualities.) + http://purl.oclc.org/NET/ssnx/ssn + skos:exactMatch 'measuring interval/measurement range' [VIM 4.7] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + + + Precision + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + The closeness of agreement between replicate observations on an unchanged or similar quality value: i.e., a measure of a sensor's ability to consitently reproduce an observation. + http://purl.oclc.org/NET/ssnx/ssn + skos:exactMatch 'measurement precision/precision' [VIM 2.15] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + + + Resolution + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + http://purl.oclc.org/NET/ssnx/ssn + The smallest difference in the value of a quality being observed that would result in perceptably different values of observation results. + skos:exactMatch 'resolution' [VIM 4.14] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + + + Response time + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + The time between a (step) change inthe value of an observed quality and a sensor (possibly with specified error) 'settling' on an observed value. + skos:exactMatch 'step response time' [VIM 4.23] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + http://purl.oclc.org/NET/ssnx/ssn + + + Selectivity + + skos:exactMatch 'selectivity' [VIM 4.13] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + Selectivity is a property of a sensor whereby it provides observed values for one or more qualities such that the values of each quality are independent of other qualities in the phenomenon, body, or substance being investigated. + http://purl.oclc.org/NET/ssnx/ssn + + + Sensitivity + + skos:exactMatch 'sensitivity' [VIM 4.12] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + http://purl.oclc.org/NET/ssnx/ssn + Sensitivity is the quotient of the change in a result of sensor and the corresponding change in a value of a quality being observed. + + + + has measurement capability + Relation from a Sensor to a MeasurementCapability describing the measurement properties of the sensor. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + + + + has measurement property + Relation from a MeasurementCapability to a MeasurementProperty. For example, to an accuracy (see notes at MeasurementCapability). + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Sensor#MeasuringCapability + http://purl.oclc.org/NET/ssnx/ssn + + + + + + + made observation + http://purl.oclc.org/NET/ssnx/ssn + Relation between a Sensor and Observations it has made. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Observation#Observation + + + + + observation result time + http://purl.oclc.org/NET/ssnx/ssn + The result time is the time when the procedure associated with the observation act was applied. + The result time shall describe the time when the result became available, typically when the procedure associated with the observation was completed For some observations this is identical to the phenomenonTime. However, there are important cases where they differ.[O&M] + http://www.opengeospatial.org/standards/om + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Observation#Observation + + + + observation sampling time + Rebadged as phenomenon time in [O&M]. The phenomenon time shall describe the time that the result applies to the property of the feature-of-interest. This is often the time of interaction by a sampling procedure or observation procedure with a real-world feature. + http://www.opengeospatial.org/standards/om + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Observation#Observation + http://purl.oclc.org/NET/ssnx/ssn + The sampling time is the time that the result applies to the feature-of-interest. This is the time usually required for geospatial analysis of the result. + + + + quality of observation + skos:exactMatch 'resultQuality' [O&M - ISO/DIS 19156] + http://portal.opengeospatial.org/files/?artifact_id=41579 + Relation linking an Observation to the adjudged quality of the result. This is of course complimentary to the MeasurementCapability information recorded for the Sensor that made the Observation. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Observation#Observation + http://purl.oclc.org/NET/ssnx/ssn + + + + + Deployment + + + + + + + + + + + + + + skos:closeMatch 'Deployment' [MMI Dev] + http://marinemetadata.org/community/teams/ontdevices + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#Deployment + http://purl.oclc.org/NET/ssnx/ssn + The ongoing Process of Entities (for the purposes of this ontology, mainly sensors) deployed for a particular purpose. For example, a particular Sensor deployed on a Platform, or a whole network of Sensors deployed for an observation campaign. The deployment may have sub processes, such as installation, maintenance, addition, and decomissioning and removal. + + + Deployment-related Process + + + + + + + + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/ + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#Deployment + Place to group all the various Processes related to Deployment. For example, as well as Deplyment, installation, maintenance, deployment of further sensors and the like would all be classified under DeploymentRelatedProcess. + + + + deployed on platform + Relation between a deployment and the platform on which the system was deployed. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#Deployment + http://purl.oclc.org/NET/ssnx/ssn + + + + + deployed system + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#Deployment + Relation between a deployment and the deployed system. + + + + deployment process part + Has part relation between a deployment process and its constituent processes. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#Deployment + + + + has deployment + http://purl.oclc.org/NET/ssnx/ssn + Relation between a System and a Deployment, recording that the System/Sensor was deployed in that Deployment. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#Deployment + + + + + in deployment + Relation between a Platform and a Deployment, recording that the object was used as a platform for a system/sensor for a particular deployment: as in this PhysicalObject is acting as a Platform inDeployment Deployment. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#Deployment + + + + + Platform + + + + + + + + + + + + + + skos:exactMatch 'platform' [SensorML OGC-0700] + http://www.opengeospatial.org/standards/sensorml + An Entity to which other Entities can be attached - particuarly Sensors and other Platforms. For example, a post might act as the Platform, a bouy might act as a Platform, or a fish might act as a Platform for an attached sensor. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#PlatformSite + http://purl.oclc.org/NET/ssnx/ssn + + + + attached system + http://purl.oclc.org/NET/ssnx/ssn + Relation between a Platform and any Systems (e.g., Sensors) that are attached to the Platform. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#PlatformSite + + + + on platform + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#PlatformSite + Relation between a System (e.g., a Sensor) and a Platform. The relation locates the sensor relative to other described entities entities: i.e., the Sensor s1's location is Platform p1. More precise locations for sensors in space (relative to other entities, where attached to another entity, or in 3D space) are made using DOLCE's Regions (SpaceRegion). + + + + + + Maintenance Schedule + + Schedule of maintenance for a system/sensor in the specified conditions. + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + + + Operating Property + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + http://purl.oclc.org/NET/ssnx/ssn + An identifiable characteristic of the environmental and other conditions in which the sensor is intended to operate. May include power ranges, power sources, standard configurations, attachments and the like. + + + Operating Range + + + + + + + + + + + + + + The environmental conditions and characteristics of a system/sensor's normal operating environment. Can be used to specify for example the standard environmental conditions in which the sensor is expected to operate (a Condition with no OperatingProperty), or how the environmental and other operating properties relate: i.e., that the maintenance schedule or power requirements differ according to the conditions. + skos:broaderMatch 'reference operating condition' [VIM 4.11] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + +The difference is that here we also allow for qualities that aren't VIM influence quantities [VIM 2.52] - for example, a quantity that alters the power requirements, but doesn't affect the measurement properties - conditions specified in MeasurementCapability should be influence quantities. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + http://purl.oclc.org/NET/ssnx/ssn + + + Survival Property + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + http://purl.oclc.org/NET/ssnx/ssn + An identifiable characteristic that represents the extent of the sensors useful life. Might include for example total battery life or number of recharges, or, for sensors that are used only a fixed number of times, the number of observations that can be made before the sensing capability is depleted. + + + Survival Range + + + + + + + + + + + + + + The conditions a sensor can be exposed to without damage: i.e., the sensor continues to operate as defined using MeasurementCapability. If, however, the SurvivalRange is exceeded, the sensor is 'damaged' and MeasurementCapability specifications may no longer hold. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + skos:narrowerMatch 'limiting operating condition' [VIM 4.10] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + http://purl.oclc.org/NET/ssnx/ssn + + + System Lifetime + + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + Total useful life of a sensor/system (expressed as total life since manufacture, time in use, number of operations, etc.). + + + + has operating property + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + Relation from an OperatingRange to a Property. For example, to a battery lifetime. + http://purl.oclc.org/NET/ssnx/ssn + + + + has operating range + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + http://purl.oclc.org/NET/ssnx/ssn + Relation from a System to an OperatingRange describing the normal operating environment of the System. + + + + has survival property + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + Relation from a SurvivalRange to a Property describing the survial range of a system. For example, to the temperature extreme that a system can withstand before being considered damaged. + + + + has survival range + http://purl.oclc.org/NET/ssnx/ssn + A Relation from a System to a SurvivalRange. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Deploy#OperatingRestriction + + + + + Observation Value + + + + + + + + http://purl.oclc.org/NET/ssnx/ssn + The value of the result of an Observation. An Observation has a result which is the output of some sensor, the result is an information object that encodes some value for a Feature. + skos:exactMatch 'measured quantity value' [VIM 2.10] + http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2008.pdf + +skos:exactMatch 'observed value' [SensorML OGC-0700] +http://www.opengeospatial.org/standards/sensorml + +skos:closeMatch 'observation result' [O&M] +http://www.opengeospatial.org/standards/om + +O&M conflates what we have as SensorOutput and ObservationValue into observation result, though the OGC standard does say "result contains a value" and "a result which has a value", which fits naturally with the model here. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Base#Data + + + + has value + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Base#Data + http://purl.oclc.org/NET/ssnx/ssn + + + + + + end time + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Base#Time + + + + start time + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Base#Time + + + + + Condition + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Base#ConstraintBlock + Used to specify ranges for qualities that act as conditions on a system/sensor's operation. For example, wind speed of 10-60m/s is expressed as a condition linking a quality, wind speed, a unit of measurement, metres per second, and a set of values, 10-60, and may be used as the condition on a MeasurementProperty, for example, to state that a sensor has a particular accuracy in that condition. + http://purl.oclc.org/NET/ssnx/ssn + + + + in condition + Describes the prevailing environmental conditions for MeasurementCapabilites, OperatingConditions and SurvivalRanges. Used for example to say that a sensor has a particular accuracy in particular conditions. (see also MeasurementCapability) + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Base#ConstraintBlock + http://purl.oclc.org/NET/ssnx/ssn + + + + Device + + + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Device#Device + A device is a physical piece of technology - a system in a box. Devices may of course be built of smaller devices and software components (i.e. systems have components). + http://purl.oclc.org/NET/ssnx/ssn + http://www.w3.org/2005/Incubator/ssn/ + + + + + Battery Lifetime + + http://purl.oclc.org/NET/ssnx/ssn + Total useful life of a battery. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Energy#EnergyRestriction + + + Operating Power Range + + Power range in which system/sensor is expected to operate. + http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Energy#EnergyRestriction + http://purl.oclc.org/NET/ssnx/ssn + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..5ec1b16 --- /dev/null +++ b/pom.xml @@ -0,0 +1,58 @@ + + 4.0.0 + fr.insa.iss + semantic + 0.0.1-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + org.apache.jena + jena-tdb + 3.0.1 + + + org.apache.jena + jena-core + 3.0.1 + + + org.apache.jena + jena-base + 3.0.1 + + + org.apache.jena + jena-arq + 3.0.1 + + + org.glassfish + javax.json + 1.0.4 + + + junit + junit + 4.12 + test + + + fr.irit.melodi.semantic-web + sparql-lib + 1.0.0 + + + diff --git a/src/main/java/semantic/controler/Controler.java b/src/main/java/semantic/controler/Controler.java new file mode 100644 index 0000000..6752665 --- /dev/null +++ b/src/main/java/semantic/controler/Controler.java @@ -0,0 +1,73 @@ +package semantic.controler; + +import java.io.IOException; +import java.util.List; + +import semantic.model.DoItYourselfModel; +import semantic.model.IModelFunctions; +import semantic.model.ObservationEntity; +import semantic.model.SemanticModel; +import semantic.view.JSONEndpoint; + +public class Controler +{ + private SemanticModel model; + private IModelFunctions customModel; + private IControlFunctions customControl; + + public Controler() + { + // TODO : Change the path to the one to your own ontology + this.model = new SemanticModel("tp-iss.ttl"); + this.customModel = new DoItYourselfModel(this.model); + this.customControl = new DoItYourselfControl(this.model, this.customModel); + this.initializeContext(); + } + + private void initializeContext() + { + this.customModel.createPlace("Aarhus"); + } + + public void exportModel(String path) + { + this.model.exportModel(path); + } + + public SemanticModel getModel() + { + return this.model; + } + + public IModelFunctions getCustomModel() + { + return this.customModel; + } + + public IControlFunctions getCustomControl() + { + return this.customControl; + } + + public static void main(String[] args) + { + Controler c = new Controler(); + try + { + // TODO : Change the path to the one of the file you downloaded + List obsList = JSONEndpoint.parseObservations("tempm.txt"); + String tempURI = c.model.getEntityURI("Température").get(0); + c.getCustomControl().instantiateObservations(obsList, tempURI); + // TODO : Same thing, for humidity + obsList = JSONEndpoint.parseObservations("tempm.txt"); + String humidityURI = c.model.getEntityURI("Température").get(0); + c.getCustomControl().instantiateObservations(obsList, humidityURI); + // TODO : Change the path so that it points where you want the export to be done + c.exportModel("export.ttl"); + } + catch (IOException e) + { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/semantic/controler/DoItYourselfControl.java b/src/main/java/semantic/controler/DoItYourselfControl.java new file mode 100644 index 0000000..2015762 --- /dev/null +++ b/src/main/java/semantic/controler/DoItYourselfControl.java @@ -0,0 +1,25 @@ +package semantic.controler; + +import java.util.List; + +import semantic.model.IConvenienceInterface; +import semantic.model.IModelFunctions; +import semantic.model.ObservationEntity; + +public class DoItYourselfControl implements IControlFunctions +{ + private IConvenienceInterface model; + private IModelFunctions cusotmModel; + + public DoItYourselfControl(IConvenienceInterface model, IModelFunctions customModel) + { + this.model = model; + this.cusotmModel = customModel; + } + + @Override + public void instantiateObservations(List obsList, + String paramURI) { + // TODO Auto-generated method stub + } +} diff --git a/src/main/java/semantic/controler/IControlFunctions.java b/src/main/java/semantic/controler/IControlFunctions.java new file mode 100644 index 0000000..b1ee6fc --- /dev/null +++ b/src/main/java/semantic/controler/IControlFunctions.java @@ -0,0 +1,16 @@ +package semantic.controler; + +import java.util.List; + +import semantic.model.ObservationEntity; + +public interface IControlFunctions +{ + /** + * This function parses the list of observations extracted from the dataset, + * and instanciates them in the knowledge base. + * @param obsList + * @param phenomenonURI + */ + public void instantiateObservations(List obsList, String phenomenonURI); +} diff --git a/src/main/java/semantic/model/DoItYourselfModel.java b/src/main/java/semantic/model/DoItYourselfModel.java new file mode 100644 index 0000000..6050dd8 --- /dev/null +++ b/src/main/java/semantic/model/DoItYourselfModel.java @@ -0,0 +1,41 @@ +package semantic.model; + +public class DoItYourselfModel implements IModelFunctions +{ + IConvenienceInterface model; + + public DoItYourselfModel(IConvenienceInterface m) { + this.model = m; + } + + @Override + public String createPlace(String name) { + // TODO Auto-generated method stub + return null; + } + + @Override + public String createInstant(TimestampEntity instant) { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getInstantURI(TimestampEntity instant) { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getInstantTimestamp(String instantURI) + { + // TODO Auto-generated method stub + return null; + } + + @Override + public String createObs(String value, String paramURI, String instantURI) { + // TODO Auto-generated method stub + return null; + } +} diff --git a/src/main/java/semantic/model/IConvenienceInterface.java b/src/main/java/semantic/model/IConvenienceInterface.java new file mode 100644 index 0000000..d6fb73c --- /dev/null +++ b/src/main/java/semantic/model/IConvenienceInterface.java @@ -0,0 +1,106 @@ +package semantic.model; + +import java.util.List; + +/** + * Provides all the functions you should need in the scope of this lab + */ +public interface IConvenienceInterface +{ + /** + * There are multiple temperature sensors on the platform. This method indicates + * which one performed a measure based on its timestamp. + * @param obs, useful to get the timestamp + * @param paramURI, the URI of the observed parameter + * @return the URI of the sensor having performed the measure. + */ + public String whichSensorDidIt(String timestamp, String paramURI); + /** + * Specify, for a given observation, that it came from the provided sensor. + * @param obsURI + * @param sensorURI + */ + public void addObservationToSensor(String obsURI, String sensorURI); + + /** + * @param obsURI + * @param sensorURI + * @return true if the observation is linked to the sensor. Useful for test purpose mainly. + */ + public boolean hasSensorDoneIt(String obsURI, String sensorURI); + + /** + * @param label + * @return all the URIs of instances of the class of concepts associated to this label. + */ + public List getInstancesURI(String classURI); + + /** + * @param label + * @return the URI of the classes associated to this label + */ + public List getEntityURI(String label); + /** + * Tests whether the provided instance is a subclass (recursively) of the provided type. + * It means that this function will always return true if the type is owl:Thing. + * @param instanceURI + * @param typeURI + * @return + */ + public boolean isOfType(String instanceURI, String typeURI); + /** + * Creates an instance of the provided type, with the provided label. + * @param label + * @param the URI of the type + * @return the URI of the created individual + */ + public String createInstance(String label, String type); + /** + * Adds a triple in the knowledge base + * @param subjectURI + * @param propertyURI + * @param objectURI + */ + public void addObjectPropertyToIndividual(String subjectURI, String propertyURI, String objectURI); + /** + * Adds a triple in the knowledge base + * @param subjectURI + * @param propertyURI + * @param data + */ + public void addDataPropertyToIndividual(String subjectURI, String propertyURI, String data); + + /** + * Generates a .ttl file containing a serialization of the model. + * @param path + */ + public void exportModel(String path); + + /** + * @param subjectURI + * @param dataPropertyURI + * @param dataValue + * @return if provided subject has a certain value for provided property + */ + public boolean hasDataPropertyValue(String subjectURI, String dataPropertyURI, String dataValue); + + /** + * @param subjectURI + * @param propertyURI + * @param objectURI + * @return if provided subject has a certain relationship with another entity + */ + public boolean hasObjectProperty(String subjectURI, String propertyURI, String objectURI); + + /** + * @param entityURI + * @return a list of the labels of the entity + */ + public List listLabels(String entityURI); + + /** + * @param entityURI + * @return A list of couples + */ + public List> listProperties(String entityURI); +} diff --git a/src/main/java/semantic/model/IModelFunctions.java b/src/main/java/semantic/model/IModelFunctions.java new file mode 100644 index 0000000..b0c542e --- /dev/null +++ b/src/main/java/semantic/model/IModelFunctions.java @@ -0,0 +1,47 @@ +package semantic.model; + +/** + * This is the list of functions you have to implement. + */ +public interface IModelFunctions +{ + /** + * Creates an instance of the class "Lieu" of your ontology + * @param name + * @return the URI of the instance + */ + public String createPlace(String name); + + /** + * Creates an instance of the "Instant" class of your ontology. You'll have to link it to + * a data property that represents the timestamp, serialized as it is in the original data file. + * Only one instance should be created for each actual timestamp. + * @param instant + * @return the URI of the created instant, null if it already existed + */ + public String createInstant(TimestampEntity instant); + + /** + * Returns the instant with the provided timestamp if it exists. + * @param instant + * @return the URI of the representation of the instant, null otherwise. + */ + public String getInstantURI(TimestampEntity instant); + + /** + * @param instantURI + * @return the value of the timestamp associated to the instant individual, null if the individual doesn't exist + */ + public String getInstantTimestamp(String instantURI); + + /** + * Creates an Observation of the provided value for the provided parameter + * at the provided time. It uses both object and data properties from the ontology + * to link the observation to its value, instant, and parameter. + * @param value + * @param param + * @param instantURI + * @return the URI of the created observation + */ + public String createObs(String value, String paramURI, String instantURI); +} diff --git a/src/main/java/semantic/model/ObservationEntity.java b/src/main/java/semantic/model/ObservationEntity.java new file mode 100644 index 0000000..426ceb8 --- /dev/null +++ b/src/main/java/semantic/model/ObservationEntity.java @@ -0,0 +1,37 @@ +package semantic.model; + +public class ObservationEntity +{ + private Float value; + private TimestampEntity timestamp; + + public ObservationEntity(Float value, TimestampEntity timestamp) + { + this.value = value; + this.timestamp = timestamp; + } + + public Float getValue() + { + return value; + } + public void setValue(Float value) + { + this.value = value; + } + public TimestampEntity getTimestamp() + { + return timestamp; + } + public void setTimestamp(TimestampEntity timestamp) + { + this.timestamp = timestamp; + } + + public String toString() + { + return "Observation entity : "+value+" at "+timestamp.getTimeStamp(); + } + + +} diff --git a/src/main/java/semantic/model/SemanticModel.java b/src/main/java/semantic/model/SemanticModel.java new file mode 100644 index 0000000..3fdf9b7 --- /dev/null +++ b/src/main/java/semantic/model/SemanticModel.java @@ -0,0 +1,557 @@ +package semantic.model; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.AbstractMap; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.Set; +import java.util.Map.Entry; + +import org.apache.jena.query.Dataset; +import org.apache.jena.query.DatasetFactory; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryExecution; +import org.apache.jena.query.QueryExecutionFactory; +import org.apache.jena.query.QueryFactory; +import org.apache.jena.query.QuerySolution; +import org.apache.jena.query.ReadWrite; +import org.apache.jena.query.ResultSet; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.rdf.model.ModelFactory; +import org.apache.jena.rdf.model.RDFNode; +import org.apache.jena.rdf.model.Statement; +import org.apache.jena.rdf.model.StmtIterator; +import org.apache.jena.sparql.core.DatasetGraph; +import org.apache.jena.sparql.core.DatasetGraphFactory; +import org.apache.jena.update.UpdateAction; + +import fr.irit.melodi.sparql.query.ask.SparqlAsk; +import fr.irit.melodi.sparql.query.dataquery.insert.SparqlInsertData; +import fr.irit.melodi.sparql.query.dataquery.insert.SparqlInsertWhere; +import fr.irit.melodi.sparql.query.select.SparqlSelect; + +public class SemanticModel implements IConvenienceInterface +{ + + public final static String SSN = "http://purl.oclc.org/NET/ssnx/ssn#"; + public final static String SAREF = "http://ontology.tno.nl/saref#"; + public final static String SAN = "http://www.irit.fr/recherches/MELODI/ontologies/SAN.owl#"; + public final static String IOT_O = "http://www.irit.fr/recherches/MELODI/ontologies/IoT-O.owl#"; + public final static String ADREAM = "http://pelican/adreamdata#"; + public final static String BASE = "http://tp.5iss.fr#"; + + // Separating prefixes into several lists lightens requests + public static Set> IOT_PREFIXES; + public static Set> SERVICES_PREFIXES; + public static Set> ALL_PREFIXES; + public static Map FEATURES; + + static + { + Set> tmp1 = new HashSet>(); + tmp1.add(new AbstractMap.SimpleEntry( "iot-o","<"+IOT_O+">")); + tmp1.add(new AbstractMap.SimpleEntry("ssn","<"+SSN+">")); + tmp1.add(new AbstractMap.SimpleEntry("DUL", + "")); + tmp1.add(new AbstractMap.SimpleEntry("san", + "")); + tmp1.add(new AbstractMap.SimpleEntry("lifecycle", + "")); + tmp1.add(new AbstractMap.SimpleEntry("adream", "<"+ADREAM+">")); + IOT_PREFIXES = Collections.unmodifiableSet(tmp1); + + Set> tmp2 = new HashSet>(); + tmp2.add(new AbstractMap.SimpleEntry("wsmo-lite", + "")); + tmp2.add(new AbstractMap.SimpleEntry("msm", + "")); + tmp2.add(new AbstractMap.SimpleEntry("hrests", + "")); + SERVICES_PREFIXES = Collections.unmodifiableSet(tmp2); + + Set> tmp3 = new HashSet>(); + tmp3.addAll(tmp1); + tmp3.addAll(tmp2); + ALL_PREFIXES = Collections.unmodifiableSet(tmp3); + Map tmp4 = new HashMap(); + tmp4.put("Temperature","http://qudt.org/vocab/quantity#ThermodynamicTemperature"); + tmp4.put("Light","http://qudt.org/vocab/quantity#LuminousIntensity"); + FEATURES = Collections.unmodifiableMap(tmp4); + } + + private Model model; + private Dataset dataset; + private DatasetGraph dsg; + private String temperatureSensor1URI; + private String temperatureSensor2URI; + private String temperatureSensor3URI; + private String humiditySensor1URI; + private String temperatureURI; + private String humidityURI; + + /** + * Creates an empty model (for test purpose mainly) + */ + public SemanticModel() + { + this.dsg = DatasetGraphFactory.create(); + this.dataset = DatasetFactory.wrap(dsg); + this.model = this.dataset.getDefaultModel(); + } + + /** + * Creates a model already loaded with triples issued from + * the provided ontology, as well as another knowledge base + * describing sensors and their ranges. + * @param ontologyPath + */ + public SemanticModel(String ontologyPath) + { + this.dsg = DatasetGraphFactory.create(); + this.dataset = DatasetFactory.wrap(dsg); + this.model = this.dataset.getDefaultModel(); + this.loadFromFile("./tp2_sensors.rdf", "", "RDF/XML", true); + this.loadFromFile(ontologyPath, "", "TURTLE", true); + // Computation of URI that will be needed often, to limit frequent requests + this.temperatureSensor1URI = this.getEntityURI("TemperatureSensor_1").get(0); + this.temperatureSensor2URI = this.getEntityURI("TemperatureSensor_2").get(0); + this.temperatureSensor3URI = this.getEntityURI("TemperatureSensor_3").get(0); + this.temperatureURI = this.getEntityURI("Température").get(0); + this.humidityURI = this.getEntityURI("Hygrométrie").get(0); + } + + public void beginWriteTransaction() + { + this.dataset.begin(ReadWrite.WRITE); + } + + public void endTransaction() + { + this.dataset.end(); + this.dataset.begin(ReadWrite.READ); + this.model = this.dataset.getDefaultModel(); + this.dataset.end(); + } + + void updateDataset(String queryString) + { + UpdateAction.parseExecute(queryString, this.dsg); + } + + public void commitDataset() + { + this.dataset.commit(); + } + + public void updateModel() + { + this.dataset.begin(ReadWrite.READ); + this.model = this.dataset.getDefaultModel(); + this.dataset.end(); + } + + public Model getModel() + { + return this.model; + } + + public static String formatURIForSparql(String uri) + { + if(uri.startsWith("http")) + { + return "<"+uri+">"; + } + return uri; + } + + public static List> queryModel(String queryString, Model m) + { + List> resultList = new ArrayList>(); + Query query = QueryFactory.create(queryString) ; + try (QueryExecution qexec = QueryExecutionFactory.create(query, m)) + { + ResultSet results = qexec.execSelect(); + while (results.hasNext()) + { + QuerySolution soln = results.next(); + resultList.add(new HashMap()); + List varNameTestList = new ArrayList(); + Iterator querySolutionVariables = soln.varNames(); + while(querySolutionVariables.hasNext()) + { + varNameTestList.add(querySolutionVariables.next()); + } + // On va ajouter pour chaque résultat une map contenant les noms de variables et leurs valeurs + for(String varName : varNameTestList) + { + RDFNode x = soln.get(varName); // Get a result variable by name. + resultList.get(resultList.size()-1).put(varName, x.toString()); + } + } + return resultList; + } + catch (Exception e) + { + e.printStackTrace(); + return null; + } + } + + public List> processReadQuery(String queryString) + { + return queryModel(queryString, this.model); + } + + public boolean processWriteQuery(String query) + { + try + { +// this.beginWriteTransaction(); + this.updateDataset(query); +// this.commitDataset(); +// this.endTransaction(); + return true; + } + catch(Exception e) + { + e.printStackTrace(); +// this.endTransaction(); + return false; + } + } + + public boolean askDataset(String queryString) + { + Query query = QueryFactory.create(queryString) ; + QueryExecution qexec = QueryExecutionFactory.create(query, model) ; + boolean result = qexec.execAsk() ; + qexec.close() ; + return result; + } + + private String createSparqlDataFromStatement(Statement s, boolean acceptObjectProperties) + { + String subject = null; + String predicate = null; + String object = null; + if(s.getSubject().toString().startsWith("http")) + { + subject = "<"+s.getSubject().toString()+">"; + } + if(s.getPredicate().toString().startsWith("http")) + { + predicate = "<"+s.getPredicate().toString()+">"; + } + if((s.getObject().toString().startsWith("http") && !s.getObject().toString().contains("skos"))) + { + object = "<"+s.getObject().toString()+">"; + } + // FIXME find why object properties mess it up -> temporary fix, can be activated for safe files + else if (acceptObjectProperties) + { + // In this case, object is a data and not a resource + object = "\""+s.getObject().toString()+"\""; + } + if(subject != null && predicate != null && object != null) + { + return subject+" "+predicate+" "+object+".\n"; + } + else + { + return null; + } + } + + void writeFromModel(Model m, boolean acceptObjectProperties) + { + StmtIterator i = m.listStatements(); + String data = ""; + while(i.hasNext()) + { + Statement s = i.next(); + String dataInstance = this.createSparqlDataFromStatement(s, acceptObjectProperties); + if(dataInstance != null) + { + data+=dataInstance; + } + } + // No need for prefixes, they are resolved in the model + SparqlInsertData s = new SparqlInsertData(null, data); + if(!this.processWriteQuery(s.toString())) + { + System.out.println("writeFomModel failed for model "+m); + } + } + + void loadFromFile(String path, String base, String lang, boolean supportObjectProperties) + { + Model tmpModel = ModelFactory.createDefaultModel(); + FileReader f = null; + try + { + f = new FileReader(new File(path)); + } + catch (FileNotFoundException e) + { + e.printStackTrace(); + } + tmpModel.read(f, base, lang); + this.writeFromModel(tmpModel, supportObjectProperties); + } + + @Override + public String whichSensorDidIt(String timestamp, String paramURI) + { + TimestampEntity t = new TimestampEntity(timestamp); + if(paramURI.equals(this.temperatureURI)) + { + // Pour une raison qui leur est propre, les capteurs de température de + // la station font les 3*8. Le taylorisme est passé par là. + if(t.getHour()>=5 && t.getHour()<13) + { + return this.temperatureSensor1URI; + } + else if(t.getHour()>=13 && t.getHour()<21) + { + return this.temperatureSensor2URI; + } + else + { + return this.temperatureSensor3URI; + } + } + else if(paramURI.equals(this.humidityURI)) + { + return this.humiditySensor1URI; + } + else + { + return null; + } + } + + public boolean URIExists(String URI) + { + URI = SemanticModel.formatURIForSparql(URI); + SparqlAsk q = new SparqlAsk(SemanticModel.IOT_PREFIXES, URI+" ?p ?o"); + return this.askDataset(q.toString()); + } + + @Override + public void addObservationToSensor(String obsURI, String sensorURI) + { + obsURI = SemanticModel.formatURIForSparql(obsURI); + sensorURI = SemanticModel.formatURIForSparql(sensorURI); + String insert = "?output ssn:hasValue "+obsURI; + String where = "?output ssn:isProducedBy "+sensorURI; + SparqlInsertWhere q = new SparqlInsertWhere(SemanticModel.IOT_PREFIXES, insert, where); + this.processWriteQuery(q.toString()); + } + + @Override + public List getInstancesURI(String classURI) + { + classURI = SemanticModel.formatURIForSparql(classURI); + List instances = new ArrayList(); + String select = "?s"; + String where = "?s rdf:type/rdfs:subClassOf* "+classURI+"."; + SparqlSelect q = new SparqlSelect(select, where); + List> qResult = this.processReadQuery(q.toString()); + if(qResult.size() == 0) + { + System.out.println("Aucun élément de l'ontologie n'instancie la classe "+classURI); + } + for(Map answer : qResult) + { + instances.add(answer.get("s")); + } + return instances; + } + + @Override + public boolean isOfType(String conceptURI, String typeURI) + { + String formattedConceptURI = formatURIForSparql(conceptURI); + String formattedTypeURI = formatURIForSparql(typeURI); + SparqlAsk sa = new SparqlAsk(IOT_PREFIXES, formattedConceptURI+" rdf:type/(rdfs:subClassOf|owl:sameAs)* "+formattedTypeURI+"."); + return this.askDataset(sa.toString()); + } + + @Override + public String createInstance(String label, String type) { + long id = new Random().nextLong(); + while(this.URIExists(BASE+id)) + { + id = new Random().nextLong(); + } + String individualURI = SemanticModel.formatURIForSparql(BASE+id); + String typeURI = SemanticModel.formatURIForSparql(type); + String insert = + individualURI+" rdf:type "+typeURI+"; " + + "rdfs:label \""+label+"\"."; + SparqlInsertData q = new SparqlInsertData(IOT_PREFIXES, insert); + this.processWriteQuery(q.toString()); + return BASE+id; + } + + @Override + public void addObjectPropertyToIndividual(String subjectURI, + String propertyURI, String objectURI) { + SparqlInsertData q = new SparqlInsertData(IOT_PREFIXES, + SemanticModel.formatURIForSparql(subjectURI)+ + " "+SemanticModel.formatURIForSparql(propertyURI)+ + " "+SemanticModel.formatURIForSparql(objectURI)+"."); + this.processWriteQuery(q.toString()); + } + + @Override + public void addDataPropertyToIndividual(String subjectURI, + String propertyURI, String data) { + SparqlInsertData q = new SparqlInsertData(IOT_PREFIXES, + SemanticModel.formatURIForSparql(subjectURI)+ + " "+SemanticModel.formatURIForSparql(propertyURI)+ + " \""+data+"\"."); + this.processWriteQuery(q.toString()); + } + + @Override + public void exportModel(String path) + { + FileWriter out = null; + try + { + out = new FileWriter(path); + this.model.write(out, "TURTLE"); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + + @Override + public boolean hasDataPropertyValue(String subjectURI, + String dataPropertyURI, String dataValue) + { + subjectURI = SemanticModel.formatURIForSparql(subjectURI); + dataPropertyURI = SemanticModel.formatURIForSparql(dataPropertyURI); + String ask = subjectURI+" "+dataPropertyURI+" \""+dataValue+"\"."; + SparqlAsk q = new SparqlAsk(IOT_PREFIXES, ask); + return this.askDataset(q.toString()); + } + + public List testLanguageTag(String label, String tag) + { + List instances = new ArrayList(); + String select = "?s ?l"; + String where; +// if(tag != null && tag.length() > 0) +// { +// where = "?s rdfs:label \""+label+"@"+tag+"\"."; +// } +// else + { +// where = "?s rdfs:label \""+label+"\"."; +// where = "?s rdfs:label ?l. FILTER (str(?l) = \""+label+"\")"; + where = "?s rdfs:label ?l."; + } + SparqlSelect q = new SparqlSelect(select, where); + String query = "" + + "SELECT ?s" + + "WHERE {?s ?l. FILTER regex(?l, \""+label+"\")}"; + List> qResult = this.processReadQuery(query); + for(Map answer : qResult) + { + instances.add(answer.get("s")); + } + return instances; + } + + @Override + public List getEntityURI(String label) + { + List instances = new ArrayList(); + String query = "" + + "SELECT ?s " + + "WHERE {?s ?l. FILTER regex(?l, \""+label+"\")}"; + List> qResult = this.processReadQuery(query); + for(Map answer : qResult) + { + instances.add(answer.get("s")); + } + if(instances.size() == 0) + System.out.println("Il n'y a pas d'entité portant le label "+label); + return instances; + } + + @Override + public List listLabels(String entityURI) + { + entityURI = SemanticModel.formatURIForSparql(entityURI); + List instances = new ArrayList(); + String query = "" + + "SELECT ?l " + + "WHERE {"+entityURI+" ?l.}"; + List> qResult = this.processReadQuery(query); + for(Map answer : qResult) + { + // Labels contain language tags, in our case we won't consider them. + instances.add(answer.get("l").split("@")[0]); + } + if(instances.size() == 0) + System.out.println("Aucune entité n'est associée à l'entité "+entityURI); + return instances; + } + + @Override + public List> listProperties(String entityURI) + { + entityURI = SemanticModel.formatURIForSparql(entityURI); + List> instances = new ArrayList>(); + String query = "" + + "SELECT ?p ?o " + + "WHERE {"+entityURI+" ?p ?o.}"; + List> qResult = this.processReadQuery(query); + for(Map answer : qResult) + { + ArrayList l = new ArrayList(); + l.add(answer.get("p")); + l.add(answer.get("o")); + instances.add(l); + } + return instances; + } + + @Override + public boolean hasObjectProperty(String subjectURI, String propertyURI, + String objectURI) + { + subjectURI = SemanticModel.formatURIForSparql(subjectURI); + propertyURI = SemanticModel.formatURIForSparql(propertyURI); + objectURI = SemanticModel.formatURIForSparql(objectURI); + String ask = subjectURI+" "+propertyURI+" "+objectURI+"."; + SparqlAsk q = new SparqlAsk(IOT_PREFIXES, ask); + return this.askDataset(q.toString()); + } + + @Override + public boolean hasSensorDoneIt(String obsURI, String sensorURI) + { + obsURI = SemanticModel.formatURIForSparql(obsURI); + sensorURI = SemanticModel.formatURIForSparql(sensorURI); + String ask = "?output ssn:isProducedBy "+sensorURI+";" + + "ssn:hasValue "+obsURI+"."; + SparqlAsk q = new SparqlAsk(SemanticModel.IOT_PREFIXES, ask); + return this.askDataset(q.toString()); + } +} diff --git a/src/main/java/semantic/model/TimestampEntity.java b/src/main/java/semantic/model/TimestampEntity.java new file mode 100644 index 0000000..5145ed9 --- /dev/null +++ b/src/main/java/semantic/model/TimestampEntity.java @@ -0,0 +1,56 @@ +package semantic.model; + +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + + +public class TimestampEntity +{ + public String timestamp; + public Date date; + public String time; + + public TimestampEntity(String timestamp) + { + this.timestamp = timestamp; + DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); + try + { + this.date = df.parse(timestamp); + } + catch (ParseException e) + { + e.printStackTrace(); + } + } + + public Date getDate() + { + return this.date; + } + + public String getDay() + { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + return formatter.format(this.date); + } + + public String getTime() + { + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); + return formatter.format(this.date); + } + + public int getHour() + { + SimpleDateFormat formatter = new SimpleDateFormat("HH"); + return Integer.valueOf(formatter.format(this.date)); + } + + public String getTimeStamp() + { + return this.timestamp; + } +} diff --git a/src/main/java/semantic/view/JSONEndpoint.java b/src/main/java/semantic/view/JSONEndpoint.java new file mode 100644 index 0000000..9197d64 --- /dev/null +++ b/src/main/java/semantic/view/JSONEndpoint.java @@ -0,0 +1,55 @@ +package semantic.view; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.List; + +import javax.json.Json; +import javax.json.stream.JsonParser; +import javax.json.stream.JsonParser.Event; + +import semantic.model.ObservationEntity; +import semantic.model.TimestampEntity; + +public class JSONEndpoint +{ + public static List parseObservations(String path) throws IOException + { + BufferedReader in = new BufferedReader(new FileReader(path)); + String line; + line = in.readLine(); + // Read observation entities, sorted by day + List obsList = new ArrayList(); + while (line != null) + { + JsonParser parser = Json.createParser(new StringReader(line)); + // At this point, event vaut START_OBJECT + Event e = parser.next(); + String timestamp = null; + Float value = null; + // Each line exactly contains one json object + while(e != Event.END_OBJECT) + { + if(e == Event.KEY_NAME) + { + timestamp = parser.getString(); + } + else if(e == Event.VALUE_STRING) + { + if(parser.getString().length() > 0) + { + value = Float.valueOf(parser.getString()); + obsList.add(new ObservationEntity(value, new TimestampEntity(timestamp))); + } + } + e = parser.next(); + } + line = in.readLine(); + } + in.close(); + return obsList; + } +} diff --git a/src/main/java/semantic/view/TTLEndpoint.java b/src/main/java/semantic/view/TTLEndpoint.java new file mode 100644 index 0000000..1f37058 --- /dev/null +++ b/src/main/java/semantic/view/TTLEndpoint.java @@ -0,0 +1,6 @@ +package semantic.view; + +public class TTLEndpoint +{ + +} diff --git a/src/test/java/semantic/TestJSONParsing.java b/src/test/java/semantic/TestJSONParsing.java new file mode 100644 index 0000000..4e6f0e5 --- /dev/null +++ b/src/test/java/semantic/TestJSONParsing.java @@ -0,0 +1,29 @@ +package semantic; + +import java.io.IOException; +import java.util.List; + +import org.junit.Assert; +import org.junit.Test; + +import semantic.model.ObservationEntity; +import semantic.view.JSONEndpoint; + +public class TestJSONParsing +{ + @Test + public void testParseTemperature() + { + List obslist = null; + try + { + obslist = JSONEndpoint.parseObservations("./src/test/temperature.txt"); + } + catch (IOException e) + { + e.printStackTrace(); + } + Assert.assertNotNull(obslist); + Assert.assertNotEquals(0, obslist.size()); + } +} diff --git a/src/test/java/semantic/TestModelFunctions.java b/src/test/java/semantic/TestModelFunctions.java new file mode 100644 index 0000000..c182113 --- /dev/null +++ b/src/test/java/semantic/TestModelFunctions.java @@ -0,0 +1,73 @@ +package semantic; + +import org.junit.Assert; +import org.junit.Test; + +import semantic.controler.Controler; +import semantic.model.TimestampEntity; + +public class TestModelFunctions +{ + @Test + public void testPlaceCreation() + { + Controler c = new Controler(); + String jurassicParkURI = c.getCustomModel().createPlace("Jurassic park"); + String placeClassURI = c.getModel().getEntityURI("Lieu").get(0); + Assert.assertTrue("L'entité créée n'est pas de classe Lieu", c.getModel().isOfType(jurassicParkURI, placeClassURI)); + Assert.assertTrue("Le lieu créé n'a pas de label pour indiquer son nom", c.getModel().listLabels(jurassicParkURI).contains("Jurassic park")); + } + + @Test + public void testInstantCreation() + { + Controler c = new Controler(); + TimestampEntity t = new TimestampEntity("2014-02-13T06:20:00"); + String instantURI = c.getCustomModel().createInstant(t); + String instantClassURI = c.getModel().getEntityURI("Instant").get(0); + String propertyURI = c.getModel().getEntityURI("a pour timestamp").get(0); + Assert.assertTrue("L'entité créée n'est pas de la classe Instant", c.getModel().isOfType(instantURI, instantClassURI)); + Assert.assertTrue("L'instant créé n'a pas le bon timestamp", c.getModel().hasDataPropertyValue( + instantURI, propertyURI, "2014-02-13T06:20:00")); + } + + @Test + public void testInstantRetrieval() + { + Controler c = new Controler(); + TimestampEntity t = new TimestampEntity("2014-02-13T06:20:00"); + TimestampEntity t2 = new TimestampEntity("2015-02-13T06:20:00"); + String instantURI = c.getCustomModel().createInstant(t); + Assert.assertTrue("La recherche d'un instant par timestamp ne retourne rien pour un instant sensé exister", c.getCustomModel().getInstantURI(t).equals(instantURI)); + Assert.assertNull("La recherche d'un instant par timestamp inexistant ne retourne pas un résultat null", c.getCustomModel().getInstantURI(t2)); + } + + @Test + public void testTimestampRetrieval() + { + Controler c = new Controler(); + TimestampEntity t = new TimestampEntity("2014-02-13T06:20:00"); + String instantURI = c.getCustomModel().createInstant(t); + Assert.assertTrue("Le timestamp ne correspond pas", c.getCustomModel().getInstantTimestamp(instantURI).equals("2014-02-13T06:20:00")); + } + + @Test + public void testObservationCreation() + { + Controler c = new Controler(); + TimestampEntity t = new TimestampEntity("2014-02-13T06:20:00"); + String instantURI = c.getCustomModel().createInstant(t); + String paramURI = c.getModel().getEntityURI("Température").get(0); + String value = "25.0"; + String obsURI = c.getCustomModel().createObs(value, paramURI, instantURI); + // Entities relevant to the test + String obsClassURI = c.getModel().getEntityURI("Observation").get(0); + String hasDataValueURI = c.getModel().getEntityURI("a pour valeur").get(0); + String datePropertyURI = c.getModel().getEntityURI("a pour date").get(0); + String sensorURI = c.getModel().whichSensorDidIt("2014-02-13T06:20:00", paramURI); + Assert.assertTrue("L'observation n'est pas une instance de la bonne classe", c.getModel().isOfType(obsURI, obsClassURI)); + Assert.assertTrue("L'observation n'a pas la bonne valeur",c.getModel().hasDataPropertyValue(obsURI, hasDataValueURI, value)); + Assert.assertTrue("L'observation n'a pas la bonne date",c.getModel().hasObjectProperty(obsURI, datePropertyURI, instantURI)); + Assert.assertTrue("L'observation n'est pas rattachée au bon capteur", c.getModel().hasSensorDoneIt(obsURI, sensorURI)); + } +} diff --git a/src/test/java/semantic/TestOntologyInteraction.java b/src/test/java/semantic/TestOntologyInteraction.java new file mode 100644 index 0000000..ae603ed --- /dev/null +++ b/src/test/java/semantic/TestOntologyInteraction.java @@ -0,0 +1,18 @@ +package semantic; + + +import org.junit.Assert; +import org.junit.Test; + +import semantic.model.SemanticModel; + +public class TestOntologyInteraction { + + @Test + public void createSemanticModel() + { + SemanticModel sm = new SemanticModel(); + Assert.assertNotNull(sm); + } + +} diff --git a/src/test/temperature.txt b/src/test/temperature.txt new file mode 100644 index 0000000..69f70c7 --- /dev/null +++ b/src/test/temperature.txt @@ -0,0 +1,5 @@ +{"2014-02-13T06:20:00": "3.0", "2014-02-13T13:50:00": "7.0", "2014-02-13T06:00:00": "2", "2014-02-13T03:00:00": "3", "2014-02-13T13:00:00": "6", "2014-02-13T18:50:00": "4.0", "2014-02-13T13:20:00": "6.0", "2014-02-13T15:00:00": "6", "2014-02-13T08:50:00": "4.0", "2014-02-13T21:50:00": "4.0", "2014-02-13T08:00:00": "3", "2014-02-13T07:50:00": "3.0", "2014-02-13T08:20:00": "4.0", "2014-02-13T21:20:00": "3.0", "2014-02-13T11:50:00": "6.0", "2014-02-13T11:20:00": "6.0", "2014-02-13T17:50:00": "5.0", "2014-02-13T11:00:00": "6", "2014-02-13T05:50:00": "2.0", "2014-02-13T20:50:00": "3.0", "2014-02-13T20:20:00": "4.0", "2014-02-13T16:00:00": "6", "2014-02-13T23:50:00": "2.0", "2014-02-13T21:00:00": "3", "2014-02-13T07:20:00": "3.0", "2014-02-13T03:20:00": "3.0", "2014-02-13T07:00:00": "3", "2014-02-13T15:50:00": "6.0", "2014-02-13T03:50:00": "2.0", "2014-02-13T04:00:00": "2", "2014-02-13T12:00:00": "6", "2014-02-13T04:20:00": "2.0", "2014-02-13T12:20:00": "6.0", "2014-02-13T12:50:00": "6.0", "2014-02-13T22:50:00": "3.0", "2014-02-13T09:00:00": "4", "2014-02-13T09:20:00": "4.0", "2014-02-13T09:50:00": "4.0", "2014-02-13T18:00:00": "5", "2014-02-13T05:20:00": "2.0", "2014-02-13T15:20:00": "6.0", "2014-02-13T00:50:00": "4.0", "2014-02-13T14:50:00": "7.0", "2014-02-13T00:00:00": "4", "2014-02-13T00:20:00": "4.0", "2014-02-13T06:50:00": "3.0", "2014-02-13T22:00:00": "4", "2014-02-13T18:20:00": "5.0", "2014-02-13T02:50:00": "3.0", "2014-02-13T02:20:00": "3.0", "2014-02-13T04:50:00": "2.0", "2014-02-13T02:00:00": "3", "2014-02-13T23:00:00": "3", "2014-02-13T16:50:00": "5.0", "2014-02-13T19:50:00": "4.0", "2014-02-13T19:20:00": "4.0", "2014-02-13T05:00:00": "2", "2014-02-13T19:00:00": "4", "2014-02-13T23:20:00": "3.0", "2014-02-13T14:20:00": "7.0", "2014-02-13T10:20:00": "5.0", "2014-02-13T10:00:00": "4", "2014-02-13T10:50:00": "5.0", "2014-02-13T17:00:00": "5", "2014-02-13T01:00:00": "4", "2014-02-13T17:20:00": "5.0", "2014-02-13T01:20:00": "4.0", "2014-02-13T01:50:00": "4.0", "2014-02-13T22:20:00": "3.0", "2014-02-13T16:20:00": "6.0"} +{"2014-02-14T04:50:00": "1.0", "2014-02-14T09:50:00": "4.0", "2014-02-14T12:20:00": "6.0", "2014-02-14T09:00:00": "3", "2014-02-14T16:20:00": "6.0", "2014-02-14T09:20:00": "3.0", "2014-02-14T19:00:00": "4", "2014-02-14T07:20:00": "2.0", "2014-02-14T06:50:00": "2.0", "2014-02-14T13:20:00": "5.0", "2014-02-14T10:00:00": "4", "2014-02-14T21:50:00": "4.0", "2014-02-14T07:50:00": "2.0", "2014-02-14T19:20:00": "3.0", "2014-02-14T14:50:00": "6.0", "2014-02-14T14:20:00": "6.0", "2014-02-14T04:00:00": "1", "2014-02-14T14:00:00": "6", "2014-02-14T23:00:00": "3", "2014-02-14T22:20:00": "4.0", "2014-02-14T13:00:00": "6", "2014-02-14T06:00:00": "2", "2014-02-14T19:50:00": "4.0", "2014-02-14T08:00:00": "2", "2014-02-14T08:20:00": "2.0", "2014-02-14T08:50:00": "3.0", "2014-02-14T11:20:00": "5.0", "2014-02-14T20:50:00": "3.0", "2014-02-14T05:00:00": "1", "2014-02-14T15:20:00": "6.0", "2014-02-14T05:20:00": "1.0", "2014-02-14T15:00:00": "6", "2014-02-14T07:00:00": "2", "2014-02-14T15:50:00": "6.0", "2014-02-14T21:20:00": "3.0", "2014-02-14T17:00:00": "5", "2014-02-14T22:50:00": "3.0", "2014-02-14T17:20:00": "5.0", "2014-02-14T17:50:00": "5.0", "2014-02-14T04:20:00": "1.0", "2014-02-14T01:50:00": "1.0", "2014-02-14T22:00:00": "4", "2014-02-14T01:00:00": "2", "2014-02-14T06:20:00": "2.0", "2014-02-14T01:20:00": "1.0", "2014-02-14T20:20:00": "4.0", "2014-02-14T02:20:00": "1.0", "2014-02-14T02:00:00": "1", "2014-02-14T16:00:00": "6", "2014-02-14T02:50:00": "1.0", "2014-02-14T10:50:00": "5.0", "2014-02-14T18:20:00": "4.0", "2014-02-14T18:00:00": "4", "2014-02-14T03:50:00": "1.0", "2014-02-14T03:20:00": "1.0", "2014-02-14T23:20:00": "3.0", "2014-02-14T03:00:00": "1", "2014-02-14T12:50:00": "6.0", "2014-02-14T16:50:00": "5.0", "2014-02-14T13:50:00": "6.0", "2014-02-14T11:50:00": "5.0", "2014-02-14T23:50:00": "3.0", "2014-02-14T12:00:00": "6", "2014-02-14T20:00:00": "4", "2014-02-14T00:00:00": "2", "2014-02-14T00:20:00": "2.0", "2014-02-14T00:50:00": "1.0", "2014-02-14T05:50:00": "2.0", "2014-02-14T18:50:00": "4.0"} +{"2014-02-15T06:50:00": "4.0", "2014-02-15T10:20:00": "6.0", "2014-02-15T06:00:00": "4", "2014-02-15T06:20:00": "4.0", "2014-02-15T01:00:00": "3", "2014-02-15T08:20:00": "4.0", "2014-02-15T08:00:00": "4", "2014-02-15T13:50:00": "7.0", "2014-02-15T13:20:00": "7.0", "2014-02-15T01:50:00": "4.0", "2014-02-15T13:00:00": "7", "2014-02-15T04:50:00": "4.0", "2014-02-15T04:20:00": "4.0", "2014-02-15T02:50:00": "4.0", "2014-02-15T04:00:00": "4", "2014-02-15T14:00:00": "7", "2014-02-15T09:00:00": "4", "2014-02-15T03:00:00": "4", "2014-02-15T16:00:00": "9", "2014-02-15T14:50:00": "9.0", "2014-02-15T12:50:00": "7.0", "2014-02-15T23:00:00": "7", "2014-02-15T12:20:00": "7.0", "2014-02-15T10:00:00": "6", "2014-02-15T20:20:00": "8.0", "2014-02-15T00:50:00": "3.0", "2014-02-15T10:50:00": "6.0", "2014-02-15T15:50:00": "9.0", "2014-02-15T08:50:00": "4.0", "2014-02-15T21:50:00": "8.0", "2014-02-15T07:00:00": "4", "2014-02-15T23:50:00": "7.0", "2014-02-15T07:20:00": "4.0", "2014-02-15T07:50:00": "4.0", "2014-02-15T14:20:00": "8.0", "2014-02-15T22:20:00": "8.0", "2014-02-15T11:50:00": "7.0", "2014-02-15T22:00:00": "8", "2014-02-15T17:50:00": "8.0", "2014-02-15T11:00:00": "6", "2014-02-15T16:20:00": "9.0", "2014-02-15T11:20:00": "6.0", "2014-02-15T00:20:00": "3.0", "2014-02-15T00:00:00": "3", "2014-02-15T19:00:00": "8", "2014-02-15T21:00:00": "8", "2014-02-15T03:50:00": "4.0", "2014-02-15T17:00:00": "8", "2014-02-15T22:50:00": "7.0", "2014-02-15T18:00:00": "8", "2014-02-15T18:20:00": "8.0", "2014-02-15T18:50:00": "8.0", "2014-02-15T01:20:00": "4.0", "2014-02-15T15:00:00": "9", "2014-02-15T05:20:00": "4.0", "2014-02-15T15:20:00": "9.0", "2014-02-15T05:00:00": "4", "2014-02-15T20:50:00": "8.0", "2014-02-15T05:50:00": "4.0", "2014-02-15T02:00:00": "4", "2014-02-15T02:20:00": "4.0", "2014-02-15T12:00:00": "7", "2014-02-15T21:20:00": "8.0", "2014-02-15T17:20:00": "8.0", "2014-02-15T16:50:00": "9.0", "2014-02-15T23:20:00": "7.0", "2014-02-15T03:20:00": "4.0"} +{"2014-02-16T03:00:00": "5", "2014-02-16T15:00:00": "5", "2014-02-16T03:20:00": "6.0", "2014-02-16T15:20:00": "5.0", "2014-02-16T15:50:00": "5.0", "2014-02-16T21:20:00": "4.0", "2014-02-16T20:00:00": "5", "2014-02-16T18:00:00": "5", "2014-02-16T18:20:00": "5.0", "2014-02-16T01:50:00": "6.0", "2014-02-16T22:20:00": "4.0", "2014-02-16T02:20:00": "6.0", "2014-02-16T01:20:00": "7.0", "2014-02-16T14:50:00": "5.0", "2014-02-16T01:00:00": "7", "2014-02-16T11:00:00": "6", "2014-02-16T14:00:00": "7", "2014-02-16T14:20:00": "7.0", "2014-02-16T12:50:00": "7.0", "2014-02-16T20:50:00": "4.0", "2014-02-16T08:20:00": "5.0", "2014-02-16T22:00:00": "4", "2014-02-16T05:50:00": "5.0", "2014-02-16T05:20:00": "5.0", "2014-02-16T03:50:00": "6.0", "2014-02-16T05:00:00": "5", "2014-02-16T11:50:00": "7.0", "2014-02-16T23:00:00": "4", "2014-02-16T02:00:00": "6", "2014-02-16T22:50:00": "4.0", "2014-02-16T00:20:00": "7.0", "2014-02-16T17:00:00": "4", "2014-02-16T21:00:00": "4", "2014-02-16T04:20:00": "6.0", "2014-02-16T04:00:00": "6", "2014-02-16T13:50:00": "7.0", "2014-02-16T04:50:00": "6.0", "2014-02-16T19:00:00": "5", "2014-02-16T10:00:00": "6", "2014-02-16T06:00:00": "5", "2014-02-16T10:20:00": "6.0", "2014-02-16T06:20:00": "5.0", "2014-02-16T06:50:00": "6.0", "2014-02-16T18:50:00": "5.0", "2014-02-16T11:20:00": "6.0", "2014-02-16T12:20:00": "7.0", "2014-02-16T07:50:00": "5.0", "2014-02-16T12:00:00": "6", "2014-02-16T23:50:00": "3.0", "2014-02-16T07:00:00": "6", "2014-02-16T07:20:00": "6.0", "2014-02-16T00:00:00": "6", "2014-02-16T09:20:00": "6.0", "2014-02-16T23:20:00": "3.0", "2014-02-16T08:50:00": "5.0", "2014-02-16T09:00:00": "5", "2014-02-16T19:50:00": "5.0", "2014-02-16T20:20:00": "4.0", "2014-02-16T16:50:00": "4.0", "2014-02-16T16:20:00": "5.0", "2014-02-16T10:50:00": "6.0", "2014-02-16T16:00:00": "5", "2014-02-16T21:50:00": "4.0", "2014-02-16T02:50:00": "5.0", "2014-02-16T13:00:00": "6", "2014-02-16T00:50:00": "7.0", "2014-02-16T19:20:00": "5.0", "2014-02-16T13:20:00": "7.0", "2014-02-16T17:20:00": "4.0", "2014-02-16T09:50:00": "6.0", "2014-02-16T17:50:00": "5.0", "2014-02-16T08:00:00": "4"} +{"2014-02-17T01:00:00": "4", "2014-02-17T11:50:00": "7.0", "2014-02-17T22:00:00": "2", "2014-02-17T23:50:00": "1.0", "2014-02-17T21:00:00": "2", "2014-02-17T02:50:00": "3.0", "2014-02-17T19:50:00": "3.0", "2014-02-17T00:00:00": "3", "2014-02-17T16:00:00": "8", "2014-02-17T00:20:00": "3.0", "2014-02-17T16:20:00": "7.0", "2014-02-17T16:50:00": "7.0", "2014-02-17T13:50:00": "7.0", "2014-02-17T18:20:00": "4.0", "2014-02-17T12:50:00": "7.0", "2014-02-17T22:20:00": "1.0", "2014-02-17T22:50:00": "1.0", "2014-02-17T01:20:00": "3.0", "2014-02-17T11:20:00": "7.0", "2014-02-17T04:50:00": "3.0", "2014-02-17T10:50:00": "7.0", "2014-02-17T04:00:00": "3", "2014-02-17T03:20:00": "3.0", "2014-02-17T04:20:00": "3.0", "2014-02-17T23:20:00": "1.0", "2014-02-17T20:20:00": "2.0", "2014-02-17T07:20:00": "3.0", "2014-02-17T20:00:00": "3", "2014-02-17T07:00:00": "3", "2014-02-17T07:50:00": "3.0", "2014-02-17T09:50:00": "5.0", "2014-02-17T06:50:00": "3.0", "2014-02-17T06:20:00": "3.0", "2014-02-17T06:00:00": "3", "2014-02-17T19:20:00": "3.0", "2014-02-17T23:00:00": "1", "2014-02-17T12:00:00": "8", "2014-02-17T20:50:00": "2.0", "2014-02-17T19:00:00": "3", "2014-02-17T10:00:00": "6", "2014-02-17T08:00:00": "3", "2014-02-17T08:20:00": "3.0", "2014-02-17T21:20:00": "2.0", "2014-02-17T21:50:00": "2.0", "2014-02-17T13:00:00": "7", "2014-02-17T05:00:00": "3", "2014-02-17T13:20:00": "8.0", "2014-02-17T05:20:00": "3.0", "2014-02-17T05:50:00": "3.0", "2014-02-17T00:50:00": "3.0", "2014-02-17T09:20:00": "5.0", "2014-02-17T01:50:00": "3.0", "2014-02-17T18:50:00": "3.0", "2014-02-17T03:00:00": "3", "2014-02-17T02:20:00": "3.0", "2014-02-17T14:50:00": "8.0", "2014-02-17T02:00:00": "3", "2014-02-17T18:00:00": "4", "2014-02-17T17:00:00": "6", "2014-02-17T10:20:00": "6.0", "2014-02-17T17:20:00": "6.0", "2014-02-17T09:00:00": "4", "2014-02-17T14:20:00": "7.0", "2014-02-17T11:00:00": "7", "2014-02-17T08:50:00": "4.0", "2014-02-17T14:00:00": "7", "2014-02-17T17:50:00": "5.0", "2014-02-17T15:50:00": "8.0", "2014-02-17T15:20:00": "8.0", "2014-02-17T03:50:00": "3.0", "2014-02-17T15:00:00": "8"} diff --git a/tp-iss.ttl b/tp-iss.ttl new file mode 100644 index 0000000..892164e --- /dev/null +++ b/tp-iss.ttl @@ -0,0 +1,426 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix ssn: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix tp-iss: . +@base . + + rdf:type owl:Ontology . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.oclc.org/NET/ssnx/ssn#observes +ssn:observes rdf:type owl:AnnotationProperty . + + +################################################################# +# Object Properties +################################################################# + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_0f63feb1_1b41_4716_92bb_1ef70da83f72 +tp-iss:OWLObjectProperty_0f63feb1_1b41_4716_92bb_1ef70da83f72 rdf:type owl:ObjectProperty ; + rdfs:domain tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ; + rdfs:range tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ; + rdfs:label "a pour symptome"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_214a72af_4335_4b8a_b251_edcce1785ea7 +tp-iss:OWLObjectProperty_214a72af_4335_4b8a_b251_edcce1785ea7 rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty ; + owl:inverseOf tp-iss:OWLObjectProperty_4a511452_e141_4a7e_b156_cf152f19cd2d ; + rdfs:domain tp-iss:OWLClass_c8a39393_1773_4418_971e_85efde7cf347 , + [ rdf:type owl:Restriction ; + owl:onProperty tp-iss:OWLObjectProperty_214a72af_4335_4b8a_b251_edcce1785ea7 ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e + ] ; + rdfs:range tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e ; + rdfs:label "a pour capitale"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_3e84e8b7_9283_4582_b02d_3815a4cf3864 +tp-iss:OWLObjectProperty_3e84e8b7_9283_4582_b02d_3815a4cf3864 rdf:type owl:ObjectProperty ; + rdfs:domain tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ; + rdfs:range tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ; + rdfs:label "a pour date"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_4a511452_e141_4a7e_b156_cf152f19cd2d +tp-iss:OWLObjectProperty_4a511452_e141_4a7e_b156_cf152f19cd2d rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf tp-iss:OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc ; + rdfs:label "est la capitale de"@fr . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_57b19d61_bcdf_40fd_90c7_dd56beb7acb6 +tp-iss:OWLObjectProperty_57b19d61_bcdf_40fd_90c7_dd56beb7acb6 rdf:type owl:ObjectProperty ; + rdfs:domain tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ; + rdfs:range tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ; + rdfs:label "a pour localisation"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc +tp-iss:OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc rdf:type owl:ObjectProperty , + owl:TransitiveProperty ; + rdfs:domain tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ; + rdfs:range tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ; + rdfs:label "est inclus dans"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_6e59efc0_2d2e_4485_a5a2_2ea407080c48 +tp-iss:OWLObjectProperty_6e59efc0_2d2e_4485_a5a2_2ea407080c48 rdf:type owl:ObjectProperty ; + rdfs:domain tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ; + rdfs:range tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ; + rdfs:label "débute à"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_cf7c18d0_5a3f_4173_897a_754d49d90f25 +tp-iss:OWLObjectProperty_cf7c18d0_5a3f_4173_897a_754d49d90f25 rdf:type owl:ObjectProperty ; + rdfs:domain tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ; + rdfs:range tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ; + rdfs:label "caractérisé par"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_f0381af4_a882_4f64_8928_6089116baadc +tp-iss:OWLObjectProperty_f0381af4_a882_4f64_8928_6089116baadc rdf:type owl:ObjectProperty ; + rdfs:domain tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ; + rdfs:range tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ; + rdfs:label "finit à"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_f4ed4114_811e_4c3b_9fda_e5659bf2ec9c +tp-iss:OWLObjectProperty_f4ed4114_811e_4c3b_9fda_e5659bf2ec9c rdf:type owl:ObjectProperty ; + rdfs:domain tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ; + rdfs:range tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ; + rdfs:label "mesure"@en . + + +### http://purl.oclc.org/NET/ssnx/ssn#attachedSystem +ssn:attachedSystem rdf:type owl:ObjectProperty . + + +### http://purl.oclc.org/NET/ssnx/ssn#onPlatform +ssn:onPlatform rdf:type owl:ObjectProperty . + + +### http://www.w3.org/2002/07/owl#OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405 +owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405 rdf:type owl:ObjectProperty ; + owl:propertyChainAxiom ( ssn:onPlatform + owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405 + ) , + ( owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405 + tp-iss:OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc + ) ; + rdfs:label "se situe dans"@en . + + +### http://www.w3.org/2002/07/owl#OWLObjectProperty_fb806106_4ace_40ff_99be_b78033118b3c +owl:OWLObjectProperty_fb806106_4ace_40ff_99be_b78033118b3c rdf:type owl:ObjectProperty ; + rdfs:domain ssn:System ; + rdfs:range ssn:System ; + owl:propertyChainAxiom ( ssn:onPlatform + ssn:attachedSystem + ) ; + rdfs:label "est compatible avec"@en . + + +################################################################# +# Data properties +################################################################# + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLDataProperty_1ba5bda8_e69b_4c0f_930c_ffc2fcf02f10 +tp-iss:OWLDataProperty_1ba5bda8_e69b_4c0f_930c_ffc2fcf02f10 rdf:type owl:DatatypeProperty ; + rdfs:domain tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ; + rdfs:range xsd:float ; + rdfs:label "a pour valeur"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLDataProperty_8c1edaf8_176d_4e84_a40f_881f06ca36d5 +tp-iss:OWLDataProperty_8c1edaf8_176d_4e84_a40f_881f06ca36d5 rdf:type owl:DatatypeProperty ; + rdfs:domain tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ; + rdfs:range xsd:dateTimeStamp ; + rdfs:label "a pour timestamp"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#a_pour_durée +tp-iss:a_pour_durée rdf:type owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_1356bdaa_2770_4f7e_b281_2e7a014b3220 +tp-iss:OWLClass_1356bdaa_2770_4f7e_b281_2e7a014b3220 rdf:type owl:Class ; + rdfs:subClassOf tp-iss:OWLClass_93368bc8_4bb5_4d60_acd1_fd650a97dea7 ; + rdfs:label "Ensoleillement"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_3f9c9e2e_1534_4048_9f3e_3131d300ae08 +tp-iss:OWLClass_3f9c9e2e_1534_4048_9f3e_3131d300ae08 rdf:type owl:Class ; + owl:equivalentClass [ owl:intersectionOf ( tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc + [ rdf:type owl:Restriction ; + owl:onProperty tp-iss:OWLObjectProperty_0f63feb1_1b41_4716_92bb_1ef70da83f72 ; + owl:someValuesFrom [ owl:intersectionOf ( tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e + [ rdf:type owl:Restriction ; + owl:onProperty tp-iss:OWLObjectProperty_f4ed4114_811e_4c3b_9fda_e5659bf2ec9c ; + owl:hasValue owl:OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd + ] + [ rdf:type owl:Restriction ; + owl:onProperty tp-iss:OWLDataProperty_1ba5bda8_e69b_4c0f_930c_ffc2fcf02f10 ; + owl:someValuesFrom [ rdf:type rdfs:Datatype ; + owl:onDatatype xsd:float ; + owl:withRestrictions ( [ xsd:minExclusive "0.0"^^xsd:float + ] + ) + ] + ] + ) ; + rdf:type owl:Class + ] + ] + ) ; + rdf:type owl:Class + ] ; + rdfs:subClassOf tp-iss:OWLClass_453350aa_9d45_444a_a509_77b94bbc7bb2 ; + rdfs:label "Pluie"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_453350aa_9d45_444a_a509_77b94bbc7bb2 +tp-iss:OWLClass_453350aa_9d45_444a_a509_77b94bbc7bb2 rdf:type owl:Class ; + rdfs:subClassOf tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ; + rdfs:label "Mauvais temps"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_60a7a81e_a726_4794_a7aa_7c366ca6ce44 +tp-iss:OWLClass_60a7a81e_a726_4794_a7aa_7c366ca6ce44 rdf:type owl:Class ; + rdfs:subClassOf tp-iss:OWLClass_453350aa_9d45_444a_a509_77b94bbc7bb2 ; + rdfs:label "Brouillard"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e +tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e rdf:type owl:Class ; + rdfs:subClassOf ssn:Property ; + rdfs:label "Paramètre mesurables"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_70366453_b04e_4693_9806_9bb04ff4593c +tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c rdf:type owl:Class ; + rdfs:label "Instant"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc +tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc rdf:type owl:Class ; + rdfs:label "Phénomène"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_93368bc8_4bb5_4d60_acd1_fd650a97dea7 +tp-iss:OWLClass_93368bc8_4bb5_4d60_acd1_fd650a97dea7 rdf:type owl:Class ; + rdfs:subClassOf tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ; + rdfs:label "Beau temps"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e +tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e rdf:type owl:Class ; + rdfs:label "Observation" , + "Observation météo"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 +tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 rdf:type owl:Class ; + rdfs:label "Lieu"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_c8a39393_1773_4418_971e_85efde7cf347 +tp-iss:OWLClass_c8a39393_1773_4418_971e_85efde7cf347 rdf:type owl:Class ; + rdfs:subClassOf tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ; + owl:disjointWith tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e ; + rdfs:label "Pays"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e +tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e rdf:type owl:Class ; + rdfs:subClassOf tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ; + rdfs:label "Ville"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_df27e975_e629_44bb_9479_a57bc2f0b95b +tp-iss:OWLClass_df27e975_e629_44bb_9479_a57bc2f0b95b rdf:type owl:Class ; + rdfs:subClassOf tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ; + rdfs:label "Continent"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#Phénomène_court +tp-iss:Phénomène_court rdf:type owl:Class ; + owl:equivalentClass [ owl:intersectionOf ( tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc + [ rdf:type owl:Restriction ; + owl:onProperty tp-iss:a_pour_durée ; + owl:someValuesFrom [ rdf:type rdfs:Datatype ; + owl:onDatatype xsd:int ; + owl:withRestrictions ( [ xsd:maxInclusive "15"^^xsd:int + ] + ) + ] + ] + ) ; + rdf:type owl:Class + ] ; + rdfs:subClassOf tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc . + + +### http://purl.oclc.org/NET/ssnx/ssn#Platform +ssn:Platform rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405 ; + owl:someValuesFrom tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 + ] . + + +### http://purl.oclc.org/NET/ssnx/ssn#Property +ssn:Property rdf:type owl:Class . + + +### http://purl.oclc.org/NET/ssnx/ssn#SensingDevice +ssn:SensingDevice rdf:type owl:Class . + + +### http://purl.oclc.org/NET/ssnx/ssn#System +ssn:System rdf:type owl:Class . + + +### http://www.w3.org/2002/07/owl#OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce +owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce rdf:type owl:Class ; + rdfs:label "Paramètre observable"@en . + + +################################################################# +# Individuals +################################################################# + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_2b887a87_5d83_4d70_b7c9_6f8b1c3e54f0 +tp-iss:OWLNamedIndividual_2b887a87_5d83_4d70_b7c9_6f8b1c3e54f0 rdf:type owl:NamedIndividual , + tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ; + rdfs:label "Température"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_2be00ec6_20f0_4ce1_a370_949a455cb0a1 +tp-iss:OWLNamedIndividual_2be00ec6_20f0_4ce1_a370_949a455cb0a1 rdf:type owl:NamedIndividual , + tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ; + tp-iss:OWLObjectProperty_3e84e8b7_9283_4582_b02d_3815a4cf3864 tp-iss:OWLNamedIndividual_4f731814_91f0_4d75_a5cf_4a0d3629a308 ; + tp-iss:OWLObjectProperty_57b19d61_bcdf_40fd_90c7_dd56beb7acb6 tp-iss:OWLNamedIndividual_40c87ce2_4767_4cb0_9cd7_1dda03352a38 ; + tp-iss:OWLObjectProperty_f4ed4114_811e_4c3b_9fda_e5659bf2ec9c owl:OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd ; + tp-iss:OWLDataProperty_1ba5bda8_e69b_4c0f_930c_ffc2fcf02f10 "3.0"^^xsd:float ; + rdfs:label "P1"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_40c87ce2_4767_4cb0_9cd7_1dda03352a38 +tp-iss:OWLNamedIndividual_40c87ce2_4767_4cb0_9cd7_1dda03352a38 rdf:type owl:NamedIndividual , + tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e , + owl:Thing ; + tp-iss:OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc tp-iss:OWLNamedIndividual_e2cea48d_7da1_41cf_9a6e_167bd3b64a8f ; + rdfs:label "Toulouse"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_4ef6700d_d3ca_437e_96a6_5f531744c9fd +tp-iss:OWLNamedIndividual_4ef6700d_d3ca_437e_96a6_5f531744c9fd rdf:type owl:NamedIndividual , + tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ; + rdfs:label "Hygrométrie"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_4f731814_91f0_4d75_a5cf_4a0d3629a308 +tp-iss:OWLNamedIndividual_4f731814_91f0_4d75_a5cf_4a0d3629a308 rdf:type owl:NamedIndividual , + tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ; + tp-iss:OWLDataProperty_8c1edaf8_176d_4e84_a40f_881f06ca36d5 "2015-10-11T13:20:00Z"^^xsd:dateTimeStamp ; + rdfs:label "I1"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_779078ef_da9a_47ac_bb61_59a30ffffa85 +tp-iss:OWLNamedIndividual_779078ef_da9a_47ac_bb61_59a30ffffa85 rdf:type owl:NamedIndividual , + tp-iss:OWLClass_c8a39393_1773_4418_971e_85efde7cf347 ; + tp-iss:OWLObjectProperty_214a72af_4335_4b8a_b251_edcce1785ea7 tp-iss:OWLNamedIndividual_b95bbab6_16d9_4238_9ba6_b4c2874a3912 , + tp-iss:OWLNamedIndividual_e51e3974_f657_469e_b7a1_6ebaf4935b6a ; + rdfs:label "France"@fr . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_b95bbab6_16d9_4238_9ba6_b4c2874a3912 +tp-iss:OWLNamedIndividual_b95bbab6_16d9_4238_9ba6_b4c2874a3912 rdf:type owl:NamedIndividual , + tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e ; + rdfs:label "Paris"@fr . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_c85bf788_ee5b_4da6_a867_08c79d7380e3 +tp-iss:OWLNamedIndividual_c85bf788_ee5b_4da6_a867_08c79d7380e3 rdf:type owl:NamedIndividual , + tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ; + rdfs:label "Vitesse du vent"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_ddf74788_0035_4c06_bdc7_e519b04c7f99 +tp-iss:OWLNamedIndividual_ddf74788_0035_4c06_bdc7_e519b04c7f99 rdf:type owl:NamedIndividual , + tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ; + tp-iss:OWLObjectProperty_0f63feb1_1b41_4716_92bb_1ef70da83f72 tp-iss:OWLNamedIndividual_2be00ec6_20f0_4ce1_a370_949a455cb0a1 ; + rdfs:label "A1"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_e2cea48d_7da1_41cf_9a6e_167bd3b64a8f +tp-iss:OWLNamedIndividual_e2cea48d_7da1_41cf_9a6e_167bd3b64a8f rdf:type owl:NamedIndividual , + owl:Thing ; + rdfs:label "France"@en . + + +### http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_e51e3974_f657_469e_b7a1_6ebaf4935b6a +tp-iss:OWLNamedIndividual_e51e3974_f657_469e_b7a1_6ebaf4935b6a rdf:type owl:NamedIndividual , + tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e ; + rdfs:label "La ville Lumière"@fr . + + +### http://www.w3.org/2002/07/owl#OWLNamedIndividual_268609f4_8a6e_4076_a5c9_cfd144dde88e +owl:OWLNamedIndividual_268609f4_8a6e_4076_a5c9_cfd144dde88e rdf:type owl:NamedIndividual , + owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce ; + rdfs:label "Pression athmosphérique"@en . + + +### http://www.w3.org/2002/07/owl#OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd +owl:OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd rdf:type owl:NamedIndividual , + owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce ; + rdfs:label "Pluviométrie"@en . + + +### http://www.w3.org/2002/07/owl#OWLNamedIndividual_61229c23_41e4_4ec8_aa17_04ca3dcc42d2 +owl:OWLNamedIndividual_61229c23_41e4_4ec8_aa17_04ca3dcc42d2 rdf:type owl:NamedIndividual , + ssn:SensingDevice ; + ssn:onPlatform owl:OWLNamedIndividual_61237d59_bb40_44ac_bfe3_d9e45ffe04d6 ; + rdfs:label "Sonde T1"@en . + + +### http://www.w3.org/2002/07/owl#OWLNamedIndividual_61237d59_bb40_44ac_bfe3_d9e45ffe04d6 +owl:OWLNamedIndividual_61237d59_bb40_44ac_bfe3_d9e45ffe04d6 rdf:type owl:NamedIndividual , + ssn:Platform ; + ssn:attachedSystem owl:OWLNamedIndividual_dbca17ec_b04b_47fd_a523_4698b3d40ba5 ; + owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405 tp-iss:OWLNamedIndividual_40c87ce2_4767_4cb0_9cd7_1dda03352a38 ; + rdfs:label "Platform1"@en . + + +### http://www.w3.org/2002/07/owl#OWLNamedIndividual_b544466b_449c_4af9_a082_33aa45fcda65 +owl:OWLNamedIndividual_b544466b_449c_4af9_a082_33aa45fcda65 rdf:type owl:NamedIndividual , + owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce ; + rdfs:label "Hygrométrie"@en . + + +### http://www.w3.org/2002/07/owl#OWLNamedIndividual_babab508_1c69_472e_8f83_56a6d02a4b52 +owl:OWLNamedIndividual_babab508_1c69_472e_8f83_56a6d02a4b52 rdf:type owl:NamedIndividual , + owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce ; + rdfs:label "Vitesse du vent"@en . + + +### http://www.w3.org/2002/07/owl#OWLNamedIndividual_dbca17ec_b04b_47fd_a523_4698b3d40ba5 +owl:OWLNamedIndividual_dbca17ec_b04b_47fd_a523_4698b3d40ba5 rdf:type owl:NamedIndividual , + ssn:SensingDevice ; + ssn:observes owl:OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd ; + rdfs:label "Sonde_P1"@en . + + +### Generated by the OWL API (version 4.2.5.20160517-0735) https://github.com/owlcs/owlapi diff --git a/tp2_sensors.rdf b/tp2_sensors.rdf new file mode 100644 index 0000000..2c13caa --- /dev/null +++ b/tp2_sensors.rdf @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + a pour minimum + + + + + + + + a pour maximum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TemperatureSensor_3 + + + + + + + + + + TemperatureSensor_1 + + + + + + + + + + Output T2 + + + + + + + + + + Output T3 + + + + + + + + + + Range B + + + + + + + + + + 0.0 + 50.0 + Positive temperature range relatively common on earth. Expressed in °C + Positive earthly temperatures + Températures positives + + + + + + + + + + -30.0 + 50.0 + Temperatures commonly measured on earth, both positive and negative, expressed in °C. + Common temperatures + + + + + + + + + + Range A + + + + + + + + + + TemperatureSensor_2 + + + + + + + + + + Output T1 + + + + + + + + + Température + + + + + + +