-+ - 1 -PathLP26/09/2011 - Student: Igal Khitron. Advisors: Mira Balaban, Michael Kifer, Stony Brook University, NY, USA. Computer Science Department,

Post on 21-Dec-2015

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

- +- 1 - PathLP 26/09/2011

-

Student: Igal Khitron.

Advisors: Mira Balaban, Michael Kifer, Stony Brook University, NY, USA.

Computer Science Department,Ben-Gurion University of the Negev.

PATHLP Path orientedLogic Programming Language

- +- 2 - PathLP 26/09/2011

• Models as program abstractions, could be huge.

• Ability to write a model as a programming code.

• To run queries about this code.

• To find an exact place and description of error.

• To fix and just recompile the code.

MOTIVATION

- +- 3 - PathLP 26/09/2011

• New Programming Language.

• Model terms (intersection, closure, disjoint, singleton).

• The language will support many types of models.

• F-OML – F-LOGIC (Kifer and Lausen, 1989) basedObject Modeling Language.

• Top layer of PathLP (only PathLP syntax).

• PathLP as a regular Logic programming language.

SOLUTION

- +- 4 - PathLP 26/09/2011

• Path Expression as the main structure.

John.spouse.brother[?x

• -3.a.8[collect(4, 5, ?y, ?_, ‘^^p’(3, a))]

John

brotherspouse

sun

brother

spouse

sistersun

?y

Susan friend

, Susan.friend

sun?y

PATHLP SYNTAX

?y

?x

Mary

?x?x

].sun[?y].

- +- 5 - PathLP 26/09/2011

• Type path expression.person!spouse[person]{0..2}

• Membership.Bob:male.

• Subtype.female::person.

• Logic equality.

• Fact.John.spouse[Mary].

• Rule.?x.sonOf[?y] :- ?x.childOf[?y], ?x:male.

• Query:?- ?x:person, ?x.ageof(2003)[?age], ?age>20.

PATHLP SYNTAX – CONT’D

- +- 6 - PathLP 26/09/2011

• Describe forbidden states.

!- ?x.prop1[?y], ?y > 10.

• System stability check process.

• All deviations are printed.

• Cardinality constraints. {3..*}

CONSTRAINTS

- +- 7 - PathLP 26/09/2011

• Prolog as Logic language platform.• Problem: reasoning order.

• Tabling prolog.• Memoization.• Infinite loops avoidance.• Left Recursion.

• XSB (David Warren and others, including Kifer).

• 3-valued logic (true, undefined, false).

• Prolog as ultimate compiler language – DCG.

IMPLEMENTATION

12 min regular fib(46)

tabled fib(92)

linear fib(92)0.06 millisec

0.01 millisec

- +- 9 - PathLP 26/09/2011

Interpreter

Action Shell

FULL LINUX KDE WORKING

ENVIRONMENT

- +- 10 - PathLP 26/09/2011

?- file(?x).inode[?i], file(?y).inode[?i], ?x < ?y.!- ?x:filetype, ?x.name[?name], \ \+ ?x.fullpath[[?name|?]].?x:int :- integer(?x)@_prolog, ?x >= 0.filetype!size[int]{1..1}.'regular file'::plain.'regular empty file'::plain.plain::filetype.'symbolic link'::filetype.

• Regular checks.

• Huge test case.• University CS Linux file system part (O:)

– 200,000 facts (about 15 for each file).• Name, size, permissions...• Path and last change as lists.

• Type expressions, rules, constraints and queries about the filesystem correctness.

RUNTIME ACTION 8 minutes≈ Compilation

0.1 seconds ≈

Reload

0.8 seconds ≈

Stability & queries – O(n)

10 seconds< Stability & queries – O(n3)

TESTS

- +- 11 - PathLP 26/09/2011

• All Prolog and XSB abilities.

• Linux executables.

• Multifile.

• Full preprocessor: #define, #include, #if, #ifdef, #eval, #exec ...

• Improved list library. Difference and infinite lists can be treated.

• Special _size property - counts all outgoing edges of the same kind.

• Command line program (with history) and multiply arguments.

PROJECT FEATURES

- +- 12 - PathLP 26/09/2011

This works, but it’s not enough.

• We’re going to develop the PathLP.(For example, module spaces or libraries support.)

• We’ll start with F-OML building.

• We’ll rest on our laurels.

PathLP domain: pathlp.sf.net .

Project site: www.cs.bgu.ac.il/~khitron/bgu_pathlp .

SUMMARY

top related