- From: Axel Polleres <axel.polleres@urjc.es>
- Date: Fri, 02 Jun 2006 15:03:26 +0200
- To: public-rif-wg@w3.org
- Message-ID: <4480371E.8030907@urjc.es>
Find attached my reaction to action item http://www.w3.org/2005/rules/wg/track/actions/20 best, axel -- Dr. Axel Polleres email: axel@polleres.net url: http://www.polleres.net/
This addresses action item: http://www.w3.org/2005/rules/wg/track/actions/20 Here is a try for mapping WRL and the language of DLV into the condition language proposed by Harold Boley et al. As for features of the languages/systems, please refer to my previous analysis of the two languages in terms of RIFRAF, see http://lists.w3.org/Archives/Public/public-rif-wg/2006May/0197 http://lists.w3.org/Archives/Public/public-rif-wg/2006May/0198 Again, I will use --> comment axel: to preceed concrete comments/suggestions on the proposal. ============================================================================ I will go through the basic condition language and the proposed extensions: A.1 Basis: Positive Conditions + A.2 Extension: Negative Conditions I take the extended version of basic syntax with negation as a starting point: Data ::= value Ind ::= object Var ::= '?' name TERM ::= Data | Ind | Var | Expr Expr ::= Fun '(' TERM* ')' Atom ::= Rel '(' TERM* ')' | TERM '=' TERM LITFORM ::= Atom | 'Neg' Atom | 'Naf' Atom | 'Naf' 'Neg' Atom QUANTIF ::= 'Exists' Var+ '(' CONDIT ')' CONJ ::= 'And' '(' CONDIT* ')' DISJ ::= 'Or' '(' CONDIT* ')' CONDIT ::= LITFORM | QUANTIF | CONJ | DISJ [WRL] The language of WRL coincides with the proposed language modulo additional frame-based syntax: The language is also an ontology language and allows syntactical constructs inherited from F-Logic, even schema-level statements in conditions such as: - checking attribute filler assertions: 'hasValue' - subconcept relationship assertions: 'subConceptOf' - membership assertions: 'memberOf' - schema assertions on attribute ranges: 'ofType' (constraining, LP style) 'impliesType (inferring, OWL style) as well-as (built-in) comparison operators in conditions. If these notions are not to be covered in RIF itself, we have to define canonical mappings in terms of designated binary and ternary relations, e.g. a naive such mapping for the respective keywords occurring in conditions would be: 1) a[b hasValue c] <--> wrl:hasValue(a,b,c) 2) a memberOf b <--> wrl:memberOf(a,b) 3) a subConceptOf b <--> wrl:subConceptOf(a,b) 4) a[b impliesType c] <--> wrl:impliesType(a.b.c) 5) a[b ofType c] <--> wrl:ofType(a,b,c) Note that the designated relations wrl:hasValue, wrl:subConceptOf, wrl:memberOf , wrl:impliesType, and wrl:ofType carry additional semantics which may be axiomatized, as indicated at http://www.w3.org/Submission/WRL/, Section 3.4. As for objects vs. values: Datatyped values are distinguished in WRL by designated function symbols, values can be number, strings or functional terms, object ids are IRIs. --> comment axel: From the current condition proposal, it is not yet clear how values and objects are to be disdinguished syntactically. This needs refinement, for instance, by adopting the WRL proposal or by distinguishing literal values as in RDF. [DLV] has a very simple condition language, namely comma-separated lists of possibly default negated body literals. This fit's directly into in the proposal, taking the subset of function-free LITFORMS and replacing: 'And' <--> ',' 'neg' <--> '-' (strong negation) 'naf' <--> 'not' (default negation) DLV does not make a disctinction between objects and values. --> comment axel: BTW: For a later stage syntax shall also allow negation in front of non-atomic conditions, IMO. A.3 Extension: Resource Conditions [WRL] Supports a basic, extensible set of built-in functions and built-in relations. [DLV] Allows definition of builtins which may have different possible binding patterns associated. --> comment axel: As for extensions A.3 (builtin's and conditions) as already mentioned before, I'd suggest that it shall be possible to define allowed binding pattterns for such builtins, as well as choices between infix,prefix and postfix notation for binary builtins: This turns out to be useful, e.g. for < (nobody wants to write '<(X,Y)'). --> comment axel: Furthermore, the syntax for such built-in relations shall in a second phase allow set-valued built-ins such as aggregates (count,min,max,avg), i.e. built-ins, which do not only accept certain bound values as input, but also the extension of a relation), see DLVHEX for a proposal on a general syntax/semantics for this. A.4 Extension: Resource Conditions [WRL] no. WRL has an RDF syntax and is compatible with most of RDF. In this way, RDF statements such as basic graph patterns can easily be seen as conditions in the rules, although a concrete mapping to SPARQL is yet undefined. [DLV] no. However, RDF access is allowed in the DLVHEX extenstion via a 4ary built-in predicate taking a URL as argument and having S,P,O as "output" parameters. This could be extended to take a SPARQL query instead of the URL. A.5 Extension: Ontology Conditions [WRL] partially. WRL accepts ontology conditions using its own ontology language; including schema-level statements. Additionally, OWL-DLP conditions are accepted, modulo the mapping between OWL and WRL. [DLV] no. Hovewer, the DLVHEX extension allows bidirectional access (i.e. more than querying only) to OWL via dl-predicates. i.e. factual knowledge (ABOX) can be added to the OWL KB before querying. --> comment axel: Since the extension of OWL querying suggested in DLV has a clearly defined and intuitive semantics, it might be worthwhile to adopt it as a slight extension of the query-only interfacing. B. Extension: RIF Horn Rule Language [WRL] yes. [DLV] yes. C. Extension: RIF Production and Reaction Rule Languages [DLV] no. [WRL] no.
Received on Friday, 2 June 2006 13:04:07 UTC