Représentation et partage de connaissances
Thématiques de mes travaux


Philippe Martin

LIM,  Université de La Réunion


www.phmartin.info/webKB/doc/slides/x/lim2024/HCERES24.html



Plan

1.  (Extensions de) Langages (modèles ou notations)  →  expressivité, normalisation, traductions

2.  Types de bases générales créées  →  aide à la représentation, évaluation et au partage

3.  Protocoles pour passer à l'échelle dans le partage et l'organisation de connaissances

3.1.  ... dans une base de connaissances (BC)  :  protocole d'édition

3.2.  ... entre BCs  :  protocole de réplication/distribution de connaissances/requêtes








Les flèches du clavier peuvent être utilisées pour naviguer entre les pages ; plus de détails dans l'aide/"help?" ci-dessous à gauche.

1.1. Langages (modèles ou notations) – exemples d'assertions

En anglais  (ici, comme dans les représentations ci-dessous, l'auteur de chaque terme n'est pas précisé) :
Carinates, alias flying birds, are birds that can
fly
thanks to their breastbone.
Ratites, alias non-flying birds, are the other species of
birds.
According to Pr.X, in USA, in 2020, at least 78% of adult carinate birds could fly.
En "HOL (ou FOL) linéarisé avec Peano-Russel"  (→ modèle: HOL (ou FOL);  notation: Peano-Russel)  +  extensions :
Ratite = Non-flying_bird. ∀?r Ratite(?r) => ¬ Carinate(?r). Carinate = Flying_bird. ∀?c Carinate(?c) => Physical_possibility( `∃?f Flight(?f) ∧
agent(?f,?c)´ )
∧ ∃?bb Breastbone(?bb) ∧ part(?c,?bb)´. ∀?c ∀?bb ∀?f ((Carinate(?c) ∧ Breastbone(?bb) ∧ part(?c,?bb) ∧ Flight(?f) ∧ agent(?f,?c)) => enabler(?bb,
`agent(?f,?c)´).
source( time( place( `%[78 to 100]?c Carinate(?c) ∧ Adult(?c) => Physical_possibility( `∃?f Flight(?f) ∧ agent(?f,?c)´ )´, USA), 2020), Pr_X).
En FL :
Bird \. p{ (Ratite = Non-flying_bird) (Carinate = Flying_bird, = ^(Bird can be agent of: a Flight
?f
, part: (a Breastbone enabler of:
?f)
, \. (^`Adult Carinate´ can be agent of _[at least 78% -> a]: Flight __[place: USA __[time: 2020 __[source: Pr_X] ] ] )
) ) }.
En FL-DF  (extension de UML) :
Bird _________|________{complete, disjoint} | | Ratite Carinate = Non-flying_bird = Flying_bird = Bird —— can be agent of _[any ^fb -> a ?f] —→
Flight
—— part _[^fb -> a ?bb]     / Breastbone —— enabler of _[?bb ->
?f]
Adult |     | \ Adult_Carinate —— can be agent of _[at least 78% -> a, place: USA __[time: 2020 __[source: Pr_X] ] ] —→ Flight
En Formalized-English (FE) :
Bird has for `subtype partition´ the set { `Ratite which is equal to Non-flying_bird´, `Carinate which is equal to Flying_bird and has for definition `any Carinate is a Bird that can be agent of a Flight
?f
and has for part a Breastbone which is enabler of
?f
, and has for specialization ` ` ` `at least 78% of Adult Carinate can be agent of a Flight´ at place USA´ at time 2015´ with source Pr_X´ ´ ´ ´
´ ´ }.
En "OWL+IKLmE linéarisé avec Turtle"  (→ modèle: OWL+IKLmE ;  notation : Turtle)  +  extensions :
:Bird owl:disjointUnionOf (:Ratite :Carinate). :Ratite owl:equivalentClass :Non-flying_bird. <!-- Carinates, alias flying birds, are birds that can fly --> :Carinate owl:equivalentClass :Flying_bird. :Carinate owl:intersectionOf (Bird [rdf:type owl:Restriction; owl:onProperty :can_be_agent_of; owl:someValuesFrom :Flight] ). :agent_of owl:inverseOf :agent. :can_be_agent_of owl:inverseOf :can_be_agent. :can_be_agent owl:equivalentProperty [rdf:type owl:Restriction; rdfs:domain [rdf:type owl:Restriction; owl:equivalentClass :Process; pm:variable ?p]; rdfs:range [rdf:type owl:Restriction; pm:variable ?x]; pm:implication [rdf:value [pm:variable ?x; :agent_of ?p]; pm:ctxt [:modality
:Physical_possibility] ].
<!-- thanks to their breastbone: --> :Carinate owl:equivalentClass [rdf:type owl:Restriction; owl:onProperty :part; owl:someValuesFrom :Breastbone_enabler_of_Flight]. :Breastbone_enabler_of_Flight owl:intersectionOf (:Breastbone [rdf:type owl:Restriction; owl:onProperty :enabler_of; owl:someValuesFrom :Flight] ). :enabler_of owl:inverseOf
:enabler.
<!-- According to Pr.X, in USA, in 2020, at least 78% of adult carinate birds could fly: --> [rdf:value [rdf:value [rdf:value [rdf:value [rdf:value [rdf:value [:agent_of [a :Flight] ]; pm:q_ctxt [quantifier "78to100pc"; rdf:type :Adult,:Carinate] ]; pm:ctxt [:modality :Physical_possibility] ]; pm:ctxt [:place :USA] ]; pm:ctxt [:time "2015"] ]; pm:ctxt [:believer :John_Doe] ]; pm:ctxt [:time 2016-03-21] ].
En KIF :
(= Ratite Non-flying_bird) (defrelation Carinate (?fb) := (and (Flying_bird ?fb) (exists ((?f Flight)) (and (Bird ?x) (can_be_agent ?f ?fb))) ) ) (defrelation can_be_agent (?p ?a) := (Physical_possibility ^(agent ,?p
,?a)))
(forall ((?c Carinate) (?bb Breastbone)) (=> (and (part ?c ?bb) (exists ((?f Flight)) (agent ?f ?c))) (enabler ?f ?bb) ) ) (defrelation enabler (?p ?e) := (exists ((?r Relation)) (=> (holds ?r ?a ?e) (can_be_agent ?p
?a))) )
(forAtLeastNpercent 78 '?ab Adult_bird (source (time (place (exists ((?f flight)) (Physical_possibility (agent ?f '?ab)) ) USA ) 2015) Pr_X) ) (forall ((?ab Adult_bird)) (and (Adult ?ab) (Bird ?ab))) (defrelation forAtLeastNpercent (?n ?var ?type ?predicate) := (exists ((?s set)) (and (truth ^(forall (,?var) (=> (member ,?var ,?s) (,?type ,?var))) (>= (numMembersSuchThat ,?s ,?predicate) (/ (* (size ,?s) ?n) 100))))) (define-function numMembersSuchThat (?set ?p) :-> ?num := (if (and (set ?set) (predicate ?p)) (numElemsSuchThat (listOf ?set) ?p))) (define-function numElemsSuchThat (?list ?p) :-> ?num := (cond ((null ?list) 0) ((list ?list) (if ?p (1+ (numElemsSuchThat (rest ?list) ?p))))))

1.2. Langages (modèles ou notations) – exemples de requêtes


En anglais  (ici, comme dans les représentations ci-dessous, l'auteur de chaque mot n'est pas précisé) :

Give me all statements of the knowledge base about whether birds fly.


En Formalized-English (FE), avec les résultats organisés en une hiérarchie de spécialisation :

? `a Bird can be agent of a flight´


En FL, avec les résultats organisés sous forme de liste :

?x [ [a Bird can be agent of: a Flight] <= ?x ]

2. Base(s) générale(s)  →  support pour la représentation et l'évaluation


Ontologie : (partie d'une) BC contenant les définitions et autres RCs quantifiées universellement


3.1. Protocole d'édition d'une base de connaissances partagée


Maintien de la cohérence, complétude et normalisation de la BC
sans restreindre le domaine, langage, contenu, ...


Exemple de règles (appliquées par WebKB-2 et représentées dans son ontologie de la coopération) :


3.2. Protocole de réplication/distribution de connaissances/requêtes entre bases


Distribution de RCs/requêtes entre bases "nexus" :

  1.   publication sur le Web d'une RC spécifiant exactement le "domaine" de ce "nexus" :
          ce que cette base s'engage à admettre/stocker sans restriction (source/expressivité/...)
          →  complétude ( / RCs existantes) d'un nexus pour son domaine
     
    • pour chaque RC à la limite externe de ce domaine : lien vers une RC dans un autre "nexus"
           
    • retransmission (à un autre "nexus") de toute partie d'addition/requête non traitable en interne
       →  complétude de l'ensemble des nexus pour leurs domaines