29
Background System Architecture Implementation Summary and Future Work PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners Gen Zou 1 Reuben Peter-Paul 1 Harold Boley 1,2 Alexandre Riazanov 3 1 Faculty of Computer Science, University of New Brunswick, Fredericton, Canada 2 National Research Council Canada, Information and Communications Technologies 3 Department of Computer Science & Applied Statistics University of New Brunswick, Saint John, Canada 1 / 29

PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

PSOA2TPTP: A Reference Translatorfor Interoperating PSOA RuleML

with TPTP Reasoners

Gen Zou1 Reuben Peter-Paul1 Harold Boley1,2

Alexandre Riazanov3

1Faculty of Computer Science,University of New Brunswick, Fredericton, Canada

2National Research Council Canada,Information and Communications Technologies

3Department of Computer Science & Applied StatisticsUniversity of New Brunswick, Saint John, Canada

1 / 29

Page 2: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Outline

1 Background

2 System Architecture

3 ImplementationANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

4 Summary and Future Work

2 / 29

Page 3: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Outline

1 Background

2 System Architecture

3 ImplementationANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

4 Summary and Future Work

3 / 29

Page 4: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Interoperation Source – PSOA RuleML

Integrates relational and object-oriented modelingGeneralizes RIF-BLD, F-logic and POSLUses positional-slotted object-applicative (psoa) termsGeneral case:o#f([t1,1 ... t1,n1] ... [tm,1 ... tm,nm] p1->v1 ... pk->vk)

Special cases:o#f(t1 ... tn p1->v1 ... pk->vk)

o#f(t1 ... tn)

o#f( p1->v1 ... pk->vk)

o#f

4 / 29

Page 5: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

PSOA Example in Presentation Syntax (PS)

Document(Group (

Forall ?Hu ?Wi ?Ch ?o ?1 (?o#_family(_child->?Ch) :-

And(?o#_family(_husb->?Hu _wife->?Wi)?1#_kid(?Wi ?Ch))

)_f1#_family(_husb->_Joe _wife->_Sue)_k1#_kid(_Sue _Pete)

))

5 / 29

Page 6: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Interoperation Targets

TPTP’s full First-Order Form (TPTP-FOF)Allows arbitrary first-order formulasSyntax and semantics

Syntax Semantics Syntax Semantics~p ¬p v1 =v2 v1 =v2

p1 & p2 p1 ∧ p2 v1 !=v2 ¬(v1 =v2)p1 | p2 p1 ∨ p2 ?[v1,...,vn]:p ∃ v1,...,vn :pp1 => p2 p1→ p2 ![v1,...,vn]:p ∀ v1,...,vn :p

VampirePrimeOpen-source TPTP reasoner derived from thehigh-performance Vampire reasoner

6 / 29

Page 7: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Outline

1 Background

2 System Architecture

3 ImplementationANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

4 Summary and Future Work

7 / 29

Page 8: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Components and Workflow of PSOA2TPTP

ANTLR: ANother Tool for Language RecognitionASO: Abstract Syntax Object

8 / 29

Page 9: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Workflow of ANTLR-Generated Components

AST: Abstract Syntax Tree (condensedtree encoding of the input stream)

9 / 29

Page 10: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Outline

1 Background

2 System Architecture

3 ImplementationANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

4 Summary and Future Work

10 / 29

Page 11: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Outline

1 Background

2 System Architecture

3 ImplementationANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

4 Summary and Future Work

11 / 29

Page 12: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Parser Grammar Rewriting

ANTLR-generated parser uses LL (Left-to-right scanning,Leftmost derivation) mechanismThe original EBNF grammar of PSOA/PS extended withsyntactic sugar is non-LL and cannot be directly used asthe ANTLR parser grammarWe rewrite it into an LL(1) grammar, so that it not only canbe accepted by ANTLR but is also more efficient

Elimination of left recursionLeft factoring

12 / 29

Page 13: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Parser Grammar Rewriting

Elimination of left recursion – examplepsoa : term '#' term ('(' tuples_and_slots ')')?

| term '(' tuples_and_slots ')' ;term : const | var | psoa | external_term

is rewritten toterm : psoa | non_psoa_term ;non_psoa_term : const | var | external_term ;psoa : non_psoa_term psoa_rest+ ;

13 / 29

Page 14: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Parser Grammar Rewriting

Left factoring – exampletuples_and_slots: tuple* (term '->' term)*

| term+ (term '->' term)* ;

is rewritten totuples_and_slots: tuple+ (term '->' term)*

| term+ ('->' term (term '->' term)*)?|;

14 / 29

Page 15: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Outline

1 Background

2 System Architecture

3 ImplementationANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

4 Summary and Future Work

15 / 29

Page 16: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Normalization – Static Tupribution and Slotribution

Transform composite formulas into a conjunction of elementaryconstructs

o#f([t1,1 ... t1,n1] ... [tm,1 ... tm,nm] p1->v1 ... pk->vk)= o#f()& o#Top(t1,1 ... t1,n1) &...& o#Top(tm,1 ... tm,nm)

& o#Top(p1->v1) &...& o#Top(pk->vk)

16 / 29

Page 17: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Translation of Elementary Constructs – Terms

Constants τpsoa(_C) = lC (“low line” C)Variables τpsoa(?v) = Qv (“Question mark” v)Tuple termsτpsoa(o#Top(t1 . . .tk)) =

tupterm(τpsoa(o), τpsoa(t1) . . . τpsoa(tk))

Slot termsτpsoa(o#Top(p−> v)) =

sloterm(τpsoa(o), τpsoa(p), τpsoa(v))

Membership termsτpsoa(o#f()) = member(τpsoa(o), τpsoa(f))

17 / 29

Page 18: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Translation of Elementary Constructs – Formulas

Conjunctionτpsoa(And(f1 . . . fn)) = (τpsoa(f1) & ... & τpsoa(fn))

Implication τpsoa(ϕ : − ψ) = (τpsoa(ψ)=> τpsoa(ϕ))

Existential Quantificationτpsoa(Exists ?v1 . . . ?vn f) =

(? [τpsoa(?v1)...τpsoa(?vn)] : τpsoa(f))

Universal Quantificationτpsoa(Forall ?v1 . . . ?vn f) =

(! [τpsoa(?v1)...τpsoa(?vn)] : τpsoa(f))

18 / 29

Page 19: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Translation of Queries

Use reserved answer predicate ans to obtain the bindings forquery variable ?vi

! [τpsoa(?v1)...τpsoa(?vn)] : (τpsoa(q) =>ans("?v1 = ",τpsoa(?v1),

...,"?vn = ",τpsoa(?vn)))

19 / 29

Page 20: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Example – Input

Input knowledge baseDocument(

Group (Forall ?Hu ?Wi ?Ch ?o ?1 (

?o#_family(_child->?Ch) :-And(?o#_family(_husb->?Hu _wife->?Wi)

?1#_kid(?Wi ?Ch)))_f1#_family(_husb->_Joe _wife->_Sue)_k1#_kid(_Sue _Pete)

))

QueryAnd(_f1#_family(_husb->_Joe _wife->_Sue _child->?Who)

_k1#_kid(_Sue ?Who))

20 / 29

Page 21: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Example – Normalization

Normalized knowledge baseDocument(

Group (Forall ?Hu ?Wi ?Ch ?o ?1 (

And( ?o#_family()?o#Top(_child->?Ch)) :-

And( And( ?o#_family()?o#Top(_husb->?Hu)?o#Top(_wife->?Wi))

And( ?1#_kid()?1#Top(?Wi ?Ch)))

)_f1#_family() _f1#Top(_husb->_Joe)

_f1#Top(_wife->_Sue)_k1#_kid() _k1#Top(_Sue _Pete)

))

21 / 29

Page 22: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Example – Translation

TPTP generated for knowledge basefof(ax01,axiom,(

! [Q1,Qo,QCh,QWi,QHu] :( ( member(Qo,lfamily)& sloterm(Qo,lwife,QWi)& sloterm(Qo,lhusb,QHu)& member(Q1,lkid)& tupterm(Q1,QWi,QCh) )

=> ( member(Qo,lfamily)& sloterm(Qo,lchild,QCh) ) ))).

fof(ax02,axiom,( member(f1,lfamily)& sloterm(f1,lwife,lSue)& sloterm(lf1,lhusb,lJoe) )).

fof(ax03,axiom,( member(lk1,lkid) & tupterm(k1,lSue,lPete) )).

22 / 29

Page 23: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Example – Translation and Execution

TPTP generated for queryfof(query,theorem,(

! [QWho] :( ( member(f1,lfamily)& sloterm(f1,lwife,lSue)& sloterm(f1,lchild,QWho)& sloterm(f1,lhusb,lJoe)& member(lk1,lkid)& tupterm(lk1,lSue,QWho) )

=> ans("?Who = ",QWho) ) )).

VampirePrime outputProof found....

... | «ans»("?Who = ", lPete) ...

23 / 29

Page 24: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

Outline

1 Background

2 System Architecture

3 ImplementationANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

4 Summary and Future Work

24 / 29

Page 25: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

ANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

RESTful Web API

PSOATransRun wraps PSOA2TPTP and VampirePrimeinto two REST services

Translation: PSOA2TPTPExecution: VampirePrime

Requests are sent via HTTP POST methodInputs and outputs are JSON-encoded stringsAvailable online (documentation and system):http://wiki.ruleml.org/index.php/PSOA_RuleML#PSOATransRun

http://198.164.40.211:8082/psoa2tptp-trans/index.html

25 / 29

Page 26: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Outline

1 Background

2 System Architecture

3 ImplementationANTLR GrammarsPSOA-to-TPTP TranslationRESTful Web API

4 Summary and Future Work

26 / 29

Page 27: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Summary

We have implemented a first version of the PSOA2TPTPtranslator using the ANTLR v3 frameworkThus provide a semantics-preserving translation fromPSOA RuleML to TPTPPSOATransRun wraps PSOA2TPTP and VampirePrimeinto REST services for convenient access

27 / 29

Page 28: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

Future Work

Extend PSOA2TPTP capability to handle all PSOA RuleMLconstructsImplement the fully-ASO-based translatorDevelop real-world Clinical Intelligence use case andothers employing PSOATransRun

28 / 29

Page 29: PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Reasoners

BackgroundSystem Architecture

ImplementationSummary and Future Work

References

Boley, H.A RIF-Style Semantics for RuleML-Integrated Positional-Slotted,Object-Applicative RulesIn Bassiliades, N., Governatori, G., Paschke, A. (eds.)RuleML Europe, vol. 6826 of LNCS, pp. 194–211. Springer, 2011.

Zou, G., Peter-Paul, R., Boley, H. and Riazanov, A.PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML withTPTP ReasonersIn: Bikakis, A., Giurca, A. (eds.)RuleML 2012, vol. 7438 of LNCS, pp. 264–279. Springer, 2012.

Al Manir, M.S., Riazanov, A., Boley, H. and Baker, C.J.O.PSOA RuleML API: A Tool for Processing Abstract and Concrete SyntaxesIn: Bikakis, A., Giurca, A. (eds.)RuleML 2012, vol. 7438 of LNCS, pp. 280–288. Springer, 2012.

29 / 29