[Jdrew-all] Roadmap for Open Source OO jDREW Development

Boley, Harold Harold.Boley at nrc-cnrc.gc.ca
Wed Jun 22 20:05:14 ADT 2005


Roadmap for Open Source OO jDREW Development     Version 2005-06-22
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Hello Colleagues,

This Roadmap is to assist the Open Source Community emerging around
OO jDREW: Object-Oriented Java Deductive Reasoning Engine for the Web
(http://www.jdrew.org/oojdrew), with further development.

OO jDREW is a reference implementation of Derivation Rules RuleML,
but can be extended for other kinds of RuleML rules, e.g Integrity,
Transformation, and Reaction Rules.

The version numbers try to synchronize OO jDREW with the RuleML XSD
versions (cf. http://www.ruleml.org/spec) for increasingly expressive
sublanguages (http://www.ruleml.org/modularization/#Model), but also
suggest to quickly proceed towards an OO jDREW 1.0.

The first step is implementing more of RuleML 0.89 as OO jDREW 0.89.

Please send your contributions -- ideas, test cases, bug reports, any
other feedback, and code -- to the list jdrew-all at jdrew.org.

Bruce Spencer has started jDREW and sent our general email about this
new (OO) jDREW mailing list, which can be found in the archive here:
http://mail.ruleml.org/pipermail/jdrew-all/2005-June/000000.html

If you are new to this Community, please first search for answers to
your questions in the OO jDREW website (http://www.jdrew.org/oojdrew)
and in the archive before asking the list.

Marcel or Colleagues will try to respond as time permits, and Marcel
will start coordinating this development: maball at gmail.com

Best,
Harold Boley and Marcel Ball


-------------------------------------------------------------------

OO jDREW 0.88 (the 22June05 system)


OO jDREW 0.89

Data element
  Tag Data vs. Ind indicated in OO jDREW's Term object by a flag
    Disambiguate e.g. <Data>abc</Data> vs. <Ind>abc</Ind> 
  With 'type' attribute (without 'type' attribute: default 'Thing')
    Optimize for XSD Datatypes (cf. Builtins)
      May want to use XSD datatypes for current OO jDREW built-in
      datatypes (Integer <-> xsd:int, String <-> xsd:string, etc.)

Reify element
  Follow http://www.ruleml.org/indoo/indoo.html#Programs-as-Data
  E.g. <Reify><Implies>...</Implies></Reify> could be represented as
       <Cterm>
         <Ctor>$Reify</Ctor>
         <Cterm><Ctor>Implies</Ctor>. . .</Cterm>
       </Cterm>
       where ". . ." is recursive transformation of "..."

Neg element
  For atomic formulas
    Technique from SCLP and several others: treat e.g.
      <Neg>
        <Atom>
          <Rel>proprietary</Rel>
          <Var>object</Var>
        </Atom>
      </Neg>
    as if it was positive atom that happens to use 
    Neg-proprietary relation:
      <Atom>
        <Rel>Neg-proprietary</Rel>
        <Var>object</Var>
      </Atom>
    and add integrity rule to make sure that
      <Rel>proprietary</Rel> and <Rel>Neg-proprietary</Rel> are
      mutually exclusive
  For non-atomic formulas
    --> FOL RuleML

OIDs
  Principles/Basics
    Unique symbolic names mostly done for Atom
      Represented as a special slot (even for a positional Atom)
      Hash table of OID symbols
        Uniqueness tests for fact Atoms
        Fast lookup for (Query or Implies) body Atoms
        Issue in bottom-up (separate facts and rules) vs. top-down
    URL values of wid/wref attributes (Webizing)
      Plugin rewriting system (in RuleML itself?) for URL normalization
      (cf. http://gbiv.com/protocols/uri/rev-2002/rfc2396bis.html)
    Treatment of Variables and Cterms
  Webizing
    Individuals
    Relations
    Slots
    Types
    Clauses (former rlab, anchoring)
      Even symbolic names still need to be implemented for Implies
    Rulebases (former rbaselab)
    Atoms, being facts (anchoring) and occurring in rules
  Issues
    Skolems in anchored Implies head Atoms should be
    (re)instantiated in bottom-up conclusion generation


OO jDREW 0.9
  Sublanguage hornlogeq (undirected equality)
    Ground equality: Cf. Jing Mei's equality tables
  Sublanguage dishornlog (perhaps with 'Near-Horn' Community)


OO jDREW 0.91
  Sublanguage folog (perhaps with Marmoset / other FOL Communities)
  (cf. http://www.cs.unb.ca/research-groups/argroup/marmoset/)
  Subfamily FOL+ (perhaps postpone)


OO jDREW 0.92
  Functional RuleML (directed equality): Cf. Relfun
  Integrity rules (generalizing SCLP's Mutex)
  SWSL (with SWSI Community): Cf. FLORA 2
  WRL (with WSMO Community): Jos de Bruin et al.


OO jDREW 0.93
  SWRL (with OWL Community):
    Cf. Hoolet, Christine Golbreich's and Jing Mei's DL approaches
  Complete the SWRL set of Builtins


Fine Validator 0.9 (perhaps as plugin to a future OO jDREW)

minCard and maxCard
  <slot mincard="1" maxcard="2"><Set><Data>abc</Data></Set></slot>
  succeeds since card="1"
  <slot mincard="1" maxcard="2"><Set></Set></slot>
  fails since card="0"


Positional-Slotted Input Syntax Parser 0.9
  POSL parser using a subset of the forthcoming LR(k) ANTLR grammar
  (cf. http://www.ruleml.org/posl/converter.jnlp)

-------------------------------------------------------------------


More information about the Jdrew-all mailing list