[RuleML-all] Page-Level Validation

David Dossot david at dossot.net
Fri Aug 10 11:19:57 ADT 2007


Hi Roberto,

What I was suggesting was to assert your different form settings like this:

        <Atom>
          <Rel>Setting</Rel>
          <Ind>Actual Setting Name</Ind>
          <Data xs:type>Actual Setting Value</Data>
        </Atom>

This simplifies atom matching because the Rel is always "Setting" and not
the Setting Name, hence you only need one Implication per particular Setting
you want to test its validity ; and a unique Query to find all the invalid
ones.

Regards,
David


On 8/10/07, Colnaghi Junior, Roberto (R&D Brazil) <roberto.junior at hp.com>
wrote:
>
> Hello David,
>
> So, the ruleml file should turn into something like this >>
>
> * But where will the "Valid" deduction be made here? I feel like I'm
> missing this part.
> * Also, how can I add the other page fields (defaultSubject,
> defaultMessage,...)? I need to duplicate the <Implies> section for each
> one?
>
>
>
>
> <?xml version="1.0" encoding="utf-8"?>
> <RuleML xmlns="http://www.ruleml.org/0.9/xsd"
> xsi:schemaLocation="http://www.ruleml.org/0.9/xsd
> ruleml-0_9-nafdatalog.xsd "
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>   <oid>
>     <Ind>SMTP Settings KB</Ind>
>   </oid>
>   <Assert>
>     <!--  Implication: E-mail field is valid if complying with regex -->
>     <Implies>
>       <head>
>         <Atom>
>           <Rel>Setting</Rel>
>           <Var>Name</Var>
>           <Var>Value</Var>
>         </Atom>
>       </head>
>       <body>
>         <Atom>
>           <Rel>Name</Rel>
>           <Var>DefaultEmailAddress</Var>
>           <Ind uri="nxbre://binder">regex(w+@[w+\.]+w+)</Ind>
>         </Atom>
>       </body>
>     </Implies>
>   </Assert>
>   <!--  Query: Find out all (non) valid settings -->
>   <Query>
>     <oid>
>       <Ind>Invalid Settings</Ind>
>     </oid>
>     <And>
>       <Atom>
>         <Rel>Setting</Rel>
>         <Var>Name</Var>
>         <Var>Value</Var>
>       </Atom>
>       <Naf>
>         <Atom>
>           <Rel>Valid</Rel>
>           <Var>Name</Var>
>         </Atom>
>       </Naf>
>     </And>
>   </Query>
> </RuleML>
>
>
>
>
>
> ________________________________
>
> From: ddossot at gmail.com [mailto:ddossot at gmail.com] On Behalf Of David
> Dossot
> Sent: Wednesday, August 08, 2007 6:30 PM
> To: Colnaghi Junior, Roberto (R&D Brazil)
> Cc: ruleml-all at ruleml.org
> Subject: Re: [RuleML-all] Page-Level Validation
>
>
> Hi Roberto,
>
> Conceptually, validation rules are as good candidates as any other
> business rules. The viability of the solution might in fact be
> determined by the expected performance of the resulting application and
> how it is impacted by the particular engine implementation you intend to
> use.
>
> Concerning your query question, you can look for settings facts that
> have no valid facts associated: that would give you the invalid ones.
> For this, I would refactor the setting fact like this:
>
>       <Atom>
>         <Rel>Setting</Rel>
>         <Var>Name</Var>
>         <Var>Value</Var>
>
>       </Atom>
>
> and will query the invalid ones like that:
>
> <Query>
>    <oid>
>      <Ind>Invalid Settings</Ind>
>    </oid>
>    <And>
>       <Atom>
>         <Rel>Setting</Rel>
>         <Var>Name</Var>
>         <Var>Value</Var>
>
>       </Atom>
>       <Naf>
>
>         <Atom>
>           <Rel>Valid</Rel>
>           <Var>Name</Var>
>         </Atom>
>       </Naf>
>    </And>
> </Query>
>
>
>
> On 8/8/07, Colnaghi Junior, Roberto (R&D Brazil) <roberto.junior at hp.com>
> wrote:
>
>         Hi there,
>
>         Does anyone use RuleML to do page level validation like required
> fields,
>         regex compliance, range validation, etc. ? Is it recommended (or
> even
>         viable)?
>
>
>         I'm trying to figure out how to explain through ruleml (using
> NxBRE) the
>         following:
>
>         E-mail Address:  simple regex, like (w+@[w+\.]+w+)
>
>         Display Name:  required field, can not be blank/null
>
>         Subject: max lenght of 255 chars
>
>         Message: max length of 4000 chars
>
>
>         I guess a binder would do this, but I'm not sure about how to
> express
>         the implications and facts in a reasonable manner.
>
>         Any help or tip would be great.
>         Thanks!
>
>
>
>         <?xml version="1.0" encoding="utf-8"?>
>         <RuleML xmlns=" http://www.ruleml.org/0.9/xsd
> <http://www.ruleml.org/0.9/xsd> "
>         xsi:schemaLocation="http://www.ruleml.org/0.9/xsd
>         ruleml-0_9-nafdatalog.xsd "
>         xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance
> <http://www.w3.org/2001/XMLSchema-instance> ">
>         <oid>
>            <Ind>E-mail Settings KB</Ind>
>         </oid>
>         <Assert>
>            <!--  Implication: E-mail field is valid if complying with
> regex -->
>            <Implies>
>              <head>
>                <Atom>
>                  <Rel>Valid</Rel>
>                  <Var>Setting</Var>
>                </Atom>
>              </head>
>              <body>
>                <Atom>
>                  <Rel>Email</Rel>
>                  <Var>Setting</Var>
>                  <Ind uri="nxbre://binder">regex(w+@[w+\.]+w+)</Ind>
>                </Atom>
>              </body>
>            </Implies>
>            <!--  E-mail field on page is doingTests at ruleml.org -->
>            <Atom>
>              <Rel>Email</Rel>
>              <Ind>PageSetting01</Ind>
>              <Ind>doingTests at ruleml.org</Ind>
>            </Atom>
>         </Assert>
>         <!--  Query: Find out all (non) valid settings -->
>         <Query>
>            <oid>
>              <Ind>Invalid Settings</Ind>
>            </oid>
>            <Atom>
>              <Rel>!valid</Rel> ???how to express negation?
>              <Var>Setting</Var>
>            </Atom>
>         </Query>
>         </RuleML>
>         _______________________________________________
>         RuleML-all mailing list
>         RuleML-all at ruleml.org
>         http://mail.ruleml.org/mailman/listinfo/ruleml-all
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.ruleml.org/pipermail/ruleml-all/attachments/20070810/fd81cd82/attachment.htm


More information about the RuleML-all mailing list