KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

13
KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010

Transcript of KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

Page 1: 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

Page 2: 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?

Page 3: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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.:

Page 4: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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

Page 5: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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.

Page 6: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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:

Page 7: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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) ?

Page 8: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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”)

Page 9: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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

Page 10: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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

Page 11: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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

Page 12: KM2SILK translator – Level 0 Design Peter Clark Boeing Research and Technology April 2010.

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)

Page 13: 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)

Summary

Some details still to work out

Fairlystraight-foward

Laterwork

Hand-translate?

Need?