1 / 52

RuleML: Data Model, Language Hierarchy, and Transformations

RuleML: Data Model, Language Hierarchy, and Transformations. Harold Boley, DFKI GmbH, Visiting Researcher at NRC IIT e-Business, Fredericton. 2001 Seminar Series Talk at the Faculty of Computer Science, University of New Brunswick, Fredericton, December 3 rd , 2001. Merchant 1.

Télécharger la présentation

RuleML: Data Model, Language Hierarchy, and Transformations

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. RuleML:Data Model, Language Hierarchy,and Transformations Harold Boley, DFKI GmbH, Visiting Researcher at NRC IIT e-Business, Fredericton 2001 Seminar Series Talk at the Faculty of Computer Science, University of New Brunswick, Fredericton, December 3rd, 2001

  2. Merchant1 Merchantm . . . request rules on discounts etc. request rules on discounts etc. preselect m best merchants (e.g., using purchasing rules) Customer Web-Based Business Rules:Merchant-CustomerExchangeScenario(I) Introduction UNB RuleML Talk

  3. Merchant1 Merchantm Customer Web-Based Business Rules:Merchant-CustomerExchangeScenario(II) . . . translate to standard format (e.g., RuleML) publish rulebase1 publish rulebasem Introduction compare, instantiate, and run rulebases UNB RuleML Talk

  4. Merchanti Customer Web-Based Business Rules:Merchant-CustomerExchangeScenario(III) order from Merchanti Introduction select best deal (e.g., discount) UNB RuleML Talk

  5. English Business Rules: ''The discount for a customer buying a product is 5.0 percent if the customer is premium and the product is regular.'' ''The discount for a customer buying a product is 7.5 percent if the customer is premium and the product is luxury.'' . . . Prolog-like formalization (with XML underpinnings): Web-Based Business Rules:Formalize NaturalLanguage in HornLogic Introduction UNB RuleML Talk

  6. for ontologies Semantics andPragmatics (Implementation) • Original Web: Distributed development, usage and maintenance of HTML-basedinformaldocuments • Semantic Web: Employ same infrastructure for formal specifications or declarative programs Introduction Which Logics/Languages? • Uniform semantic/pragmatic foundation potential: • Description Logic: RDF Schema, DAML+OIL for taxonomies • Horn Logic: Prolog,RuleML for axioms UNB RuleML Talk

  7. Syntax • Syntactic underpinnings, however, will most likely come from Extensible Markup Language (XML) • Fortunately, translators between Prolog and XML syntaxes can be defined • Can also form basis for semantic/pragmatic technology transfers between Prolog and XML • Current talk will exemplify this using XML syntax ofRule Markup Language (RuleML), Version 0.8 Introduction UNB RuleML Talk

  8. XML-PrologInitiative RuleML • The Rule Markup Initiativeworks towards W3C submission representing its various participants from industry and academia • First goal has thus been to provide modular system of RuleML sublanguages based on XML and RDF (Resource Description Framework) Introduction • This led to development of novel XML-RDF-integrating Web data model • On its basis, RuleML initially defined with hierarchy of DTDs, gradually redefined with XML Schema • To facilitate rule exchange, XSLT-based translators between RuleML and other rule languages have been specified UNB RuleML Talk

  9. Main Structure of the Talk • XML elements and attributes shown to correspond to Prolog ground structures • RuleML data model presented and illustrated via Order-Labeled trees • Permits to generically represent Herbrand terms as RuleML XML elements • Horn clauses similarly represented as XML elements • Prolog defined within the DTD/Schema Hierarchy of RuleML sublanguages • XSLT translators exemplified by bidirectional RuleML-RFML transformer and HTML renderer Introduction UNB RuleML Talk

  10. Next in the Talk • XML elements and attributes shown to correspond to Prolog ground structures • RuleML data model presented and illustrated via Order-Labeled trees • Permits to generically represent Herbrand terms as RuleML XML elements • Horn clauses similarly represented as XML elements • Prolog defined within the DTD/Schema Hierarchy of RuleML sublanguages • XSLT translators exemplified by bidirectional RuleML-RFML transformer and HTML renderer UNB RuleML Talk

  11. XML Elements as Ground Structures: The Idea • Each element is a sequence <tag>. . .</tag>,i.e. some ordered content ''. . . '' enclosed bytag-'colored' start- and end-brackets • This content may consist of text or again of elements XML documents consist of (nested) elements: XML as Prolog Prolog terms can represent XML elements as variablefree or ground structurestag(. . .) UNB RuleML Talk

  12. XML Elements as Ground Structures:A Markup Problem • In XML can use a positional representation,where a power formula consists of a base followed by an exponent • The base and exponent can each be marked up as an integer Example: Mark up power formulas, in a typed manner, as integer bases raised to integer exponents XML as Prolog UNB RuleML Talk

  13. In Prolog this corresponds to more compact ground structure (integers and lower-case words will be used as constants): powform(integer(3),integer(2)) XML Elements as Ground Structures: XML and Prolog Solutions Thus, power formula 32 marked up asnested element: <powform> <integer>3</integer> <integer>2</integer> </powform> XML as Prolog UNB RuleML Talk

  14. XML Elements as Ground Structures: Underlying Trees Graph-theoretically, yield a tree with left-to-right-ordered arcs and two kinds of nodes labeled by their types, here powform and integer, where oval nodes are XML-like (sub)elements or RDF-like resources while rectangular nodes are XML-like PCDATA or RDF-like literals, here 3 and 2: XML as Prolog In general, these simple XML elements and Prolog terms constitute two equivalent ways of linearizing left-to-right-ordered, node-labeled trees (with oval inner nodes and rectangular leaf nodes) UNB RuleML Talk

  15. XML Attributes as Ground Structures Besides elements, XML uses attributes: • A start-tag can be enhanced by n non-positional attribute-value pairs of the form ai=vi, where vi must be a string (XML's CDATA) • In general, every element thus has the form<tag a1=v1...an=vn>. . .</tag> XML as Prolog However, this can be reduced to the attributeless form <tag>v1...vn. . .</tag>, where n attribute values become positionalized as first n subelements: Ground structure Treat XML elements, incl. attributes, as Prolog-like terms Data model that captures XML attributes non-positionally, as a special case, will be developed next UNB RuleML Talk

  16. Next in the Talk • XML elements and attributes shown to correspond to Prolog ground structures • RuleML data model presented and illustrated via Order-Labeled trees • Permits to generically represent Herbrand terms as RuleML XML elements • Horn clauses similarly represented as XML elements • Prolog defined within the DTD/Schema Hierarchy of RuleML sublanguages • XSLT translators exemplified by bidirectional RuleML-RFML transformer and HTML renderer UNB RuleML Talk

  17. UnifyXML and RDF XML and RDF have different data models: • XML based on, possibly attributed, left-to-right ordered, node-labeled trees, reminiscent of parse (syntax) trees • RDF based on directed, arc-labeled (unordered) graphs with two kinds of nodes, resources and literals, the latter not allowing outgoing arcs Data Model With the advent of the Semantic Web a unified data model would be advantageous UNB RuleML Talk

  18. Problem with Positional XML Markup • Our powform's binary-positional convention''First child is base, second child is exponent'' for 32 markup seems natural and easy to memorize • But without some kind of 'signature declaration'this markup could instead mean 23 according to a''First child is exponent, second child is base'' convention • Analogous conventions for N-ary operators (N >2) need to disambiguate a combinatorially exploding number of possible interpretations • Without extra information the positions of 'roles' (powform: base and exponent) of children cannot in general be determined from some such markup Data Model UNB RuleML Talk

  19. Solution with Non-Positional RDF Markup In 'object-centered' modeling and 'feature'/'frame' logics the way out is representing powers and other operators in a non-positional manner, making them objects with explicitly indicated roles for their arguments In Frame/Horn-logic-integrating F-Logic, developed for RDF in TRIPLE, our example could thus be represented as a fact: Data Model powform [base -> 3 : integer; exponent -> 2 : integer]. UNB RuleML Talk

  20. Non-Positional RuleML Solution Paralleling this in RuleML, we complement XML 'type tags' by distinguished, RDF-like 'role tags' Generalizing XML attributes, roles will allow values that themselves contain markup In our example we thus use powform with _base and _exponent subelements, where the leading ''_'' distinguishes roles: Data Model <powform> <_base><integer>3</integer></_base> <_exponent><integer>2</integer></_exponent> </powform> UNB RuleML Talk

  21. Role Commutativity There are two correctly prefixed powform-child permutations, which we regard as algebraically equivalent commutative markups: <powform> <_base><integer>3</integer></_base> <_exponent><integer>2</integer></_exponent> </powform> Data Model = <powform> <_exponent><integer>2</integer></_exponent> <_base><integer>3</integer></_base> </powform> UNB RuleML Talk

  22. powform base exponent integer integer 3 2 Generally, for trees branching order of (explicitly labeled) arcsis immaterial and for markups equation holds: <type>. . .<_role1>...</_role1>. . .<_role2>...</_role2>. . .</type> = <type>. . .<_role2>...</_role2>. . .<_role1>...</_role1>. . .</type> Graph Identity and Markup Equation Graph-theoretically, our data model permits trees with unordered arcs labeled by their roles, herebase and exponent, and nodes as introduced earlier: Data Model UNB RuleML Talk

  23. Order-Labeled Combination RDF-like role-prefixed and XML‘s positional children can be easily combined, obtaining our basic RDF-XML integration of Order-Labeled (OrdLab) Trees Example: Combine markup of a power sequence a1,..., an with the markedup formula of its base a and highestexponent n(length) For the sequence 3, 9 combined with the formula 32: Data Model <powseqform> <rational>3</rational> <rational>9</rational> <_base><integer>3</integer></_base> <_exponent><integer>2</integer></_exponent> </powseqform> UNB RuleML Talk

  24. powseqform base exponent rational rational integer integer 9 3 3 2 OrdLab Tree Graph-theoretically, positional children become left-to-right-ordered arcs, here targeting the rationals 3 and 9, while role children become labels on un-ordered arcs, here targeting the integers 3 and 2 (different arrows emphasize orderedvs.labeled arcs): Data Model UNB RuleML Talk

  25. Next in the Talk • XML elements and attributes shown to correspond to Prolog ground structures • RuleML data model presented and illustrated via Order-Labeled trees • Permits to generically represent Herbrand terms as RuleML XML elements • Horn clauses similarly represented as XML elements • Prolog defined within the DTD/Schema Hierarchy of RuleML sublanguages • XSLT translators exemplified by bidirectional RuleML-RFML transformer and HTML renderer UNB RuleML Talk

  26. Prolog Structures in RuleML While we earlier reduced XML elements to Prolog ground structures, we now generically encode Prolog‘sHerbrand terms as XML elements, using the RuleML data model Representation of Herbrand terms (individual constants, logic variables, and structures) in RuleML XML requires, in essence, use ofind, var, and cterm elements, where the occurrence of a structure or complex term distinguishes Prolog from Datalog Terms in RuleML UNB RuleML Talk

  27. A cterm Example Markup Example: Prolog ground structure undersea-connection(britain,france) in RuleML becomes ctermelement withrole (unordered) subelement _opc for the functor/constructor of type ctor and two sequential (ordered) subelements for its argument terms, here two individual constants of type ind: Terms in RuleML <cterm> <_opc><ctor>undersea-connection</ctor></_opc> <ind>britain</ind> <ind>france</ind> </cterm> UNB RuleML Talk

  28. cterm cterm opc opc ctor ind ind var ind ctor france xyz britain britain undersea- connection undersea- connection Unifying non-ground structure or OrdLab tree (right): <cterm> <ind>britain</ind> <var>xyz</var> <_opc><ctor>undersea-connection</ctor></_opc> </cterm> Unification of cterm Example Trees This RuleML cterm markup as an OrdLab tree (left): Terms in RuleML UNB RuleML Talk

  29. Next in the Talk • XML elements and attributes shown to correspond to Prolog ground structures • RuleML data model presented and illustrated via Order-Labeled trees • Permits to generically represent Herbrand terms as RuleML XML elements • Horn clauses similarly represented as XML elements • Prolog defined within the DTD/Schema Hierarchy of RuleML sublanguages • XSLT translators exemplified by bidirectional RuleML-RFML transformer and HTML renderer UNB RuleML Talk

  30. Relation Applicationsin RuleML A predicate or relation symbol will in RuleML be a relelement. The application of an _opr-role-embedded relation symbol to a sequence of terms is marked by an atomelement in RuleML Example: travel applicationtravel(john,channel-tunnel)to two individual constants will thus be: Clauses in RuleML <atom> <_opr><rel>travel</rel></_opr> <ind>john</ind> <ind>channel-tunnel</ind> </atom> UNB RuleML Talk

  31. fact fact _head head Subtree Subtree XML OrdLab Prolog Facts in RuleML Horn fact in RuleML is asserted as a factelement that possesses exactly one subelement -- the _head-role-embedded atom element Example: travel fact (containing travel application)travel(john,channel-tunnel). becomes: Clauses in RuleML <fact> <_head> <atom> <_opr><rel>travel</rel></_opr> <ind>john</ind> <ind>channel-tunnel</ind> </atom> </_head> </fact> Tree structure? UNB RuleML Talk

  32. Prolog Rulesin RuleML: Source Horn rule in RuleML is asserted as an impelement that has two subelements -- a _head-role atom element augmented (either to its right or left) by a _body-role atom or and element Example: travel rule (Datalog) travel(Someone,channel-tunnel) :- carry(eurostar,Someone). rewritten in RuleML thus: Clauses in RuleML UNB RuleML Talk

  33. Prolog Rulesin RuleML: Markup <imp> <_head> <atom> <_opr><rel>travel</rel></_opr> <var>someone</var> <ind>channel-tunnel</ind> </atom> </_head> <_body> <atom> <_opr><rel>carry</rel></_opr> <ind>eurostar</ind> <var>someone</var> </atom> </_body> </imp> Clauses in RuleML UNB RuleML Talk

  34. Prolog Rulesin RuleML: Tree Graph-theoretically, RuleML clauses are again OrdLab trees, as illustrated for this rule: Clauses in RuleML UNB RuleML Talk

  35. Next in the Talk • XML elements and attributes shown to correspond to Prolog ground structures • RuleML data model presented and illustrated via Order-Labeled trees • Permits to generically represent Herbrand terms as RuleML XML elements • Horn clauses similarly represented as XML elements • Prolog defined within the DTD/Schema Hierarchy of RuleML sublanguages • XSLT translators exemplified by bidirectional RuleML-RFML transformer and HTML renderer UNB RuleML Talk

  36. ruleml ur-equalog Rooted DAG will be extended with branches for further sublanguages equalog ur-hornlog hornlog ur-datalog ur-datalog = join(ur,datalog) datalog ur urc-datalog bin-datalog URL/URI-like ‘ur’-objects urc-bin-datalog urc-bin-data-ground-log urc-bin-data-ground-fact RDF-like triples Prolog in RuleML DTD/Schema Hierarchy Focus on 12 sublanguages of derivation rule modules: All except the 'UR' (URL/URI) group correspond to well-known rule systems, with formal semantics DTD and Schema UNB RuleML Talk

  37. Modular Sublanguage Composition Each node in above hierarchy, e.g. 'hornlog', is a DTD/Schema that defines syntax of this sublanguage: Knowledge bases can refer to most specific DTD/Schema to maximize interoperability Non-leaf nodes are composed of the -- possibly modified -- node(s) reachable via outgoing link(s) below plus possibly some extra definition parts Example: 'hornlog' is composed of a -- slightly modified -- 'datalog' plus complex terms; 'datalog' itself contains 'bin-datalog', etc. DTD and Schema UNB RuleML Talk

  38. From DTD to XML Schema: rulebases DTD line (XML in EBNF-like SGML subset): <!ELEMENT rulebase ((imp | fact)*)> Schema part (official way to define XML in XML): <xsd:schema xmlns:xsd="http://...w3.org...XMLSchema"> <xsd:element name="rulebase"> <xsd:complexType> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="imp" type="impType"/> <xsd:element name="fact" type="factType"/> </xsd:choice> </xsd:complexType> </xsd:element> . . . DTD and Schema UNB RuleML Talk

  39. From DTD to XML Schema: implications DTD line (permuted _head / _body sequences): <!ELEMENT imp ((_head, _body) | (_body, _head))> Schema part (unordered xsd:all set): . . . <xsd:complexType name="impType"> <xsd:all> <xsd:element name="_head" type="_headType" minOccurs="1" maxOccurs="1"/> <xsd:element name="_body" type="_bodyType" minOccurs="1" maxOccurs="1"/> </xsd:all> </xsd:complexType> . . . DTD and Schema UNB RuleML Talk

  40. Extended atom plus cterm lines for 'hornlog' DTD: <!ELEMENT atom ((_opr, (ind | var)*) | ((ind | var)+, _opr))> <!ELEMENT cterm ((_opc, (ind|var|cterm)*) | ((ind|var|cterm)+, _opc))> | cterm | cterm Extending Datalog to Full Prolog Remaining essential lines of 'datalog' DTD: <!ELEMENT _head (atom)> <!ELEMENT _body (atom | and)> <!ELEMENT and (atom*)> <!ELEMENT atom ((_opr, (ind | var)*) | ((ind | var)+, _opr))> DTD and Schema We are currently investigating for XML Schema version the issue of composition mechanisms better than conditional DTD parts, involving xsd:redefine UNB RuleML Talk

  41. Next in the Talk • XML elements and attributes shown to correspond to Prolog ground structures • RuleML data model presented and illustrated via Order-Labeled trees • Permits to generically represent Herbrand terms as RuleML XML elements • Horn clauses similarly represented as XML elements • Prolog defined within the DTD/Schema Hierarchy of RuleML sublanguages • XSLT translators exemplified by bidirectional RuleML-RFML transformer and HTML renderer UNB RuleML Talk

  42. HTML Rendering of Business Rules Before our XML-to-XML roundtrip: RFML version, via XML-to-HTML stylesheet rfmlsp, will lead to font-and-color-coded HTML Prolog version, rendered in a browser (first line is sample rule): XSLT translators UNB RuleML Talk

  43. XSL Transformations from and to RuleML Exemplary pair of 'inverse' translators ('stylesheets') exporting/importing markup between RuleML and RFML(Relational-Functional Markup Language), where only the logic part is needed for Prolog: Export via ruleml2rfml.xsl: Stylesheet translates Hornlog RuleML rulebase to corresponding RFML program Import via rfml2ruleml.xsl: Stylesheet translates a Hornlog RFML program to corresponding RuleML rulebase XSLT translators UNB RuleML Talk

  44. Bi-Transforming Discount Sample Rule ''The discount for a customer buying a product is 5.0 percent if the customer is premium and the product is regular.'' <rulebase> <imp> <_head> <atom> <_opr><rel>discount</rel></_opr> <var>customer</var> <var>product</var> <ind>5.0 percent</ind> </atom> </_head> <_body> <and> <atom> <_opr><rel>premium</rel></_opr> <var>customer</var> </atom> <atom> <_opr><rel>regular</rel></_opr> <var>product</var> </atom> </and> </_body> </imp> </rulebase> <rfml> <hn> <pattop> <con>discount</con> <var>customer</var> <var>product</var> <con>5.0 percent</con> </pattop> <callop> <con>premium</con> <var>customer</var> </callop> <callop> <con>regular</con> <var>product</var> </callop> </hn> </rfml> ruleml2rfml.xsl XSLT translators rfml2ruleml.xsl UNB RuleML Talk

  45. rulebase . . . Subtree Subtree rfml . . . Subtree Subtree Export from RuleML: Tree Rewriting (I) XSLT translators What does this XML processing look like in XML? UNB RuleML Talk

  46. Export from RuleML: Implementation (I) First XSLT rule ('template') matches document root ''/'' followed by rulebase element; it 'recursively' maps ('applies') all matching templates to all rulebase subelements and generates rfml element from result: <!-- process rulebase and position fact/imp transformers --> <xsl:template match="/rulebase"> <rfml> <xsl:apply-templates/> </rfml> </xsl:template> XSLT translators UNB RuleML Talk

  47. fact _head Subtree Export from RuleML: Tree Rewriting (II) XSLT translators hn Subtree UNB RuleML Talk

  48. Export from RuleML: Implementation (II) Second template matches fact element, does apply-templates over its _head in modepattop (for RFML's operator patterns), and generates hn element from result: <!-- process fact, transforming it to hn clause without premises --> <xsl:template match="fact"> <hn> <xsl:apply-templates select="_head" mode="pattop"/> </hn> </xsl:template> XSLT translators UNB RuleML Talk

  49. Argterm Argterm Export from RuleML: Tree Rewriting (III) atom atom . . . . . . _opr _opr Argterm Argterm Argterm Argterm rel rel PCDATA PCDATA XSLT translators pattop . . . con PCDATA Implementation details:ruleml2rfml.xsl UNB RuleML Talk

  50. Web Technology for Prolog • Prepared semantic-pragmatic XML-Prolog transfers using XML syntax: http://www.dfki.de/ruleml • XML-RDF-integrating data model used as basis for DTD/Schema definitions of Prolog on the Web • Started semantic-pragmatic transfers in direction XML-to-Prolog by specifying (semantics-preserving) XSLT-based translators RuleML  RFML • It is now possible to build and exchangeProlog knowledge bases over the Web Conclusions UNB RuleML Talk

More Related