Download presentation
Presentation is loading. Please wait.
Published byFelix Morris Modified over 9 years ago
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 3 rd, 2001
2
UNB RuleML Talk 1 Web-Based Business Rules: Merchant-Customer Exchange Scenario (I) Merchant 1 Merchant m... Customer request rules on discounts etc. request rules on discounts etc. preselect m best merchants (e.g., using purchasing rules)
3
UNB RuleML Talk 2 Merchant 1 Merchant m... Customer publish rulebase 1 publish rulebase m compare, instantiate, and run rulebases Web-Based Business Rules: Merchant-Customer Exchange Scenario (II) translate to standard format (e.g., RuleML)
4
UNB RuleML Talk 3 Merchant i Customer order from Merchant i select best deal (e.g., discount) Web-Based Business Rules: Merchant-Customer Exchange Scenario (III)
5
UNB RuleML Talk 4 Web-Based Business Rules: Formalize Natural Language in Horn Logic Prolog-like formalization (with XML underpinnings): ''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.''... English Business Rules:
6
UNB RuleML Talk 5 Semantics and Pragmatics (Implementation) Original Web: Distributed development, usage and maintenance of HTML-based informal documents Semantic Web: Employ same infrastructure for formal specifications or declarative programs Which Logics/Languages? Uniform semantic/pragmatic foundation potential: – Description Logic: RDF Schema, DAML+OILfor taxonomies – Horn Logic: Prolog, RuleMLfor axioms for ontologies
7
UNB RuleML Talk 6 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 of Rule Markup Language (RuleML), Version 0.8
8
UNB RuleML Talk 7 XML-Prolog Initiative RuleML The Rule Markup Initiative works towards W3C submission representing its various participants from industry and academiaRule Markup Initiative First goal has thus been to provide modular system of RuleML sublanguages based on XML and RDF (Resource Description Framework) 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
9
UNB RuleML Talk 8 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
10
UNB RuleML Talk 9 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
11
UNB RuleML Talk 10 XML Elements as Ground Structures: The Idea Each element is a sequence..., i.e. some ordered content ''... '' enclosed by tag-'colored' start- and end-brackets This content may consist of text or again of elements XML documents consist of (nested) elements: Prolog terms can represent XML elements as variablefree or ground structures tag (... )
12
UNB RuleML Talk 11 XML Elements as Ground Structures: A Markup Problem In XML can use a positional representation, where a pow er form ula 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
13
UNB RuleML Talk 12 XML Elements as Ground Structures: XML and Prolog Solutions Thus, power formula 3 2 marked up as nested element: 3 2 powform(integer(3),integer(2)) In Prolog this corresponds to more compact ground structure (integers and lower-case words will be used as constants):
14
UNB RuleML Talk 13 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 : 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)with oval inner nodes and rectangular leaf nodes
15
UNB RuleML Talk 14 XML Attributes as Ground Structures A start-tag can be enhanced by n non-positional attribute-value pairs of the form a i = v i, where v i must be a string (XML's CDATA) In general, every element thus has the form... Besides elements, XML uses attributes: However, this can be reduced to the attributeless form v 1...v n..., 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
16
UNB RuleML Talk 15 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
17
UNB RuleML Talk 16 Unify XML and RDF 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 XML and RDF have different data models: With the advent of the Semantic Web a unified data model would be advantageousSemantic Web
18
UNB RuleML Talk 17 Problem with Positional XML Markup Our powform 's binary-positional convention ''First child is base, second child is exponent'' for 3 2 markup seems natural and easy to memorize But without some kind of 'signature declaration' this markup could instead mean 2 3 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
19
UNB RuleML Talk 18 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: powform [base -> 3 : integer; exponent -> 2 : integer].
20
UNB RuleML Talk 19 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: 3 2
21
UNB RuleML Talk 20 Role Commutativity There are two correctly prefixed powform -child permutations, which we regard as algebraically equivalent commutative markups: 3 2 2 3 =
22
UNB RuleML Talk 21 Graph Identity and Markup Equation Graph-theoretically, our data model permits trees with unordered arcs labeled by their roles, here base and exponent, and nodes as introduced earlier: powform 32 integer baseexponent Generally, for trees branching order of (explicitly labeled) arcs is immaterial and for markups equation holds: =...............
23
UNB RuleML Talk 22 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 pow er seq uence a 1,..., a n with the marked up form ula of its base a and highest exponent n (length) For the sequence 3, 9 combined with the formula 3 2 : 3 9 3 2
24
UNB RuleML Talk 23 OrdLab Tree Graph-theoretically, positional children become left-to- right-ordered arcs, here targeting the rational s 3 and 9, while role children become labels on un- ordered arcs, here targeting the integer s 3 and 2 (different arrows emphasize ordered vs. labeled arcs): 9 rational powseqform 3 rational 32 integer baseexponent
25
UNB RuleML Talk 24 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
26
UNB RuleML Talk 25 Prolog Structures in RuleML While we earlier reduced XML elements to Prolog ground structures, we now generically encode Prolog‘s Herbrand 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 of ind, var, and cterm elements, where the occurrence of a structure or c omplex term distinguishes Prolog from Datalog
27
UNB RuleML Talk 26 A cterm Example Markup Example: Prolog ground structure undersea-connection(britain,france) in RuleML becomes cterm element with role (unordered) subelement _opc for the fun ctor / c onstruc tor of type ctor and two sequential (ordered) subelements for its argument terms, here two ind ividual constants of type ind : undersea-connection britain france
28
UNB RuleML Talk 27 Unification of cterm Example Trees This RuleML cterm markup as an OrdLab tree (left): france britain cterm opc ctor undersea- connection ind britain xyz undersea-connection xyz britain cterm opc ctor undersea- connection varind Unifying non-ground structure or OrdLab tree (right):
29
UNB RuleML Talk 28 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
30
UNB RuleML Talk 29 Relation Applications in RuleML A predicate or relation symbol will in RuleML be a rel element. The application of an _opr -role- embedded relation symbol to a sequence of terms is marked by an atom element in RuleML Example: travel application travel(john,channel-tunnel) to two individual constants will thus be: travel john channel-tunnel
31
UNB RuleML Talk 30 Prolog Facts in RuleML Horn fact in RuleML is asserted as a fact element that possesses exactly one subelement -- the _ head -role-embedded atom element Example: travel fact (containing travel application) travel(john,channel-tunnel). becomes: travel john channel-tunnel Tree structure? fact Subtree _head XML fact head Subtree OrdLab
32
UNB RuleML Talk 31 Prolog Rules in RuleML: Source Horn rule in RuleML is asserted as an imp element 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:
33
UNB RuleML Talk 32 Prolog Rules in RuleML: Markup travel someone channel-tunnel carry eurostar someone
34
UNB RuleML Talk 33 Prolog Rules in RuleML: Tree Graph-theoretically, RuleML clauses are again OrdLab trees, as illustrated for this rule:
35
UNB RuleML Talk 34 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
36
UNB RuleML Talk 35 Prolog in RuleML DTD/Schema Hierarchy urc-bin-data-ground-fact urc-bin-data-ground-log urc-bin-datalog bin-datalogurc-datalog ur-datalog ur-hornlog ur-equalog hornlog equalog datalog ur Rooted DAG will be extended with branches for further sublanguages URL/URI-like ‘ur’-objects ruleml RDF-like triples ur-datalog = join(ur,datalog) Focus on 12 sublanguages of derivation rule modules: All except the 'UR' (URL/URI) group correspond to well-known rule systems, with formal semantics
37
UNB RuleML Talk 36 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.
38
UNB RuleML Talk 37 From DTD to XML Schema: rulebase s DTD line (XML in EBNF-like SGML subset): Schema part (official way to define XML in XML):...
39
UNB RuleML Talk 38 From DTD to XML Schema: imp lications DTD line (permuted _head / _body sequences): Schema part (unordered xsd:all set):... <xsd:element name="_head" type="_headType" minOccurs="1" maxOccurs="1"/> <xsd:element name="_body" type="_bodyType" minOccurs="1" maxOccurs="1"/>...
40
UNB RuleML Talk 39 Extending Datalog to Full Prolog Remaining essential lines of 'datalog' DTD:'datalog' DTD We are currently investigating for XML Schema version the issue of composition mechanisms better than conditional DTD parts, involving xsd:redefineXML Schema versionissue of composition mechanisms better than conditional DTD parts Extended atom plus cterm lines for 'hornlog' DTD:'hornlog' DTD | cterm
41
UNB RuleML Talk 40 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
42
UNB RuleML Talk 41 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): rfmlsp
43
UNB RuleML Talk 42 XSL Transformations from and to RuleML Exemplary pair of 'inverse' translators ('stylesheets') exporting/importing markup between RuleML and RFML (Relational-Functional Markup Language),'inverse' translatorsRelational-Functional Markup Language where only the logic part is needed for Prolog: Export via ruleml2rfml.xsl : ruleml2rfml.xsl Stylesheet translates Hornlog RuleML rulebase to corresponding RFML program Import via rfml2ruleml.xsl : rfml2ruleml.xsl Stylesheet translates a Hornlog RFML program to corresponding RuleML rulebase
44
UNB RuleML Talk 43 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.'' discount customer product 5.0 percent premium customer regular product discount customer product 5.0 percent premium customer regular product ruleml2rfml.xsl rfml2ruleml.xsl
45
UNB RuleML Talk 44 Export from RuleML: Tree Rewriting (I) rulebase Subtree... rfml... Subtree What does this XML processing look like in XML?
46
UNB RuleML Talk 45 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 -->
47
UNB RuleML Talk 46 Export from RuleML: Tree Rewriting (II) fact Subtree _head hn Subtree
48
UNB RuleML Talk 47 Export from RuleML: Implementation (II) Second template matches fact element, does apply-templates over its _head in mode pattop (for RFML's op erator patt erns), and generates hn element from result: <!-- process fact, transforming it to hn clause without premises --> <xsl:apply-templates select="_head" mode="pattop"/>
49
UNB RuleML Talk 48 Export from RuleML: Tree Rewriting (III) atom PCDATA _opr rel Argterm... pattop PCDATA con... Argterm atom Argterm... PCDATA _opr rel Implementation details: ruleml2rfml.xsl ruleml2rfml.xsl
50
UNB RuleML Talk 49 Import to RuleML: Implementation (I) First template is exact 'inverse' of the first ruleml2rfml template: <!-- process rfml program and position hn transformer -->
51
UNB RuleML Talk 50 Import to RuleML: Implementation (II) Second template matches hn element, and, for fact case, expects one child; fact element with _ head role is generated from result of apply- templates over the pattop :...
52
UNB RuleML Talk 51 Web Technology for Prolog Prepared semantic-pragmatic XML-Prolog transfers using XML syntax: http://www.dfki.de/rulemlhttp://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 exchange Prolog knowledge bases over the Web
53
UNB RuleML Talk 52 Web Technology for General Use : DTDs and XSLT are Still Most Practical, XML Schema and XQuery are Promising Demonstrated practical use of W3C technologies such as DTDs and XML Schema as well as XSLT On the other hand hinted at a few problems with current version of XML Schema, hoping that more expressive version will be available in future Functional and logic programmers may also have wondered whether XSLT-based translators could be specified more concisely in future version of XSLT Perhaps XQuery can act as incentive towards formal semantics of XML queries and transformationsXQuery
54
UNB RuleML Talk 53 Prolog Technology for the Web Corresponding transfers in Prolog-to-XML direction have already started with Mandarax, j-DREW, and other RuleML engines based on Prolog technologyRuleML engines based on Prolog technology It may also be useful to implement (orthogonalized versions of) XML Schema, XSLT, etc. in (RuleML and) Prolog to explore limits of expressiveness that can be realized formally and efficiently Side-effect of this work could be translators between XML syntax and more concise Prolog syntax for W3C languages such as XML Schema and XSLT
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.