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) :
- toute phrase doit être soit
- une définition → distinction de ce qui ne peut être contredit
- une croyance et doit alors être complètement contextualisée au moins par rapport à :
- son auteur (+ période de la croyance)
→ permet de représenter+relier des
croyances contradictoires (et des changement d'avis) dans une même BC
- au temps, espace, modalité → précision
→ moins d'affirmations fausses
- une inférence → ne peut être contredit directement
- toute paire de phrases – et de termes/expressions nommées – doit être reliée par
une relation de spécialisation et/ou implication, ou bien d'exclusion, ou bien d'égalité
→ maintien d'une complétude minimale dans la structuration
- toute modification générant
- un conflit (paire de croyances exclusives ou conduisant à des inférences exclusives) ou
- une ambiguité sur la présence d'un conflit
(spécialisation/généralisation par un
utilisateur d'une croyance d'un autre utilisateur)
(détecté par un logiciel ou un utilisateur)
doit être conservative, i.e., par addition d'une relation de correction ou de non-correction
→ permet un choix automatique (et paramétrable par l'utilisateur)
entre RCs en conflit
3.2. Protocole de réplication/distribution de connaissances/requêtes entre bases
Distribution de RCs/requêtes entre bases "nexus" :
- 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