silk-translator.ppt

Download Report

Transcript silk-translator.ppt

KM2SILK translator – Level 0 Design
Peter Clark
Boeing Research and Technology
April 2010
What needs to be translated?
(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)
Level 0
design
Later
work
Fairly
straightfoward
Handtranslate?
Need?
Part 1: KM Prototypes
has-part
Eukaryotic-cell01
has-part
i.e.:
Nucleus01
is-inside
DNA01
x isa(x,EukCell) →
y,z isa(y,Nuc), isa(z,DNA), has-part(x,y), has-part(x,z), is-inside(z,y).
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)}]}]
Part 1: KM Prototypes - “Coreference”
has-part
Eukaryotic-cell01
has-part
has-part
Plant-cell02
has-part
Nucleus01
what these coreferences
is-inside
DNA01
Nucleus02
shape
*oval
is-inside
DNA02
KM finds this using unification
Chloroplast02
?x#eukaryotic-cell ->
?x[has-part->{ _nucleus1(?x)#nucleus,
SILK can do this via
_dna1(?x)#dna[
shared Skolem function
is-inside->{_nucleus1(?x)}]}]
names
?x#plant-cell ->
?x[has-part->{ _nucleus1(?x)#nucleus[shape->oval],
_dna1(?x)#dna[
is-inside->{_nucleus1(?x)}],
_chloroplast1(?x)#chloroplast}].
Part 1: KM Prototypes - “Coreference”
has-part
Eukaryotic-cell01
has-part

Nucleus01
is-inside
DNA01
KM keeps track of these
dependencies (if user did a
has-partfor
copy+extend) → basis
Nucleus02
generating
shared Skolem
Plant-cell02
is-inside
names in SILK.
has-part
what these coreferences
DNA02
shape
*oval
KM finds this using unification
Chloroplast02
?x#eukaryotic-cell ->
?x[has-part->{ _nucleus1(?x)#nucleus,
SILK can do this via
_dna1(?x)#dna[
shared Skolem function
is-inside->{_nucleus1(?x)}]}]
names
?x#plant-cell ->
?x[has-part->{ _nucleus1(?x)#nucleus[shape->oval],
_dna1(?x)#dna[
is-inside->{_nucleus1(?x)}],
_chloroplast1(?x)#chloroplast}].
Part 1: Coreference and question-answering
 Shared Skolem function names
 help (solve?) coreference issues within the KB
 but not with question answering 
Given:
has-part
Eukaryotic-cell01
has-part
Nucleus01
is-inside
DNA01
?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
Ask:
// “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?
Part 1: KM Prototypes - A bit more complexity…
 A Skolem might have more than one source…
has-part
Nucleus03
Nucleus01
Eukaryotic-cell01
is-inside
is-inside
has-part
DNA03
DNA01
has-part
Plant-cell02
Nucleus02
is-inside
DNA02
 How do we name the Skolem functions now?
_nucleus01(?plant-cell) ?
_nucleus03(?plant-cell) ?
cloned-from:
Nucleus01,
Nucleus03
Part 1: KM Prototypes - Multiple clones…
Homologous-chromosome01
donor
has-part
Homologous-chromosome02
DNA01
has-part
DNA02
Crossing-Over01
donor
Homologous-chromosome03
has-part
DNA03
Um…something like this (?):
?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))}]}].
Nested Skolem fns ok?
(“the dna of the first homologous chromosome of ?x”)
Part 1: KM Prototypes – Coref within a graph
object
Crossing-Over01
donor
has-part
Chromatid-segment02
Homologous-chromosome02
has-part
DNA03
DNA02
?x#crossing-over ->
?x[donor->{ _hc1(?x)#hc[has-part->{_dna1(_hc1(?x))}]},
object->{ _cs1(?x)#cs[has-part->{_dna1(_cs1(?x))}]} ].
object
Crossing-Over01
has-part
Chromatid-segment02
DNA02
donor
Homologous-chromosome02
How do we express this unification?
_dna1(_cs1(?x)) = _dna1(_hc1(?x))
?
cloned from
DNA01
cloned from
DNA01
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…
IF X toward Y AND Y is-near Z THEN X toward Z
IF X played-by Y AND Y is-part-of Z THEN X played-by Z
IF X played-by Y AND Y is-region-of Z THEN X played-by Z
IF X in-event Y AND Y subevent-of Z THEN X in-event Z
IF X content Y AND Y has-part Z THEN X content Z
IF X content Y AND Y has-region Z THEN X content Z
IF X content Y AND Y material Z THEN X content Z
IF X content Y AND Y encloses Z THEN X content Z
IF X is-region-of Y AND Y is-part-of Z THEN X is-region-of Z
IF X location-of Y AND Y has-region Z THEN X location-of Z
IF X instrument Y AND Y element-of Z THEN X instrument Z
IF X location-of Y AND Y material Z THEN X location-of Z
IF X material-of Y AND Y is-part-of Z THEN X material-of Z
IF X possesses Y AND Y has-part Z THEN X possesses Z
IF X possesses Y AND Y has-region Z THEN X possesses Z
IF X possesses Y AND Y material Z THEN X possesses Z
IF X abuts Y AND Y location Z THEN X abuts Z
(~40 use 1 relation, ~500 use 2 relations, 1* uses 3 relations)
* 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)
Summary
(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)
Some
details
still to
work out
Later
work
Fairly
straightfoward
Handtranslate?
Need?