WO2007014986A2 - Procédé et système de codage et de représentation synthétique d'une ontologie partiellement saturée, structure de données, et serveur de structure de données correspondants - Google Patents
Procédé et système de codage et de représentation synthétique d'une ontologie partiellement saturée, structure de données, et serveur de structure de données correspondants Download PDFInfo
- Publication number
- WO2007014986A2 WO2007014986A2 PCT/FR2006/001505 FR2006001505W WO2007014986A2 WO 2007014986 A2 WO2007014986 A2 WO 2007014986A2 FR 2006001505 W FR2006001505 W FR 2006001505W WO 2007014986 A2 WO2007014986 A2 WO 2007014986A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- concept
- concepts
- writing
- ontology
- blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Definitions
- the invention relates to a method and a system for encoding and synthetically representing a partially saturated ontology, a data structure and a corresponding data structure server.
- An ontology is an entity formed by a set of knowledge, facts and rules relating to a given field, scientific, cultural, administrative, industrial or commercial know-how or other.
- the aforementioned knowledge, facts and rules may include a hierarchy of concepts, which represent concepts between an empty concept, generated by a predicate that is meaningless in the ontology under consideration, and a universal concept, allowing the design of all concepts incorporating the ontology considered.
- an ontology can commonly understand predicates including entities such as concept, role, or ordinary predicate.
- the information contained in a given ontology is translated by predicates, link, semantic or logical association between signifying atoms that can be associated with different instances, significant specific values of a variable or an atom.
- a process of saturation of knowledge, rules, disjunctions, inclusions definitions of the ontology makes it possible to calculate the implicit information by means of a reasoner, defined for a language or a logic of precise description.
- a concept is a unary predicate (accepting only one argument) with which it is possible to construct logical formulas of description.
- An ontology with a set of concepts and a hierarchy of concepts can be represented as a lattice.
- a lattice is then defined as a partial order relation, for which any pair of elements or concepts (el, e2) has an element eS greater than a common el element el according to the relations: el ⁇ eS and e2 ⁇ eS el > el and e2> el.
- the lattice structure is richer than a tree structure. Indeed, a tree does not allow an element to have several fathers. Now, if no element or concept can have many fathers, the only possibility of having a common inferior element is to impose that a concept does not have more than one son. Under these conditions, a vertical line hierarchy of little interest is obtained.
- a saturated ontology An ontology that no longer contains implicit information is called a saturated ontology. Under these conditions, all information is accessible in at most one chaining step before.
- a step of chaining before, or of saturation consists in replacing, rewriting, the left part of a rule of definition, either the condition or body of the rule, by its right part, or the conclusion or head of the rule.
- each primitive concept is assigned an identifier consisting of one or more alphanumeric character sequences (a-z, 0-9).
- Each suite is unique on the concept lattice and is a concept path from the universal concept T.
- the paths for node A are the suites aaaa and aaba in Figure 1.
- the order relation of the lattice represented in FIG. 1 is the subsumption, generalization, between two concepts which comprises all the instances of the relation of inclusion between primitive concepts, A to G.
- the hierarchy of primitive and defined concepts implicitly contains all relations calculable by transitivity of the relation of inclusion, such as, for the primitive concept B: BcD BcT. This is not a saturated ontology.
- the ontologies described in the description logic can currently be transmitted in different formats, or transmission languages.
- the OWL format for Ontology WEB Language in English offers a compact view of the field of knowledge.
- the above language is used to describe concepts and exclusions between concepts and has been extended via the swrl language, to also take into account rules that check a specific format on concepts or roles.
- the language swrl has itself been extended by the language swrl-P, to take into account any form of predicate.
- a concept may have several different names depending on its context of use, especially when it is related to a high-tech domain, whose terminology has not yet been adopted and therefore does not yet exist. object of consensus. By extension of language, these names can be considered as synonyms within the ontology.
- Example car and automobile, email and email.
- an exclusion constraint makes it possible to specify that two concepts are incompatible, as well as their descendants.
- EnOceania is mutually exclusive with EnAfrica, as well as with AuTogo, AuMorocco, etc.
- Roles are binary predicates, with two arguments, which are used to associate two concepts with each other. It is often possible to specify the types of each of the arguments in the role.
- Example Located in a place of residence in a geographical location.
- An ordinary predicate is a predicate that is neither a concept nor a role. Each argument of the predicate is most often typed.
- VolAller-Retour has for arguments a flight number, two concepts associated with airports, two departure dates and two arrival dates.
- a rule called a definition rule, makes it possible to define an ordinary predicate according to the set of predicates of the ontology, including concepts and roles.
- the atom, the head of the rule is deduced from the list of atoms from the body.
- Each defining rule that concludes on a given predicate defines it.
- these definitions do not correspond to an equivalence between the body of the rule and the head because it is only a simple implication.
- the facts are specific information related to the field.
- a fact associates a predicate with one or more constants.
- the present invention aims to overcome the disadvantages and limitations of the techniques of the prior art.
- an object of the present invention is the implementation of a method and a device for coding and synthetic representation of a partially saturated ontology in a format or language of textual and structured communication, of type xml or OWI.
- Another object of the present invention is, in particular, to allow any Internet user to fully use the wealth of ontologies, without having to install, manipulate or use reasoners or complex functions to saturate any ontology communicated, this in order to allow, on the one hand, a saving of time, and, on the other hand, a much easier use of any ontology by an unsuspecting user.
- Another object of the present invention is, finally, the implementation of a method and a device for coding and synthetic representation of a partially saturated ontology using a language or format of communication and the rules of syntactic writing, or grammar, of use, of the latter particularly simple and adaptable to many formats of structured markup languages, such as xml language or OwI.
- this ontology comprising at least a hierarchy of concepts formed by primitive concepts and at least one defined concept represented by a lattice under a universal concept and non-concept-related information is remarkable in that it consists at least in encoding this concept lattice by assigning to each concept and the lattice node associated therewith an identifier formed by at least one sequence of integers , each sequence of integers defining a path between a concept considered and the universal concept, via successive fathers concepts, this identifier including all the sequences of integers each defining a path between one of these concepts fathers and the universal concept, to which is added a whole number representative of the considered concept, c Align the mutual exclusions between concepts for each concept considered and memorize the coded concept lattice in the form of a data structure subdivided into blocks including at least one list of concepts including at least one domain name and a list including at least one concept considered, each considered concept
- the method which is the subject of the invention, is furthermore remarkable in that it consists in establishing the ontology storage data structure from a set of definition rules, each definition rule comprising a first part relating to a second part, this second part constituting a definition of the first part, from a plurality of specific keywords with syntax value, for syntactically organizing the blocks of the data structure and starting from a plurality of symbols, each symbol representing a semantic value assigned to a specific keyword, the data structure subdivided into blocks containing terminal blocks each constituted by a keyword and at least one symbol, this set of definition rules and this plurality of symbols being constituted in a transmission and communication language of the coded concept lattice, the writing rules of which constitute the syntax writing rules of this data structure.
- the method, object of the invention is also remarkable in that, non-concept information including roles, ordinary predicates and facts, it further comprises:
- each role according to a binary predicate including at least one header associated with a role name, and at least one first argument, of concept type, determined by the role and a second argument, of concept type, determining in the role;
- each ordinary predicate according to at least one header associated with a predicate name, a first argument of the argument type and a second argument of a definition list, each argument furthermore presenting a semantic value;
- the transmission and communication language further comprises a set of logical operators of description logic expressions including at least:
- the system of coding and synthetic representation of a partially saturated ontology comprising at least one hierarchy of concepts formed by primitive concepts under a universal concept and at least one defined concept represented by a lattice and non-concept information, object of the present invention is remarkable in that, in addition to input / output devices, a central processing unit and a working memory, it includes at least one acquisition module of an ontology for storing said lattice and said non-trellis information, a coding module of the concept lattice by assigning to each concept and the lattice node associated therewith an identifier formed by at least one sequence of integers, each sequence of integers defining a path access between a concept considered and the universal concept, through successive fathers concepts, this identifier included ant all sequences of integers each defining a path between one of these concepts fathers and the universal concept, to which is added an integer
- the invention also covers a system for consulting a saturated ontology, comprising at least input / output devices, a central processing unit and a working memory, which is remarkable in that it also comprises unit for acquiring a data structure subdivided into blocks and representative of this ontology comprising at least one hierarchy of concepts formed by primitive concepts and at least one defined concept represented by a lattice, previously mentioned, and a query interpreter module consultation, transmitted by a user terminal.
- the invention finally covers an IP network access server system with a saturated ontology, remarkable in that it comprises at least, interconnected, a portal provider of access to this partially saturated ontology, from a consultation request, and a consultation system of a saturated ontology previously mentioned.
- the method and system for coding and synthetic representation of a partially saturated ontology, objects of the present invention find particularly advantageous application to the transmission and communication of ontologies in the form of data structures directly accessible on the Internet and searchable. from any structured markup language available online, such as xml for example.
- FIG. 2a represents, by way of nonlimiting example, a flowchart of the essential steps of the method of coding and representing a partially saturated ontology, in accordance with the subject of the present invention
- FIGS. 2b and 2c represent, by way of a non-limiting example, a flowchart of the essential steps of the actual encoding step of a lattice of primitive and defined concepts, in accordance with the object of the present invention as represented in FIG. 2a;
- FIG. 2d represents, by way of nonlimiting example, a trellis comprising coded primitive or defined concepts obtained after the implementation of the actual coding step illustrated in FIG. 2c;
- FIG. 3a represents, for purely illustrative purposes, a preferred mode of implementation of the step of calculating mutual exclusions between concepts as described in FIG. 2a, the aforementioned preferred embodiment preferably comprising an exclusion initialization step followed by an exclusion propagation sub-step;
- FIG. 3b represents, for purely illustrative purposes, a preferred specific embodiment of the exclusion initialization sub-step; represented in FIG.
- FIG. 3c represents, for purely illustrative purposes, a preferred specific mode of implementation of the exclusion propagation sub-step represented in FIG. 3a;
- FIG. 4a represents, by way of nonlimiting example, a block diagram of a coding and synthetic representation system of a partially saturated ontology, in accordance with the subject of the present invention
- FIG. 4b represents, by way of nonlimiting example, a block diagram of a partially saturated ontology consultation system, in accordance with the object of the present invention
- FIG. 4c represents, by way of nonlimiting example, a block diagram of an IP network access server system with a partially saturated ontology, in accordance with the object of the present invention.
- the method of coding and synthetic representation of a partially saturated ontology applies to any ontology comprising at least one hierarchy of concepts formed by primitive concepts and at least one defined concept, this ontology being represented by a lattice and information unrelated to the concept.
- any concept Cj is either a primitive concept PCj or a defined concept DC k , indifferently for the implementation process of the present invention.
- the ontology comprises, in addition to the above-mentioned lattice, information that is not related to the concept in the hierarchy of concepts, that is to say in the lattice, this information may, of course, relate to one or more of the constituent concepts of the aforementioned hierarchy of concepts.
- the method which is the subject of the invention, consists of a step A to code said concept lattice by assigning each concept Cj and the lattice node associated therewith with an identifier, denoted IDj, formed by at least one sequence of integers.
- IDj an identifier
- Each sequence of integers defines a path between a considered concept Cj and the universal concept T, each path being denoted CHj 1 , CHj p in a non-limiting manner.
- Each access path defines a path between a considered concept Cj and the universal concept T via successive fathers concepts.
- the identifier ID; associated with concept C includes all sequences of integers each defining a path between one of the concept fathers of the considered concept Q and the universal concept T to which is added an integer representative of the considered concept Cj.
- Step A is then followed by a step B of calculating the mutual exclusions between concepts for each concept Cj considered.
- step B is then followed by a step C of storing the coded concept lattice in the form of a data structure subdivided into blocks including at least one list of concepts including at least one DN domain name. and a list including at least one concept considered Cj.
- Each concept considered above includes at least one identifier IDj formed by a list of at least one path and a list of CE concepts; mutually exclusive with the concept Cj considered calculated in the previous step B.
- DSj n designates the block-divided elementary data structure including the list of concepts, including the domain name DN and a list comprising at least the considered concept Cj, the identifier IDj calculated at the step A, the list of mutual exclusive concepts ECj calculated in step B.
- Step C can then be followed by a step D consisting in comparing the concept considered Cj with the empty concept _L, for each depth level n of the trellis, the calculation of steps B and C being able to be performed for each level of depth. n of the lattice.
- DS designates the global data structure representative of the coded concept lattice, this data structure being of course formed of all the elementary data structures DSj n relating to each concept Q considered of the lattice.
- the implementation of the above-mentioned coding process is considered preferentially on the primitive concepts PCi and then on the defined concepts DC k under the conditions below.
- each concept designated ABCDEF is constituted by a primitive concept verifying the aforementioned order relation of inclusion between a universal concept T and an empty concept J_ or by an ontology comprising primitive concepts and defined concepts DCk.
- any primitive concept PCj where i designates an address of possible identification of a given given primitive concept takes the value A to G for the hierarchy of primitive concepts shown in Figure 1 and verifies the relationship:
- the coding method, object of the invention consists, as it appears in FIG. 2b, in attributing to each primitive concept PQ taking one of the preceding values and, of course, to the node of the lattice associated with the latter, an identifier formed by at least one sequence of integers, each identifier being thereby represented by at least one sequence of integers delimited by square brackets as will be explained hereinafter.
- each sequence of integers defines a path between the primitive concept considered PCj and the universal concept T, via successive primitive concepts fathers.
- the identifier associated with a primitive concept and the corresponding lattice node includes all the sequences of integers each defining a path between the primitive concepts fathers and the universal concept T, to which is added an integer representative of the primitive concept considered.
- FIG. 2b A specific implementation mode of nonlimiting specific coding will be described in connection with FIG. 2b, in which the hierarchical structure of FIG. 1 between the universal concept T and the empty concept is preferentially, but in a nonlimiting manner, covered in FIG. "first level" for example.
- identifier [1] for the concept D
- identifier [2] for the concept G.
- step C 0 of FIG. 2b the identifiers are assigned for the following concepts: PC ⁇ G [2].
- PC ⁇ G [2] Following the level of filiation 1, for example, we then proceed to the passage of filiation level 2, that is to say to the study of any PCj concept connected to the universal concept T by an intermediate concept.
- the identifier associated with each of the PC concepts includes all sequences of integers each defining a path between one of the primitive fathers concepts and the universal concept, to which is added an integer representative of the primitive concept considered.
- the integer added to the primitive concept father B of the latter is the number 2 because of the existence of the concept son A vis-à-vis the primitive concept father common B.
- Every primitive concept son such as the primitive concept F, is assigned only one integer number of identification, such as the number 2, vis-à-vis the single and same primitive concept father B, regardless of the whole number of identification attributed to another primitive concept father, such as E.
- each added integer is a serial number of the primitive concept considered representative of the rank of filiation of the primitive concept considered above, taken as a primitive concept son of a plurality of primitive common fathers concepts, that is primitive concepts B and E in Figure 1, vis-à-vis the primitive concept son F.
- the coding method in the form of a concept lattice, a hierarchy of concepts belonging to an ontology, object of the present invention, as represented and described in FIG. 2b, is not limiting.
- the course of the hierarchy of concepts represented in FIG. 1a can be carried out in any suitable manner and in particular according to a "depth-first" traversal process which can consist of going through the hierarchy of concepts no longer by level, as described in connection with Figure 2b, but branch by favoring the course by successive node of the same successive filiation.
- An oriented graph is a non-symmetric binary relation where each element of the relation is represented by a node in the graph and where each occurrence of the relation makes appear on the graph an oriented arc, that is to say an arrow of a given node to another given node.
- the topological sorting algorithm allows a node to be applied once all of its antecedents have been processed.
- a primitive concept of the hierarchy of primitive concepts is numbered once all its fathers have been numbered.
- a child concept inherits all the paths of the identifier of each of his fathers extended to the right by a new integer, the added integer being the same for all the paths of the same father given to one of his sons.
- This mode of operation makes it possible to guarantee that a path is associated with only one concept of the hierarchy of concepts and that the added character is different for each of the child concepts considered.
- the set of extended paths obtained from all the fathers concepts of a primitive concept, considered as a child concept of all the aforementioned concepts fathers, constitutes the identifier of the primitive son concept considered supra.
- the concept of position covers the notion of filiation and finally position of each node in the lattice above and / or below another node and, ultimately, a concept associated with the latter.
- the aforementioned simple semantics is generally controlled by an ontology expert, who defines the ontology as such with the hierarchy of concepts associated with the primitive concept under consideration.
- an ontology as such and in particular a hierarchy of primitive concepts constituting it, allows a better automatic exploitation of the properties of the considered ontology, when there is no redundancy in the hierarchy of concepts as defined.
- the aforementioned redundancy detection for primitive concepts is simple because it consists in verifying the absence of redundancy by studying the instances of inclusion relation.
- a hierarchy of concepts belonging to an ontology includes not only primitive concepts but also at least one defined concept, with some implementation precautions, which will be explained below.
- the lattice obtained by taking into account defined concepts corresponds to a relation of order broader than the relation of order of inclusion of a lattice relative to primitive concepts.
- the order relation associated with a lattice comprising primitive concepts and defined concepts is a partial order relation obtained by calculating subsumption between two elements, that is to say between primitive concept and / or defined . It is recalled that the subsumption tests, specific to an ontology language, make it possible to indicate whether a concept generalizes another concept.
- the present invention also relates to a method of coding a hierarchy of concepts comprising primitive concepts and, at least, a concept defined under the conditions below, as represented in FIG. 2c.
- the coding method which is the subject of the invention, consists at least, in a step denoted SA, of generating a saturation of the hierarchy of concepts by execution of the inclusion test on the concepts. primitive. This operation is noted:
- the saturation test thus makes it possible to establish all the implicit inclusion relations existing between the primitive PC concepts; of the hierarchy of concepts.
- the saturation step SA is accompanied by an AC coding step similar to that represented in FIG. 2b, for the set of the aforementioned primitive concepts, the coding operation A thus making it possible to implement a data structure in the form of a trellis of primitive concepts noted TPCj, that is to say a structure similar to that obtained through the implementation of the coding method object of the invention, the primitive concepts shown in Figure 2b.
- step A This operation in step A is noted by the relation: ⁇ lcPCjcT ⁇ ⁇ TPCj.
- Step A of coding is then followed by a saturation step denoted SU of the hierarchy of concepts by execution of tests of subsumption of the concepts defined with detection of the synonyms.
- the subsumption saturation step SU can then be followed by a redundancy detection / suppression step, denoted RDC in FIG. 2, in the defined concepts DC kx , these redundancies being able to appear because of the character of the transitivity of the subsumption relationship verified.
- RDC redundancy detection / suppression step
- each DCk concept of the set of defined concepts ⁇ DCk ⁇ in which the redundancies have been suppressed, can then be assimilated globally to a primitive concept of view of the numbering coding vis-à-vis the primitive concepts existing in the primitive concept lattice TPCj.
- the RDC redundancy detection / suppression step of FIG. 2c is followed by a step I of introducing the defined concepts DC k in which the redundancies have been removed in the lattice of primitive concepts. TPC 1 .
- step I The operation in step I above is noted:
- the aforementioned introduction operation consists in fact of introducing for example into a digital file the title of the defined concepts DC k in which the redundancies have been suppressed with the titles of the primitive concepts PQ to finally generate a set of primitive and defined concepts, which, because of the redundancy suppression processes of the defined concepts, can then be subjected to a coding similar to that carried out and described in connection with FIG. 2b with respect to all the concepts present constituting the hierarchy of concepts representative of the ontology considered.
- the preceding symbolic relation indicates that by the coding of the concept lattice body including the primitive concepts and concepts defined in the form of concept lattices, it is in fact attributed to each defined concept DC k and to the node of the lattice body associated with it. , an identifier compatible with any identifier assigned to one or more primitive concepts and / or defined to form in fact a TDPC concept lattice including both the primitive concepts and the aforementioned defined concepts.
- FIG. 2d represents a data structure relating to a numbered trellis comprising primitive concepts A to G and defined concepts H and I coded by numbering as described previously in the description in conjunction with FIGS. 2b and 2c.
- an identifier IDj formed by a succession of paths, each path being represented by a sequence of integers in accordance with the implementation of the process of coding previously described in connection with the above figures.
- Each identifier IDj is unique on the concept lattice and corresponds to the existence of at least one path between a considered concept Cj and the universal concept T at the top of the lattice, although, as mentioned above, the universal concept T and the empty concept J_ do not have an identifier as such.
- Example: the concept B [II l] has for concepts generalizing the concepts defined by the paths [11] and [1], namely the concepts C and D and is separated by at most and at least three arcs of the universal concept T.
- Concept B in Figure 2d has as a concept the concepts of which one of the paths of the identifier begins with [111], namely concepts A and F.
- the concept I [231 1131] is separated by at least three arcs and at most by four arcs of the universal concept T and its depth is 4.
- a subsumption test is a complex calculation in an ontology described in description logic that makes it possible to determine whether the instances of a concept are included or not in that of another concept, based on the definition of the concepts.
- the above-mentioned numbering coding makes it possible, in addition, to determine the smallest generalizing common, designated ppcg, between two concepts C1 and C2.
- the set of common generalizers ⁇ gc contains all the concepts that subsume both the Cl concept and the C2 concept.
- the ppcg is the largest subset of the set of common generalizers ⁇ gc such that no concept of ppcg subsumes another concept of ppcg and such that no concept of ppcg subsumes a concept of the whole remains.
- the ppcg of two concepts can be directly accessible in a saturated ontology. In the context of the same context it is then easy to extend the calculation of the ppcg from two concepts to n concepts. The simplicity of the calculation of the ppcg which uses the numbering, that is to say the identifiers and paths, is then all the more appreciable.
- the ppcg of the concepts A 5 F and H is then restricted to the ppcg of [111 112] with [21 113] namely the concept C [I l].
- D and G do not have a ppcg. It should therefore be noted that the aforementioned numbering encoding contains at least as much information as a saturated concept ontology since it allows, without any chaining before and with some calculations that are inexpensive in computing time, to obtain all the information inherent in the concepts of ontology.
- the exclusion constraints for the encoding of the above ontology, have been taken into account in order to be able to communicate the aforementioned exclusion constraints in a saturated and compact form. It is understood, in particular, that the exclusion constraints having been pre-calculated their communication then allows any user equipped with ordinary resources to take into account these exclusion constraints in order to manipulate the coded ontology object of the present invention. .
- step B of calculation of the mutual exclusions of FIG. 2a in accordance with the object of the present invention, is remarkable in that it takes into account mutual exclusion constraints which are implicit it is that is to say the exclusions between concepts induced by the definitions of these concepts and in particular the defined concepts.
- Man: to be Alive D noun (Woman) one thus defines a man as being a human being who is not a woman. We thus obtain an implicit mutual exclusion between man and woman.
- the step B of calculating the mutual exclusions advantageously comprises an initialization sub-step B 1 consisting in fact of generating all the exclusion constraints between defined and primitive concepts, in particular making sure, however, to keep only the constraints placed on the most general concepts.
- This operation is carried out in the substep B 1 of FIG. 3a by calling an initialization algorithm whose pseudo code designated ALG 1 is given in the table T1:
- step A of FIG. 2a the calculation and storage of the mutual exclusion constraints can then be optimized.
- a test step B 12 is then called, which consists of checking whether the path CHj prefixes the path CHj according to the relation:
- a substep B 13 is called, which consists in choosing the following concept j whose paths are conceptual paths generalizing, that is to say corresponding to a depth less than that of the concept considered Cj.
- a substep B ⁇ which consists in memorizing the concept CHj whose path CH j is lower than the concept CH; and prefix the latter.
- step B 14 The storage step is noted in step B 14 :
- step B 15 of subjecting the identity of the concept C j to the universal concept to an equality test. This operation can be performed by calculating an empty path of the concept Cj with respect to the universal concept.
- substep B 15 A negative response to the test of substep B 15 a return is made to substep B 13 which is to call the concept generalizing next to noted next j, for continuing the process.
- CEi L 6x [CEGi [C j ]]
- the initialization step of FIG. 3a can then be followed by a step B 2 of propagation of the exclusion.
- the propagation step can then correspond to a process by calling an algorithm ALG 2 whose pseudo code is given in the table T2.
- a step B 22 makes it possible to update the list of generalizing concepts from all the mutually exclusive specializing concepts with the concept considered Q.
- This list of concepts noted (CES jx ) is added to the CEGj list mentioned above.
- the method object of the invention in order to complete an optimal communication of a hierarchy of concepts described in description logic, in accordance with the subject of the present invention, in the form of a list of concepts associated with their identifier, the method object of the invention, and in particular in step C of storage shown in Figure 2a advantageously consists in establishing the aforementioned data structure from a set of definition rules, each definition rule comprising a first part relating to a second part constituting a definition of the first part.
- a plurality of specific keywords with syntax value is implemented, in order to allow to syntactically organize the blocks of the data structure.
- a plurality of symbols each symbol representing a semantic value assigned to a specific keyword, is further advantageously implemented to structure the aforementioned data structure in a specific format.
- the data structure subdivided into blocks then contains terminal blocks each consisting of a keyword and at least one symbol.
- the set of definition rules, the plurality of keywords and the plurality of symbols are constituted in a transmission and communication language of the data structure whose writing rules constitute the syntax writing rules.
- the above-mentioned syntax writing rules can then be defined as a grammar, which describes the transmission language of a complete concept lattice.
- Left part: right part that allows to write sentences or information, replacing the left parts by their definition which are other than the straight parts.
- the keywords used are then used to give meaning to the block used in the grammar, that is to say finally in order to allow to syntactically organize the blocks of the aforementioned data structure.
- the plurality of symbols includes at least the vertical bar, the brackets, the symbols ⁇ ,>, the signs +,? and the sign * for example.
- Block block 1 must not be a terminal block.
- a comma can be inserted between each of the blocks indicating them in the order in which they appear; This comma must appear in its place in the final document, it is a terminal block;
- the writing of a plurality of blocks between the symbol ⁇ and the symbol> constituting a third symbol makes it possible to allocate to the above-mentioned writing a replacement function for each block by its definition from a rule of definition.
- the blocks do not constitute terminal blocks;
- - Rewriting a fourth symbol, the sign *, associated with a block allows to allocate to the writing of the fourth symbol above a multiplication function of the number of instances assigned to the block.
- the instances may be different or different.
- a comma appears between each instance in the final document;
- the writing of a fifth symbol, the sign + associated with a block makes it possible to allocate to the above-mentioned writing a multiplication of the number of instances assigned to the block under presence constraint of at least once in the document final constituent of the data structure;
- the aforementioned communication and communication language of the encoded data structure is then one of the languages chosen from the group of xml or OwI languages.
- CA 53 ID CH 1,1,1,1, CH 1,1,2,1, CEF CF ,, IDCH 1,1,1,2, CH 1,1,2,2 EC A.
- C denotes the introduction of a concept field A or F
- - ID CH designates the introduction of a field relative to a path contained in an identifier ID
- a concept C1 is associated with the most general C2 concept with which it is mutually exclusive. Moreover, we know that every concept C3 descending from C2, that is to say son of the concept C2, is also mutually exclusive with the concept Cl.
- syntax writing rules forming the aforementioned grammar for implementing the coding method that is the subject of the present invention are not limited to the transmission of the primitive or defined coded by numbering concepts, as previously mentioned, but allow in particular advantageous application of a coding to non-concept information including roles, ordinary predicates and facts.
- the coding method that is the subject of the invention then consists in coding each role according to a binary predicate including at least one header associated with a role name, a first concept argument determined by the role and a second one. argument of concept type determining in the role.
- a role is then coded as:
- R located in, place of residence, geographic location.
- the method which is the subject of the invention, furthermore consists in coding each ordinary predicate according to at least one header associated with a predicate name, a first argument of argument type and a second argument of definition list, each argument presenting in in addition to a semantic value.
- an ordinary predicate is identified by its name and by the number of arguments that it accepts. In addition to this raw information, additional information for cooperative processing can be added. In particular, each argument of an ordinary predicate has implicitly a type known by the ontology expert who defines the ontology as such.
- the ordinary predicate flight AR accepts seven arguments, the first is of type Flight, the two following are of type airport and the last four are of type date, to express the dates of departure and arrival of the flights round trip.
- each of the aforementioned arguments corresponds to an expected information that is both more precise than the type and independent of the aforementioned type. This information is none other than the semantics of the argument.
- the definitions of a predicate are thus written as definition rules in the ontology.
- the head atom of the rule is deduced from the list of atoms of the body. It is said that an ordinary predicate that appears at the top of the rule accepts among its definitions the body of the rule.
- the coding method which is the subject of the invention consists in coding each fact according to a header associated with an atom of which at least one of the arguments is a constant.
- a fact is an atom of which at least one of the arguments is a constant.
- each ordinary predicate is then encoded by a header associated with a plurality of atoms from a definition rule.
- each definition rule is advantageously associated with a numerical order number for reading rules, which makes it possible to order any subset of definition rules. encoded for optimizing execution of the definition rules in the data structure.
- a rule stating that a flight is at an associated economy fare indicates that the flight is an economical flight.
- NUM 3 DEF A VolEco, x, p, A Vol, x, A, TarifAss, x, p, A TarifEc, p and
- the definition rules of the ontology can make it possible to deduce information by saturation, that is to say by forward chaining. In such a treatment of predicate definitions, it may be particularly interesting to impose the reading order of the definition rules to minimize the number of readings made.
- a third passage makes it possible to deduce P3 (a, a, b) thanks to rule 1.
- the third and last passage makes it possible to finish the saturation of the rules since it does not lead to any deduction.
- the implementation of the coding method makes it possible to define a data structure in which the defined concepts are restricted to their identifier which only have their position within the concept lattice coded for only semantics. .
- the definition to which they are associated is no longer necessary to manipulate the ontology and consult it or supplement it with new concepts.
- any ontology creator wizard is asked to associate with each expression appearing in a definition a defined concept name to which the expression is equivalent. It must either associate a name with this description of description logic, or leave a fictional concept name generated automatically and positioned in the ontology. It is understood, in particular, that because each concept in the coded concept lattice has no semantic value, only the position of the latter in the ontology is decisive.
- each meaningful description description logic is therefore named in the ontology prior to the numbering coding process.
- the syntax or grammar writing rules allowing the implementation of the coding method that is the subject of the present invention, and the transmission and communication language of the constituent data structure of these syntactic writing rules furthermore comprise a set of logical operators of expression of description logic making it possible to introduce the elements or expressions of description logic at the discretion of the expert creator of ontology, although these elements are not a priori necessary.
- the set of logic operators of said description logic expression includes at least:
- a fifth logical operator ⁇ neg> allowing the negation or exclusion of a basic element such as a concept by means of a "NEG" header.
- the data structure subdivided into blocks, object of the invention is represented in the form of a complete DTD and which corresponds to the implementation of the syntax or grammar writing rules presented previously in the description relative to a file designated ontology.dtd. .
- the data structure subdivided into blocks, object of the invention, or complete DTD is given in Table T5 below:
- block-partitioned data structure shown in Table T5 is structured from a statement consisting of a plurality of declaration lines formed by blocks and including:
- declaration line 1 of the ontology declaring besides a ontology domain name, a plurality of ordinary concepts, roles and predicates and facts;
- a line 2 declaring declaring concepts in addition to a concept name, a plurality of synonyms, an identifier, a plurality of mutually exclusive concepts vis-à-vis the declared concept and a plurality of logic logical expression operators; optional description;
- identifier IDj declared as a plurality of integers, as mentioned previously in the description;
- a declaring role declaration line 7 in addition to a role name, an argument discriminated by the role and a discriminating argument in the role to each argument being assigned a semantic value by an argument type declaration;
- an ordinary predicate declaration line 8 declaring in addition to an ordinary predicate name an optional type of plurality of arguments associated with a rule reading order number and a plurality of optional definitions;
- the aforementioned description logic operator logical declaration declaration line declares at least the writing of a block determined in the left part and the writing of an ordered sequence of blocks in the right part of a definition rule, with this writing being allocated a replacement function of the block determined by the series of blocks, the writing of the first symbol
- the data structure subdivided into blocks according to the invention constituting the DTD introduced in the aforesaid table T5 is thus an enriched xml structure taking into account other knowledge, such as roles, ordinary predicates notably comprising a sequence number of reading.
- the definition of an ordinary predicate is actually made up of a sequence of atoms beginning with the leading atom of the rule, this head atom is constructed from the name of the predicate followed by a list of variable arguments or constant.
- a set of definition rules to be saturated is always ordered according to the increasing step number; a step number for a definition of an ordinary predicate PO is computed recursively according to the step number of the ordinary predicates present in the ordinary predicate definitions PO.
- Predicates that have no definition or that do not contain an ordinary predicate in their definition are associated with the Tier 1 number.
- each ordinary predicate PO is associated with the predicate
- Ordinary POs that appear in at least one of the ordinary predicate definitions (it is necessary to perform n * (n / 2) reads list elements of L to initialize a L2 list and n * (n / 2) reads are at worst necessary for the deletions of ordinary predicates PO).
- Two sets of definition rules R1 and R2 can quickly merge by applying the following algorithm in n passages for n rules. Many rules have the same sequence number and belong to the same step number and therefore do not have to be ordered relative to each other. This mode allows you to move faster in a rule packet.
- the corresponding algorithmic process is introduced in Table T8 below:
- the data structure subdivided into coded blocks in accordance with the implementation of the method which is the subject of the invention, can then be memorized and / or communicated to different actors, this communication being able to be executed via a text file by example, through a conventional network using an xml file.
- the coding system which is the subject of the invention, conventionally comprises I / O input / output devices, a CPU and a CPU. RAM working memory.
- the coding system object of the invention comprises an ontology acquisition module M 0 for storing the lattice and the information not related to the concepts.
- These pieces of information may, as shown in Figure 4a, be provided online by an ontology provider, the ontology provider then editing corresponding digital files containing the lattice and non-concept information.
- the coding system which is the subject of the invention comprises a module M 1 for encoding the concept lattice by assigning to each concept and to the lattice node associated therewith with an identifier ID; formed by at least one sequence of integers.
- Each sequence of integers defines a path between a concept considered Cj and the universal concept T, via successive concepts fathers.
- the identifier thus includes all sequences of integers each defining a path between one of the fathers concepts and the universal concept T, to which is added an integer representative of the concept considered.
- the coding module M 1 is advantageously implemented in the form of a software module stored in read-only memory for example, or on a hard disk drive for example, which is then called by the CPU for execution, in the working memory for example, during an implementation of the coding system object of the invention.
- the latter comprises a module M 2 for calculating the mutual exclusions between concepts for each considered concept Q of the ontology.
- the calculation module M 1 may be constituted by a calculation program module implementing the method, object of the invention, as described above.
- the storage unit PM may advantageously consist of a non-volatile programmable memory which makes it possible, for example, during the successive use of the coding system that is the subject of the invention, to carry out any update of the data structure. stored in the aforementioned programmable memory, in particular when adding concepts defined in the coded trellis for an update of the entire ontology, as described previously in the description.
- FIG. 4b A system for consulting a partially saturated ontology, in accordance with the subject of the present invention, this ontology being communicated in the form of the data structure subdivided into blocks as represented in FIG. 2d, that is to say the coded trellis, accompanied by the DTD text documents previously described in the description, will now be given in connection with FIG. 4b.
- the consultation system shown in the aforementioned figure comprises at least I / O input / output devices, a central processing unit and a RAM working memory.
- an MO unit for acquiring a data structure subdivided into blocks and representative of the ontology to be consulted, the latter comprising at least one hierarchy of concepts formed by concepts.
- primitive and at least one defined concept represented by a trellis this data structure being represented, as mentioned above, by the coded trellis represented in FIG. 2d by numbering and by the DTD document, as introduced for example by the T5 or T6 table, a module M 3 interpreter consultation requests, this request being transmitted by a user terminal requesting consultation of a given ontology.
- the interpreter module M 3 then executes a reading of the concepts in the list of mutually exclusive concepts.
- the interpreter module M 3 Upon identification of the first and second concepts in the list of mutually exclusive concepts, the interpreter module M 3 then performs a limitation of the search path on identification of the first and second concept B and H in the list of mutually exclusive concepts. The limitation is then executed on the only specializing concepts of the first concept, for example, given the mutual exclusion of the specializing concepts of the second concept.
- the server system object of the invention, comprises at least interconnected, an access provider portal, designated OAP in Figure 4c, said ontology partially saturated, from a request for consultation and, of course, a consultation system of said saturated ontology as described above in connection with Figure 4b.
- the consultation system is designated OP.
- the server system can be configured, as shown in FIG. 4c, by a physically interconnected access provider portal and a consultation system interconnected in a network or, on the contrary, by corresponding entities interconnected and integrated into a single network. and even physical entity.
- the access provider portal comprises at least, in addition to an input / output device I / O and a central processing unit CPU, a module M 4 for discriminating mutually exclusive concepts in the request transmitted by the user terminal. by comparing the access paths contained in the identifier of each of the concepts contained in the request, and a calculation module M 5 of a coherent request by calling to the generalizing concepts of mutually exclusive concepts, from the paths and the identifiers of the aforementioned generalizing concepts.
- the OAP ontology access provider portal is able to inform the user, before any consultation of the data, that his request can not obtain an answer since it contains an inconsistency, the concepts travel in train and plane trip being disjointed.
- the module M 5 for calculating a coherent query then makes use of the generalizing concepts of the mutually exclusive concepts and makes it possible, after identification in the list of mutually exclusive concepts such as travel by TGV and air travel, to establish a coherent request of the type: Travel by TGV on board a European rail transport vehicle or travel aboard an A-320 aircraft in one of the airline companies available in the ontology.
- the ontology is directly transmitted in its saturated form, that is to say in the form of the data structure satisfying the rules for writing the syntax of the communication language, as described previously in the description.
- the aforementioned ontology transmission mode allows both a time saving after receiving the document, that is to say the complete DTD since there is no complex or expensive calculation to be performed on the ontology already saturated, then during the transmission and reading of the document, since the saturated file is in a compact text format and relatively small size.
- storing the corresponding information does not require a heavy data structure.
- the method and the coding system, the data structure obtained by the implementation of the latter and the corresponding data structure server make it possible to perform all the reasoning on the concepts of the ontology with a lower cost. execution time.
- string a string of characters comparable to the type of programming "string”.
- Ph is the depth of the hierarchy, this parameter being equal to the maximum length of a path CH ranging from the universal concept to the empty concept.
- a concept considered Q comprises for example ns synonyms and it therefore has ns different names.
- the set of aforementioned parameters verifies the relation: ng ⁇ n and nd ⁇ n.
- Ph-I integers for a concept considered Ci located above the empty concept with at most, Ph-I concept generalizing.
- a Q concept considered under the generalizing concept T has at most Ph-I specializing concept.
- a concept Q considered is mutually exclusive with nce concepts, this number being very close to the total number n of concepts.
- a computer program product stored on a storage medium and executable by a computer characterized in that, when the program product is executed by a computer or by a dedicated coding system, described in connection with the 4a, it executes the method of coding and synthetic representation of a partially saturated ontology, as described previously in the description with reference to Figures 2a to 3c;
- a computer program product stored on a storage medium and executable on a computer characterized in that when executing this program product by a computer or by a dedicated consultation system of a partially saturated ontology , as described with reference to FIG. 4b, this program product performs an interpretation of any consultation request issued by a terminal, as described in connection with FIG. 4b;
- this program executes a discrimination of mutually exclusive concepts and the computation of a coherent request by invoking the generalizing concepts of the mutually exclusive concepts, as described in connection with FIG. 4c .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
L'invention concerne un procédé de codage et de représentation synthétique d'une ontologie partiellement saturée, comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini représentée par un treillis et des informations non liées aux concepts. Il consiste au moins à coder (A) le treillis de concepts par attribution à chaque concept (Ci) et au noeud du treillis associé à ce dernier d'un identifiant (IDi) formé par au moins une suite de nombres entiers, chaque suite de nombres entiers définissant un chemin d'accès entre un concept considéré (Ci) et le concept universel (T), par l'intermédiaire de concepts pères successifs, l'identifiant incluant toutes les suites de nombres entiers définissant chacune un chemin d'accès entre les concepts pères et le concept universel (T), auxquelles est ajouté un nombre entier représentatif du concept considéré(Ci), calculer (B) les exclusions mutuelles entre concepts pour chaque concept considéré, mémoriser (C) le treillis de concepts codé sous forme d'une structure de données subdivisée en blocs, incluant au moins une liste de concepts incluant au moins un nom de domaine et une liste comportant au moins un concept considéré, chaque concept considéré incluant au moins un identifiant formé par une liste d'au moins un chemin et une liste de concepts mutuellement exclusifs avec le concept considéré. Application à la transmission et la diffusion d'ontologies en réseau IP, sur Internet.
Description
PROCÉDÉ ET SYSTÈME DE CODAGE ET DE REPRÉSENTATION
SYNTHÉTIQUE D'UNE ONTOLOGIE PARTIELLEMENT SATURÉE.
STRUCTURE DE DONNÉES. ET SERVEUR DE STRUCTURE DE DONNÉES
CORRESPONDANTS
L'invention concerne un procédé et un système de codage et de représentation synthétique d'une ontologie partiellement saturée, une structure de données et un serveur de structure de données correspondants.
Une ontologie est une entité formée par un ensemble de connaissances, de faits et de règles relatifs à un domaine donné, domaine scientifique, culturel, administratif, savoir faire industriel ou commercial ou autre.
Ces informations sont traduites par des prédicats (Vol, Pays) pouvant être associés à différentes instances ("714 Sydney", "France"). Les informations implicites, obtenues par saturation des connaissances de l'ontologie, telles que règles, disjonctions, inclusions, définitions, sont calculées par un raisonneur, défini pour un langage ou une logique de description précise, par exemple Carin-ALN qui permet de combiner l'expressivité des clauses de Horn (Carin permet d'utiliser (i) des règles logique telles que "si mon véhicule est une automobile de tourisme, alors il a 4 roues" avec (ii) une logique de description quelconque) avec l'expressivité de la logique de description ALN qui permet d'exprimer des classes d'objets, des concepts, à partir des constructeurs associés aux lettres A : Top (concept universel), Bottom (concept vide), for AIl (restriction universelle sur certaines propriétés associées à certains concepts) et Not ; L : And (Et logique entre plusieurs concepts) et N : At least et At most (restriction de cardinalité sur certaines propriétés de certains concepts).
Les connaissances, faits et règles précités peuvent inclure une hiérarchie de concepts, lesquels représentent des concepts entre un concept vide, engendré par un prédicat qui n'a pas de sens dans l'ontologie considérée, et un concept universel, permettant de concevoir tous les concepts incorporant l'ontologie considérée.
Outre la hiérarchie de concepts précitée, une ontologie peut communément
comprendre des prédicats incluant des entités telles que concept, rôle ou prédicat ordinaire.
Pour assurer la représentation, à partir d'un codage, d'une hiérarchie de concepts d'une ontologie donnée, la méthode la plus aboutie connue actuellement a été proposée par Monsieur Alain Bidault, confer Thèse n° 6932 présentée pour obtenir le grade de docteur es Sciences de l'Université Paris XI Orsay spécialité Informatique par cet auteur, sujet : Affinement de Requêtes posées à un Médiateur au sein du système PICSEL, Paris juillet 2002.
Selon la méthode précitée, les informations contenues dans une ontologie donnée sont traduites par des prédicats, lien, association sémantique ou logique entre atomes signifiants pouvant être associés à différentes instances, valeurs spécifiques signifiantes d'une variable ou d'un atome.
Un processus de saturation de connaissances, règles, disjonctions, inclusions définitions de l'ontologie permet de calculer les informations implicites au moyen d'un raisonneur, défini pour un langage ou une logique de description précis.
Selon la méthode précitée, un concept est un prédicat unaire (n'acceptant qu'un seul argument) avec lequel il est possible de construire des formules logiques de description.
Une ontologie comportant un ensemble de concepts et une hiérarchie de concepts peut être représentée sous forme d'un treillis. Un treillis est alors défini comme une relation d'ordre partiel, pour laquelle tout couple d'éléments ou concepts (el, e2) possède un élément eS supérieur à un élément el inférieur commun selon les relations : el < eS et e2 < eS el > el et e2 > el.
Dans ces relations, les symboles > et < désignent la relation d'ordre ou hiérarchie précitée.
L'ordre est partiel, car il n'est pas défini pour tous les éléments : certains éléments sont hiérarchiquement inférieurs à d'autres, mais certains éléments ne sont pas comparables à d'autres. Par ailleurs, un élément peut avoir plusieurs éléments
- -
hiérarchiquement supérieurs et inférieurs.
La structure de treillis est plus riche qu'une structure d'arbre. En effet, un arbre ne permet pas qu'un élément ait plusieurs pères. Or, si aucun élément ou concept ne peut avoir plusieurs pères, la seule possibilité d'avoir un élément inférieur commun est d'imposer qu'un concept n'ait pas plus d'un fils. On obtient dans ces conditions une hiérarchie en ligne verticale de peu d'intérêt.
Une ontologie qui ne contient plus d'information implicite est appelée une ontologie saturée. Dans ces conditions, toute information est accessible en au plus un pas de chaînage avant. On rappelle ici qu'un pas de chaînage avant, ou de saturation, consiste à remplacer, réécrire, la partie gauche d'une règle de définition, soit la condition ou corps de la règle, par sa partie droite, soit la conclusion ou tête de la règle.
Un exemple de treillis de concepts décrit en logique de description est donné en relation avec la figure 1, exemple dans lequel la relation d'ordre du treillis est la relation d'inclusion pour les concepts primitifs A, B, C, D, E, F, G ç :
IÇAÇBÇCÇDÇT ; lçGçT ;
IÇFÇEÇC ;
AcE
FcB.
Selon la méthode précitée, on attribue à chaque concept primitif un identifiant, constitué par une ou plusieurs suites de caractères alphanumériques (a-z, 0-9). Chaque suite est unique sur le treillis de concepts et constitue un chemin d'accès au concept à partir du concept universel T. Les chemins d'accès pour le nœud A sont les suites aaaa et aaba sur la figure 1.
La relation d'ordre du treillis représenté en figure 1 est la subsomption, généralisation, entre deux concepts qui comprend toutes les instances de la relation d'inclusion entre concepts primitifs, A a G.
Une flèche allant d'un premier à un deuxième concept primitif indique que le premier concept est subsumé, généralisé, par le deuxième concept. Pour deux
concepts primitifs, cette relation se réduite à vérifier l'existence d'une relation d'inclusion. Cela dit, un treillis tel que représenté en figure 1 peut en outre incorporer des concepts définis H et I5 H=CPlG avec H subsume I5 comme il sera décrit ultérieurement dans la description. En revanche, déterminer si un concept défini en généralise un autre fait intervenir des calculs complexes sur les expressions de logique de description.
En référence à la figure 1 et au treillis de concepts primitifs ou définis représentés, on dit que :
- A est le fils de B et E ;
- B est le père de A et F ;
- B, E, A et F sont les descendants de C ;
- B, E, C et D sont les généralisants de A ;
- T est le concept universel ;
- _L est le concept vide.
Les définitions précitées s'appliquent en outre aux concepts définis.
La hiérarchie de concepts primitifs et définis contient implicitement toutes les relations calculables par transitivité de la relation d'inclusion, telles que, pour le concept primitif B : BcD BcT. Ce n'est donc pas une ontologie saturée.
Les ontologies décrites en logique de description peuvent actuellement être transmises dans différents formats, ou langages de transmission.
Le format OWL pour Ontology WEB Language en anglais, le plus avancé et le plus complet, propose une vision compactée du domaine de connaissance. Le langage précité permet de décrire des concepts et des exclusions entre concepts et a été étendu via le langage swrl, pour prendre en compte également des règles vérifiant un format spécifique sur des concepts ou des rôles. Le langage swrl a lui-même été étendu par le langage swrl-P, pour prendre en compte n'importe quelle forme de prédicat.
Les techniques précitées, en particulier les formats ou langages de communication tels que xml ou swrl-P, ne permettent pas une représentation à la fois compacte et saturée d'une ontologie. Le domaine n'est ni saturé, ni exploitable de
manière informatique en tant que tel. Exploiter un tel fichier nécessite une compilation des données via un raisonneur qui permet d'obtenir une hiérarchie saturée. Les calculs à effectuer pour obtenir une telle classification sont coûteux et complexes. Ces calculs ne sont accessibles qu'à des experts.
Par ailleurs, le codage de concepts primitifs d'une hiérarchie de concepts par attribution d'un identifiant comportant au moins un chemin d'accès, tel que décrit dans le mémoire de thèse précité, permet d'obtenir un gain de temps sur les calculs liés aux concepts pour le raisonneur ou pour les traitements coopératifs mais n'est associé qu'à une représentation interne du treillis de concepts au sein d'un programme et ne prend pas en compte de nombreuses autres propriétés de l'ontologie. En effet, d'autres informations peuvent apparaître dans une ontologie, et donc dans une version saturée de celle-ci. Ces informations portent sur la synonymie entre concepts, les contraintes d'exclusion, les rôles, les règles, les prédicats n-aires, les contraintes de typage définies sur ces prédicats et sur les faits.
Ainsi, un concept peut avoir plusieurs noms différents en fonction de son contexte d'utilisation, lorsqu'en particulier il est relatif à un domaine de pointe, dont la terminologie n'a pas encore été adoptée et ne fait, donc, pas encore l'objet d'un consensus. Par extension de langage, ces noms peuvent être considérés comme des synonymes au sein de l'ontologie.
Exemple : voiture et automobile, email et courriel.
En outre, une contrainte d'exclusion permet de préciser que deux concepts sont incompatibles, ainsi que leurs descendants.
Exemple : EnOcéanie est mutuellement exclusif avec EnAfrique, ainsi qu'avec AuTogo, AuMaroc, etc.
Les rôles sont des prédicats binaires, comportant deux arguments, qui sont utilisés pour associer deux concepts entre eux. Il est souvent possible de spécifier les types de chacun des arguments du rôle.
Exemple : SituéDans localise un lieu de Résidence dans un Lieu Géographique.
Un prédicat ordinaire est un prédicat qui n'est ni un concept, ni un rôle.
Chaque argument du prédicat est le plus souvent typé.
Exemple : VolAller-Retour a pour arguments un numéro de vol, deux concepts associés à des aéroports, deux dates de départ et deux dates d'arrivée.
Une règle, dite règle de définition, permet de définir un prédicat ordinaire en fonction de l'ensemble des prédicats de l'ontologie, concepts et rôles compris. L'atome, tête de la règle, est déduit de la liste des atomes provenant du corps. Chaque règle de définition qui conclut sur un prédicat déterminé, définit ce dernier. Toutefois, ces définitions ne correspondent pas à une équivalence entre le corps de la règle et la tête car il ne s'agit que d'une simple implication.
Exemple : un vol ayant un tarif associé économique implique (— >) qu'il s'agit d'un vol économique.
Les faits sont des informations précises liées au domaine. Un fait associe un prédicat à une ou plusieurs constantes.
Exemple : Aéroport ("Paris-CDG"), Vol("714-Sydney").
La présente invention a pour objet de remédier aux inconvénients et limitations des techniques de l'art antérieur.
En particulier, un objet de la présente invention est la mise en œuvre d'un procédé et d'un dispositif de codage et de représentation synthétique d'une ontologie partiellement saturée dans un format ou langage de communication textuel et structuré, de type xml ou OwI.
Un autre objet de la présente invention est, en particulier, de permettre à n'importe quel Internaute d'utiliser pleinement la richesse d'ontologies, sans avoir à installer, manipuler ou utiliser de raisonneur ou de fonctions complexes pour saturer toute ontologie communiquée, ceci afin de permettre, d'une part, un gain de temps, et, d'autre part, une utilisation beaucoup plus aisée de toute ontologie par un utilisateur non averti.
Un autre objet de la présente invention est, enfin, la mise en œuvre d'un procédé et d'un dispositif de codage et de représentation synthétique d'une ontologie partiellement saturée faisant appel à un langage ou format de communication et aux règles d'écriture syntaxique, ou grammaire, d'utilisation, de ce dernier
particulièrement simple et adaptable à de nombreux formats de langages structurés de balisage, tel que langage xml ou OwI.
Le procédé de codage et de représentation synthétique d'une ontologie partiellement saturée, objet de la présente invention, cette ontologie comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini représentée par un treillis sous un concept universel et des informations non liées aux concepts, est remarquable en ce qu'il consiste au moins à coder ce treillis de concepts par attribution à chaque concept et au nœud du treillis associé à ce dernier d'un identifiant formé par au moins une suite de nombres entiers, chaque suite de nombres entiers définissant un chemin d'accès entre un concept considéré et le concept universel, par l'intermédiaire de concepts pères successifs, cet identifiant incluant toutes les suites de nombres entiers définissant chacune un chemin d'accès entre l'un de ces concepts pères et le concept universel, auxquelles est ajouté un nombre entier représentatif du concept considéré, calculer les exclusions mutuelles entre concepts pour chaque concept considéré et mémoriser le treillis de concepts codé sous forme d'une structure de données subdivisée en blocs incluant au moins une liste de concepts incluant au moins un nom de domaine et une liste comportant au moins un concept considéré, chaque concept considéré incluant au moins un identifiant, formé par une liste d'au moins un chemin et une liste de concepts mutuellement exclusifs avec le concept considéré.
Le procédé, objet de l'invention, est en outre remarquable en ce qu'il consiste à établir la structure de données de mémorisation de l'ontologie à partir d'un ensemble de règles de définition, chaque règle de définition comportant une première partie mise en relation avec une deuxième partie, cette deuxième partie constituant une définition de la première partie, à partir d'une pluralité de mots clés spécifiques à valeur syntaxique, permettant d'organiser syntaxiquement les blocs de la structure de données et à partir d'une pluralité de symboles, chaque symbole représentant une valeur sémantique attribuée à un mot clé spécifique, la structure de données subdivisée en blocs contenant des blocs terminaux constitués chacun par un mot clé et au moins un symbole, cet ensemble de règles de définition et cette pluralité de
symboles étant constitués en un langage de transmission et de communication du treillis de concepts codé, dont les règles d'écriture constituent les règles d'écriture syntaxique de cette structure de données.
Le procédé, objet de l'invention, est également remarquable en ce que, les informations non liées aux concepts incluant des rôles, des prédicats ordinaires et des faits, il consiste en outre à :
- coder chaque rôle selon un prédicat binaire incluant au moins une entête associée à un nom de rôle, et au moins un premier argument, de type concept, déterminé par le rôle et un deuxième argument, de type concept, déterminant dans le rôle ;
- coder chaque prédicat ordinaire selon au moins une en-tête associée à un nom de prédicat, un premier argument de type argument et un deuxième argument de liste de définition, chaque argument présentant en outre une valeur sémantique ;
- coder chaque fait selon un en-tête associé à un atome, dont l'un au moins des arguments est une constante.
Le procédé objet de l'invention, est enfin remarquable en ce que le langage de transmission et de communication comporte en outre un ensemble d'opérateurs logiques d'expressions de logique de description incluant au moins :
- un premier opérateur logique permettant la mise en relation logique d'intersection entre une première et une deuxième expression de logique de description par l'intermédiaire d'un en-tête "AND" ;
- un deuxième opérateur logique permettant la mise en relation d'un nom de rôle et d'une expression logique de description par l'intermédiaire d'un en-tête "FA" ;
- un troisième opérateur logique permettant la mise en relation d'un entier minorant et d'un nom de rôle par l'intermédiaire d'un en-tête "AL" ;
- un quatrième opérateur logique permettant la mise en relation d'un entier majorant et d'un nom de rôle par l'intermédiaire d'un en-tête "AM" ;
- un cinquième opérateur logique permettant la négation ou exclusion d'un élément de base, tel qu'un concept, par l'intermédiaire d'un en-tête "NEG".
Le système de codage et de représentation synthétique d'une ontologie partiellement saturée comportant au moins une hiérarchie de concepts formée par des concepts primitifs sous un concept universel et au moins un concept défini représentée par un treillis et des informations non liées aux concepts, objet de la présente invention, est remarquable en ce que, outre des organes d'entrée/sortie, une unité centrale de traitement et une mémoire de travail, il inclut au moins un module d'acquisition d'une ontologie permettant de mémoriser ledit treillis et lesdites informations non liées au treillis, un module de codage du treillis de concepts par attribution à chaque concept et au nœud du treillis associé à ce dernier d'un identifiant formé par au moins une suite de nombres entiers, chaque suite de nombres entiers définissant un chemin d'accès entre un concept considéré et le concept universel, par l'intermédiaire de concepts pères successifs, cet identifiant incluant toutes les suites de nombres entiers définissant chacune un chemin d'accès entre l'un de ces concepts pères et le concept universel, auxquelles est ajouté un nombre entier représentatif du concept considéré, un module de calcul des exclusions mutuelles entre concepts pour chaque concept considéré et une ressource de mémorisation du treillis de concepts codé sous forme d'une structure de données subdivisée en blocs incluant au moins une liste de concepts incluant au moins un nom de domaine et une liste comportant au moins un concept considéré, chaque concept considéré incluant au moins un identifiant formé par une liste d'au moins un chemin et une liste de concepts mutuellement exclusifs avec le concept considéré.
L'invention couvre, en outre, un système de consultation d'une ontologie saturée, comportant au moins des organes d'entrée/sortie, une unité centrale de traitement et une mémoire de travail, remarquable en ce qu'il comporte en outre une unité d'acquisition d'une structure de données subdivisée en blocs et représentative de cette ontologie comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini représentée par un treillis, précédemment mentionnée, et un module interpréteur de requête de consultation, transmise par un terminal utilisateur.
L'invention couvre, enfin, un système serveur d'accès en réseau IP à une
ontologie saturée, remarquable en ce qu'il comporte au moins, interconnectés, un portail fournisseur d'accès à cette ontologie partiellement saturée, à partir d'une requête de consultation, et, un système de consultation d'une ontologie saturée précédemment mentionné.
Le procédé et le système de codage et de représentation synthétique d'une ontologie partiellement saturée, objets de la présente invention, trouvent application particulièrement avantageuse à la transmission et à la communication d'ontologies sous forme de structures de données directement accessibles sur Internet et consultables à partir de tout langage de balisage structuré disponible en ligne, tel que le langage xml par exemple.
Ils seront mieux compris à la lecture de la description et à l'observation des dessins ci-après, dans lesquels, outre la figure 1, relative à l'art antérieur, représentative d'un treillis de concepts primitifs :
- la figure 2a représente, à titre d'exemple non limitatif, un organigramme des étapes essentielles du procédé de codage et de représentation d'une ontologie partiellement saturée, conforme à l'objet de la présente invention ;
- les figures 2b et 2c représentent, à titre d'exemple non limitatif, un organigramme des étapes essentielles de l'étape de codage proprement dite d'un treillis de concepts primitifs et définis, conforme à l'objet de la présente invention telle que représentée en figure 2a ;
- la figure 2d représente, à titre d'exemple non limitatif, un treillis comportant des concepts primitifs ou définis codés et obtenus suite à la mise en œuvre de l'étape de codage proprement dite illustrée en figure 2c ;
- la figure 3a représente, à titre purement illustratif, un mode de mise en œuvre préféré de l'étape de calcul des exclusions mutuelles entre concepts telle que décrite en figure 2a, le mode de mise en œuvre préféré précité comportant, avantageusement, une sous-étape d'initialisation d'exclusion suivie d'une sous-étape de propagation d'exclusion ;
- la figure 3b représente, à titre purement illustratif, un mode de mise en œuvre spécifique préférentiel de la sous-étape d'initialisation d'exclusion
représentée en figure 3 a ;
- la figure 3c représente, à titre purement illustratif, un mode de mise en œuvre spécifique préférentiel de la sous-étape de propagation d'exclusion représentée en figure 3a ;
- la figure 4a représente, à titre d'exemple non limitatif, un schéma fonctionnel d'un système de codage et de représentation synthétique d'une ontologie partiellement saturée, conforme à l'objet de la présente invention ;
- la figure 4b représente, à titre d'exemple non limitatif, un schéma fonctionnel d'un système de consultation d'une ontologie partiellement saturée, conforme à l'objet de la présente invention ;
- la figure 4c représente, à titre d'exemple non limitatif, un schéma fonctionnel d'un système serveur d'accès en réseau IP à une ontologie partiellement saturée, conforme à l'objet de la présente invention.
Une description plus détaillée du procédé de codage et de représentation synthétique d'une ontologie partiellement saturée, conforme à l'objet de la présente invention, sera maintenant donnée en liaison avec la figure 2a et les figures suivantes.
En référence à la figure 2a, on indique que le procédé de codage et de représentation synthétique d'une ontologie partiellement saturée, conforme à l'objet de la présente invention, s'applique à toute ontologie comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini, cette ontologie étant représentée par un treillis et des informations non liées au concept.
En référence à la figure 2a, le treillis de concept est noté :
{içCiçT}.
Dans la relation précédente Cj={PCi,DCk} désigne chacun des concepts formant la hiérarchie de concepts formés par des concepts primitifs PCj et au moins un concept défini DCk, l'ensemble des concepts précités étant représenté par le treillis vérifiant la relation d'ordre précédemment mentionnée.
Dans la suite de la description, on indique que tout concept Cj est soit un concept primitif PCj soit un concept défini DCk, indifféremment pour la mise en
œuvre du procédé objet de la présente invention.
Enfin, l'ontologie comporte, outre le treillis précité, des informations non liées au concept dans la hiérarchie de concepts, c'est-à-dire dans le treillis, ces informations pouvant bien entendu toutefois concerner un ou plusieurs des concepts constitutifs de la hiérarchie de concepts précitée.
Ainsi que représenté en figure 2a, le procédé, objet de l'invention, consiste en une étape A à coder ledit treillis de concepts par attribution à chaque concept Cj et au nœud du treillis associé à ce dernier d'un identifiant, noté IDj, formé par au moins une suite de nombres entiers. Chaque suite de nombres entiers définit un chemin d'accès entre un concept considéré Cj et le concept universel T, chaque chemin étant noté CHj1, CHjp de manière non limitative.
Chaque chemin d'accès définit un chemin d'accès entre un concept considéré Cj et le concept universel T par l'intermédiaire de concepts pères successifs.
Ainsi, l'identifiant ID; associé au concept C; inclut toutes les suites de nombres entiers définissant chacune un chemin d'accès entre l'un des concepts pères du concept considéré Q et le concept universel T auquel est ajouté un nombre entier représentatif du concept considéré Cj.
L'opération de codage de l'étape A est notée par la relation symbolique :
Ci→IDi[CHii, ...CH1p].
L'étape A est alors suivie d'une étape B consistant à calculer les exclusions mutuelles entre concepts pour chaque concept Cj considéré.
Dans la relation précédente CEj désigne la liste des concepts Cj, avec j≠i, vérifiant l'exclusion mutuelle avec le concept considéré Cj, l'exclusion mutuelle étant vérifiée par la relation :
CjD Ci=I.
On comprend en particulier que toute absence d'intersection entre le concept considéré Cj et tout concept Cj appartenant à la hiérarchie des concepts représentée
par le treillis avec j≠i constitue ainsi un concept mutuellement exclusif entre les concept Q et Cj.
L'opération de l'étape B est alors suivie d'une étape C consistant à mémoriser le treillis de concepts codé sous forme d'une structure de données subdivisée en blocs incluant au moins une liste de concepts incluant au moins un nom de domaine DN et une liste comportant au moins un concept considéré Cj. Chaque concept considéré précité inclut au moins un identifiant IDj formé par une liste d'au moins un chemin et une liste de concepts CE; mutuellement exclusifs avec le concept Cj considéré calculée à l'étape B précédente.
L'opération de mémorisation à l'étape C est notée par la relation symbolique :
DSin[DN[Ci[ID1[CEi]]]].
Dans la relation précédente, on comprend que DSjn désigne la structure de données élémentaire subdivisée en blocs incluant la liste de concepts, incluant le nom de domaine DN et une liste comportant au moins le concept considéré Cj, l'identifiant IDj calculé à l'étape A, la liste de concepts exclusifs mutuels CEj calculée à l'étape B.
L'étape C peur alors être suivie d'une étape D consistant à comparer le concept considéré Cj au concept vide _L, ceci pour chaque niveau de profondeur n du treillis, le calcul des étapes B et C pouvant être effectué pour chaque niveau de profondeur n du treillis.
Sur réponse négative au test de l'étape D5 le concept Cj n'étant pas le concept vide et le concept vide n'ayant pas été atteint, et, par conséquent, la profondeur maximale du treillis n'ayant pas non plus été atteinte, une étape E est appelée consistant à passer au niveau de profondeur supérieur par incrémentation du niveau n=n+l. L'étape E est alors suivie d'un retour à l'étape B pour effectuer successivement le calcul des exclusions mutuelles et la mémorisation par actualisation de la structure de données subdivisée en blocs, pour chacun des niveaux successifs du treillis et finalement pour la totalité du treillis considéré.
Au contraire, en réponse positive au test D de la figure 2a le concept considéré correspondant au concept vide, une fin du procédé de codage est appelée.
En conséquence, on dispose d'une structure de données complète subdivisée en blocs, laquelle est notée :
DSPSh[OEf .
Dans la relation précédente on comprend que DS désigne la structure de données globale représentative du treillis de concept codé, cette structure de données étant bien entendu formée de toutes les structures de données élémentaire DSjn relatives à chaque concept Q considéré du treillis.
Une description plus détaillée de l'étape A de codage représentée en figure 2a sera maintenant donnée en liaison avec les figures 2b, 2c et 2d.
Pour la mise en œuvre du processus de codage proprement dit à l'étape A de la figure 2a, on considère la mise en œuvre du processus de codage précité de manière préférentielle sur les concepts primitifs PCi puis sur les concepts définis DCk dans les conditions ci-après.
En référence à la figure 1 on rappelle que le procédé, objet de l'invention, est mis en œuvre sur une ontologie quelconque, telle que représentée en figure 1 par exemple, dans laquelle chaque concept désigné ABCDEF est constitué par un concept primitif vérifiant la relation d'ordre précitée d'inclusion entre un concept universel T et un concept vide J_ ou par une ontologie comportant des concepts primitifs et des concepts définis DCk.
Pour la mise en œuvre du procédé objet de la présente invention en liaison avec la figure 2b, tout concept primitif PCj où i désigne une adresse d'identification éventuelle d'un concept primitif donné considéré, prend la valeur A a G pour la hiérarchie des concepts primitifs représentée en figure 1 et vérifie la relation :
{lçPCjçT}.
Dans la relation précédente on rappelle que le symbole ç désigne le symbole d'inclusion.
Le procédé de codage, objet de l'invention, consiste, ainsi qu'il apparaît en figure 2b, à attribuer à chaque concept primitif PQ prenant l'une des valeurs précédentes et, bien entendu, au nœud du treillis associé à ce dernier, un identifiant formé par au moins une suite de nombres entiers, chaque identifiant étant de ce fait
représenté par au moins une suite de nombres entiers délimitée par des crochets ainsi qu'il sera expliqué ci-après.
En référence à la figure 2b, on indique qu'à chaque concept primitif PCj est attribuée pour seule valeur sémantique la valeur de signification intrinsèque qui lui est associée par la valeur littérale de ce dernier dans la position correspondante au nœud du treillis auquel le concept est associé.
Ainsi, chaque suite de nombres entiers définit un chemin d'accès entre le concept primitif considéré PCj et le concept universel T, par l'intermédiaire des concepts primitifs pères successifs.
Enfin, ainsi que représenté en figure 2b, l'identifiant associé à un concept primitif et au nœud du treillis correspondant inclut toutes les suites de nombres entiers définissant chacune un chemin d'accès entre les concepts primitifs pères et le concept universel T, auquel est ajouté un nombre entier représentatif du concept primitif considéré.
Un mode de mise en œuvre de codage spécifique non limitatif sera décrit en liaison avec la figure 2b, dans laquelle la structure hiérarchique de la figure 1 entre le concept universel T et le concept vide ± est préférentiellement, mais de manière non limitative, parcourue en "niveau d'abord" par exemple.
La notion de "niveau d'abord" concerne, à partir du concept universel T, le parcours de la hiérarchie de concepts par exemple par niveau de filiation successif de façon non limitative.
Ainsi, en référence à la figure 2b on considère en premier lieu les concepts D et G pour le premier niveau de filiation vis-à-vis du concept universel T, niveau n=l.
Pour les concepts primitifs
et respectivement
on attribue ainsi un identifiant, identifiant [1] pour le concept D, respectivement identifiant [2] pour le concept G.
Ainsi, à l'étape C0 de la figure 2b on procède à l'attribution des identifiants pour les concepts suivants :
PC,≈G[2].
Suite au niveau de filiation 1, par exemple, on procède alors au passage au niveau de filiation 2, c'est-à-dire à l'étude de tout concept PCj relié au concept universel T par un concept intermédiaire.
Pour l'étape C1 de la figure 2b, on procède alors à l'attribution au deuxième niveau de filiation n=2 :
PCi=C[I l].
L'on procède alors ainsi de suite pour tout niveau de filiation successif et, en particulier, pour le niveau de filiation n=3, c'est-à-dire sur la figure 1 pour les concepts B et E à l'étape C2 selon la relation d'attribution :
PQ=B[Hl] PQ=E[112].
Pour l'exécution du niveau de filiation suivant, le niveau n=4, l'on procède alors à l'attribution suivante :
PQ=A[Il I l 1121] PQ=F[1112 1122].
On comprend que le codage et, en particulier, l'association d'identifiants est alors terminée lorsque l'attribution d'un identifiant à chacun des concepts primitifs autres que le concept vide _L a été effectuée, cette opération ayant été représentée à la figure 2b par une étape "fin niveau" par la relation :
PCi=I.
On obtient alors un treillis de concepts noté TPQ sur la figure 2b.
On comprend, en particulier, que l'identifiant associé à chacun des concepts PC; inclut toutes les suites de nombres entiers définissant chacune un chemin d'accès entre l'un des concepts primitifs pères et le concept universel, auquel est ajouté un nombre entier représentatif du concept primitif considéré.
On indique que le nombre entier précité ajouté est représentatif du concept primitif considéré vis-à-vis de chaque concept primitif père ce dernier.
Ainsi, pour le concept primitif
le nombre entier ajouté vis-à-vis du concept primitif père B de ce dernier est le nombre 2 en raison de l'existence du concept fils A vis-à-vis du concept primitif père commun B.
Tout concept primitif fils, tel que le concept primitif F, ne se voit attribuer qu'un seul nombre entier d'identification, tel que le nombre 2, vis-à-vis du seul et
même concept primitif père B, indifféremment du nombre entier d'identification attribué vis-à-vis d'un autre concept primitif père, tel que E.
Ainsi, en référence à la figure 2b on indique que, de manière avantageuse, chaque nombre entier ajouté est un numéro d'ordre du concept primitif considéré représentatif du rang de filiation du concept primitif considéré précité, pris comme concept primitif fils d'une pluralité de concepts primitifs pères communs, c'est-à-dire concepts primitifs B et E sur la figure 1, vis-à-vis du concept primitif fils F.
Le procédé de codage sous forme d'un treillis de concepts, d'une hiérarchie de concepts appartenant à une ontologie, objet de la présente invention, tel que représenté et décrit en figure 2b, n'est pas limitatif.
En particulier, on comprend que le parcours de la hiérarchie de concepts représenté en figure la peut être effectué de toute manière adaptée et en particulier selon un processus de parcours "profondeur d'abord" lequel peut consister à parcourir la hiérarchie des concepts non plus par niveau, comme décrit en liaison avec la figure 2b, mais par branche en privilégiant le parcours par nœud successif d'une même filiation successive.
On comprend, en particulier que le procédé, objet de l'invention, tel que décrit en liaison avec la figure 2b correspond à une numérotation d'une hiérarchie qui s'inspire du tri topologique défini sur un graphe orienté.
Un graphe orienté est une relation binaire non symétrique où chaque élément de la relation est représenté par un nœud dans le graphe et où chaque occurrence de la relation fait apparaître sur le graphe un arc orienté, c'est-à-dire une flèche d'un nœud donné vers un autre nœud donné.
L'algorithme du tri topologique permet d'appliquer un traitement à un nœud une fois que tous ses antécédents ont été traités.
C'est le cas dans le mode de mise en œuvre tel que représenté en figure 2b du procédé objet de l'invention.
Ainsi, un concept primitif de la hiérarchie de concepts primitifs est numéroté une fois que tous ses pères ont été numérotés. Pour garder les informations relatives à la hiérarchie, un concept fils hérite de tous les chemins de l'identifiant de
chacun de ses pères étendu à droite par un nouvel entier, l'entier ajouté étant le même pour tous les chemins d'un même père donné à un de ses fils. Ce mode opératoire permet de garantir qu'un chemin n'est associé qu'à un seul concept de la hiérarchie de concepts et que le caractère ajouté est différent pour chacun des concepts fils considérés.
Ainsi, en référence à la figure 2b, l'ensemble des chemins étendus obtenu à partir de tous les concepts pères d'un concept primitif, considéré comme un concept fils de tous les concepts pères précités, constitue l'identifiant du concept primitif fils considéré précité.
Toutefois, certaines ontologies possèdent des redondances dans leur déclaration, dues à la propriété de transitivité de la relation d'inclusion entre concepts primitifs.
Les redondances précitées sont relativement rares dans le cadre de concepts primitifs qui ont pour seule valeur celle associée à leur position dans le treillis de concept et, bien entendu, à leur définition littérale intrinsèque.
La notion de position recouvre la notion de filiation et finalement de position de chaque nœud dans le treillis au-dessus et/ou au dessous d'un autre nœud et, en définitive, d'un concept associé à ce dernier.
La sémantique simple précitée est en général contrôlée par un expert d'ontologie, lequel définit l'ontologie en tant que telle avec la hiérarchie des concepts associée au concept primitif considéré.
Toutefois, une ontologie en tant que telle, et, en particulier une hiérarchie de concepts primitifs constitutifs de celle-ci, permet une meilleure exploitation automatique des propriétés de l'ontologie considérée, lorsqu'il n'existe pas de redondance dans la hiérarchie des concepts telle que définie.
La détection des redondances précitée pour des concepts primitifs est simple car elle consiste à vérifier l'absence de redondance par étude des instances de relation d'inclusion.
À titre d'exemple non limitatif, sur la figure 1, l'existence d'un arc entre les concepts F et C ou F et D aurait constitué une relation d'ordre redondante.
En outre, les ontologies prises en compte pour la mise en œuvre du procédé objet de l'invention vérifient la contrainte d'unicité du nom de concept donnant différents représentants des prédicats différents, mais un même nom représentant le même prédicat. L'absence d'une telle contraire a pour conséquence qu'un même concept est dupliqué dans le treillis et le codage par numérotation a pour effet d'attribuer à ce dernier deux identifiants différents mais équivalents pour tous les traitements.
Le procédé de codage sous forme d'un treillis d'une hiérarchie de concepts appartenant à une ontologie, conforme à l'objet de la présente invention, tel que décrit en figure 2b pour des concepts primitifs, peut de manière particulièrement avantageuse être mis en œuvre, en outre, pour une hiérarchie de concepts appartenant à une ontologie comportant, non seulement, des concepts primitifs mais également au moins un concept défini, moyennant quelques précautions de mise en œuvre, lesquelles seront explicitées ci-après.
D'une manière générale, on indique que le processus de codage tel que décrit en figure 2b nécessite, en présence de concepts définis dans la hiérarchie des concepts, la mise en œuvre de certaines étapes supplémentaires, lesquelles seront décrites en liaison avec la figure 2c.
En effet, le treillis obtenu en prenant en compte des concepts définis correspond à une relation d'ordre plus large que la relation d'ordre d'inclusion d'un treillis relatif à des concepts primitifs.
En particulier, la relation d'ordre associée à un treillis comportant des concepts primitifs et des concepts définis est une relation d'ordre partiel obtenue par calcul de subsomption entre deux éléments, c'est-à-dire entre concept primitif et/ou défini. On rappelle que les tests de subsomption, propres à un langage d'ontologie, permettent d'indiquer si un concept généralise un autre concept.
Le calcul précité entre deux éléments de concept correspondants se réduit parfois à vérifier l'existence d'une instance de la relation d'inclusion, mais, en général, fait intervenir des calculs complexes sur les expressions de logique de description de l'ontologie et, en particulier, de la hiérarchie de concepts constitutive de cette
dernière. De tels calculs complexes ne seront pas décrits dans la présente description, car le mode d'exécution de tels calculs est étranger à l'objet de l'invention, puisque, précisément, l'objet de l'invention permet d'éviter la nécessité d'exécution des calculs précités.
Compte tenu des considérations précédentes, la présente invention a également pour objet, un procédé de codage d'une hiérarchie de concepts comportant des concepts primitifs et, au moins, un concept défini dans les conditions ci-après, tel que représenté en figure 2c.
Pour la mise en œuvre du procédé de codage objet de l'invention, on considère une hiérarchie de concepts comportant des concepts primitifs PQ vérifiant la relation précédemment mentionnée dans la description :
{±çPQçT} et des concepts définis notés :
{DCkx} chacun des concepts définis précités pouvant être le siège de redondances telles que définies précédemment.
En référence à la figure 2c, on indique que le procédé de codage, objet de l'invention, consiste au moins, en une étape notée SA, à engendrer une saturation de la hiérarchie de concepts par exécution de test d'inclusion sur les concepts primitifs. Cette opération est notée :
SA{±çPQçT} I PQcPCi'.
Le test de saturation permet ainsi d'établir toutes les relations d'inclusion implicites existant entre les concepts primitifs PC; de la hiérarchie de concepts. L'étape de saturation SA est accompagnée d'une étape de codage AC analogue à celle représentée en figure 2b, pour l'ensemble des concepts primitifs précités, l'opération de codage A permettant alors de mettre en œuvre une structure de données sous forme d'un treillis de concepts primitifs notée TPCj, c'est-à-dire une structure analogue, à celle obtenue grâce à la mise en œuvre du procédé de codage objet de l'invention, sur les concepts primitifs représentés en figure 2b.
Cette opération à l'étape A est notée par la relation :
{lçPCjçT} → TPCj.
L'étape A de codage est alors suivie d'une étape de saturation notée SU de la hiérarchie de concepts par exécution de tests de subsomption des concepts définis avec détection des synonymes.
Sur la figure 2c, l'étape de saturation par test de subsomption est notée :
3 Pd SU DCkx ? 3 Syn ?
Dans la relation précédente, on indique que la première identité concerne un test de subsomption de tout concept défini DCkx susceptible d'ailleurs de présenter encore des redondances vis-à-vis de tout concept primitif PCj qui a déjà fait l'objet d'un codage sous forme de treillis, le test de saturation précité permettant bien entendu de vérifier l'intégration possible de tout concept défini DCkx dans la hiérarchie de concepts primitifs vérifiant la relation d'ordre total d'inclusion.
La deuxième identité d'existence des synonymes permet de traiter toute existence d'un synonyme afin, bien entendu, de ne pas perdre la relation d'unicité de désignation, le processus de traitement correspondant faisant l'objet d'une description plus détaillée ultérieurement dans la description.
L'étape de saturation par subsomption SU peut alors être suivie d'une étape de détection/suppression des redondances, notée RDC sur la figure 2, dans les concepts définis DCkx, ces redondances pouvant apparaître du fait du caractère de la transitivité de la relation de subsomption vérifiée.
L'opération de détection des redondances est notée par la relation :
{DCkx}→{DCk}.
Dans la relation précédente on comprend, en particulier, que les redondances étant supprimées, chaque concept DCk de l'ensemble des concepts définis {DCk}, dans lesquels les redondances ont été supprimées, peut alors être assimilé globalement à un concept primitif du point de vue du codage par numérotation vis-à- vis des concepts primitifs existant dans le treillis de concept primitif TPCj.
En conséquence, l'étape de détection/suppression des redondances RDC de la figure 2c est suivie par une étape I d'introduction des concepts définis DCk dans lesquels les redondances ont été supprimées dans le treillis de concepts primitifs
TPC1.
On conçoit, en effet, que l'opération d'introduction précitée consiste en fait à introduire par exemple dans un fichier numérique l'intitulé des concepts définis DCk dans lesquels les redondances ont été supprimées avec les intitulés des concepts primitifs PQ pour engendrer finalement un ensemble de concepts primitifs et définis, lequel, en raison des traitements de suppression des redondances des concepts définis, peut alors être soumis à un codage semblable à celui exécuté et décrit en liaison avec la figure 2b vis-à-vis de tous les concepts présents formant la hiérarchie de concepts représentative de l'ontologie considérée.
En conséquence, l'étape I d'introduction précitée est suivie, à nouveau, d'une étape de codage A, laquelle est cette fois appliquée sur l'ensemble des concepts primitifs et définis constitutifs de la hiérarchie de concepts représentative de l'ontologie considérée.
Ainsi l'opération de codage A de la figure 2c (deuxième occurrence) porte cette fois sur l'ensemble des concepts primitifs PCj et des concepts définis DCk selon la relation :
{lçPCi5DCkçT}→TDPC.
La relation symbolique précédente indique que par le codage du corps de treillis de concepts incluant les concepts primitifs et les concepts définis sous forme de treillis de concepts on attribue en fait à chaque concept défini DCk et au nœud du corps de treillis associé à ce dernier, un identifiant compatible avec tout identifiant attribué à un ou plusieurs concepts primitifs et/ou défini pour former en fait un treillis de concept TDPC incluant à la fois les concepts primitifs et les concepts définis précités.
Pour une description plus détaillée des étapes SA, A, SU, RDC et I et d'un processus spécifique de détection des synonymes, on pourra utilement se reporter à la demande de brevet français 05 07326 déposée le 8 juillet 2005 au nom de la demanderesse.
Dans un exemple non limitatif de mise en œuvre, les synonymes d'un concept peuvent être simplement déclarés lors de la création de l'ontologie et du treillis de concepts. Leur détection se réduit alors à la lecture des synonymes déclarés.
La figure 2d représente une structure de données relative à un treillis numéroté comportant des concepts primitifs A à G et des concepts définis H et I codés par numérotation ainsi que décrit précédemment dans la description en liaison avec les figures 2b et 2c.
A chacun des concepts primitifs ou définis constitutifs du treillis précité, et au nœud du treillis correspondant, est associé un identifiant IDj formé par une suite de chemins, chaque chemin étant représenté par une suite de nombres entiers conformément à la mise en œuvre du processus de codage décrit précédemment en liaison avec les figures précitées.
D'une manière générale, on indique que le codage par numérotation de concepts tel que décrit précédemment avec les figures 2b et 2c pour l'obtention d'un treillis de concepts codés, tel que représentés en figure 2c, permet, d'une manière particulièrement avantageuse, de représenter les concepts d'une ontologie saturée via une liste de concepts et leurs identifiants IDi.
Chaque identifiant IDj est unique sur le treillis de concepts et correspond à l'existence d'au moins un chemin entre un concept considéré Cj et le concept universel T au sommet du treillis, bien que, ainsi que mentionné précédemment, le concept universel T et le concept vide J_ n'aient pas d'identifiant en tant que tel.
En référence à la demande de brevet français 05 07326 précédemment citée dans la description, on rappelle que le codage par numérotation d'un treillis tel que représenté en figure 2c permet de retrouver tous les généralisants d'un concept considéré Q et ses descendants en parcourant l'identifiant IDj du concept considéré Cj et la liste des concepts. Il est en outre possible de connaître les nombres maximal et minimal d'arcs qui séparent chaque concept considéré Cj du concept universel T et, par conséquent, la profondeur ou niveau du concept considéré Cj dans le treillis.
Exemple : le concept B[I I l] a pour concepts généralisants les concepts
définis par les chemins [11] et [1], à savoir les concepts C et D et est séparé par au plus et au moins trois arcs du concept universel T.
Le concept B de la figure 2d a pour concept descendant les concepts dont un des chemins de l'identifiant commence par [111], à savoir les concepts A et F.
Le concept I [231 1131] est séparé par au moins trois arcs et au plus par quatre arcs du concept universel T et sa profondeur est de 4.
Le codage par numérotation tel que décrit en liaison avec les figures 2b et 2c précitées permet également d'effectuer un test de subsomption entre deux concepts du treillis représentés en figure 2b. Un test de subsomption est un calcul complexe dans une ontologie décrite en logique de description qui permet de déterminer si les instances d'un concept sont incluses ou non dans celle d'un autre concept, en se basant sur la définition des concepts.
Grâce au codage par numérotation précitée, une détermination de préfixes permet alors d'être substituée à l'exécution d'un test de subsomption complexe.
Exemple : le concept C[I l] subsume le concept A[1111 1121] car le premier chemin de l'identifiant de C préfixe au moins un des chemins de l'identifiant de A.
Enfin, le codage par numérotation précitée permet, en outre, de déterminer les plus petits communs généralisants, désignés ppcg, entre deux concepts Cl et C2. L'ensemble des généralisants communs ξgc contient tous les concepts qui subsument à la fois le concept Cl et le concept C2. Le ppcg est le plus grand sous-ensemble de l'ensemble des généralisants communs ξgc tel qu'aucun concept du ppcg ne subsume un autre concept du ppcg et tel qu'aucun concept du ppcg ne subsume un concept de l'ensemble reste. Le ppcg de deux concepts peut être directement accessible dans une ontologie saturée. Dans le cadre du même contexte il est alors facile d'étendre le calcul du ppcg de deux concepts à n concepts. La simplicité du calcul du ppcg qui utilise la numérotation, c'est-à-dire les identifiants et chemins, est alors d'autant plus appréciable.
Exemple : le ppcg du concept A[1111 1121] et du concept F[1112 1122] est l'ensemble des concepts associés aux chemins [111] et [112] à savoir les concepts B et E.
Le ppcg des concepts A5 F et H se restreint alors au ppcg de [111 112] avec [21 113] à savoir le concept C[I l]. En revanche, D et G n'ont pas de ppcg. On remarque donc que le codage par numérotation précité contient au moins autant d'informations qu'une ontologie de concepts saturée puisqu'il permet, sans pas de chaînage avant et avec quelques calculs peu coûteux en temps de calcul, d'obtenir toutes les informations inhérentes aux concepts de l'ontologie.
Une description plus détaillée de l'étape de calcul d'exclusion mutuelle B entre tout concept considéré Cj de l'ontologie et un autre concept primitif ou défini de cette même ontologie et du treillis codé, tel que représenté en figure 2d, sera maintenant donnée ci-après, en référence aux figures 3a à 3c.
D'une manière plus particulière on indique que la prise en compte des contraintes d'exclusion, pour le codage de l'ontologie précitée, a été effectué pour pouvoir communiquer les contraintes d'exclusion précitées sous une forme saturée et compacte. On comprend, en particulier, que les contraintes d'exclusion ayant été pré calculées leur communication permet ensuite, à tout utilisateur équipé de ressources ordinaires, de prendre en compte ces contraintes d'exclusion afin de manipuler l'ontologie codée objet de la présente invention.
Dans ces conditions, l'étape B de calcul des exclusions mutuelles de la figure 2a, conforme à l'objet de la présente invention, est remarquable en ce qu'elle prend en compte des contraintes d'exclusion mutuelle qui sont implicites c'est-à-dire les exclusions entre concepts induites par les définitions de ces concepts et en particulier les concepts définis.
Exemple : avec la définition Homme : = être Vivant D nom(Femme) on définit ainsi un homme comme étant un être humain qui n'est pas une femme. On obtient donc une exclusion mutuelle implicite entre homme et femme.
Ainsi, en référence à la figure 3 a, l'étape B de calcul des exclusions mutuelles comporte, avantageusement, une sous-étape B1 d'initialisation consistant en fait à engendrer toutes les contraintes d'exclusion entre concepts définis et primitifs, en s'assurant toutefois de ne garder que les contraintes placées sur les concepts les plus généraux.
Cette opération est réalisée à la sous-étape B1 de la figure 3 a par appel d'un algorithme d'initialisation dont le pseudo code désigné ALG1 est donné dans le tableau Tl :
Tableau Tl - Algorithme d'initialisation Pour chaque concept Cl de l'ontologie Defl ≈ Définition de Cl Pour chaque concept C2 de l'ontologie Def2 = Définition de C2 Conjonction ≈ Defl n Def2 Si l'évaluation de la conjonction aboutit sur J_, alors on ajoute la contrainte ci n C2 ç i.
FinPour FinPour
Grâce au procédé de codage par numérotation exécuté à l'étape A de la figure 2a, le calcul et la mémorisation des contraintes d'exclusion mutuelle peuvent alors être optimisés.
En effet, dans le cadre de la technique antérieure, il était nécessaire pour obtenir des résultats concrets et rapides de stocker pour chaque concept Cj la liste L exhaustive des concepts vis-à-vis desquels ce concept était mutuellement exclusif.
Dans le cadre de la mise en œuvre du procédé objet de la présente invention, et, en particulier, compte tenu du procédé de codage par numérotation précité, pour chaque concept considéré Cj de l'ontologie et du treillis codé représentant celle-ci, on ne stocke en fait qu'une liste notée Lex des concepts les plus généraux, avec lesquels le concept considéré Cj est mutuellement exclusif.
Ainsi, tous les concepts Q considérés dont l'un des chemins est le préfixe d'un des concepts de la liste des concepts les plus généraux Lex sont mutuellement exclusifs du concept considéré Cj.
En outre, en ne stockant pour chaque concept considéré C; que le concept le
plus général avec lequel il est mutuellement exclusif, on peut tester l'exclusion plus rapidement qu'en stockant tous les concepts.
En effet, dans le cadre de la technique antérieure, tester si les concepts Cl C2 sont mutuellement exclusifs consistait à parcourir la liste des concepts pour y retrouver le concept exclusif C2.
Conformément au procédé de codage par numérotation objet de l'invention, il n'y a toujours qu'un seul parcours de la liste à effectuer pour rechercher la présence d'un des préfixes des chemins du concept C2. Le gain en coût de calcul réside dans la taille de la liste à parcourir, puisque la recherche d'un préfixe est aussi peu coûteuse que la recherche d'une égalité sur une chaîne de caractères entière. Enfin, le calcul et la mémorisation sélective ne seraient pas possibles sans le codage par numérotation des identifiants de chaque concept, puisque le test serait alors beaucoup plus coûteux et consisterait à vérifier l'appartenance du concept mutuellement exclusif C2 dans la liste des descendants de chacun des concepts de la liste des concepts les plus généraux Lex.
Exemple : en référence au treillis représenté en figure 2d et pour le concept H[23 113] mutuellement exclusif avec, d'une part, le concept B[111] et d'autre part le concept E[112], la saturation et la propagation des deux contraintes d'exclusion doit être effectuée sur des descendants du concept H de B et de E.
L'opération de constitution de la liste des concepts le plus généraux Lex est illustrée à titre d'exemple en liaison avec la figure 3b.
Pour deux concepts quelconques, un concept C; et un concept Cj avec j≠i, les opérations sont exécutées en une sous-étape B11 de la sous-étape B1 d'initialisation en prenant en considération les chemins CHj respectivement CHj associés aux concepts précités.
Une étape de test B12 est alors appelée, laquelle consiste à vérifier si le chemin CHj préfixe le chemin CHj selon la relation :
CHj PREFIX CHi ?
Sur réponse négative au test B12, une sous-étape B13 est appelée, laquelle consiste à choisir le concept j suivant dont les chemins sont des chemins de concepts
généralisants, c'est-à-dire correspondant à une profondeur moindre que celle du concept considéré Cj.
Au contraire, sur réponse positive à la sous-étape Bi2 une sous-étape Bμ est appelée, laquelle consiste à mémoriser le concept CHj dont le chemin CHj est inférieur au concept CH; et préfixe ce dernier.
L'étape de mémorisation est notée à l'étape B14 :
Lex=[CEGi[Cj]]|CHj<CHi.
Par la relation symbolique précédente, on indique que l'on mémorise en fait le chemin CHj du concept Cj qui constitue un généralisant du concept considéré CHj et qui bien entendu préfixe ce dernier.
Suite à l'étape B14 est alors appelée une étape B15 consistant à soumettre à un test d'égalité l'identité du concept Cj au concept universel. Cette opération peut être effectuée par le calcul d'un chemin vide du concept Cj vis-à-vis du concept universel.
Sur réponse négative à la sous-étape du test B15 un retour est effectué à la sous-étape B13 laquelle consiste à appeler le concept généralisant suivant, noté j suivant, pour poursuite du processus.
Au contraire, sur réponse positive à la sous-étape de test B15, une étape de fin d'initialisation est effectuée, tous les concepts généralisants mutuellement exclusifs avec le concept considéré Cj ayant été soumis au test d'existence de préfixe de chemins.
À la fin de l'initialisation, c'est-à-dire en réponse positive à la sous-étape de test B15, on dispose de la liste des concepts les plus généraux avec lesquels le concept considéré Cj est mutuellement exclusif. Cette liste est notée :
CEi=L6x[CEGi[Cj]] |CHj<CHi.
L'étape d'initialisation de la figure 3 a peut alors être suivie d'une étape B2 de propagation de l'exclusion.
L'étape de propagation peut alors correspondre à un processus par appel d'un algorithme ALG2 dont le pseudo code est donné au tableau T2.
Tableau T2 - Algorithme de propagation
Initialiser les listes de concepts mutuellement exclusifs à vide. Pour chaque contrainte d'exclusion de l'ontologie entre Cl et C2 Nl = premier chemin de Cl N2 = premier chemin de C2
Pour chaque concept de l'ontologie dont un des chemins de son identifiant possède pour préfixe Nl
Associer à ce concept, si ce n'est déjà fait, le chemin N2 comme étant mutuellement exclusif. FinPour
Pour chaque concept de l'ontologie dont un des chemins de son identifiant possède pour préfixe N2
Associer à ce concept, si ce n'est déjà fait, le chemin Nl comme étant mutuellement exclusif. FinPour FinPour
Exemple : pour Cl=H et C2=B en liaison avec le treillis codé tel que représenté en figure 2d et pour Nl=[21] et N2=[l 11] on associe en tant que concept mutuellement exclusif H[21] à B[111] mais également aux descendants de ce dernier, soit le concept A[1111] et le concept F[1112].
D'autre part, on associe en tant que concepts mutuellement exclusifs le chemin [111] au concept H[21] et au concept 1[21I]. La prise en compte de la contrainte d'exclusion entre les concepts H et E pose Nl=[21] et N2=[112]. Ceci permet d'ajouter le chemin [21] au concept E[112] sans modifier ni le concept A ni le concept F mais en ajoutant le chemin [112] au concept 1[21I].
Un mode opératoire correspondant opérant à partir de tout concept Cj mutuellement exclusif avec un concept Q considéré et appartenant à la liste des concepts les plus généraux, avec lesquels ce concept considéré est mutuellement exclusif, est représenté à titre purement illustratif en figure 3c.
À partir de la liste précitée Lex on calcule en une sous-étape B21 pour le
concept Cj considéré l'existence de chemins CHjx formés par le chemin CHj du concept Cj mutuellement exclusif précité auquel est ajouté un suffixe CHx, tel que le suffixe CHx ne soit pas vide vis-à-vis des concepts spécialisants du concept Cj considéré.
Lorsqu'en réponse positive à la sous-étape de test B21 le chemin CHx suffixe n'est pas vide, alors une étape B22 permet de réactualiser la liste des concepts généralisants à partir de tous les concepts spécialisants mutuellement exclusifs avec le concept considéré Q. Cette liste des concepts notée (CESjx) est ajoutée à la liste CEGj précitée.
Au contraire, sur réponse négative à la sous-étape de test B21 la propagation est arrêtée et la liste des concepts mutuellement exclusifs est alors formée par la liste des concepts les plus généraux avec lesquels le concept considéré Cj est exclusif, cette liste ayant été mise à jour par tous les concepts spécialisants des concepts généraux mutuellement exclusifs avec le concept C;.
Une description plus détaillée de l'étape C de mémorisation permettant la mise en œuvre du procédé, objet de la présente invention, tel qu'illustré en figure 2a sera maintenant donnée ci-après.
Alors que le codage par numérotation du treillis, tel qu'illustré précédemment et décrit relativement à l'étape A de la figure 2a précitée, permet d'effectuer un certain nombre de calculs conduits de manière optimale et peu coûteuse, en tout état de cause au moins aussi rapidement que le permet une ontologie saturée, communiquer un tel treillis codé à une application distante et, en particulier, une hiérarchie de concepts décrits en logique de description, peut alors se résumer à transmettre à cette application une liste de concepts associée à leur identifiant.
Toutes les informations nécessaires à la classification, c'est-à-dire au positionnement des concepts des uns par rapport aux autres, et au raisonnement, calcul de plus petit commun généralisant ppcg ou autre, sur des concepts sont contenus dans la liste d'identifiants précitée. Il n'est alors plus nécessaire d'effectuer des tests de subsomption complexes sur les logiques de description, ni d'effectuer un
parcours de la hiérarchie de concepts à concepts, dans le but de positionner les concepts primitifs ou définis au sein de la hiérarchie précitée.
En outre, et dans le but d'achever une communication optimale d'une hiérarchie de concepts décrite en logique de description, conformément à l'objet de la présente invention, sous forme d'une liste de concepts associés à leur identifiant, le procédé, objet de l'invention, et, en particulier, à l'étape C de mémorisation représentée en figure 2a consiste avantageusement à établir la structure de données précitée à partir d'un ensemble de règles de définition, chaque règle de définition comportant une première partie mise en relation avec une deuxième partie constituant une définition de la première partie. En outre, une pluralité de mots clés spécifiques à valeur syntaxique est mise en œuvre, ceci afin de permettre d'organiser syntaxiquement les blocs de la structure de données. Enfin, une pluralité de symboles, chaque symbole représentant une valeur sémantique attribuée à un mot clé spécifique, est en outre avantageusement mise en œuvre pour structurer la structure de données précitée selon un format spécifique.
La structure de données subdivisée en blocs contient alors des blocs terminaux constitués chacun par un mot clé et au moins un symbole. L'ensemble de règles de définition, la pluralité de mots clés et la pluralité de symboles sont constitués en un langage de transmission et de communication de la structure de données dont les règles d'écriture constituent les règles d'écriture syntaxique. Les règles d'écriture syntaxique précitées peuvent alors être définies comme une grammaire, laquelle décrit le langage de transmission d'un treillis complet de concepts.
La grammaire, ou l'ensemble des règles d'écriture syntaxique, précitée est alors composée des règles de définitions précitées de la forme :
Partie gauche : = partie droite qui permettent d'écrire des phrases ou des informations, en remplaçant les parties gauches par leur définition qui ne sont autres que les parties droites.
Les mots-clés utilisés, précédemment mentionnés, sont alors utilisés pour donner un sens au bloc utilisé dans la grammaire, c'est-à-dire finalement afin de
permettre d'organiser syntaxiquement les blocs de la structure de données précitée.
Enfin, la pluralité de symboles inclut au moins la barre verticale, les crochets, les symboles <, >, les signes +, ? et le signe * par exemple.
On indique que les symboles qui entourent les mots-clés précités permettent de renseigner sur la nature effective des blocs.
Le document final obtenu à partir des règles d'écriture syntaxique, c'est-à- dire de la grammaire précitée, ne contient en définitive que des blocs appelés blocs terminaux.
Les symboles mis en œuvre pour établir les règles d'écriture syntaxique ou grammaire précitée s'interprètent de la manière suivante :
— l'écriture d'un bloc déterminé, bloc 1, en partie gauche et l'écriture d'une suite ordonnée de blocs en partie droite d'une règle de définition, permet d'allouer à l'écriture précitée une fonction de remplacement du bloc déterminé bloc 1 par la suite de blocs précités. Le bloc bloc 1 ne doit pas être un bloc terminal. En outre, une virgule peut être insérée entre chacun des blocs en les indiquant dans l'ordre dans lequel ces derniers doivent apparaître ; Cette virgule doit apparaître à sa place dans le document final, elle est un bloc terminal ;
— l'écriture d'un premier symbole | entre deux blocs d'une pluralité de blocs permet d'allouer à l'écriture du symbole | précité, une fonction de choix entre plusieurs blocs situés à gauche du premier symbole pour remplacer la pluralité de blocs située à droite du premier symbole précité ;
- l'écriture d'une pluralité de blocs entre crochets, deuxième symbole, permet d'allouer à l'écriture précitée une fonction de remplacement de chaque bloc de cette pluralité de blocs par une chaîne de caractères, dénomination d'instance. Les chaînes de caractères précitées forment chacune un bloc terminal présent dans la structure de données finale ;
- l'écriture d'une pluralité de blocs entre le symbole < et le symbole >, constituant un troisième symbole, permet d'allouer à l'écriture précitée une fonction de remplacement de chaque bloc par sa définition à partir d'une règle de définition. Dans cette situation, les blocs ne constituent pas des blocs terminaux ;
- récriture d'un quatrième symbole, le signe *, associé à un bloc permet d'allouer à l'écriture du quatrième symbole précité une fonction de multiplication du nombre d'instances affectées au bloc. Les instances peuvent être différentes ou non. Une virgule apparaît entre chaque instance dans le document final ;
- l'écriture d'un cinquième symbole, le signe + associé à un bloc, permet d'allouer à l'écriture précitée une multiplication du nombre d'instances affectées au bloc sous contrainte de présence d'au moins une fois dans le document final constitutif de la structure de données ;
- l'écriture d'un sixième symbole, le signe ? associé à un bloc, permet d'allouer à l'écriture précitée la définition de champs facultatifs sous contrainte de présence une seule fois ou d'absence du bloc dans le document final constitué par la structure de données ;
- les mots en gras et lettre capitales doivent apparaître tels quels dans le document final constitutif de la structure de données ; ce sont donc des blocs terminaux.
Le langage de transmission précité et de communication de la structure de données codée est alors l'un des langages choisis dans le groupe des langages xml ou OwI.
Une description complète d'une DTD pour Document Type Définition en anglais, est donnée dans le tableau T5 ci-après. Elle satisfait aux règles d'écriture syntaxique et à la grammaire générale d'une liste de concepts transmise, ces concepts ayant été codés conformément au procédé objet de la présente invention dont la description complète de la grammaire est donnée dans les tableaux T3 et T4 ci-après..
Tableau T3
<expression de logique de description> Ce bloc est présenté dans le tableau T4 ci- après dans ce document.
<liste de concepts> ::= [nom du domaine], <concept>+
<concept> ::= C [nom de concept], [nom de synonymes]*,
<identifiant>, <contraintesExclusion>?,
<identifiant> ::= ID<chemin>+
<chemin> ::= CH [entier]+
<contraintesExclusion> ::= CE [nom de concept]+
Un exemple d'expression des contraintes d'exclusion est donné ci-après pour les concepts A et F représentés sur le treillis codé de la figure 2d, ces concepts étant mutuellement exclusifs :
C A53ID CH 1,1,1,1 ,CH 1,1,2,1, CEF C F ,, IDCH 1,1,1,2 , CH 1,1,2,2 CE A.
Dans la relation précédente :
- C désigne l'introduction d'un champ de concept A ou F ;
- ID CH désigne l'introduction d'un champ relatif à un chemin contenu dans un identifiant ID ;
- CE désigne l'introduction d'un champ de concept exclusif vis-à-vis du concept introduit dans le champ C.
En outre, conformément à l'objet de la présente invention, un concept Cl est associé au concept C2 les plus généraux avec lesquels il est mutuellement exclusif. En outre, on sait que tout concept C3 descendant de C2, c'est-à-dire fils du concept C2, est également mutuellement exclusif avec le concept Cl.
On dispose donc d'une notation saturée et condensée des contraintes d'exclusion.
Les contraintes d'exclusion s'expriment alors sous la forme :
<contrainteExclusion>::= CE [nom de concept]"1"
À titre d'exemple, pour le concept EnOcéanie, il est possible d'indiquer que ce concept est mutuellement exclusif avec le concept EnAfrique et EnEurope selon la relation C EnOcéanie CE EnAfrique, EnEurope.
Les règles d'écriture syntaxique formant la grammaire précitée permettant la mise en œuvre du procédé de codage objet de la présente invention ne sont pas limitées à la transmission des concepts primitifs ou définis codés par numérotation, tels que précédemment mentionnés, mais permettent de manière particulièrement avantageuse une application d'un codage aux informations non liées au concept
incluant des rôles, des prédicats ordinaires et des faits.
En particulier, le procédé de codage objet de l'invention, consiste alors à coder chaque rôle selon un prédicat binaire incluant au moins un en-tête associé à un nom de rôle, un premier argument de type concept déterminé par le rôle et un deuxième argument de type concept déterminant dans le rôle.
Ainsi, les règles d'écriture syntaxique précitées permettant la mise en œuvre du procédé de codage objet de l'invention, permettent de spécifier les types de chacun des arguments d'un rôle. Cette information est directement et complètement exploitable et n'existe que sous forme saturée.
Un rôle est alors codé sous la forme :
<rôle>::= R [nom du rôle], [concept qui type l'argument 1], [concept qui type l'argument 2].
A titre d'exemple :
Situé dans localise un lieu de résidence dans un lieu géographique et le rôle s'écrit alors :
R situé dans, lieu de résidence, lieu géographique.
Le procédé, objet de l'invention, consiste en outre à coder chaque prédicat ordinaire selon au moins un en-tête associé à un nom de prédicat, un premier argument de type argument et un deuxième argument de liste de définition, chaque argument présentant en outre une valeur sémantique.
En effet, un prédicat ordinaire s'identifie par son nom et par le nombre d'arguments que ce dernier accepte. Outre ces informations premières, des informations supplémentaires en vue d'un traitement coopératif peuvent être ajoutées. En particulier, chaque argument d'un prédicat ordinaire possède implicitement un type connu par l'expert en ontologie qui définit l'ontologie en tant que telle.
À titre d'exemple, le prédicat ordinaire vol AR accepte sept arguments, le premier est de type Vol, les deux suivants sont de type aéroport et les quatre derniers sont de type date, pour exprimer les dates de départ et d'arrivée des vols aller-retour.
De plus, chacun des arguments précités correspond à une information attendue qui est à la fois plus précise que le type et indépendante du type précité.
Cette information n'est autre que la sémantique de l'argument.
Ces informations relatives au type et à la sémantique des arguments sont directement et complètement exploitables. En définitive, les informations précitées n'existent que sous forme saturée. En revanche, un prédicat ordinaire peut être associé à zéro, une ou plusieurs définitions qui, elles, peuvent avoir une forme saturée.
L'expression codée d'un prédicat ordinaire conformément à la règle d'écriture syntaxique permettant la mise en œuvre du procédé de codage objet de l'invention, est alors de la forme :
<prédicat ordinaire>::= PO [nom du prédicat], <type>+, <défmition>*.
À titre d'exemple, on reprend le vol AR vu précédemment sans définition.
L'expression du prédicat ordinaire précité devient :
PO vol AR, T vol, vol,T aéroport de départ, Aéroport, T aéroport d'arrivée, Aéroport, T date de départ aller, Date, T date d'arrivée aller, Date, T date de départ retour, Date, T date d'arrivée retour, Date.
<type>::= T [sémantique], [Type argument] ex:T date d'arrivée retour, Date.
Les définitions d'un prédicat sont donc écrites sous forme de règles de définition dans l'ontologie. L'atome tête de la règle est déduit de la liste des atomes du corps. On dit qu'un prédicat ordinaire qui apparaît en tête de règle accepte parmi ses définitions le corps de la règle.
Deux politiques peuvent être envisagées pour ce genre d'information qui contient beaucoup d'informations implicites induites par le mécanisme de chaînage avant, c'est-à-dire de saturation d'une ontologie.
En premier lieu, on peut transmettre une version saturée des définitions avec toutes les définitions déductibles de l'ensemble des règles de l'ontologie. L'inconvénient de cette première possibilité est d'obtenir un objet d'un volume considérable par rapport à la taille initiale des règles dans l'ontologie.
En deuxième lieu, et selon un choix préféré, on ne transmet que les définitions sans redondance en tenant compte des propriétés du mécanisme de chaînage avant qui ne sont pas très complexes à mettre en œuvre et qui, par ailleurs,
sont beaucoup moins complexes que les calculs d'un raisonneur sur une logique de description.
Enfin, le procédé de codage objet de l'invention, consiste à coder chaque fait selon un en-tête associé à un atome dont au moins un des arguments est une constante. En effet, un fait est un atome dont au moins un des arguments est une constante.
Le codage d'un fait satisfaisant aux règles d'écriture syntaxique ou grammaire précitée est alors de la forme :
<fait> ::= FAIT <atome>.
À titre d'exemple un fait peut être alors codé selon la syntaxe :
FAIT A tarifAss"714"Sydney","1230 €uros".
La définition de codage de chaque prédicat ordinaire est alors codée par un en-tête associé à une pluralité d'atomes issus d'une règle de définition.
En outre, et selon un aspect remarquable du procédé de codage objet de l'invention, à chaque règle de définition est avantageusement associé un numéro d'ordre numérique de lecture de règles, lequel permet d'ordonner tout sous-ensemble de règles de définition codées pour optimisation d'une exécution des règles de définition dans la structure de données.
Compte tenu de l'introduction d'un numéro d'ordre de lecture de règles précédemment citée, le codage d'une définition conformément aux règles d'écriture syntaxique ou grammaire permettant la mise en œuvre du procédé objet de la présente invention est alors le suivant :
<définition> ::= NUM [entier] DEF <atome>+.
À titre d'exemple, une règle précisant qu'un vol est à un tarif associé économique, indique que le vol est un vol économique.
Le prédicat ordinaire s'écrit alors :
PO Vol Eco, T vol, Vol T tarif, TarifEc
NUM 3 DEF A VolEco,x,p, A Vol,x, A,TarifAss,x,p, A TarifEc,p et
<atome> ::=( A [nom prédicat], [nom d'argument]"1").
Exemple : ATarifAss,x,p.
Ainsi que mentionné précédemment dans la description, les règles de définition de l'ontologie peuvent permettre de déduire des informations par saturation, c'est-à-dire par chaînage avant. Lors d'un tel traitement des définitions de prédicat, il peut être particulièrement intéressant d'imposer l'ordre de lecture des règles de définition pour minimiser le nombre de lectures effectuées.
À titre d'exemple non limitatif, pour trois règles de définition telles que :
1 P(x,y)nP2(tz)→P3(t,x,z) ;
2 P(x,y)→P2(x,y) ;
3 A(x,y,z)→P(x,y) ; le traitement dans l'ordre précité, et en partant d'un fait A(a,b,c), la première lecture des trois règles permet de déduire P(a,b) grâce à la règle 3.
Un deuxième passage sur les trois règles permet de déduire P2(a,b) grâce à la règle 2.
Un troisième passage permet de déduire P3(a,a,b) grâce à la règle 1.
Le troisième et dernier passage permet de terminer la saturation des règles puisqu'il n'aboutit à aucune déduction.
Le mode de traitement classique précité implique donc 32+3= 12 règles lues, soit pour n règles, n2+n lectures.
En codant un numéro d'ordre de lecture associée à chaque définition et en imposant un traitement des règles, c'est-à-dire une lecture dans l'ordre inverse, 3, 2, 1 une seule lecture de toutes les règles permet de tout déduire, ce qui implique un nombre de lectures égal à 6 soit 2n lectures pour n règles.
L'introduction d'un numéro d'ordre de lecture NUM permet donc d'ordonner n'importe quel sous-ensemble de règles de l'ontologie pour une optimisation du traitement des règles de définitions précitées. Notons que dans le contexte de règles écrites en Carin-ALN, l'entier est toujours le même pour toutes les définitions d'un prédicat ordinaire donné. Nous pouvons donc également adopter les règles de grammaire suivantes pour les prédicats ordinaires :
<prédicat ordinaire>::= PO [nom prédicat], <type>+, (NUM [entier] , <défînition>+)?. <défïnition> ::= DEF <atome>+.
Les règles d'écriture syntaxique permettant la mise en œuvre du procédé de codage, objet de la présente invention, sont en outre adaptées de manière à permettre la possibilité de décrire des expressions de logique de description.
En effet, alors que le codage des concepts primitifs et/ou définis par numérotation permet de privilégier très largement la communication de concepts nommés à celle d'expression de logique de description relative aux concepts décrits dans l'ontologie, une ontologie classique, c'est-à-dire une ontologie définie par un expert en ontologie dans un domaine quelconque, possède généralement quelques expressions de logique de description dans les règles de définition ou pour définir des concepts.
La mise en œuvre du procédé de codage, objet de la présente invention, permet de définir une structure de données dans laquelle les concepts définis sont restreints à leur identifiant qui n'ont plus que leur position au sein du treillis de concepts codé pour seule sémantique. La définition à laquelle ils sont associés n'est plus nécessaire pour manipuler l'ontologie et la consulter ou la compléter avec de nouveaux concepts. Bien entendu, dans le cas où l'ontologie précitée doit être complétée, il est alors possible d'exécuter cette opération et puis d'appliquer à nouveau un codage par numérotation des concepts complétés ainsi que décrit précédemment dans la description. En effet, le processus de codage par numérotation doit s'appliquer sur une ontologie complète.
Dans ces conditions, tout expert créateur d'ontologie est invité à associer à chaque expression apparaissant dans une définition un nom de concept défini auquel l'expression est équivalente. Il doit soit associer un nom à cette expression de logique de description, soit laisser un nom fictif de concepts engendré automatiquement et positionné dans l'ontologie. On comprend, en particulier, qu'en raison du fait que chaque concept dans le treillis de concepts codé n'ayant pas de valeur sémantique, seule la position de ce dernier dans l'ontologie est déterminante.
Ainsi, chaque expression de logique de description porteuse de sens est donc nommée dans l'ontologie avant le processus de codage par numérotation.
Toutefois, dans le cas où un expert créateur d'ontologie le souhaite, les
règles d'écriture syntaxique ou grammaire permettant la mise en œuvre du procédé de codage objet de la présente invention, et le langage de transmission et de communication de la structure de données constitutif de ces règles d'écriture syntaxique comportent en outre un ensemble d'opérateurs logiques d'expression de logique de description permettant d'introduire les éléments ou expressions de logique de description au gré de l'expert créateur d'ontologie, bien que ces éléments ne soient pas a priori nécessaires.
L'ensemble d'opérateurs logiques d'expression de logique de description précitée inclut au moins :
- un premier opérateur logique <and> permettant la mise en relation logique d'intersections (ET) entre une première et une deuxième expression de logique de description par l'intermédiaire d'un en-tête "AND" ;
- un deuxième opérateur logique <forall> permettant la mise en relation d'un nom de rôle et d'une expression logique de description par l'intermédiaire d'un en-tête "FA" ;
- un troisième opérateur logique <at least> permettant la mise en relation d'un entier minorant et d'un nom de rôle par l'intermédiaire d'un en-tête "AL" ;
- un quatrième opérateur logique <atmost> permettant la mise en relation d'un entier majorant et d'un nom de rôle par l'intermédiaire d'un en-tête "AM" ;
- un cinquième opérateur logique <neg> permettant la négation ou exclusion d'un élément de base tel qu'un concept par l'intermédiaire d'un en-tête "NEG".
Compte tenu des règles d'écriture syntaxique permettant la mise en œuvre du procédé de codage objet de la présente invention, les opérateurs logiques d'expression de logique de description de l'ensemble d'opérateurs logiques s'écrivent selon le tableau T4 :
Tableau T4
<expression de logique de description> ::= (<and> | <forall> | <at least> | <atmost> |
<neg> I <base>)
<and> ::= AND (<expression de logique de description?*, <expression de logique de description>+)
<forall> ::= FA [nom de rôle] <expression de logique de description> <at least> ::= AL [entier] [nom de rôle] <atmost> ::= AM [entier] [nom de rôle] <neg> ::= NEG <base> <base> ::= C [nom de concept]
Une description plus détaillée d'une structure de données subdivisée en blocs codée et représentative d'une ontologie comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini, cette hiérarchie de concepts étant représentée par un treillis et la structure de données subdivisée en blocs codée étant obtenue par la mise en œuvre du procédé objet de l'invention tel que précédemment décrit, sera maintenant donnée ci-après.
La structure de données subdivisée en blocs, objet de l'invention, est représentée sous forme de DTD complète et qui correspond à la mise en œuvre des règles d'écriture syntaxique ou grammaire présentée précédemment dans la description relativement à un fichier désigné ontology.dtd. La structure de données subdivisée en blocs, objet de l'invention, ou DTD complète est donnée dans le tableau T5 ci-après :
Tableau T5
1 <!ELEMENT ontology (concept+, rôle*, ordinaryPredicate*, fact*)> <!ATTLIST ontology domain CDATA #REQUIKED>
2 <!ELEMENT concept (synonym*,id, cExcl*, (and | forall | atleast | atmost | neg | base)?)> <!ATTLIST concept name CDATA #REQUIRED>
3 <!ELEMENT synonym EMPTY> <! ATTLIST synonym name CDATA #REQUIRED> 5 4 <!ELEMENT id (path+)>
<!ELEMENT path (integer+)>
5 <!ELEMENT integer EMPTY> <!ATTLIST integer val CDATA #REQUIRED>
6 <!ELEMENT cExcl EMPTY > <! ATTLIST cExcl name CDATA #REQUIRED>
7 <!ELEMENT rôle (argDescr, argDescr)> <!ATTLIST rôle name CDATA #REQUIRED>
10 8 <!ELEMENT ordinaryPredicate (argDescr*, (ruleNumberOfPriority, def+)?)> <!ATTLIST ordinaryPredicate name CDATA #REQUIRED>
<!ELEMENT argDescr EMPTY > <! ATTLIST argDescr type CDATA #REQUIRED>
<!ATTLIST argDescr semantic CDATA #REQUIRED>
<!ELEMENT ruleNumberOfPriority EMPTY > <!ATTLIST ruleNumberOfPriority val CDATA #REQUIRED> 9 <!ELEMENT def (atom, atom+)> 15 10 <!ELEMENT atom (argument+)> <!ATTLIST atom predicateName CDATA #REQUIRED>
<!ELEMENT argument EMPTY > <!ATTLIST argument value CDATA #REQUIRED>
11 <!ELEMENT fact (atom)>
12 <!ELEMENT and ((and|forAll|atLeast|atMost|neg|base), (and[forAll|atLeast|atMost|neg|base)+)>
<!ELEMENT forAll (and[forAU|atLeast|atMost|neg|base)> <!ATTLIST forAll roleName CDATA #REQUIRED>
20 <!ELEMENT atLeast EMPTY> <!ATTLIST atLeast roleName CDATA #REQUIRED>
<!ELEMENT atMost EMPTY> <! ATTLIST atMost roleName CDATA #REQUIRED>
<!ATTLIST atMost integer CDATA #REQUIRED> <!ELEMENT neg (base)> <!ELEMENT base EMPTY> <!ATTLIST base conceptName CDATA #REQUIRED>
Dans le tableau T5 précité, les numéros de lignes indiqués désignent des lignes de déclaration spécifiques remarquables de la mise en œuvre des règles d'écriture syntaxique, permettant la mise en œuvre du procédé de codage objet de l'invention.
En particulier, la structure de données subdivisée en blocs représentée au tableau T5 est structurée à partir d'une déclaration constituée d'une pluralité de lignes de déclaration formée par des blocs et incluant :
- une ligne 1 de déclaration de l'ontologie déclarant outre un nom de domaine de l'ontologie, une pluralité de concepts, de rôles et de prédicats ordinaires et de faits ;
- une ligne 2 de déclaration de concepts déclarant outre un nom de concept, une pluralité de synonymes, un identifiant, une pluralité de concepts mutuellement exclusifs vis-à-vis du concept déclaré et une pluralité d'opérateurs logiques d'expression de logique de description facultatif ;
- une ligne 3 de déclaration de synonymes déclarant un nom de synonyme ;
- une ligne 4 de déclaration d'identifiant, c'est-à-dire d'identifiant IDj déclaré comme une pluralité d'entiers, ainsi que mentionné précédemment dans la description ;
- une ligne 5 de déclaration de valeur d'entier ;
- une ligne 6 de déclaration d'une liste de concepts mutuellement exclusifs d'un concept déclaré.
On indique en référence au tableau T3 introduit précédemment dans la description que le tableau T5 et en particulier les lignes 1 à 6 précédemment décrites, correspondent aux lignes de déclaration effective conformément au langage de communication d'ontologie et aux règles d'écriture syntaxique de cette dernière permettant la mise en œuvre du procédé de codage objet de la présente invention.
En outre, la structure de données subdivisée en blocs et codée, objet de l'invention, lorsque l'ontologie comprend en outre des informations non liées aux concepts incluant des rôles, des prédicats ordinaires et des faits est structurée à partir d'une déclaration constituée en outre de lignes de déclaration formées par des blocs, incluant les lignes suivantes, en particulier :
- une ligne 7 de déclaration de rôle déclarant outre un nom de rôle, un argument discriminé par le rôle et un argument discriminant dans le rôle à chaque argument étant attribué une valeur sémantique par une déclaration de type d'argument ;
- une ligne 8 de déclaration de prédicats ordinaires déclarant outre un nom de prédicat ordinaire une pluralité facultative de type d'arguments associé à un numéro d'ordre de lecture de règles et une pluralité de définitions facultatives ;
- une ligne 9 de déclaration de définitions déclarant une pluralité d'atomes ;
- une ligne 10 de déclaration d'atomes déclarant outre un nom de prédicat d'atomes une pluralité d'arguments ;
- une ligne 11 de déclaration de faits déclarant un fait comme un atome ;
- une ligne 12 et suivantes de déclaration d'opérateurs logiques d'expression de logique de description.
En particulier, la ligne de déclaration d'opérateurs logiques d'expression de logique de description précitée déclare au moins l'écriture d'un bloc déterminé en partie gauche et l'écriture d'une suite ordonnée de blocs en partie droite d'une règle de définition, à cette écriture étant allouée une fonction de remplacement du bloc déterminé par la suite de blocs, l'écriture du premier symbole | l'écriture du deuxième symbole [pluralité de blocs], l'écriture du troisième symbole, pluralité de blocs entre les symboles < et >, l'écriture du quatrième symbole * associé à un bloc, l'écriture du cinquième symbole + associé à un bloc et l'écriture du sixième symbole ? au symbole précité et à l'écriture de ces derniers étant allouées des fonctions correspondantes telles que décrites précédemment dans la description.
On comprend ainsi que la déclaration constitutive de la structure de données subdivisée en blocs et formant la DTD complète, introduite au tableau T5 précité, est alors établie en langage de balisage structuré, ce langage pouvant correspondre par exemple à un langage xml ou OWL.
On comprend, en particulier, que la déclaration précitée est établie selon le langage de balisage structuré précité. En conséquence, cette déclaration est la structure de données.
La structure de données subdivisée en blocs objet de l'invention constituant la DTD introduite au tableau T5 précité est ainsi une structure xml enrichie prenant en compte d'autres connaissances, telles que des rôles, des prédicats ordinaires comportant notamment un numéro d'ordre de lecture. La définition d'un prédicat ordinaire est en fait constitué d'une suite d'atomes commençant par l'atome de tête de la règle, cet atome tête est construit à partir du nom du prédicat suivi d'une liste d'arguments variables ou constants.
Un exemple d'utilisation d'une structure de données établie en conformité avec les règles d'écriture syntaxique, telles que décrites au tableau T5 précité, sera maintenant donné en liaison avec le tableau T6.
Tableau T6
<ordinaryPredicate name="VolAR">
<argDescr type="Vol" semantic="vol"/>
<argDescr type=" Aéroport" semantic="lieu de départ"/>
<argDescr type=" Aéroport" semantic="lieu d'arrivée"/>
<argDescr type="Date" semantic="date de départ pour raller"/>
<argDescr type="Date" semantic="date d'arrivée pour l'aller "/>
<argDescr type="Date" semantic="date de départ pour le retour"/>
<argDescr type="Date" semantic="date d'arrivée pour le retour" />
<ordinaryPredicate name="VolAR">
<ordinaryPredicate name="VolEco">
<argDescr type="Vol" semantic="vol"/>
<argDescr type="Tariffîco" semantic="tarif '/>
<ruleNumberOfPriory val="l"/>
<de£>
<atom predicateName="VolEco"><argument value="x"/xargument value="p"/> </atom>
<atom predicateName="ConceptGeneral"><argument value="x"/>
<argument value="p"/><argument value="x'7> </atom>
<atom predicateName="TarifAss"><argument value="x"/><argument value="p"/></atotn> <atom predicateName="TarifEco"><argument value="x"/></atom> </deÊ>
</ordinaryPredicate>
<fact><atom predicateName="Aéroport"><arguraentvalue="Paris-CDG"/></atom></fact> <fact><atom predicateName=MVor'><argument value="714-Sydney"/x/atom></fact> Avec
<concept name="Vol">
<id><path><integer val="4"/><integer val='T7></path></id> </concept>
<concept name="ConceptGenerel">
<id><pathxinteger val="4"/xinteger val="l"/></pathx/id> <and>
<base ConceptName="Vol"/>
<forall rolename="TarifAss"/><neg><base ConceptName="TarifLuxe"/></neg></forall> </and> </concept>
L'utilisation de la structure de données précitée constitutive d'une DTD spécifique est optimisée par un traitement préalable des règles, afin de leur affecter un numéro d'ordre de lecture NUM encore désigné numéro de palier.
La numérotation des règles de définition précitées permet alors d'introduire les propriétés suivantes :
— un ensemble de règles de définition à saturer est toujours ordonné selon le numéro de palier croissant ;
- un numéro de palier pour une définition d'un prédicat ordinaire PO se calcule de manière récursive en fonction du numéro de palier des prédicats ordinaires présent dans les définitions de prédicats ordinaires PO.
Les prédicats qui n'ont pas de définition ou qui ne contiennent pas de prédicat ordinaire dans leur définition, sont associés au numéro de palier 1.
L'absence de cycle dans la terminologie assure une terminaison à l'algorithme et la présence d'au moins un prédicat de palier 1.
L'algorithme d'utilisation de la structure de données subdivisée en blocs codés représentative d'une ontologie s'initialise alors avec une liste L laquelle associe chaque prédicat de l'ontologie à une liste de prédicats : chaque prédicat ordinaire PO est associé au prédicat ordinaire PO qui apparaissent dans au moins une des définitions de prédicats ordinaires (il est nécessaire d'effectuer n*(n/2) lectures des éléments de la liste de L pour initialiser une liste L2 et n*(n/2) lectures sont au pire nécessaires pour les suppressions de prédicats ordinaires PO).
Le pseudo code d'initialisation par lecture successive des règles de définition en fonction des numéros de palier est donné ci-après selon le tableau T7 :
Tableau T7
NbPrédicatTraités <— O Palier <- O
Tant Que NbPrédicatTraités < NbTotalPrédicats faire Palier <— Palier +1
L2 <— tous les prédicats de L associés à une liste vide Pour chaque prédicat PO de L2
NbPrédicatTraités <- NbPrédicatTraités +1 Affecter Palier comme numéro pour chaque règle du prédicat PO Supprimer PO de toutes les listes contenues dans L Fin Pour Fin Tant Que
Deux ensembles de règles de définition Rl et R2 peuvent rapidement fusionner par application de l'algorithme ci-après en n passages pour n règles. De nombreuses règles ont le même numéro d'ordre et appartiennent au même numéro de palier et n'ont donc pas à être ordonnées les unes par rapport aux autres. Ce mode opératoire permet d'avancer plus rapidement dans un paquet de règles. Le processus algorithmique correspondant est introduit au tableau T8 ci-après :
Tableau T8 R3 <r- vide
Tant Que non vide (Rl) et non vide (R2) faire Numl +- PremierNuméroPalier(Rl) Num2 <— PremierNuméroPalier(R2) Si Numl < Num2
Alors Tant Que Numl ≈ PremierNuméroPalier(Rl) faire R3 <— R3 + ÔterPremièreRègle(Rl)
Sinon Tant Que Num2 == PremierNuméroPalier(R2) faire R3 <— R3 + ÔterPremièreRègle(R 1 ) Fin Tant Que Si Vide(R2) alors R3 <- R3 + Rl sinon R3 <- R3 + R2
La structure de données subdivisée en blocs codés, conformément à la mise en œuvre du procédé objet de l'invention, peut alors être mémorisée et/ou communiquée à différents acteurs, cette communication pouvant être exécutée par l'intermédiaire d'un fichier texte par exemple, par l'intermédiaire d'un réseau classique en utilisant un fichier xml.
Une description plus détaillée d'un système de codage et de représentation synthétique d'une ontologie partiellement saturée, conforme à l'objet de la présente invention, cette ontologie comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini représentée par un treillis et
des informations non liées aux concepts, sera maintenant donnée en liaison avec la figure 4a.
D'une manière générale, en référence à la figure précitée, on indique que le système de codage, objet de l'invention, comporte de manière classique des organes d'entrée/sortie I/O, une unité centrale de traitement CPU et une mémoire de travail RAM.
De manière remarquable, le système de codage objet de l'invention comporte un module M0 d'acquisition de l'ontologie permettant de mémoriser le treillis et les informations non liées aux concepts. Ces éléments d'informations peuvent, ainsi que représenté sur la figure 4a, être fournis en ligne par un fournisseur d'ontologie, le fournisseur d'ontologie éditant alors des fichiers numériques correspondants contenant le treillis et les informations non liées au concept.
En outre, le système de codage objet de l'invention comporte un module M1 de codage du treillis de concepts par attribution à chaque concept et au nœud du treillis associé à ce dernier d'un identifiant ID; formé par au moins une suite de nombres entiers. Chaque suite de nombres entiers définit un chemin d'accès entre un concept considéré Cj et le concept universel T, par l'intermédiaire de concepts pères successifs. L'identifiant inclut ainsi toutes les suites de nombres entiers définissant chacune un chemin d'accès entre l'un des concepts pères et le concept universel T, auxquelles est ajouté un nombre entier représentatif du concept considéré.
On comprend, en particulier, que le module de codage M1 est avantageusement réalisé sous forme d'un module logiciel mémorisé en mémoire morte par exemple, ou sur une unité de disque dur par exemple, lequel est alors appelé par l'unité centrale CPU pour exécution, dans la mémoire de travail par exemple, lors d'une mise en œuvre du système de codage objet de l'invention.
Selon un aspect remarquable du système de codage objet de l'invention, ce dernier comporte un module M2 de calcul des exclusions mutuelles entre concepts pour chaque concept considéré Q de l'ontologie.
On comprend, également, que le module de calcul M1 peut être constitué par un module de programme de calcul mettant en œuvre le procédé, objet de l'invention, tel que décrit précédemment.
Enfin, le système de codage objet de l'invention, comporte une unité de mémorisation PM du treillis de concepts codé sous forme d'une structure de données subdivisée en blocs incluant au moins un nom de domaine et une liste comportant au moins un identifiant, formé par une liste d'au moins un chemin et une liste de concepts mutuellement exclusifs avec le concept primitif considéré.
L'unité de mémorisation PM peut avantageusement être constituée par une mémoire programmable non volatile ce qui permet par exemple, lors de l'utilisation successive du système de codage objet de l'invention, d'effectuer toute mise à jour de la structure de données mémorisée dans la mémoire programmable précitée, en particulier lors de l'adjonction de concepts définis dans le treillis codé pour une mise à jour de l'ensemble de l'ontologie, ainsi que décrit précédemment dans la description.
Un système de consultation d'une l'ontologie partiellement saturée, conforme à l'objet de la présente invention, cette ontologie étant communiquée sous forme de la structure de données subdivisée en blocs telle que représentée en figure 2d, c'est-à-dire le treillis codé, accompagnée des documents texte de type DTD précédemment décrits dans la description, sera maintenant donné en liaison avec la figure 4b.
Le système de consultation représenté sur la figure précitée, conforme à l'invention, comprend au moins des organes d'entrée/sortié I/O, une unité centrale de traitement et une mémoire de travail RAM.
Il comporte en outre, ainsi que représenté sur la figure précitée, une unité MO d'acquisition d'une structure de données subdivisée en blocs et représentative de l'ontologie à consulter, cette dernière comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini représentée par un treillis, cette structure de données étant représentée, ainsi que mentionné précédemment, par le treillis codé représenté en figure 2d par numérotation et par le
document DTD, tel qu'introduit par exemple par le tableau T5 ou T6, un module M3 interpréteur de requêtes de consultation, cette requête étant transmise par un terminal utilisateur demandeur de consultations d'une ontologie donnée.
Dans un mode de mise en œuvre préférentiel, pour une requête de consultation transmise par un terminal utilisateur portant sur un premier et un deuxième concept disjoints par exemple, tel que les concepts B et H de la figure 2d, ces concepts sont alors codés dans la structure de données subdivisée en blocs comme concepts mutuellement exclusifs. On comprend, en particulier, que les concepts précités font alors partie de la liste des concepts exclusifs, liste notée CEj telle que décrite précédemment dans la description, notamment en liaison avec les figures 3b et 3c.
Dans cette situation, le module interpréteur M3 exécute alors une lecture des concepts dans la liste des concepts mutuellement exclusifs.
Sur identification des premier et deuxième concepts dans la liste de concepts mutuellement exclusifs, le module interpréteur M3 exécute alors une limitation du parcours de recherche sur identification du premier et du deuxième concept B et H dans la liste des concepts mutuellement exclusifs. La limitation est alors exécutée sur les seuls concepts spécialisants du premier concept, par exemple, compte tenu de l'exclusion mutuelle des concepts spécialisants du deuxième concept.
À titre d'exemple, en supposant que la requête R transmise demande des voyages en TGV partant de l'aéroport Charles de Gaulle à Paris, alors que les concepts voyage en train et voyage en avion sont disjoints, et donc mutuellement exclusifs, et que le module interpréteur M3 dispose des données provenant d'une compagnie aérienne pour les vols et d'une compagnie ferroviaire pour les voyages en train au départ du même aéroport, le module interpréteur M3, sachant que les voyages en avion ne peuvent pas être des voyages en train, et qu'un voyage en TGV est un voyage en train, limite le parcours de façon à ne pas chercher de réponse dans les données de la compagnie aérienne, ce qui, bien entendu, présente un gain de traitement considérable.
Une description plus détaillée d'un système serveur d'accès en réseau IP à une ontologie partiellement saturée, conforme à l'objet de la présente invention sera maintenant donnée en liaison avec la figure 4c.
Pour assurer un accès totalement autonome à tout utilisateur internaute à partir d'un terminal classique, le système serveur, objet de l'invention, comprend au moins interconnectés, un portail fournisseur d'accès, désigné OAP sur la figure 4c, à ladite ontologie partiellement saturée, à partir d'une requête de consultation et, bien entendu, un système de consultation de ladite ontologie saturée tel que décrit précédemment en liaison avec la figure 4b. Sur la figure 4c, le système de consultation est désigné OP.
En particulier, le système serveur peut être configuré, ainsi que représenté sur la figure 4c, par un portail fournisseur d'accès et un système de consultation physiquement distincts interconnectés en réseau ou, au contraire, par des entités correspondantes interconnectées et intégrées en une seule et même entité physique.
En particulier, le portail fournisseur d'accès comporte au moins, outre un organe d'entrée/sortie I/O et une unité centrale de traitement CPU, un module M4 de discrimination de concepts mutuellement exclusifs dans la requête transmise par le terminal utilisateur, par comparaison des chemins d'accès contenus dans l'identifiant de chacun des concepts contenus dans la requête, et un module de calcul M5 d'une requête cohérente par appel aux concepts généralisants des concepts mutuellement exclusifs, à partir des chemins et des identifiants des concepts généralisants précités.
En reprenant l'exemple d'utilisation décrit en liaison avec la figure 4b, on suppose que les concepts mutuellement exclusifs et donc disjoints sont les concepts A et H voyage en train et voyage en avion.
On suppose en outre que la requête demande de manière erronée, par exemple pour un utilisateur peu averti, des voyages en TGV à bord d'un avion A-320.
Dans ces conditions, le portail fournisseur d'accès à l'ontologie OAP est en mesure d'informer l'utilisateur, avant toute consultation des données, que sa requête ne peut obtenir de réponse puisqu'elle contient une incohérence, les concepts voyage en train et voyage en avion étant disjoints.
Pour ce faire, le module M5 de calcul d'une requête cohérente fait alors appel aux concepts généralisants des concepts mutuellement exclusifs et permet, après identification dans la liste des concepts mutuellement exclusifs tel que voyage en TGV et voyage en avion, d'établir une requête cohérente du type : Voyage en TGV à bord d'un engin de transport ferroviaire européen ou voyage à bord d'un avion A-320 dans l'une des compagnies aérienne disponible dans l'ontologie.
Le procédé et le système de codage et de représentation synthétique d'une ontologie partiellement saturée, la structure de données obtenue par la mise en œuvre du procédé et du système de codage précités et le serveur de structure de données correspondant incluant un système de consultation de l'ontologie, conformes à l'objet de la présente invention, permettent ainsi à n'importe quel utilisateur internaute de pouvoir utiliser la richesse d'une ontologie, sans avoir à mettre en œuvre un raisonneur ou des fonctions complexes pour saturer cette ontologie.
En effet, l'ontologie est directement transmise sous sa forme saturée, c'est-à- dire sous la forme de la structure de données satisfaisant aux règles d'écriture syntaxique du langage de communication, tel que décrit précédemment dans la description.
Le mode de transmission d'ontologie précitée permet à la fois un gain de temps après réception du document, c'est-à-dire de la DTD complète puisqu'il n'y a aucun calcul complexe ou coûteux à effectuer sur l'ontologie déjà saturée, puis pendant la transmission et la lecture du document, puisque le fichier saturé est dans un format de type texte compact et de taille relativement réduite.
En outre, un gain d'utilisation peut être mis en évidence dans la mesure où, les règles d'écriture syntaxique, c'est-à-dire la grammaire permettant le codage de l'ontologie précitée est simple et adaptable à de nombreux formats, ainsi que mentionné précédemment dans la description, comme le format xml ou OwI par exemple.
En outre, le stockage des informations correspondantes ne nécessite pas de structure de données lourde.
Le procédé et le système de codage, la structure de données obtenue par la mise en œuvre de ces derniers et le serveur de structure de données correspondant permettent d'effectuer ainsi, tous les raisonnements sur les concepts de l'ontologie avec un moindre coût en temps d'exécution.
Un tableau de compression suivant, valable pour une ontologie de n concepts, introduit sous forme de tableau T9, illustre totalement les gains obtenus par la mise en œuvre précitée.
Dans le tableau ci-après, on appelle chaîne, une chaîne de caractères comparable au type de programmation "string".
Ph est la profondeur de la hiérarchie, ce paramètre étant égal à la longueur maximale d'un chemin CH allant du concept universel au concept vide.
Un concept considéré Q comporte par exemple ns synonymes et il comporte donc ns appellations différentes.
Tout concept considéré C; comporte également ng concepts généralisants et nd concepts descendants ou spécialisants pères et fils inclus.
L'ensemble des paramètres précités vérifie la relation : ng<n et nd<n.
Dans les techniques antérieures, pour différencier les concepts pères respectivement les concepts fils des autres concepts généralisants respectivement des concepts spécialisant, il fallait stocker quatre listes de noms de concepts.
Grâce à la mise en œuvre du procédé de codage objet de la présente invention, et, en particulier du codage par numérotation du treillis de concepts, toutes ces informations sont contenues dans l'identifiant IDj de chaque concept considéré Cj qui comprend au maximum une suite d'au plus Ph-I entier que multiplie le nombre de chemins vers le concept universel T.
Certains chemins peuvent atteindre Ph-I entiers pour un concept considéré Ci situé au-dessus du concept vide avec au plus, Ph-I concept généralisants. De la même façon, un concept Q considéré situé sous le concept généralisant T comporte au plus Ph-I concept spécialisant.
Un concept Q considéré est mutuellement exclusif avec nce concepts, ce nombre pouvant être très proche du nombre total n de concepts.
La mise en œuvre du procédé et du système de codage et de représentation synthétique d'une ontologie partiellement saturée de la structure de données obtenue correspondante et du serveur de structures de données objet de l'invention, permet de largement réduire la valeur de nce concepts à nce2=(n/2) ainsi que décrit précédemment dans la description. Le nombre nce2 est très inférieur au nombre nce.
En ce qui concerne les règles de définition, celles-ci sont très légèrement comprimées de façon à n'être transmises que comme définition d'un prédicat ordinaire. Enfin, il n'existe pas de différence pour le stockage des rôles qui ne sont pas transmis sous forme saturée.
Tableau T9
Enfin, le procédé, le système de codage et de représentation synthétique d'une ontologie partiellement saturée, la structure de données et le serveur de structure de données correspondants, objets de la présente invention, couvrent également :
— un produit de programme d'ordinateur mémorisé sur un support de mémorisation et exécutable par un ordinateur, remarquable en ce que, lors de l'exécution du produit de programme par un ordinateur ou par un système de codage dédié, décrit en liaison avec la figure 4a, celui-ci exécute le procédé de codage et de représentation synthétique d'une ontologie partiellement saturée, ainsi que décrit précédemment dans la description en référence aux figures 2a à 3c ;
- un produit de programme d'ordinateur mémorisé sur un support de mémorisation et exécutable sur un ordinateur, remarquable en ce que lors de l'exécution de ce produit de programme par un ordinateur ou par un système de consultation dédiée d'une ontologie partiellement saturée, tel que décrit en liaison avec la figure 4b, ce produit de programme exécute une interprétation de toute requête de consultation émise par un terminal, ainsi que décrit en liaison avec la figure 4b ;
- un produit de programme d'ordinateur mémorisé sur un support de mémorisation et exécutable par un ordinateur, remarquable en ce que lors de l'exécution de ce produit de programme par un ordinateur ou par un système serveur dédié comportant un portail d'accès à une ontologie saturée, tel que décrit en liaison avec la figure 4c, ce programme exécute une discrimination de concepts mutuellement exclusifs et le calcul d'une requête cohérente par appel aux concepts généralisants des concepts mutuellement exclusifs, ainsi que décri en liaison avec la figure 4c.
Claims
1. Procédé de codage et de représentation synthétique d'une ontologie partiellement saturée, ladite ontologie comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini représentée par un treillis sous un concept universel et des informations non liées aux concepts, caractérisé en ce que ledit procédé consiste au moins à :
- coder ledit treillis de concepts par attribution à chaque concept et au nœud du treillis associé à ce dernier d'un identifiant formé par au moins une suite de nombres entiers, chaque suite de nombres entiers définissant un chemin d'accès entre un concept considéré et le concept universel, par l'intermédiaire de concepts pères successifs, ledit identifiant incluant toutes les suites de nombres entiers définissant chacune un chemin d'accès entre l'un desdits concepts pères et ledit concept universel, auxquelles est ajouté un nombre entier représentatif dudit concept considéré ;
- calculer les exclusions mutuelles entre concepts pour chaque concept considéré ;
— mémoriser ledit treillis de concepts codé sous forme d'une structure de données subdivisée en blocs incluant au moins une liste de concepts incluant au moins un nom de domaine et une liste comportant au moins un concept considéré, chaque concept considéré incluant au moins un identifiant formé par une liste d'au moins un chemin et une liste de concepts mutuellement exclusifs avec ledit concept considéré.
2. Procédé selon la revendication 1, caractérisé en ce que chaque concept est constitué par une dénomination et, le cas échéant, par au moins un synonyme.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce que celui-ci consiste en outre à établir ladite structure de données à partir de :
— un ensemble de règles de définition, chaque règle de définition comportant une première partie mise en relation avec une deuxième partie constituant une définition de ladite première partie ; - une pluralité de mots clés spécifiques à valeur syntaxique, permettant d'organiser syntaxiquement lesdits blocs de ladite structure de données ;
- une pluralité de symboles, chaque symbole représentant une valeur sémantique attribuée à un mot clé spécifique, ladite structure de données subdivisée en blocs contenant des blocs terminaux constitués chacun par un mot clé et au moins un symbole, ledit ensemble de règles de définition, ladite pluralité de mots clés et ladite pluralité de symboles étant constitués en un langage de transmission et de communication de ladite structure de données, dont les règles d'écriture constituent les règles d'écriture syntaxique.
4. Procédé selon la revendication 3, caractérisé en ce que ladite pluralité de symboles inclut au moins la barre verticale, les crochets, le symbole inférieur à, le symbole supérieur à, le signe plus, le point d'interrogation, le signe étoile.
5. Procédé selon l'une des revendications 3 ou 4, caractérisé en ce que lesdites règles d'écriture syntaxique comportent au moins :
- l'écriture d'un bloc déterminé en partie gauche et l'écriture d'une suite ordonnée de blocs en partie droite d'une règle de définition, à ladite écriture étant allouée une fonction de remplacement dudit bloc déterminé par ladite suite de blocs ;
- l'écriture d'un premier symbole, la barre verticale, entre deux blocs d'une pluralité de blocs, à ladite écriture dudit premier symbole étant allouée une fonction de choix entre plusieurs blocs situés à gauche dudit premier symbole pour remplacer la pluralité de blocs située à droite dudit premier symbole ;
- l'écriture d'une pluralité de blocs entre crochets, deuxième symbole, à ladite écriture étant allouée une fonction de remplacement de chaque bloc de ladite pluralité de blocs par une chaîne de caractères, dénomination d'instance, lesdites chaînes de caractères formant chacune un bloc terminal, présent dans ladite structure de données ;
- l'écriture d'une pluralité de blocs entre les symboles inférieur à, supérieur à, troisième symbole, à ladite écriture étant allouée une fonction de remplacement de chaque bloc par sa définition à partir d'une règle de définition, lesdits blocs ne constituant pas des blocs terminaux ;
- l'écriture d'un quatrième symbole, signe étoile, associé à un bloc, à ladite écriture du quatrième symbole étant allouée une multiplication du nombre d'instances affectées au bloc ;
- l'écriture d'un cinquième symbole, signe plus, associé à un bloc, à ladite écriture du cinquième symbole étant allouée une multiplication du nombre d'instances affectées au bloc, sous contrainte de présence d'au moins une fois dans ladite structure de données ;
- l'écriture d'un sixième symbole, signe point d'interrogation, associé à un bloc, à ladite écriture du sixième symbole étant allouée la définition de champs facultatifs, sous contrainte de présence une seule fois ou d'absence du bloc dans ladite structure de données.
6. Procédé selon l'une des revendications 3 à 5, caractérisé en ce que ledit langage de transmission et de communication de ladite structure de données est l'un des langages choisis dans le groupe des langages xml, OwI.
7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce que lesdites informations non liées aux concepts incluant des rôles, des prédicats ordinaires et des faits, ledit procédé consiste en outre à :
- coder chaque rôle selon un prédicat binaire incluant au moins une en-tête associée à un nom de rôle, un premier argument, de type concept, déterminé par le rôle et un deuxième argument, de type concept, déterminant dans le rôle ;
- coder chaque prédicat ordinaire selon au moins un en-tête associé à un nom de prédicat, un premier argument de type argument et un deuxième argument de liste de définition, chaque argument présentant en outre une valeur sémantique ;
- coder chaque fait selon une en-tête associée à un atome, dont au moins un des arguments est une constante.
8. Procédé selon la revendication 7, caractérisé en ce que ladite définition est codée par une en-tête associée à une pluralité d'atomes issus d'une règle de définition.
9. Procédé selon l'une des revendications 3 à 8, caractérisé en ce que à chaque règle de définition est associé un numéro d'ordre de lecture de règle, lequel permet d'ordonner tout sous ensemble de règles de définition codées pour optimisation d'une exécution desdites règles de définition dans ladite structure de données.
10. Procédé selon l'une des revendications 3 à 9, caractérisé en ce que ledit langage de transmission et de communication de ladite structure de données comporte en outre un ensemble d'opérateurs logiques d'expressions de logique de description incluant au moins :
- un premier opérateur logique <and> permettant la mise en relation logique d'intersection (ET) entre une première et une deuxième expression de logique de description par l'intermédiaire d'un en-tête "AND" ;
- un deuxième opérateur logique <forall> permettant la mise en relation d'un nom de rôle et d'une expression logique de description par l'intermédiaire d'un en-tête "FA" ;
- un troisième opérateur logique <at least> permettant la mise en relation d'un entier minorant et d'un nom de rôle par l'intermédiaire d'un en-tête 11AL" ;
- un quatrième opérateur logique <atmost> permettant la mise en relation d'un entier majorant et d'un nom de rôle par l'intermédiaire d'un en-tête "AM" ;
- un cinquième opérateur logique <neg> permettant la négation ou exclusion d'un élément de base, tel qu'un concept, par l'intermédiaire d'un en-tête
• "NEG".
11. Structure de données subdivisée en blocs codée et représentative d'une ontologie comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini représentée par un treillis, caractérisée en ce que ladite structure de données est structurée à partir d'une déclaration constituée d'une pluralité de lignes de déclaration formées par des blocs, incluant :
- une ligne de déclaration de l'ontologie déclarant, outre un nom de domaine de l'ontologie, une pluralité de concepts, de rôles de prédicats ordinaires et de faits ;
- une ligne de déclaration de concepts déclarant, outre un nom de concept, une pluralité de synonymes, un identifiant, une pluralité de concepts mutuellement exclusifs vis-à-vis du concept déclaré, et une pluralité d'opérateurs logiques d'expressions de logique de description facultatifs ;
- une ligne de déclaration de synonymes déclarant un nom de synonyme ;
- une ligne de déclaration d'identifiants, déclarés comme une pluralité d'entiers ;
- une ligne de déclaration de valeur d'entier ;
- une ligne de déclaration d'une liste de concepts mutuellement exclusifs d'un concept déclaré.
12. Structure de données selon la revendication 11, caractérisée en ce que ladite ontologie comprenant en outre des informations non liées aux concepts incluant des rôles, des prédicats ordinaires et des faits, ladite structure de données est structurée à partir d'une déclaration constituée en outre de lignes de déclaration formées par des blocs incluant :
- une ligne de déclaration de rôles déclarant, outre un nom de rôle, un argument discriminé par le rôle et un argument discriminant dans le rôle, à chaque argument étant attribuée une valeur sémantique par une déclaration de type d'argument ;
- une ligne de déclaration de prédicats ordinaires, déclarant, outre un nom de prédicat ordinaire, une pluralité de types d'arguments associée à un numéro d'ordre de lecture de règle et une pluralité de définitions facultatives ;
- une ligne de déclaration de définitions déclarant une pluralité d'atomes ; - une ligne de déclaration d'atomes déclarant, outre un nom de prédicat d'atome, une pluralité d'arguments ;
- une ligne de déclaration de faits déclarant un fait comme un atome ;
- une ligne de déclaration d'opérateurs logiques d'expressions de logique de description déclarant au moins : un premier opérateur logique <and> permettant la mise en relation logique d'intersection (ET) entre une première et une deuxième expression de logique de description par l'intermédiaire d'un en-tête "AND" ; un deuxième opérateur logique <forall> permettant la mise en relation d'un nom de rôle et d'une expression logique de description par l'intermédiaire d'un en-tête "FA" ; un troisième opérateur logique <at least> permettant la mise en relation d'un entier minorant et d'un nom de rôle par l'intermédiaire d'un en-tête "AL" ; un quatrième opérateur logique <atmost> permettant la mise en relation d'un entier majorant et d'un nom de rôle par l'intermédiaire d'un en-tête "AM" ; un cinquième opérateur logique <neg> permettant la négation ou exclusion d'un élément de base, tel qu'un concept, par l'intermédiaire d'un en-tête "NEG".
13. Structure de données selon l'une des revendications 11 ou 12, caractérisé en ce que ladite déclaration est établie en langage de balisage structuré, tel que le langage xml ou OwI.
14. Structure de données selon la revendication 13, caractérisé en ce que ladite déclaration comporte des balises insérées dans lesdites lignes de déclaration, lesdites balises étant formées par l'écriture de symboles, lesdits symboles comportant au moins :
- l'écriture d'un bloc déterminé en partie gauche et l'écriture d'une suite ordonnée de blocs en partie droite d'une règle de définition, à ladite écriture étant allouée une fonction de remplacement dudit bloc déterminé par ladite suite de blocs ;
- l'écriture d'un premier symbole, la barre verticale, entre deux blocs d'une pluralité de blocs, à ladite écriture dudit premier symbole étant allouée une fonction de choix entre plusieurs blocs situés à gauche dudit premier symbole pour remplacer la pluralité de blocs située à droite dudit premier symbole ;
- l'écriture d'une pluralité de blocs entre crochets, deuxième symbole, à ladite écriture étant allouée une fonction de remplacement de chaque bloc de ladite pluralité de blocs par une chaîne de caractères, dénomination d'instance, lesdites chaînes de caractères formant chacune un bloc terminal, présent dans ladite structure de données ;
- l'écriture d'une pluralité de blocs entre le symbole inférieur à, supérieur à, troisième symbole, à ladite écriture étant allouée une fonction de remplacement de chaque bloc par sa définition à partir d'une règle de définition, lesdits blocs ne constituant pas des blocs terminaux ;
- l'écriture d'un quatrième symbole, signe étoile, associé à un bloc, à ladite écriture du quatrième symbole étant allouée une multiplication du nombre d'instances affectées au bloc ;
- l'écriture d'un cinquième symbole, signe plus, associé à un bloc, à ladite écriture du cinquième symbole étant allouée une multiplication du nombre d'instances affectées au bloc, sous contrainte de présence d'au moins une fois dans ladite structure de données ;
- l'écriture d'un sixième symbole, signe point d'interrogation, associé à un bloc, à ladite écriture du sixième symbole étant allouée la définition de champs facultatifs, sous contrainte de présence une seule fois ou d'absence du bloc dans ladite structure de données.
15. Système de codage et de représentation synthétique d'une ontologie partiellement saturée, comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini représentée par un treillis et des informations non liées aux concepts, caractérisé en ce que, outre des organes d'entrée/sortie, une unité centrale de traitement et une mémoire de travail, ledit système inclut au moins :
- des moyens d'acquisition de ladite ontologie permettant de mémoriser ledit treillis et lesdites informations non liées aux concepts ;
- des moyens de codage dudit treillis de concepts par attribution à chaque concept et au nœud du treillis associé à ce dernier d'un identifiant formé par au moins une suite de nombres entiers, chaque suite de nombres entiers définissant un chemin d'accès entre un concept considéré et le concept universel, par l'intermédiaire de concepts pères successifs, ledit identifiant incluant toutes les suites de nombres entiers définissant chacune un chemin d'accès entre l'un des concepts pères et le concept universel, auxquelles est ajouté un nombre entier représentatif du concept considéré ;
- des moyens de calcul des exclusions mutuelles entre concepts pour chaque concept considéré ; et,
- des moyens de mémorisation du treillis de concepts codé sous forme d'une structure de données subdivisée en blocs incluant au moins un nom de domaine et une liste comportant au moins un identifiant, formé par une liste d'au moins un chemin et une liste de concepts mutuellement exclusifs avec ledit concept primitif considéré.
16. Système de consultation d'une ontologie partiellement saturée, comportant au moins des organes d'entrée/sortie, une unité centrale de traitement et une mémoire de travail, caractérisé en ce que ledit système comporte en outre :
- des moyens d'acquisition d'une structure de données subdivisée en blocs et représentative de ladite ontologie comportant au moins une hiérarchie de concepts formée par des concepts primitifs et au moins un concept défini représentée par un treillis, selon l'une des revendications 11 à 14 ; et,
- un module interpréteur de requête de consultation, transmise par un terminal utilisateur.
17. Système selon la revendication 16, caractérisé en ce que, pour une requête de consultation transmise par un terminal utilisateur portant sur un premier et un deuxième concept disjoints, codés comme concepts mutuellement exclusifs dans ladite structure de données subdivisée en blocs, ledit module interpréteur exécute :
- une lecture desdits concepts dans la liste des concepts mutuellement exclusifs ; et, sur identification desdits premier et deuxième concepts dans ladite liste de concepts mutuellement exclusifs,
- une limitation du parcours de recherche sur les seuls concepts spécialisant de l'un desdits premier et deuxième concepts, compte tenu de l'exclusion mutuelle desdits concepts spécialisants de l'autre desdits premier et deuxième concepts, à partir des chemins d'accès des identifiants desdits concepts.
18. Système serveur d'accès en réseau IP à une ontologie partiellement saturée, caractérisé en ce qu'il comporte au moins, interconnectés :
- un portail fournisseur d'accès à ladite ontologie partiellement saturée, à partir d'une requête de consultation ;
- un système de consultation de ladite ontologie saturée selon l'une des revendications 16 ou 17.
19. Système serveur selon la revendication 18, caractérisé en ce que ledit portail fournisseur d'accès comporte au moins :
- un module de discrimination de concepts mutuellement exclusifs dans ladite requête par comparaison des chemins d'accès contenus dans l'identifiant de chacun des concepts contenus dans ladite requête ; et,
- un module de calcul d'une requête cohérente par appel aux concepts généralisants desdits concepts mutuellement exclusifs, à partir des chemins et des identifiants desdits concepts généralisants.
20. Produit de programme d'ordinateur mémorisé sur un support de mémorisation et exécutable par un ordinateur, caractérisé en ce que lors de l'exécution dudit produit de programme par un ordinateur ou par un système de codage dédié selon la revendication 15, celui-ci exécute le procédé de codage et de représentation synthétique d'une ontologie partiellement saturée selon l'une des revendications 1 à 10.
21. Produit de programme d'ordinateur mémorisé sur un support de mémorisation et exécutable par un ordinateur, caractérisé en ce que lors de l'exécution dudit produit de programme par un ordinateur ou par un système de consultation dédié selon l'une des revendications 16 ou 17, celui-ci exécute le une interprétation de toute requête de consultation émise par un terminal, selon la revendication 17.
22. Produit de programme d'ordinateur mémorisé sur un support de mémorisation et exécutable par un ordinateur, caractérisé en ce que lors de l'exécution dudit produit de programme par un ordinateur ou par un système serveur dédié comportant un portail d'accès à une ontologie saturée selon la revendication 18 ou 19, celui-ci exécute une discrimination de concepts mutuellement exclusifs et un calcul d'une requête cohérente par appel aux concepts généralisants desdits concepts mutuellement exclusifs selon la revendication 19.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0508204 | 2005-08-01 | ||
| FR0508204A FR2889330A1 (fr) | 2005-08-01 | 2005-08-01 | Procede et systeme de codage et de representation synthetique d'une ontologie partiellement saturee, structure de donnees, et serveur de structure de donnees correspondants |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2007014986A2 true WO2007014986A2 (fr) | 2007-02-08 |
| WO2007014986A3 WO2007014986A3 (fr) | 2007-09-13 |
Family
ID=36609257
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR2006/001505 Ceased WO2007014986A2 (fr) | 2005-08-01 | 2006-06-28 | Procédé et système de codage et de représentation synthétique d'une ontologie partiellement saturée, structure de données, et serveur de structure de données correspondants |
Country Status (2)
| Country | Link |
|---|---|
| FR (1) | FR2889330A1 (fr) |
| WO (1) | WO2007014986A2 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114564739A (zh) * | 2022-02-14 | 2022-05-31 | 浙江惠瀜网络科技有限公司 | 防止非法获取编码文件指标源码的方法及装置 |
-
2005
- 2005-08-01 FR FR0508204A patent/FR2889330A1/fr active Pending
-
2006
- 2006-06-28 WO PCT/FR2006/001505 patent/WO2007014986A2/fr not_active Ceased
Non-Patent Citations (5)
| Title |
|---|
| BIDAULT A: "Affinement de Requêtes Posées à un Mediateur" THÈSE POUR OBTENIR LE GRADE DE DOCTEUR ES SCIENCES DE L'UNIVERSITÉ PARIS XI ORSAY, SPÉCIALITÉ INFORMATIQUE. THÈSE N 6932, 8 juillet 2002 (2002-07-08), XP002379525 * |
| JÉRÔME EUZENAT: "Preserving modularity in XML encoding of description logics" WORKING NOTES OF THE 2001 INTERNATIONAL DESCRIPTION LOGICS WORKSHOP, 3 août 2001 (2001-08-03), XP002388810 Stanford, Etats-Unis * |
| NATALAYA F. NOY, MICHAEL SINTEK, STEFAN DECKER, MONICA CRUBÉZY, RAY W. FERGERSON, MARK A. MUSEN,: "Creating Semantic Web Contents with Protégé-2000" IEEE INTELLIGENT SYSTEMS, 30 avril 2001 (2001-04-30), XP002388809 * |
| PATRICK ZIEGLER, CHRISTOPH STURM, KLAUS R. DITTRICH: "Unified Querying of Ontology Languages with the SIRUP Ontology Query API" BTW 2005 BUSINESS, TECHNOLOGIE UND WEB, 4 mars 2005 (2005-03-04), XP002388812 Karlsrhühe, Allemagne * |
| SANDY LIU, BRUCE SPENCER: "WSIRD: Web Services Integration via Rules for Data transformation" ISWC2004 INTERNATIONAL SEMANTIC WEB CONFERENCE, 11 novembre 2004 (2004-11-11), XP002388811 Hiroshima, Japon * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114564739A (zh) * | 2022-02-14 | 2022-05-31 | 浙江惠瀜网络科技有限公司 | 防止非法获取编码文件指标源码的方法及装置 |
| CN114564739B (zh) * | 2022-02-14 | 2024-10-15 | 浙江惠瀜网络科技有限公司 | 防止非法获取编码文件指标源码的方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2889330A1 (fr) | 2007-02-02 |
| WO2007014986A3 (fr) | 2007-09-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Aranda et al. | From big data to rich theory: Integrating critical discourse analysis with structural topic modeling | |
| Feilmayr et al. | An analysis of ontologies and their success factors for application to business | |
| Klien et al. | Ontology-based discovery of geographic information services—An application in disaster management | |
| Cimiano et al. | Conceptual knowledge processing with formal concept analysis and ontologies | |
| JP6016843B2 (ja) | ユーザ駆動によるセマンティックネットワークの動的生成およびメディア統合のための方法、システム、ならびにコンピュータプログラム | |
| US9489453B2 (en) | Building an ontology by transforming complex triples | |
| US20230342629A1 (en) | Exploring entities of interest over multiple data sources using knowledge graphs | |
| WO2014198595A1 (fr) | Procede de classification thematique automatique d'un fichier de texte numerique | |
| Steenwinckel et al. | pyRDF2Vec: a python implementation and extension of RDF2Vec | |
| Venkataramanan et al. | Constructing a metadata knowledge graph as an atlas for demystifying AI pipeline optimization | |
| US20240046034A1 (en) | System and method to memorize and communicate information elements representable by formal and natural language expressions, by means of integrated compositional, topological, inferential, semiotic graphs | |
| Bechhofer et al. | Parsing owl dl: trees or triples? | |
| Borsje et al. | Graphical query composition and natural language processing in an RDF visualization interface | |
| CN119149676B (zh) | 基于意图识别的检索增强生成、问答方法及系统 | |
| WO2007014986A2 (fr) | Procédé et système de codage et de représentation synthétique d'une ontologie partiellement saturée, structure de données, et serveur de structure de données correspondants | |
| FR3135802A1 (fr) | Procédé de génération supervisée d’un graphe sémantique virtuel de connaissances spécialisées | |
| FR2880715A1 (fr) | Procede et systeme de codage d'un treillis representatif d'une hierarchie d'elements | |
| Molina | Semantic capabilities for the metrics and indicators cataloging web system | |
| Nuradilah Azman et al. | Towards an enhanced aspect-based contradiction detection approach for online review content | |
| Dobrowolski et al. | Semantic OLAP with FluentEditor and Ontorion Semantic Excel Toolchain | |
| Turnitsa et al. | Ontology applied–techniques employing ontological representation for M&S | |
| Al-Hegami et al. | An ontology framework based on web usage mining | |
| Lieber | Assessing, creating and using knowledge graph restrictions | |
| Masmoudi | Knowledge hypergraph based-approach for multi-source data integration and querying: Application for Earth Observation domain | |
| WO2007006886A2 (fr) | Procede et systeme de codage sous forme d'un treillis d'une hierarchie de concepts appartenant a une ontologie |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 06778698 Country of ref document: EP Kind code of ref document: A2 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 06778698 Country of ref document: EP Kind code of ref document: A2 |
