-+ - 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
Preview:
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