[RuleML-all] RuleML 0.91 Naf Datalog and Integrity

Boley, Harold Harold.Boley at nrc-cnrc.gc.ca
Fri Mar 28 10:27:21 AST 2008


Hi David,
 
I see.
 
Actually, for storing integrity constraints, only an Entails
as a whole is Asserted, not any of its children.

For example, in

http://www.ruleml.org/0.91/exa/FOL+/naffolog/constraint.ruleml

the Rulebase

		<Rulebase>
		    <Neg>
		      <And>
		        <Atom>
		          <Rel>gold</Rel>
		          <Var>object</Var>
		        </Atom>
		        <Atom>
		          <Rel>rusty</Rel>
		          <Var>object</Var>
		        </Atom>       
		      </And>
		    </Neg>
		</Rulebase>

in the Entails head can still be treated like a Query

		<Query>
		    <Naf>
		      <And>
		        <Atom>
		          <Rel>gold</Rel>
		          <Var>object</Var>
		        </Atom>
		        <Atom>
		          <Rel>rusty</Rel>
		          <Var>object</Var>
		        </Atom>       
		      </And>
		    </Naff>
		</Query>

over the Entails body for your implementation purpose.
 
See also the glossary entry for Entails, which links to its XSD module:
 
	<!--
		*** Entails ***
		Well-known in (meta-)logic (earlier called 'Turnstile',
and 'Demo' in
		Kowalski/Bowen's object/meta-level-amalgamated logic).
		
		See http://www.ruleml.org/0.91/glossary/#gloss-Entails
		
		content model:
		( oid?, (body | Rulebase), (head | Rulebase) )
	-->

Best,
Harold

________________________________

From: ddossot at gmail.com [mailto:ddossot at gmail.com] On Behalf Of David
Dossot
Sent: March 27, 2008 9:17 PM
To: Boley, Harold
Cc: ruleml-all at ruleml.org
Subject: Re: [RuleML-all] RuleML 0.91 Naf Datalog and Integrity


Hi Harold,

Thanks for your response.

I am aware that integrity constraints are expressed with
Entails/Rulebase in 0.91 but I am confused by what would be the right
approach for writing such an integrity Rulebase in the Naf Datalog
sub-language.

More precisely: in Naf Datalog, a Rulebase element follows this content
model: ( oid?, ( formula | Atom | Implies | Equivalent | Forall )* )

What should I use to express the integrity constraint? An Implies
element? If yes, what would be the Head then, since I am not actually
willing to assert a new fact. A Query would be more suited there (in 0.9
the Integrity element was very similar to a Query in disguise).

What do you think?

Thanks again!
David



On Thu, Mar 27, 2008 at 4:15 PM, Boley, Harold
<Harold.Boley at nrc-cnrc.gc.ca> wrote:


	> How would you write the "inconsistency of a watch being both
gold and
	rusty"
	> in RuleML 0.91 Naf Datalog?
	
	In version 0.91, the "Examples" section was given a structure
	reflecting RuleML 0.91 sublanguages:
http://www.ruleml.org/0.91/exa
	So, some mapping is needed from the flat 0.9 examples.
	
	In particular, the integrity constraint example
	http://www.ruleml.org/0.9/exa/constraint.ruleml
	now is -- in updated form -- at
	http://www.ruleml.org/0.91/exa/FOL+/naffolog/constraint.ruleml
	
	Following slides 33-34 of
	"The RuleML Family of Web Rule Languages"
	http://www.ruleml.org/talks/RuleML-Family-PPSWR06-talk-up.pdf
	the 0.9 use of special Protect and Integrity elements was
replaced
	in 0.91 with generally usable Entails and Rulebase elements.
	
	Also, the LP-like Naf was changed to an FOL-like Neg here.
	You could change that again to Naf for the NxBRE implementation.
	
	Entails goes beyond FOL -- it is interpreted in the manner
	of Reiter's epistemic modal entailment.
	
	Best,
	Harold
	




More information about the RuleML-all mailing list