1 / 20

CHROME-REF

CHROME-REF. CHR v Online Model-driven Engine with Reasoning Explanation Facilities. INRIA / UFPE Rafael Oliveira – Rafael.Oliveira@inria.fr Jacques Robin - robin.jacques@gmail.com Pierre Deransart - Pierre.Deransart@inria.fr Rocquencourt, France October 28, 2009. Agenda.

sally
Download Presentation

CHROME-REF

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CHROME-REF CHRv Online Model-driven Engine with Reasoning Explanation Facilities INRIA / UFPE Rafael Oliveira – Rafael.Oliveira@inria.fr Jacques Robin - robin.jacques@gmail.com Pierre Deransart - Pierre.Deransart@inria.fr Rocquencourt, France October 28, 2009

  2. Agenda • Separation of concerns (CHROME-REF Project) • Engine, Extraction, Driver and Analyzer • Generic CHRv Trace Schema for Debugging • Trace Driver • Trace Analyzer • Conclusion • Future Works

  3. Separation of Concerns • At present, there exists a number of useful debugging tools for CHR • Tools were designed and implemented in a specific way for each solver • Each implementation results in a set of one-to-one specialized connections between a solver and its tools CHR ECLiPSe Prolog Debugging Tool CHR SWI Prolog Debugging Tool … … CHR SICStus Prolog Debugging Tool

  4. Separation of Concerns • Trace Meta-Theory • ... • ... • Flexible • Portable CHR Trace Schema query CHR ECLiPSe Prolog Extraction CHR Trace Driver Analyzer CHR SWI Prolog Extraction … CHR SICStus Prolog Extraction

  5. CHROME-REF Project • Engine • CHROME engine • a compiler that take a CHR base into imperative Java objects • MDE approach during its process of compilation by means of ATL transformations. • Extraction • Theoretical Operational Semantics ωt • Integration (ωt + CHROME) • Generic CHRv Trace Schema for Debugging • Driver • A processor, on the fly, of traces events according to the query requested by the analyzer. • Analyzer • Debugging Tool

  6. CHROME-REF Project • Engine • CHROME engine • a compiler that take a CHR base into imperative Java objects • MDE approach during its process of compilation by means of ATL transformations. • Extraction • Theoretical Operational Semantics ωt • Integration (ωt + CHROME) • Generic CHRv Trace Schema for Debugging • Driver • A processor, on the fly, of traces events according to the query requested by the analyzer. • Analyzer • Debugging Tool

  7. Generic CHRv Trace Schema for Debugging • A generic trace enables any tool to be defined almost independently • The trace syntax is represented using an XML Schema • A trace instance is encoded in an XML format according to this XML Schema and followsthe described semantics.

  8. Generic CHRv Trace Schema for DebuggingClass Diagram Etrace label:String EInitialState EIntroduce ESolve EApply EFail Goal UDC BIC Built-ins Rule * *

  9. Generic CHRv Trace Schema for DebuggingXML Schema <?xml version="1.0" encoding="UTF-8"?> <xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://orcas.org.br/chrv" xmlns="http://orcas.org.br/chrv" elementFormDefault="qualified"> <xs:element name="chrv"> <xs:complexType> <xs:sequence> <xs:element name="event" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:choice> <xs:element name="initialState" minOccurs="1” maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="goal" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="introduce" minOccurs="1" maxOccurs="1"> ...

  10. Trace Driver • A processor, on the fly, of traces events according to the query requested by the analyzer. • 3 Services • Register Analyzer • Notify Analyzer • Update Filter

  11. Trace Driver • A processor, on the fly, of traces events according to the query requested by the analyzer. • 3 Services • Register Analyzer • Notify Analyzer • Update Filter CHROME sends trace events register, filter and notify analyzers

  12. Trace Driver

  13. Trace Driver

  14. Trace Driver contextTraceDriver::registerAnalyzer(a:Analyzer) post: analyzer->includes(d) contextTraceDriver::notifyDriver(eTrace:ETrace) post: analyzers->forAll(a | a^notification(filterTrace(a.request, eTrace))) contextTraceDriver::updateFilter(a:Analyzer, request:Request) post: a.request = request

  15. Trace Analyzer • Requirements • A graphical environment component for writing and analyzingCHRv programs • User may ask for more information about the current event • The execution can be blocked until the analyzer notify it that it can proceed

  16. Trace Analyzer

  17. Trace Analyzer

  18. Conclusion

  19. Any questions?

  20. References • VITORINO, J. Model-Driven Engineering a Versatile, Extensible, Scalable Rule Engine through Component Assembly and Model Transformations. Universidade Federal de Pernambuco. CIn. CiênciadaComputação, 2009. • DUCK, G., STUCKEY, P., DE LA BANDA, M., and HOLZABAUR, C. The refined operational semantics of Constraint Handling Rules. Lecture notes in computer science (2004), 90–104.

More Related