www.pudn.com > jenaSearch.rar > demo.rules, change:2004-02-10,size:1476b


# Example rule set showing how to implement just symmetric and 
# transitive properties. 
 
 
###############################################################               
# This version defines a specific property to be transitive 
# and symmetric. 
# It computes the property closure in forward mode - so everything 
# is caculated when the graph is prepared - whether it is needed or not 
 
[transitiveRule: (?A demo:p ?B), (?B demo:p ?C) -> (?A demo:p ?C) ] 
               
[symmetricRule: (?Y demo:p ?X) -> (?X demo:p ?Y) ] 
 
###############################################################               
# This approach allows a property to be declared symmetric transitive 
# and computes the property closure in forward mode - so everything 
# is caculated when the graph is prepared - whether it is needed or not 
 
#[transitiveRule: (?P rdf:type demo:TransProp)  
#              (?A ?P ?B), (?B ?P ?C) -> (?A ?P ?C) ] 
#               
#[symmetricRule: (?P rdf:type demo:TransProp)  
#              (?Y ?P ?X) -> (?X ?P ?Y) ] 
                             
###############################################################               
# This appoach allows a property to be declared symmetric transitive 
# and uses the hybrid rules to minimise overheads and only caculate 
# the transitive closure on demand 
 
#-> tableAll(). 
# 
#[rule1: (?P rdf:type demo:TransProp) -> 
#			[ (?X ?P ?Y) <- (?Y ?P ?X) ] 
#			[ (?A ?P ?C) <- (?A ?P ?B), (?B ?P ?C) ]  
#]