350 likes | 481 Views
RuleML: Markup von Regelwerken im Semantischen Web (Markup of Rule Systems in the Semantic Web). Harold Boley, DFKI GmbH. Online 2002, Düsseldorf, January 29 st , 2002. International Initiative RuleML.
E N D
RuleML:Markup von Regelwerken im Semantischen Web (Markup of Rule Systems in the Semantic Web) Harold Boley, DFKI GmbH Online 2002, Düsseldorf, January 29st, 2002
International Initiative 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 RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
Merchanti Customer Web-Based Business Rules:Merchant-CustomerExchangeScenario(III) order from Merchanti Introduction select best deal (e.g., discount) RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
Problem with Positional XML Markup • For marking up 32, an XML element powform might be employed, with the positional convention''First child is base, second child is exponent'' • 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 RuleML Online 2002
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]. RuleML Online 2002
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> RuleML Online 2002
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> RuleML Online 2002
powseqform base exponent rational rational integer integer 9 3 3 2 Order-Labeled Combination For the sequence 3, 9 combined with the formula 32: <powseqform> <rational>3</rational> <rational>9</rational> <_base><integer>3</integer></_base> <_exponent><integer>2</integer></_exponent> </powseqform> Data Model RuleML Online 2002
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> RuleML Online 2002
fact fact _head head Subtree Subtree XML OrdLab 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? RuleML Online 2002
Derivation 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 RuleML Online 2002
Derivation 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 RuleML Online 2002
Derivation Rulesin RuleML: Tree Graph-theoretically, RuleML clauses are again OrdLab trees, as illustrated for this rule: Clauses in RuleML RuleML Online 2002
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 The 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 RuleML Online 2002
Derivation Rulesin UR-Datalog: Indexing <imp> <_head> <atom> <_opr><rel>travel</rel></_opr> <var>someone</var> <ind href="... .com">channel-tunnel</ind> </atom> </_head> <_body> <atom> <_opr><rel>carry</rel></_opr> <ind href="www.eurostar.com">eurostar</ind> <var>someone</var> </atom> </_body> </imp> DTD and Schema RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
rulebase . . . Subtree Subtree rfml . . . Subtree Subtree Export from RuleML: Tree Rewriting (I) XSLT translators What does this XML processing look like in XML? RuleML Online 2002
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 RuleML Online 2002
fact _head Subtree Export from RuleML: Tree Rewriting (II) XSLT translators hn Subtree RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
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 RuleML Online 2002
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 transformations Conclusions RuleML Online 2002
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 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 Conclusions RuleML Online 2002