KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.
-
Upload
brent-fields -
Category
Documents
-
view
213 -
download
0
Transcript of KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.
KM2SILK translator – Level 0 Design
Peter Clark
Boeing Research and Technology
April 2010
(a) KM Prototypes Core prototype structure (nodes + arcs) Knowledge of coreference between prototypes Additional prototype structure
constraints, if-then rules, equations
(b) Component Library Ontology (taxonomy, domain/range) “Transitivity” (“grain size”) rules Axioms
normal FOL axioms eg., agent=object for Locomotion events
situation calculus event axioms? (not used in AURA)
What needs to be translated?
Level 0 design
Fairlystraight-foward
Laterwork
Hand-translate?
Need?
Part 1: KM Prototypes
Eukaryotic-cell01
DNA01
Nucleus01
is-inside
has-part
x isa(x,EukCell) → y,z isa(y,Nuc), isa(z,DNA), has-part(x,y), has-part(x,z), is-inside(z,y).
has-part
Basic idea: represent the graph as a similar data structure in SILK:
?x#eukaryotic-cell -> ?x[has-part->{ _nucleus1(?x)#nucleus,
_dna1(?x)#dna[ is-inside->{_nucleus1(?x)}]}]
// If ?x is a EukCell…// then it has-part a nucleus…// and a DNA…// that is inside that nucleus
Could (?) compile that down to separate axioms (?), one per arc:
?x#eukaryotic-cell -> ?x[has-part->{ _nucleus1(?x)#nucleus}].?x#eukaryotic-cell -> ?x[has-part->{_dna1(?x)#dna}].?x#eukaryotic-cell -> ?x[has-part->{_dna1(?x)[is-inside->{_nucleus1(?x)}]}]
i.e.:
Part 1: KM Prototypes - “Coreference”
Eukaryotic-cell01
DNA01
Nucleus01
is-inside
has-part
has-part
Plant-cell02
DNA02
Nucleus02
is-inside
has-part
has-part
Chloroplast02
*ovalshape
what these coreferences
?x#eukaryotic-cell -> ?x[has-part->{ _nucleus1(?x)#nucleus,
_dna1(?x)#dna[ is-inside->{_nucleus1(?x)}]}] ?x#plant-cell -> ?x[has-part->{ _nucleus1(?x)#nucleus[shape->oval],
_dna1(?x)#dna[ is-inside->{_nucleus1(?x)}], _chloroplast1(?x)#chloroplast}].
KM finds this using unification
SILK can do this via shared Skolem function names
Part 1: KM Prototypes - “Coreference”
Eukaryotic-cell01
DNA01
Nucleus01
is-inside
has-part
has-part
Plant-cell02
DNA02
Nucleus02
is-inside
has-part
has-part
Chloroplast02
*ovalshape
what these coreferences
?x#eukaryotic-cell -> ?x[has-part->{ _nucleus1(?x)#nucleus,
_dna1(?x)#dna[ is-inside->{_nucleus1(?x)}]}] ?x#plant-cell -> ?x[has-part->{ _nucleus1(?x)#nucleus[shape->oval],
_dna1(?x)#dna[ is-inside->{_nucleus1(?x)}], _chloroplast1(?x)#chloroplast}].
KM finds this using unification
SILK can do this via shared Skolem function names
KM keeps track of these dependencies (if user did a copy+extend) → basis for generating shared Skolem names in SILK.
Part 1: Coreference and question-answering
Shared Skolem function names help (solve?) coreference issues within the KB but not with question answering
Eukaryotic-cell01
DNA01
Nucleus01
is-inside
has-part
has-part
?x#eukaryotic-cell -> ?x[has-part->{ _nucleus1(?x)#nucleus,
_dna1(?x)#dna[ is-inside->{_nucleus1(?x)}]}]
// If ?x is a EukCell…// then it has-part a nucleus…// and a DNA…// that is inside that nucleus
// “What is the DNA of a eukaryotic cell inside?”euk-cell02#eukaryotic-cell.| ?- euk-cell02[has-part->{_dna??(euk-cell02)[is-inside->?y]}
How do we know which DNA are we asking about?
Ask:
Given:
Part 1: KM Prototypes - A bit more complexity…
A Skolem might have more than one source…
Eukaryotic-cell01
DNA01
Nucleus01
is-inside
has-part
has-part
Plant-cell02
DNA02
Nucleus02
is-inside
has-part
DNA03
Nucleus03
is-inside
cloned-from: Nucleus01, Nucleus03
How do we name the Skolem functions now?
_nucleus01(?plant-cell) ?_nucleus03(?plant-cell) ?
Part 1: KM Prototypes - Multiple clones…
Crossing-Over01
Homologous-chromosome02donor
donor Homologous-chromosome03
DNA02
DNA03
has-part
has-part
Homologous-chromosome01 DNA01has-part
?x#hc -> ?x[has-part->{_dna1(?x)}]. // every hc has-part dna
?x#crossing-over -> // every crossing over has 2 hc donors ?x[donor->{ _hc1(?x)#hc[has-part->{_dna1(_hc1(?x))}],
_hc2(?x)#hc[has-part->{_dna1(_hc2(?x))}]}].
Um…something like this (?):
Nested Skolem fns ok? (“the dna of the first homologous chromosome of ?x”)
Part 1: KM Prototypes – Coref within a graph
Crossing-Over01
Homologous-chromosome02
object
DNA02has-part
Chromatid-segment02
donor
has-part
How do we express this unification?
_dna1(_cs1(?x)) = _dna1(_hc1(?x)) ?
DNA03
Crossing-Over01
Homologous-chromosome02
object
DNA02
has-partChromatid-segment02
donor
?x#crossing-over -> ?x[donor->{ _hc1(?x)#hc[has-part->{_dna1(_hc1(?x))}]}, object->{ _cs1(?x)#cs[has-part->{_dna1(_cs1(?x))}]} ].
cloned fromDNA01
cloned fromDNA01
Part II: Component Library
Ontology (taxonomy, domain/range) “Transitivity” (“grain size”) rules
515 grain size rules + 35 transitivity rules IF X toward Y AND Y is-near Z THEN X toward Z IF X content Y AND Y has-region Z THEN X content Z etc.
stored in a regularized database format → easy to translate! translated to KM in Dec 2009 could translate to SILK easily too
Part II: Some of the “Grain Size” Rules…
(~40 use 1 relation, ~500 use 2 relations, 1* uses 3 relations)
IF X toward Y AND Y is-near Z THEN X toward ZIF X played-by Y AND Y is-part-of Z THEN X played-by ZIF X played-by Y AND Y is-region-of Z THEN X played-by ZIF X in-event Y AND Y subevent-of Z THEN X in-event ZIF X content Y AND Y has-part Z THEN X content ZIF X content Y AND Y has-region Z THEN X content ZIF X content Y AND Y material Z THEN X content ZIF X content Y AND Y encloses Z THEN X content ZIF X is-region-of Y AND Y is-part-of Z THEN X is-region-of ZIF X location-of Y AND Y has-region Z THEN X location-of ZIF X instrument Y AND Y element-of Z THEN X instrument ZIF X location-of Y AND Y material Z THEN X location-of ZIF X material-of Y AND Y is-part-of Z THEN X material-of ZIF X possesses Y AND Y has-part Z THEN X possesses ZIF X possesses Y AND Y has-region Z THEN X possesses ZIF X possesses Y AND Y material Z THEN X possesses ZIF X abuts Y AND Y location Z THEN X abuts Z
* IF W end-time X AND X before Y and Y start-time-of Z THEN W before Z
Part II: Component Library
Ontology (taxonomy, domain/range) “Transitivity” (“grain size”) rules
515 grain size rules + 35 transitivity rules IF X toward Y AND Y is-near Z THEN X toward Z IF X content Y AND Y has-region Z THEN X content Z etc.
stored in a regularized database format → easy to translate! translated to KM in Dec 2009 could translate to SILK easily too
Axioms normal FOL axioms
eg., agent=object for Locomotion events situation calculus event axioms?
(not used in AURA)
(a) KM Prototypes Core prototype structure (nodes + arcs) Knowledge of coreference between prototypes Additional prototype structure
constraints, if-then rules, equations
(b) Component Library Ontology (taxonomy, domain/range) “Transitivity” (“grain size”) rules Axioms
normal FOL axioms eg., agent=object for Locomotion events
situation calculus event axioms? (not used in AURA)
Summary
Some details still to work out
Fairlystraight-foward
Laterwork
Hand-translate?
Need?