Response to Internal Review of Consumer RuleML 1.02

From RuleML Wiki
Jump to: navigation, search

The comments below, in boxes, were received in regard to the Consumer RuleML 1.02 Internal Review. Immediately after each boxed comment, there is a bulleted RuleML response addressing it.

Seven new issues were submitted to the RuleML Wiki Issue Tracker due to comments made during the Internal Review:

increasing the number of open enhancement requests, to be addressed in Consumer RuleML Version 1.03 or later (see Category:Enhancements of Consumer RuleML 1.02). Note -- there are no open Errata of Consumer RuleML 1.02 (see Category:Errata of Consumer RuleML 1.02).

All comments received during the (extended and now closed) Internal Review comment period for Consumer RuleML 1.02 have been addressed in the responses below.

1 Nick Bassiliades

  1. Maybe instead of "join" the word "intersection" might be more appropriate? Join usually is connected to the databases join operator on some common attributes, which is not the same as intersection. Of course, since I have not gone very deep into the text, I might be wrong.
  2. I thought that Horn logic by definition does not include negation. So may be the phrase should read something like: "... Horn logic extended with strong and weak negation..."
  3. Also, I have difficulty in understanding the following:
      Consumer RuleML 1.02 does not allow the definition of
            ...
         Extra-logical entities (e.g. entities that are not 
         expressions of a logical language, such as rulebases,
         entailments or performatives)
         ...
    

    However, in the example: http://consumer.ruleml.org/1.02/exa/Hornlog/hornlog/oojdrew.xml the first few lines read:

    <fipa-message act="inform">
      <sender>
        <agent-identifier><name id="Me"/></agent-identifier>
      </sender>
      <receiver>
        <agent-identifier><name id="You"/></agent-identifier>
      </receiver>
    

    "inform" is a performative of FIPA agents So, I'm not sure how this combines with the requirement set above.

    Of course, later on you clarify (for another FIPA example) that consumer ruleml is supposed to embed RuleML into other languages, (e.g. FIPA) So, I guess that the <content> element is the one that refers to RuleML only. If this is the case, some comments in the XML file would help to clarify this.

  4. For the Glossary, I have a suggestion (I'm not sure how easy it is): to cluster elements / attributes according to the following: nodes (formulas, terms), edges, attributes. Of course this may require a lot of work and may not be useful if the intended usage of the glossary is only for reference.
  1. In regard to your suggestion for changing the wording regarding "join" in the introduction, please see the modifications in the lead of Specification_of_Consumer_RuleML_1.02
  2. Further, your suggestion for rewording of "Horn logic with strong ..." to "Horn logic extended with ..." was accepted, see the Design Requirements section.
  3. We appreciate your request for clarification of the statement of Consumer RuleML 1.02 requirements and intended usage with FIPA, which is accepted as an editorial issue for Consumer RuleML 1.02, see FIPA_Example_for_Consumer_RuleML_Needs_Clarification Further, the lead section of the Specification has been modified, with the design requirements moved to an Appendex. See Specification_of_Consumer_RuleML_1.02 and Design Requirements.
  4. Concerning your request for clustering of the Glossary, e.g. nodes, edges, attribute, we are not able to address this for Version 1.02 due to time constraints, but this issue has been accepted as an enhancement for Version 1.03 or later, see Glossary_Should_Have_Views

2 Antonis Bikakis

The quick links should either be moved somewhere else in the page, or the list should be by default collapsed, so that the readers can immediately access the main content of the page without having to scroll down or collapse the list first.

The quick links are now collapsed by default.

3 Paul Fodor

Where is the description of the semantics Consumer RuleML?

Predefined semantic styles that may be specified using the @style attribute are now described in the Predefined Semantic Styles section of the Consumer RuleML Specification, and more precisely defined on the page Predefined Semantic Styles of RuleML 1.02. The @style attribute may also hold an IRI pointing to a user-defined semantics. Semantic profiles (unambiguous semantics for a particular syntactic scope) that are relevant to Consumer RuleML include the following:

4 Guido Governatori

  1. I have noticed that Operation can be in the scope of Neg but not of Naf.
  2. Also, I’m not sure that the name “style” for the @style attribute really reflects its meaning.
  1. Thanks for finding the error in the content model of Naf (where Operation was not allowed, but should have been). This has been corrected, see https://github.com/RuleML/consumer-ruleml/commit/cb5e195e05ffb2e76ba9047e57aba1e990255a5c
  2. In response to your suggestion to rename the @style attribute, this has been accepted as an issue for Version 1.03 or later, see Attribute_References.

5 Anonymous Reviewer

Why do you use the term "Consumer"? Is there any implication?

In response to your question about the meaning of "Consumer", we have edited the lead section of Specification of Consumer RuleML 1.02 to clarify the significance of the name "Consumer RuleML".

6 Gen Zou

  1. The link to the Relax NG schema of Consumer RuleML 1.02 under http://wiki.ruleml.org/index.php/Specification_of_Consumer_RuleML_1.02#Appendix_3:_Validating_an_Instance_Against_a_Relax_NG_Schema is not correct. I think the correct link should be http://consumer.ruleml.org/1.02/relaxng/drivers/consumer-relaxed.rnc.
  2. How can I convert an existing Deliberation RuleML 1.02 knowledge base into a Consumer RuleML 1.02 instance?
  1. The broken link has been corrected.
  2. The possibility and procedure for converting an existing Deliberation RuleML 1.02 knowledge base in Consumer RuleMl 1.02 depends on the nature of the original knowledge base. Because Consumer RuleML 1.02 is less expressive, in some ways, than Deliberation RuleML 1.02, approximations may have to be made, but this is outside of the scope of the Specification of Consumer RuleML 1.02. Here are a few observations:

7 Anonymous Reviewer

I had a quick look at it and overall looks good.

  1. It is not very clearly stated who is the intended audience of this document, e.g. those that write rules, developers who will implement an engine, etc – adding a statement about this would make it more explicit whom this document is for.
  2. The beginning lists a set of requirements (though some of them are not really expressed as requirements, e.g. “Consumer RuleML 1.02 does not allow the definition of”), though it is not very clear how these requirements have been gathered, i.e. is the list comprehensive?
  1. The lead section of Specification_of_Consumer_RuleML_1.02 has been revised to include a statement regarding the intended audience.
  2. The design requirements have been moved to an appendix, see Design Requirements and revised for clarity. Further, the wording of the requirements has been revised, e.g. to use "should" instead of "is".

8 Anonymous Reviewer

I took a brief look at the document and what is missing is an explanation of what consumer RuleML is for. I doubt people will have any motivation to plow though this document unless they have a clear picture of what they'll gain after their hard work. In fact, I feel this is a problem with many other such documents. For instance, I took a look at the Deliberation RuleMl doc and the only way I could figure out what it is was by looking at the architecture diagram. I somehow think that these documents are not addressing your intended audience (if I understand correctly what this audience is).

  • The lead of the Specification of Consumer RuleML 1.02 has been revised, with the aim to provide a more complete and clearer motivation to the reader.
  • A Features subsection has been added to the Overview section, with a concise listing of the features available in the Consumer RuleML family.
  • Two diagrams showing Consumer RuleML and its features in context of the other RuleML families have been created (available at Specification of RuleML 1.02) and are linked from the Consumer RuleML Specification.

9 Alexandre Riazanov

Disclaimer: I am only looking at the spec from the perspective of an implementer.

  1. I would like to see an explanation why the new language has to be a proper subset of the combination of Reaction and Deliberation, rather than just a union of them. How does it affect an implementer?
  2. I kind of like how @style is used, but I don't see why it has to be Consumer-specific. Should it be a part of Deliberation, as well as the multi-valued semantics itself?
  3. I did not check the schema :-). As a matter of advise, if you want to make implementers' lives easier, the best thing to do is to make an inventory of all syntactic features and provide examples testing various combination of the features, at least of pairs of features.
  1. The material in the specification regarding the motivation for the Consumer RuleML Family has been substantially revised. Please see the lead section of Specification of Consumer RuleML 1.02 as well as the Design Requirements section. Consumer RuleML is intended to be embedded in other languages that, e.g., have their own performatives, and thus performatives are not included in Consumer RuleML.
  2. Only one aspect of the semantic style syntax is adopted in Consumer RuleML - the @style attribute that references a predefined or user-defined semantic style. The definition of semantic styles, through the <profile> element, is allowed in Reaction RuleML only. The @style attribute and <profile> element will be considered for future Deliberation RuleML versions, as in the issue Semantic Attributes and Semantic Profiles.
  3. The issue Test Cases for Implementers has been submitted in response to this comment, and will be address in the next version.

10 Anonymous Reviewer

(Paraphrased)

  1. Add missing glossary entries for temporal logic constructs (e.g. Allen)
  2. Create a simple tutorial with examples
  3. The examples in the /test directory are not visible to users
  4. Several points where best practices are not clear:
    • The purpose of elements such as <After> being top-level elements of the schema is not clear.
    • how to construct temporal elements, e.g. as intervals or by temporal arithmetic
    • difference between <Before> and <Precedes>, <After> and <Succeeds>
    • different uses of <Time> as formula and term
  5. The requirement of an <Interval> wrapper around Allen operators is confusing and redundant
  1. New glossary entries for temporal logic constructs have been added, e.g. Glossary_of_Consumer_RuleML_1.02#.3CAfter.3E
  2. The need for a simple tutorial has been submitted as an issue: Consumer_RuleML_Primer.
  3. The issue More_Consumer_RuleML_Examples has been submitted.
  4. The need for clarification of best practices has been submitted as an issue: Consumer_RuleML_Primer. These specific points, and others, should be addressed in that issue.
  5. The Consumer RuleML syntax has been modified so the Interval wrapper around Allen operators is no longer allowed, and Allen operators are directly usable as formulas. This change is documented in the issue Generic_Wrapper_Elements_May_Be_Skipped, now resolved.

11 Anonymous Reviewer

I had a quick look at this but would love to see more of an expansion of where Consumer RuleML fits (the paper you reference does not cover the positioning of Consumer RuleML).

  • The lead of the Specification of Consumer RuleML 1.02 has been revised, with the aim to provide a more complete and clearer motivation to the reader.
  • A Features subsection has been added to the Overview section, with a concise listing of the features available in the Consumer RuleML family.
  • Two diagrams showing Consumer RuleML and its features in context of the other RuleML families have been created (available at Specification of RuleML 1.02) and are linked from the Consumer RuleML Specification.