Partie 1 de S3 : systèmes (et outils de gestion) d'informations


http://www.phmartin.info/cours/erp/s3_1.html
Cours S3 préparé par Dr. Philippe MARTIN  (www.phmartin.info)


Plan 1.0. Préambule 1.1. Informations : données / connaissances 1.2. Répertoire d'informations (BD/BC, SGBD/SGBC, ontologie, Web 3.0, ...) 1.3. Gestion|ingénierie des connaissances, SGC, SGBC, SBC 1.4. Systèmes d'information 1.4.1. Sous-parties 1.4.2. PGIs (Progiciel de Gestion Intégré | Progiciel d'Enterprise Resource Planning) 1.4.3. Fonctions de PGIs et processus "métier" 1.4.4. PGIs - Périmètre intérieur et extérieur 1.4.5. PGIs - Mise en œuvre et inconvénients 1.4.6. PGIs - Marché 1.4.7. PGIs - Intérêt d'étudier les PGIs





Ce document est un support Slidy.
Pour aller de page en page, utilisez la barre d'espace ou les flèches, comme dans Powerpoint.
Vous pouvez aussi utiliser les menus "help?", "contents?" et "restart?" ci-dessous à gauche
dans le bandeau inférieur de cette fenêtre.

1.0. Préambule

E.g. (latin: exempli gratia) : "par exemple".
i.e. (latin: id est) : "c'est-à-dire".
/ : "ou".             // : "ou bien".
| : (quasi-)"alias" (entre 2 termes, dans le contexte où ils sont définis).


Ce cours est organisé comme une suite intuitive de définitions. Ceci facilite
- une description plus précise et complète des concepts et de leur inter-relations
- la recherche, compréhension et mémorisation de ces concepts et inter-relations.
Note : d'autres cours contiennent aussi beaucoup de définitions mais souvent de
manière moins explicite.

1.1. Informations : données / connaissances

Information : données ou bien (représentations de) connaissances (RC)
(mais la sémantique d'une RC peut ne pas être prise en compte et donc
 une RC peut être recherchée/traitée comme si elle n'était qu'une donnée).

Données [data] : information non organisée ou de manière non "explicite",
i.e., non formellement ou sans relation sémantique, e.g., "12", "froid", "employé".

(Représentation de) connaissances (RC) [knowledge (representation)] :
information organisée par des relations sémantiques
(i.e., des relations entre des sens de mots, e.g., les relations de spécialisation, sous-partie,
 localisation spatiale/temporelle, ...), ayant une interprétation dans une logique.
Ces relations permettent à des logiciels d'effectuer des inférences logiques.

Langage|formalisme de RC (LRC)  [knowledge representation language (KRL)]:
langage permettant d'écrire des "représentations de connaissances".

Exemple de RC très simple (formule logique positive existentielle conjonctive)
représentée avec différents LRCs (avec explications orales) :

En : Tom (a man) owns a red hat and a bird. //"English" is not a KRL LP : ∃?h ∃?r ∃?b hat(?h) ∧ red(?r) ∧ bird(?b) ∧ owner(?h,Tom) ∧ color(?h,?r) ∧ owner(?b,Tom). KIF : (exists ((?h hat)(?r red)(?b bird)) (and (instance man Tom) (owner ?h Tom) (color ?h ?r) (owner ?b Tom))) CGLF: [man: Tom]- { <-(owner: *)<-[hat: *h]->(color)->[red: *]; <-(owner)<-[bird] }. FL : Tom instance of: man, owner of: (a hat color: a red) (at least 1 bird); FE : The man Tom is owner of a hat that has for color a red, and is owner of a bird. FL-DF: man --(instance)--> Tom <--(owner)-- a hat --(color)--> a red ↑ \--(owner)-- a bird FL-DF: man --instance--> Tom <--owner-- a hat --color--> a red ↑ \--owner-- a bird instance owner color FL-DF: man -----------------> Tom <-------------- a hat -------------> a red ↑ \ owner \--------------- a bird


Exercice (de contrôle ;   après réponse aux questions éventuelles des étudiants) :
- un schéma de base de données est-il une RC ?

1.1. Informations : données / connaissances

Règles de base pour la représentation de connaissances
(règles à suivre dans tous vos exercices de modélisation) :

1. Une relation binaire de type  ?rt (e.g., 'subtype' or 'part')
    depuis un nœud source ?s  (e.g., 'feline' or 'at least 80% of car')
    vers une destination ?d  (e.g., 'cat' or 'at most 100 wheel')  se lit :
    " ?s  has/have for ?r  ?d ".  E.g. :
    `feline  > cat´ (i.e.,  `feline  subtype: cat´)  se lit  "feline has for subtype cat"
      (ou "the type feline  has for subtype the type cat"),
    `at least 80% of car   part:  at most 100 wheel´  se lit
    "at least 80% of cars have for part at most 100 wheels".
    Ce dernier exemple peut aussi se lire :   "at least 80% of instances of the
    type car  have for part  at most 100 instances of the type wheel".  Enfin,
    conformément à la règle 7 ci-dessous, `car   part:  at most 100 wheel´  se lit 
    "any (instance of) car  has for part  at most 100 (instance of) wheel(s)".

2. Si ?r est suivi de "of" (pour inverser la direction de la relation), il vaut mieux lire
    " ?s is/are ?r of  ?d ".  E.g., `cat  < feline´ (i.e.,  `feline  subtype of: cat´)  se lit
    "cat  is subtype of feline"  et  `at least 51% of wheel  part of: a car´ se lit
    "at least 51% of wheels are part of a car".

3. `?st subtype of: ?t´ (alias, `?st < ?t´) est équivalent à  `any ?st  instance of: ?t´,
    i.e., ` `?i  type: ?st´ => `?i  type: ?t´ ´    (3ème paraphrase, informelle cette fois :
    "?st est sous-type de ?t  ssi  toute instance de ?st est aussi instance de ?t").

4. `?t > excl{?st1 ?st2}´ <=> `?t > ?st1 (?st2 exclusion: ?st1)´   (informellement :
    ?st1 et ?st2 sont sous-types de ?st et ne peuvent avoir ni sous-type commun,
    ni instance commune).

5. Si le nœud destination d'une relation est source/destination d'autres relations,
    il faut isoler ce nœud destination et ses autres relations avec des parenthèses (comme
    dans l'exemple du paragraphe précédent) pour que l'interpréteur du langage puisse
    savoir que ces autres relations sont sur le nœud destination et pas le nœud source.
    Similairement, dans une notation textuelle, lorsque 2 relations de même source se
    suivent, il faut les séparer par un symbôle (en FL, c'est la virgule ; voir les exemples).

6. Les noms utilisés dans les nœuds relation/source/destination doivent être des
    noms communs/propres (jamais d'adjectif, verbe, ...) au singulier et en
    minuscules (sauf pour les noms propres s'ils prennent normalement des majuscules).

7. Les relations qui ne sont pas entre types et/ou des individus nommés
    (i.e., pas les relations sous-type/instance mais la majorité des relations)
    doivent préciser comment les nœuds source et destination sont quantifiés
    Exemples de quantificateurs : "a" (i.e., "there exists a"), "any" (i.e., "by definition, each"),
    "every" ("by observation, each"), "most" (i.e., "at least 51%"), "at most 20%",
    "0..20%", "at most 20", "0..20", "between 2 and 3", "2..3".
    Toutefois, si le quantificateur du nœud source est 'any' - i.e., s'il s'agit d'une définition -
    celui-ci peut être omis : c'est le quantificateur par défaut pour un nœud source.
    Pour le nœud destination, 0..* est le quantificateur par défaut.  Donc :
    `car  part: wheel __[any->0..*, 0..*<-any]´
          =>  (`any car  part: 0..* wheel´     <=>     `car  part: 0..* wheel´)
    Lorsque c'est possible, il vaut mieux rendre les quantificateurs explicites.
    C'est toujours possible pour des RCs isolées ou en mettant les quantificateurs
    dans les contextes associées aux nœuds relations au lieu de les mettre dans
    leurs nœuds sources/destinations.

8. Si vous hésitez entre 2 relations dont une seule est transitive, choisissez la transitive.
    Sinon, si vous hésitez entre 2 relations, choisissez la plus basique|générique (et
    utilisez des nœuds concept adéquats pour ne pas perdre en précision).

1.1. Informations : données / connaissances

À propos des relations de spécialisation  (inverse : généralisation)

D'un type (terme formel) ?t à  une instance ?i :  instance  (inverse: 'type').
Équivalente à la relation 'member' entre l'ensemble des instances de ?t et ?i.

D'un type ?t à un sous-type ?st :  subtype|>  (inverse: 'supertype'|<).
Toute instance de ?st est (aussi) instance de ?t".
L'ensemble des instances de ?st est inclus dans l'ensemble des instances de ?t.
Toute relation associée|"depuis/vers" toute instance de ?t est aussi associée à
toute instance de ?st  (dans les langages O.O., c'est la notion d'héritage :
 l'ensemble des caractéristiques individuelles|non-statiques de ?t est inclus dans
 celui de ?st ;  c'est l'inverse pour les instances).
Exercice : comment représenter des caractéristiques "non-héritables"|statiques ?

D'un mot (terme informel) ?t à un mot plus spécialisé ?st  (i.e., ayant moins de
sens différents et/ou dont les sens sont plus précis|informatifs|contraints) :
informal-subterm|.>  (inverse: .<).   E.g.:  
fr#"ville" .> (fr#"capitale_de_pays" .> (fr#"Paris" .> fr#"Paris_avant_1789"))

D'un mot ?m à un type exprimant un de ces sens :
meaning|.>  (inverse: name|.<).  E.g.:  fr#"Paris" .> pm#Paris.

D'une instance à une instance contextualisée dans le temps/espace/... :
.>  (inverse: .<).  E.g.:  pm#Paris .> pm#Paris_avant_1789.

D'une phrase formelle à une spécialisation logique :  <=|>  (inverse: =>). E.g.:
`a cat with place a piece_of_furniture´
    > `the cat Tom with place a chair that has for color a red´

D'une phrase (formelle/semi-formelle/informelle) à une spécialisation lexicale
(possiblement plus formelle, jamais moins) :  .>  (inverse: .<).  E.g.:
"birds fly" .> (`any "bird" is agent of a flight´ .> `any bird may be agent of a flight´).

D'une phrase à une correction spécialisante: corrective_specialization.   E.g.:
pm#`  mp#"birds fly"
                corrective_specialisation:
                     pm#"any non-handicaped flying_bird is able to fly"
        ´

1.1. Informations : données / connaissances

Rappels (du cours de GL) à propos des entités/types/logiques d'ordre 0/1/2.

Entité du 1er ordre: élément d'information pouvant être mis dans une variable,
e.g., une fonction en C (donc, en C, une fonction peut prendre en paramètre une autre fonction ; elle est alors une "fonction d'ordre supérieur").
Contre-exemples en C++ : un attribut, un type (de fonction/variable/...).
Plus vos modélisations (dont vos programmes) utilisent des entités de 1er ordre (ou lieu d'entités d'ordre 0), plus elles seront génériques et donc facilement extentibles, paramétrable, (ré-)utilisables, ...  Pour cela, il vous faut donc utiliser des langages de haut niveau (-> expressifs et concis), e.g., un langage fonctionnel d'ordre supérieur et/ou une logique d'ordre supérieur (cf. ci-dessous).

Type (d'ordre 1, 2, ...): élément d'information qui peut avoir au moins une instance,
e.g., pm#cat (qui pour instance pm#Tom_the_cat), pm#Type qui a pour instance pm#cat et le type de relation '>'.
Individu (ou "type d'ordre 0"): élément d'information qui n'est pas un type,
e.g., pm#Tom_the_cat et `pm#mammal > pm#cat´.

Type du 2nd-ordre: type ayant pour instance un type du 1er ordre, lequel a pour instance un individu (catégorie ne pouvant être instanciée).

Logique d'ordre 0 (alias, logique propositionnelle): logique n'ayant pas de variable (quantifiée).
Logique d'ordre 1 (alias, logique des prédicats, un type de prédicat étant assimilable à
un type de relation unaire ou non, ou encore à un type de concept ou un type de relation
):
logique ou seuls les individus (explicitement nommés ou anonymes) peuvent
être quantifiées (et donc mis dans des variables),
e.g., la définition suivante est une "phrase du 1er ordre" nécessitant une logique du 1er ordre.

En : the relation "ancestor" is transitive since the ancestor of an ancestor is an ancestor. LP : instance(Transitive_relation,ancestor) <= ∀?x ∀?y ∀?z (ancestor(?x,?y) ∧ ancestor(?y,?z)) => ancestor(?x,?z) KIF : (<= (instance Transitive_relation ancestor) (forall (?x ?y ?z) (=> (and (ancestor ?x ?y) (ancestor ?y ?z)) (ancestor ?x ?z) )) )

Logique d'ordre 2..* (alias, logique d'ordre supérieur): logique où les types (de concept/relation/quantification) peuvent être quantifiés,
e.g., la définition suivante est une "phrase du 2nd ordre" et nécessite une logique du second ordre car elle comporte un quantificateur universel sur des relations.

En : ?r is a transitive_relation ?r iff ?r(?x,?y) and ?r(?y,?z) implies ?r(?x,?z) LP : ∀?r transitive_relation (?r) <=> ∀?x ∀?y ∀?z ( ?r(?x,?y) ∧ ?r(?y,?z) ) => ?r(?x,?z) KIF : (forall (?r) (<=> (transitive_relation ?r) (forall (?x ?y ?z) (=> (and (?r ?x ?y) (?r ?y ?z)) (?r ?x ?z))) )) KIF : (defrelation transitive_relation (?r) := (forall (?x ?y ?z) (=> (and (?r ?x ?y) (?r ?y ?z)) (?r ?x ?z))) ) FL : transitive_relation (?r) := [ [^x ?r: (^y ?r: ^z)] => [^x ?r: ^z] ]; //^x, ^y et ^z are free variables, i.e., implicitely universally quantified

1.2. Répertoire d'informations (BD/BC, SGBD/SGBC, ontologie, Web 3.0, ...)

Répertoire d'informations [information repository] : base de données ou de connaissances.

Base de données (BD) [database (DB)] : collection structurellement organisée de données.
Dans une BD, il n'existe essentiellement que trois 'types de relations' explicites : partie(-de), type(-de), attribut(-de).
Un document structuré (e.g., un document XML) peut être considéré comme une BD.
Inversement, une BD peut être stockée dans un document structuré.
Les types de données autorisées - et leurs inter-relations possibles - sont souvent énumérés
dans un "schéma de BD". Ce schéma est fixe (prédéfini par le concepteur de la BD) : l'utilisateur
de la BD ne peut alors pas ajouter dynamiquement (i.e., déclarer ou définir) de nouveaux types
de données et ne peut pas définir de nouveaux types de relations.
Un document XML peut être plus souple qu'une BD relationnelle: il est aussi souple
qu'une BD orientée objet dans la représentation de certaines hiérarchies (e.g., celles structurées par
des relations partie-de) et peut aussi ne pas avoir de schéma associé (auquel cas il peut stocker
n'importe quoi mais aucun contrôle n'est alors effectué).
Une BC peut stocker n'importe quel type de contenu et néanmoins permettre de nombreux
contrôles car les relations et les objets qu'elles relient ont des contraintes|définitions associées
exploitables pour effectuer des inférences logiques.
SGBD [DBMS] : système de gestion de BD [DB management system].
Certains SGBDs - e.g., les NoSQL - ne semblent pas avoir de schéma : ils ne gèrent que des tableaux
associatifs (donc plusieurs tables|objets possibles mais seulement 2 colonnes par table :
"nom d'attribut de l'objet" - "valeur pour cet attribut"). Il est possible de dire qu'ils n'ont pas
de schéma mais, techniquement ou virtuellement, ils ont en fait un schéma fixe très
général (chaque table doit avoir les deux colonnes mentionnées ci-dessus) que même le
concepteur de la BD ne peut changer.

Base de connaissances (BC) [(machine readable) knowledge base (KB)] : collection de RCs.
L'utilisateur d'une BC peut y ajouter dynamiquement de nouveaux types d'objets (via des
définitions ou déclarations) et les utiliser.  Une BC peut être "implémentée" via une BD avec un
schéma très général composé de 2 tables (types d'objets) :
- "concept node" (colonnes|attributs : "type", "quantifier", ...)
- "relation node" (colonnes|attributs : "type", "source/destination nodes", ...).
Le fait que les relations soient explicites et que certains types (e.g., "any", "exists",
"transitive_relation", "subtype", ...) aient un sens connu des moteurs d'inférences permet
plus de précision et d'inférences qu'avec les SGBDs aux schémas fixes génériques.
Si JSON-LD est employé comme schéma générique de BD, la frontière avec une BC est fine
mais cela reste une BD car
- JSON-LD n'a pas (suffisamment) d'interprétation en logique (et ne fournit ni opérateur logique,
   ni quantificateur, ni moyen d'effectuer des définitions),
- des attributs - et non des relations (entités du 1er-ordre) - sont utilisés.
Une BC est composée d'une ontologie et, généralement, d'une base de faits exprimée grâce
aux termes définis dans l'ontologie.
SGBC [KBMS] : système de gestion de BC [KB management system].

Base de faits [base of facts] : ensemble de croyances.

Ontologie : ensemble de termes formels avec, associés à ceux-ci et portant sur eux, des
définitions partielles/totales et des croyances.

Onto-terminologie : ensemble de termes formels ou informels connectés entre eux par des
relations sémantiques ou lexicales.

Thésaurus : ensemble de termes informels liés par des relations sémantiques ou lexicales.

1.2. Répertoire d'informations (BD, BC, SGBD, SGBC, ontologie, ...)

Exercice (avec début de solution donné et expliqué) :
- représentez en FL-DF puis en FL les relations de sous-typage, d'exclusion
  et de sous-partie entre les termes en gras de la page précédente.

                 entity
               /        \
            (>)          \(>: 'subtype'; relations may be within/beside the line;
             /            \    reminder: the '()' are optional)
            v              v
        tool--(exclusion)-->information_repository
        /   \                         |      \
    (>)/     \(>)                     |(>)    \(>)
      v       v                       v        v 
   DBMS--#--KBMS--[0..*]--(p)--[0..*]->KB       DB<--[0..*]--(p)--[0..*]--DBMS
              |                      /| |\___
              |                     / | \    \________________
              |(>)              (p)/ (p) (p)                  \('p' = 'part')
              |                   /   |     \                  \
              |             [0.1]/    [1]    \[0..1]            \[0..1]
              v                 v     v       v                  v
           WebKB    base_of_facts  ontology   onto-terminology   thesaurus
              |                       ↑              /  \[0..*]   ↑[0..1]
              |(instance)              \-[1]--(p)---/    \---(p)--/ 
              v
      WebKB_on_the_12/11/2010

//Notes: 1) For relations from a type or to a named instance
//          the default multiplicities are [any->0..*] and [0..* <-any]
//          (hence, [0..* <-any] is sometimes ommited above).
//          'any->' and '<-any' can be (and are) also ommited. 
//          'most->' or '<-54%' would need to be explicitly mentionned.
//       2) Compared to the solution in FL below, the above solution in FL-DF
//          does not represent some relations from the parts of 'KB' :
//          - their 'subtype of' relations to 'information_repository'
//          - the exclusion relations between them

entity
  > excl  //the next subtypes (tool and information_repository) are exclusive
    { (tool > (DBMS  part:  DB __[any->0..*, 0..*<-any])
              (KBMS  part:  KB __[any->0..*, 0..*<-any],
                     exclusion: DBMS,
                     >  (WebKB  instance:  WebKB_on_the_12/11/2010)
              )
      )
      (information_repository
         > excl  //the next subtypes are exclusive
           { (KB  part: base_of_facts    __[any->0..1, 0..*<-any]  //any KB has for
                        ontology         __[any->1,    0..*<-any]  // part only 1
                        onto-terminology __[any->0..1, 0..*<-any]  // ontology,
                        thesaurus        __[any->0..1, 0..*<-any], 
                  > ontology  //an ontology is a KB that has for part only 1 ontology
             )
             DB
             base_of_facts
             thesaurus
             (onto-terminology  part:  ontology  __[any->1, 0..*<-any]
                                       thesaurus __[any->0..1, 0..*<-any]
             )
           }
      )
    };

1.2. Répertoire d'informations (BD/BC, SGBD/SGBC, ontologie, Web 3.0, ...)

Représentation d'une BC via une BDD; modèles de données :

class Objet : {/*...*/} ; class ObjectReference : {/*...*/}; //pointer, database id, ... class Quantifier : Object {/*...*/}; class Node : Object //concept (node) or relation (node) { RelationRefArray get_relations (/*rel. selection parameters*/); RelationRefArray set_relations (/*rel. selection parameters*/); // references to relations connected (from/)to this node, // directly or not ("directly" is a default in the parameters); //1 relation selection parameter is the relation type: subtype, // type, creator, ... (a relation "creator" is (implicitly or // not) about the node representation, not its semantic content) //A node that has a meta-statement (black/white context) // has a relation of type pm#meta-statement (note: any node // that is existentially quantified (e.g., a relation) is a // statement (and probably a sub-statement) and conversely ; // a statement is either a belief, definition or command (e.g. // a query). //A (concept) node that is a meta-statement has a relation of // type pm#first_node and/or pm#embedded_node (an n-ary relation) //1 other parameter should allow the selection of binary } // relations that are "from"/"to" this node class ConceptNode : Node //alias "concept" { //The code should not "know" that actually relations are stored // in concepts, or concepts are stored in relations, or neither. //Similarly, the code should not "know" that node quantifiers // are stored in nodes or in relations: QuantifierRef quantifier_get (/*rel. selection parameters*/); QuantifierRef quantifier_set (/*rel. selection parameters*/); //A node that is a formal/informal "term" (e.g., a word, a type, // a date, ...) has no/all quantifier(s). //A node that has a quantifier is not named (it is not a term). //A particular user is a term ; a set/class of users is not. } //A node may have for creator/believer a (set of) user(s). class RelationNode : Node //alias "relation" { //a relation has directly or indirectly related concepts NodeRefArray relatedConcepts_get (/*concept selection parameters*/); NodeRefArray relatedConcepts_set (/*concept selection parameters*/); QuantifierRefArray quantifiers_get (/*concept selection parameters*/); QuantifierRefArray quantifiers_set (/*concept selection parameters*/); //these are the quantifiers of the linked concepts; } //the existential quantifier of a relation is implicit

1.2. Répertoire d'informations (BD/BC, SGBD/SGBC, ontologie, Web 3.0, ...)


WWW (Web) [World Wide Web] : (système hypermédia sur l')ensemble des
ressources (documents ou élément de documents, bases de données/connaissances, ...)
accessibles via internet. À l'origine, techniquement, le Web n'est que l'implémentation d'un
système hypertexte très simple (HTTP+HTML+navigateur Web) sur Internet (TCP + DNS).

Web 2.0: mot "fourre-tout" (utilisé à partir de 2001 mais enfin passé de mode) désignant
- les technologies liées à la construction de pages Web dynamiques (i.e., générables),
  e.g., le DOM (Document Object Model) et Ajax (Asynchronous Javascript and XML), et
- la participation des internautes à la construction et indexation de documents Web via
  des sites/systèmes collaboratifs tels que les wikis, les blogs, les réseaux sociaux,
  les folksonomies et les systèmes de sciences citoyennes.
Par opposition à la partie du Web 2.0 du Web, le reste est un
"Web de documents statiques (i.e., non dynamiques)".

Web 3.0: mot "fourre-tout" (utilisé à partir de 2009) désignant les futures applications,
combinaisons et évolutions des technologies récentes et en particulier celles liées
- au Web Sémantique,
- à la mobilité, l'universalité et l'accessibilité: internet des objets, indépendance vis à vis des
  supports matériels et des systèmes d'exploitation, ...
- au graphisme vectoriel (e.g., SVG qui est en fait maintenant une ancienne technologie) et
  aux formulaires XForms.

1.2. Répertoire d'informations (BD/BC, SGBD/SGBC, ontologie, Web 3.0, ...)

Web sémantique [Semantic Web] : mot (surtout utilisé à partir de 1996, soit 4 ans après
la naissance officielle du Web) désignant

Par opposition à la partie Web sémantique du Web, le reste est un "Web peu/non compréhensible par les machines".

Règles élémentaires du Web des données:
- identifier et relier le plus possible de choses en utilisant des adresses URI HTTP,
- fournir à ces adresses des informations lisibles par les humains et par les machines
  (en utilisant des langages formels intuitifs ou bien en fournissant différentes
  versions écrites avec des différents langages; e.g., via le mécanisme de
  redirection HTTP code 302 et la variable User-Agent contenu dans les entêtes des
  requêtes HTTP, un serveur peut afficher une page en RDF/XML pour une machine ou
  une page HTML pour le navigateur d'une personne).

Exercice :
- reliez graphiquement ou en FL les différents types et instances de web référés ci-dessus
  via des relations 'subtype', 'instance', 'exclusion' et 'part'

1.2. Répertoire d'informations (BD/BC, SGBD/SGBC, ontologie, Web 3.0, ...)

Ci-dessous, une représentation/modélisation/solution possible, dans la notation FL,
pour le graphe demandé dans l'exercice précédent.
La page suivante propose une représentation graphique des 9 premières lignes ci-dessous.
Note : ici, "web" ou "WWW" réfère seulement à un ensemble de "descriptions" ou de
    "containeurs de descriptions" (fichiers, base de données, ...),
    et non pas aussi aux techniques/applications qui exploitent cet ensemble.

web
  instance of: first_order_type,  //optional (see Note 2 below)
  subtype:
     (static_web  instance: static_WWW)
     (web_2.0                    //juste pour l'exemple car 
        instance:  WWW_2.0,      // introduire/représenter 
        exclusion: static_web    // les types web_2.0, web_3.0, ...
     )                           // semblent peu intéressants
     (semantic_web 
        subtype: (knowledge_web  instance:  Knowledge_WWW)
                 (data_web  instance:  Data_WWW,
                            exclusion: knowledge_web),
          //no exclusion with web_2.0 and web_statique since one can imagine
          // an instance of semantic_web that is also static or web_2.0
        instance: Semantic_WWW,
        part:  knowledge_web __[any->a] //"a" = "some" = "existential quantifier" = "1..*"
               data_web __[any->0..*]  //__[some->a] is also correct but not equivalent
     ),
  instance: WWW_3.0  WWW_2.0_and_3.0  //not yet already declared above
            (WWW 
               part: (WWW_2.0
                        part: WWW_2.0_and_3.0)
                     (WWW_3.0
                        part: WWW_2.0_and_3.0
                              (Semantic_WWW
                                 part: (Data_WWW
                                          part: Knowledge_WWW)
                              ))
            );

/* Note 1: we could assume that, by default, a category that has subtypes is
           a first-order type, unless it has instance which (by the same rule)
           is a type;  not all languages or inference engines assume that.
   Note 2: the above representation assume that, by default, all
           categories (types or individuals) with different names 
           are different;  since this is not the case for most semantic web
           languages and inference engines, we could add the 3 following lines.
*/
{WWW   WWW_2.0   WWW_3.0   WWW_2.0_and_3.0 
 Semantic_WWW  Data_WWW   Knowledge_WWW} _[collective_set];
{semantic_web  web_2.0  web_statique} _[collective_set];


//To represent that "no instance of 'semantic_web' can share a part with an
//   instance of 'static_web'", i.e., that "no semantic web has for (proper) part 
//   something which is a (proper) part of a static_web", here are three
//   equivalent ways in FL:
semantic_web
  not part: (thing  part: static_web  __[?x->1..*]
            ) __[any->1..* ?x];

semantic_web  part: (thing  part: a static_web) __[no->1..*];

semantic_web  not part: (a thing  part: a static_web);
  //this is equivalent since  __[any->a] is the default for "relations between
  // individuals" (as opposed to "relations between types")

1.2. Répertoire d'informations (BD/BC, SGBD/SGBC, ontologie, Web 3.0, ...)

Représentation graphique des 9 premières lignes du code FL de la page précédente.

first_order_type | |(instance) v -----web-------------- | | |(subtype) |(subtype) v v static_web <--(exclusion)-- web_2.0 | | |(instance) |(instance) v v static_WWW WWW_2.0

1.2. Répertoire d'informations (BD/BC, SGBD/SGBC, ontologie, Web 3.0, ...)

Insuffisances du Web dues à son peu de méta-données/organisation/sémantique :
- recherches sur des informations peu/in-organisées -> résultats redondants, qui doivent
  être interprétés et combinés par l'homme (seuls des traitements lexicaux ou structurels
  peuvent être appliqués), (faible) ratio rappel/précision ou précision/rappel [precision/recall],
  recherches sensibles au vocabulaire utilisé, ...
- faible interopérabilité et flexibilité des logiciels et des
  bases de données (et des bases de connaissances si peu de relations
  existent entre les éléments de ces bases pour relier ces éléments).

Note: recherches à base de mot-clés avec des listes de
documents/paragraphes/phrases pour résultats
[document retrieval / question answering]   ->

(faible) ratio rappel/précision ou précision/rappel, redondances et inorganisation,
même si des techniques (automatiques) d'extraction de connaissances sont appliquées (e.g., analyse terminologique/syntaxique/sémantique du langage naturel).
Google utilise la BC Freebase mais ne fait que de la recherche de documents :
il ne répond pas de manière précise à des questions précises.

Pour avoir des résultats organisés [knowledge retrieval/browsing],
il faut que les auteurs des diverses informations les relient (organisent)
entre elles par des relations sémantiques.
Même dans le futur, des techniques automatiques plus avancées ne
pourront extraire ce qui n'a pas été écrit ou représenté.

En d'autres termes,
"plus un ensemble/répertoire d'informations a des relations explicites et bien définies,
 plus il est compréhensible et exploitable par l'homme et la machine".

Pour faciliter les partages/recherches/comparaisons/ré-utilisations/traitements d'informations
(ce qui revient à éviter les redondances et contradictions implicites entre informations)
voici donc - par ordre croissant de priorité - ce qu'il vaut mieux utiliser :
des documents statiques informels (pas de relation: recherches lexicales, dont collocation),
des serveurs de documents informels (wikis) (idem + coopération minimale),
des serveurs de BDs non connectées (schémas fixes; quelques relations prédéfinies),
des serveurs de BD formant une BD unique distribuée (idem + coopération minimale),
des documents statiques contenant des connaissances (relations ; pas de coopération),
des serveurs de BCs non connectés (idem + protocoles de coopération interne),
des serveurs de BC formant une BC virtuelle (idem + protocoles de coopération externe).

Exercice :
1. La recherche de documents va t-elle beaucoup s'améliorer dans le futur ?  Si oui, pourquoi ?
2. La recherche d'informations précises va t-elle beaucoup s'améliorer ?  Pourquoi/comment ?

  1. Non, la "Note:" ci-dessus explique pourquoi. En d'autres termes, sauf rare coincidence, une sélection de documents dans une based de documents ne forme pas un ensemble d'informations dont toutes les parties sont nécessaires pour répondre à une question et sont bien organisés entre elles. Il y aura donc toujours un ratio "rappel/précision". Il ne s'agissait pas ici de "prédire l'avenir" mais de déceler la contradiction dans la question posée, de la même manière que vous pouvez répondre à la question : "dans 2000 ans, des chevaux nécessairement toujours blancs pourront-ils être noirs ?"
  2. Oui, le 1er paragraphe de cette page expliquent pourquoi.

1.3. Gestion|ingénierie des connaissances, SGC, SGBC, SBC

Connaissance tacite : connaissance qui n'est pas explicite, i.e., qui n'a pas été
décrite précisément dans un document ou un SGBC.
Certaines connaissances, comme les savoir-faire et la reconnaissance de
situations ou d'objets (visages, écriture, ...), sont difficiles à décrire ou définir
précisément et donc à représenter.

"Gestion des connaissances" (au sens des industriels) [knowledge management] :
ensemble des techniques permettant de collecter/extraire, analyser, organiser et partager
des informations, le plus souvent à l'intérieur d'une organisation, e.g., les connaissances
importantes d'un employé (carnet d'adresses, trucs/expertise, etc.) avant qu'il ne parte à
la retraite. Ces informations sont généralement stockées sous la forme de documents
informels, très rarement via des représentations de connaissances, du moins jusqu'à présent.
Un outil permettant une telle gestion est un système de gestion de connaissances (SGC)
[knowledge management system (KMS)].

"Gestion|ingénierie des connaissances" (au sens des universitaires)
[knowledge engineering] : ensemble des techniques permettant de collecter/extraire,
représenter, organiser et de partager des représentations de connaissances.
Un système de gestion de BC (SGBC) [KB management system (KBMS)] est un des
outils permettant une telle gestion. D'autres outils sont ceux de collection/extraction
et analyse de connaissances qui aident à créer un SGBC.

Système à base de connaissances (SBC): tout outil exploitant des RCs, e.g., pour
résoudre certains problèmes. Techniquement, un SGBC est aussi un SBC mais est rarement
classé en tant que tel. Les systèmes experts sont des SBCs mais ne sont pas forcément
basés sur des "connaissances profondes" (représentations détaillées de connaissances
nécessaires à un raisonnement).

Gestion de contenu [(Enterprise) Content Management] : prendre en compte sous
forme électronique des informations qui ne sont pas structurées, comme les
documents électroniques, par opposition à celles déjà structurées dans les SGBD.
Ceci peut être vu comme une sous-tâche particulière de "gestion des connaissances,
au sens des industriels", et inversement.
De plus, si des métadonnées "précises" sont utilisées pour indexer les documents,
"gestion de contenu" implique aussi des tâches d'ingénierie des connaissances".
La gestion de contenu peut donc inclure la conversion de données brutes en informations
plus structurées : [information extraction] ou, si des connaissances sont représentées,
[knowledge extraction]. Cela peut conduire à la création d'un système d'information
(cf. page suivante).  Ne pas confondre avec le [data mining] qui découvre des
groupes [clusters], des anomalies ou encore des règles d'associations dans des données
structurées. [Data analysis] réfère à [data mining/visualisation/dissemination/modeling].

Le terme "contenu" a donc divers sens contradictoires.
Dans "gestion de contenu", ce terme réfère à des données non structurées.
Dans "recherche de documents/informations par le contenu", il réfère à la sémantique des
informations, par opposition à leur structure ou leurs aspects lexicaux (orthographe, ...).
Dans "recherche d'images par le contenu", il réfère
- soit à la sémantique de l'image (les choses qu'elle contient et leur relations spatiales),
- soit à des caractéristiques visuelles de l'image comme les textures, couleurs et formes.

1.3. Gestion|ingénierie des connaissances, SGC, SGBC, SBC

Exercice :
- représentez graphiquement (en FL-DF) ou en FL les relations de sous-typage et d'exclusion
  entre SBC, SGC, SE, SGBC et SGBD,
- représentez graphiquement et en FL les relations de sous-typage et/ou de sous-tâche
  entre "gestion de contenu", "gestion de connaissances, au sens des industriels" (GCI) et
  "gestion des connaissances, au sens des universitaires" (GCU)
  (note : une relation de sous-tâche ne peut pas directement lier deux types de tâches,
  elle ne peut lier que des instances de tâches -> utilisez des multiplicités).

//solution en FL:
SGC  >  excl{ SGBD  (SBC > SE SGBC) };
process
  > (GCI  //Gestion/ingénierie des Connaissances au sens des Industriels
       >  excl{ GCI_sur_donnees   //ce que la plupart des industriels font
                (GCI_sur_connaissances
                   > (GCU  //... au sens des universitaires
                        subtask: GCI __[any->0..*, 0..*<-any] 
                     ))                 //rare mais possible
              },
       subtask:  gestion_de_contenu __[any->0..*, 0..*<-any]
                 GCU __[any->0..*, 0..*<-any] 
    )                   //e.g., pour certaines meta-data en GCI
    (gestion_de_contenu
       subtask: GCI __[any->0..*, 0..*<-any]
    );



Note sur la résolution de problèmes :

//reminder:  a problem_solving_method (PSM) is one way to do a problem_solving_task
// exanple of PSMs: problem decomposition, backward chaining, forward chaining

problem_solving_task   < process,
  >  teaching  solving_an_exercice  understanding_an_information
     PSM_search  PSM_application,  //they are subtypes and parts (-> recursive definition)
  input: a problem ?pb,
  parameter: (a KB ?kb  part:  0..* PSM   {1..* accepted_and_understood_fact ?auf} ?set_of_auf,
  part: (1..* PSM_search  input: ?pb ?kb,
           output: (1..* PSM ?psm 
                      parameter of: {1..* PSM_application ?psm_app
                                       input: ?pb ?kb,  parameter: ?psm,
                                       output: (1..* accepted_and_understood_fact  member of: ?set_of_auf)
                                    } ?set_of_psm-app ) )
        ?psm_app ;

1.4. Systèmes d'information

Système d'Information (SI) [Information System] :  ensemble organisé de
ressources permettant de collecter, stocker, classifier, traiter et diffuser de
l'information sur un environnement donné.  Types principaux de ces ressources :
- base d'informations
- logiciels système/application (e.g., un SGBD, des serveurs/clients)
- matériels et réseaux
- personnel, e.g., des spécialistes I.T. (administrateur BDD, ingénieur réseaux, ...)
- procédures de saisie/traitement/stockage/communication/... de l'information.
Sous-types de haut-niveau :
- SI temps réel de conception, supportant des opérations (transactions,
    contrôle de processus, communication)
- SI d'informatique de gestion (-> production de rapports, aide à la décision, ...)
Exemples (en anglais) : data warehouse, ERP, enterprise/expert systems,
  search engines, geographic/global information system, office automation.
Sous-parties de SI d'une grande entreprise :
- un PGI (Progiciel de Gestion Intégré) qui
    intègre les systèmes soutenant le fonctionnement de l'entreprise, et/ou
- des systèmes "spécifiques | sur mesure" connectés via un PGI ou pas.
L'urbanisation d'un SI est la gestion de l'évolution de son architecture.

Le domaine/process de la Business|organizational informatics (BI) est similaire à
celui des SIs mais plus orienté solution et implémentation.


Progicielmot-valise - car contraction de "produit" et "logiciel" - référant à un
logiciel applicatif,  libre/ propriétaire,  "prêt-à-porter",  standardisé  et  générique,  prévu pour répondre à des besoins ordinaires.

1.4.1. Systèmes d'information - Sous-parties

Sous-parties de SI  (en général) :  un PGI ou bien plusieurs progiciels
connectés via un PGI ou interfacés entre eux ainsi qu'avec des applications.
Exemples de fonctions de ce PGI ou de ces progiciels/applications :
- [CRM (Customer Relationship Management)] -> relation client
- [XRM (eXtended Relationship Management)] -> relation tiers
- [SCM (Supply Chain Management)] -> chaîne logistique (achats -> production -> vente)
- [HRM (Human Resource Management)] -> ressources humaines
- [PDM (Product Data Management)] -> données techniques (et de stockage),
    e.g., pour les bureaux d'études.

Sous-parties de SI auparavant :

1.4.2. Systèmes d'information - PGIs


Progiciel de Gestion Intégré (PGI) [Enterprise Resource Planning (ERP)] : progiciel d'ERP


Le cours de Guy du Boisberranger sur les PGIs
(ce cours là est "pour culture" car ses parties "essentielles à retenir"
  sont reprises dans les sous-sections de la section 1.4).

1.4.3. SIs - Fonctions de PGIs et processus "métier"

Fonctions (et donc "composantes fonctionnelles" et "processus métier" de
l'entreprise) typiquement gérées (au moins partiellement) par un PGI :

Processus "métier" [business process] :
* "operational processes | core business processes" :
    ceux créant la source de revenue principal de l'organisation, e.g.,
    "purchasing", "manufacturing", "sales", "advertising and marketing"
* "supporting processes" : "accounting", "recruitment", "call center", "technical support", ...
* "management processes" : "corporate governance", "strategic management", ...

Le cours de Guy du Boisberranger sur les processus "métier" (ce cours ci est essentiel).

Réseau sémantique de quelques processus "métier" de haut niveau
(il s'agit d'une synthèse et organisation des processus référés dans le cours ci-dessus et
 dans SAP ERP).

1.4.4. SIs - PGIs - Périmètre intérieur et extérieur

Périmètre intérieur (sous-parties) à un ERP :
- le "back office" : activités internes à l'entreprise
- les flux complémentaires : workflow, data-warehouse, knowledge-warehouse
- le "front office" et les flux collaboratifs :
      le portail, le CRM, le Business Intelligence (BI), le Supply Chain Management (SCM)

Périmètre extérieur (extensions) à l'ERP de SAP :  la "SAP Business Suite"
(basée sur SAP ERP grâce au moteur d'exécution "SAP NetWeaver") :
- SAP Enterprise Resource Planning (SAP ERP)
- SAP Supplier Relationship Management (SAP SRM)
- SAP Customer Relationship Planning (SAP CRM)
- SAP Supply Chain Management (SAP SCM)
- SAP Product Lifecycle Management (SAP PLM).
SAP NetWeaver est un moyen d'urbaniser un SI et de gérer les
interfaces+échanges inter-applicatifs [Enterprise Applications Integration (EAI)].
JBoss Enterprise Middleware (par RedHat) est un autre exemple de
support d'intégration d'applications.
Tous les futurs ERPs devront avoir un mécanisme d'intégration d'applications
au moins aussi performant. Y compris sur ce point, l'utilisation de bases de
connaissances (plutôt que de BDs) sera à terme nécessaire.


Modélisation de processus "métiers" [Business process modeling] :
représentation de processus de telle sorte qu'ils puissent être analysés et améliorés.
Nous aborderons ceci en section 2.2 s'il nous reste du temps.

1.4.5. SIs - PGIs - Mise en œuvre et inconvénients

La mise en œuvre d'un ERP est longue. Elle dépend beaucoup de la
taille du projet ou de l'organisation (PME, ... multi-nationales).
Elle est typiquement de 4 à 24 mois (9 mois en moyenne) avec
- 20 à 150 intervenants parmi lesquels des "function leaders" (opérationnels
  des différents métiers de l'entreprise missionnés sur le projet), et
- de 10 à 50 consultants.
Cette mise en œuvre est donc couteuse (300'000 euros minimum pour un
progiciel fiable et de qualité) même avec des logiciels libres.
Les coûts sont ceux de :

Autre problème:
- captivité vis-à-vis de l'éditeur (mais moins qu'avec des logiciels moins standards
  et moins avec l'utilisation de formats ouverts).

1.4.6. SIs - PGIs - Marché


Statistiques de 2005 (selon "AMR Research" dans "Le Monde Informatique") :
* - 20,7 Md$ ; 3% de croissance
   - SAP conserve la tête du marché ERP
      (43% de parts de marché et 10,5 Md$; Croissance: 11%)
   - Oracle Aplication :  19% de parts du marché
      (absorption de JD EDWARDS et PEOPLE SOFT: croissance de 84%
   - Sage :  6% ;  11% de croissance
   - Microsoft :  4% ;  15% de croissance
   - SSA Global :   3%
* Orientation renforcée PME
* Architectures orientées service (SOA)
* Les 5 premiers éditeurs représentent 72% du marché contre 59% en 1999


Principaux vendeurs par segments de marché :
- grands comptes :  SAP ERP, Oracle Aplication
- grosses P.M.E. :  Microsoft, Lawson, SSA Global, Geac, SAP, Oracle/PeopleSoft
- petites P.M.E. :  Microsoft, Epicor, Exacta, Sage, NetSuite, SAP Business One,
                             Movex, Adonix, Generix
- T.P.E. :  Sage, Intuit, ACCPAC, NetSuite


Outils vendus :
- SAP :  SAP Business Suite, SAP All-in-One, SAP Business by Design, SAP Business One
- Oracle Applications :  Oracle, JD Edwards, PeopleSoft, Siebel, Retek
- Microsoft Business Solutions
- Dynamics :  Great Plains, Navision, Axapta, Soloman
- The Sage Group :  Sage Software (Accpac ERP, PeachTree)
- SSA Global Technologies :  BAAN

1.4.7. SIs - Intérêt d'étudier les PGIs

Afin d'être compétitives, les entreprises - à part les très petites - ont désormais
besoin d'un SI/PGI pour organiser et gérer leurs processus et données.
Une part de + en + importante de leur personnel
(en particulier les informaticiens et les administratifs) est donc amené à
- comprendre rapidement les "processus métiers" de leur entreprise
  (son organisation fonctionnelle) et son système d'information, et
- analyser ses résultats et proposer des évolutions pour ceux-ci.

Dans les grandes ou moyennes entreprises, le service Informatique est
  de + en + intégré au service "Système d'Information" (service Direction)
.
Composition des Directions Informatiques :
- département "Administration systèmes" (100% d'informaticiens)
- département "Programmation et développements" (100% d'informaticiens)
- département "Business" (30% d'informaticiens)
- département "Réseaux et clients" (100% d'informaticiens)
Leurs résultats sont utilisés par l'équipe "Maintenance" et les équipes "Programmes/Projets".

L'utilisation d'un PGI permet une mutation managériale via
* un élargissement du champs de compétence fonctionnelle :
   compréhension transversale,  nouvelles possibilités
* une implication et prise de responsabilité :
   chaque opérateur est concerné par le processus dans sa globalité, e.g.,
   - le vendeur prend connaissance de la fiabilité du client,
   - l'atelier d'assemblage connaît la date de livraison,
   - le responsable d'entrepôt peut adapter la gestion de son stock.

2. Modélisation pour la gestion d'information et la coopération

Retourner à l'index pour cette partie.