<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rdf:RDF [
     <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns'>
     <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema'>
	 <!ENTITY owl 'http://www.w3.org/2002/07/owl'>
	 <!ENTITY xsd 'http://www.w3.org/2001/XMLSchema'>
     <!ENTITY ruleml 'http://www.ruleml.org/0.88/xsd'>
     <!ENTITY swrl 'http://www.w3.org/2003/11/swrl'>
]>

<Assert 
  xmlns:rdf ="&rdf;#"
  xmlns:rdfs="&rdfs;#"
  xmlns:owl ="&owl;#"
  xmlns:xsd ="&xsd;#"
  xmlns:ruleml="&ruleml;#"
  xmlns:swrl="&swrl;#"  
  xmlns:base="&ruleml;"
>

<And innerclose="universal">

<!-- swrl
<rdf:Description rdf:about="">
  <rdfs:comment>RDF Schema definition of the RDF Concrete Syntax for the Semantic Web Rule Language</rdfs:comment>
  <owl:versionInfo>$Id: swrl.rdf,v 1.1 2004/05/21 18:46:39 vivien Exp $</owl:versionInfo>
</rdf:Description>
-->

<Atom>
  <oid/>
  <opr><Rel wref="rdf:Description"/></opr>
  <slot><Ind wref="rdfs:comment"/><Data>RuleML definition of the RDF Concrete Syntax for the Semantic Web Rule Language</Data></slot> 
  <slot><Ind wref="owl:versionInfo"/><Data>$Id: swrl.ruleml,v 1.1 2005/03/11 10:36:12 vivien Exp $</Data></slot>
</Atom>

<!-- ruleml:Implies
<rdfs:Class rdf:ID="Implies">
  <rdfs:comment>implication (rule)</rdfs:comment> 
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="ruleml:Implies"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:comment"/><Data>implication (rule)</Data></slot> 
</Atom>

<!-- ruleml:head
<rdf:Property rdf:ID="head">
  <rdfs:domain rdf:resource="#Implies" /> 
  <rdfs:range rdf:resource="&rdf;#List" /> 
  <rdfs:comment>rule head (consequent): List of Atom</rdfs:comment> 
</rdf:Property>
-->

<Atom>
  <oid><Ind wref="ruleml:head"/></oid>
  <opr><Rel wref="rdf:Property"/></opr>
  <slot><Ind wref="rdfs:domain"/><Ind wref="ruleml:Implies"/></slot> 
  <slot><Ind wref="rdfs:range"/><Ind wref="&rdf;#List"/></slot>
  <slot><Ind wref="rdfs:comment"/><Data>rule head (consequent): List of Atom</Data></slot>
</Atom>

<!-- ruleml:body
<rdf:Property rdf:ID="body">
  <rdfs:domain rdf:resource="#Implies"/>
  <rdfs:range rdf:resource="&rdf;#List"/>
  <rdfs:comment>rule body (antecedent):  List of Atom</rdfs:comment>
</rdf:Property>
-->

<Atom>
  <oid><Ind wref="ruleml:body"/></oid>
  <opr><Rel wref="rdf:Property"/></opr>
  <slot><Ind wref="rdfs:domain"/><Ind wref="ruleml:Implies"/></slot> 
  <slot><Ind wref="rdfs:range"/><Ind wref="&rdf;#List"/></slot>
  <slot><Ind wref="rdfs:comment"/><Data>rule body (consequent): List of Atom</Data></slot>
</Atom>

<!-- swrl:Variable
<rdfs:Class rdf:ID="Variable">
  <rdfs:comment>indicate that a URI is being used as a variable</rdfs:comment>
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="swrl:Variable"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:comment"/><Data>indicate that a URI is being used as a variable</Data></slot> 
</Atom>

<!-- swrl:Atom
<rdfs:Class rdf:ID="Atom">
  <rdfs:comment>common superclass</rdfs:comment>
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="swrl:Atom"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:comment"/><Data>common superclass</Data></slot> 
</Atom>

<!-- swrl:argument1
<rdf:Property rdf:ID="argument1">
  <rdfs:domain rdf:resource="#Atom"/>
  <rdfs:comment>can be a Literal or Resource</rdfs:comment>
</rdf:Property>
-->

<Atom>
  <oid><Ind wref="swrl:argument1"/></oid>
  <opr><Rel wref="rdf:Property"/></opr>
  <slot><Ind wref="rdfs:domain"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:comment"/><Data>can be a Literal or Resource</Data></slot>
</Atom>

<!-- swrl:argument2
<rdf:Property rdf:ID="argument2">
  <rdfs:domain rdf:resource="#Atom"/>
  <rdfs:comment>can be a Literal or Resource</rdfs:comment>
</rdf:Property>
-->

<Atom>
  <oid><Ind wref="swrl:argument2"/></oid>
  <opr><Rel wref="rdf:Property"/></opr>
  <slot><Ind wref="rdfs:domain"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:comment"/><Data>can be a Literal or Resource</Data></slot>
</Atom>

<!-- swrl:ClassAtom
<rdfs:Class rdf:ID="ClassAtom">
  <rdfs:subClassOf rdf:resource="#Atom" /> 
  <rdfs:comment>consists of a classPredicate and argument1</rdfs:comment> 
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="swrl:ClassAtom"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:subClassOf"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:comment"/><Data>consists of a classPredicate and argument1</Data></slot>
</Atom>

<!-- swrl:classPredicate
<rdf:Property rdf:ID="classPredicate">
  <rdfs:domain rdf:resource="#ClassAtom"/>
  <rdfs:range rdf:resource="&rdfs;#Class"/>
</rdf:Property>
-->

<Atom>
  <oid><Ind wref="swrl:classPredicate"/></oid>
  <opr><Rel wref="rdf:Property"/></opr>
  <slot><Ind wref="rdfs:domain"/><Ind wref="swrl:ClassAtom"/></slot> 
  <slot><Ind wref="rdfs:range"/><Ind wref="&rdfs;#Class"/></slot>
</Atom>

<!-- swrl:IndividualPropertyAtom
<rdfs:Class rdf:ID="IndividualPropertyAtom">
  <rdfs:subClassOf rdf:resource="#Atom" /> 
  <rdfs:comment>consists of a propertyPredicate (owl:ObjectProperty), argument1 (owl:Thing), and argument2 (owl:Thing)</rdfs:comment> 
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="swrl:IndividualPropertyAtom"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:subClassOf"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:comment"/><Data>consists of a propertyPredicate (owl:ObjectProperty), argument1 (owl:Thing), and argument2 (owl:Thing)</Data></slot>
</Atom>

<!-- swrl:propertyPredicate
<rdf:Property rdf:ID="propertyPredicate">
  <rdfs:domain rdf:resource="#Atom"/>
  <rdfs:range rdf:resource="&rdf;#Property"/>
</rdf:Property>
-->

<Atom>
  <oid><Ind wref="swrl:propertyPredicate"/></oid>
  <opr><Rel wref="rdf:Property"/></opr>
  <slot><Ind wref="rdfs:domain"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:range"/><Ind wref="&rdf;#Property"/></slot>
</Atom>

<!-- swrl:DatavaluedPropertyAtom
<rdfs:Class rdf:ID="DatavaluedPropertyAtom">
  <rdfs:subClassOf rdf:resource="#Atom" /> 
  <rdfs:comment>consists of a propertyPredicate (owl:DatatypedProperty), argument1 (owl:Thing), and argument2 (rdfs:Literal)</rdfs:comment> 
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="swrl:DatavaluedPropertyAtom"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:subClassOf"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:comment"/><Data>consists of a propertyPredicate (owl:DatatypedProperty), argument1 (owl:Thing), and argument2 (rdfs:Literal)</Data></slot>
</Atom>

<!-- swrl:SameIndividualAtom
<rdfs:Class rdf:ID="SameIndividualAtom">
  <rdfs:subClassOf rdf:resource="#Atom" /> 
  <rdfs:comment>consists of argument1 (owl:Thing) and argument2 (owl:Thing)</rdfs:comment> 
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="swrl:SameIndividualAtom"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:subClassOf"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:comment"/><Data>consists of argument1 (owl:Thing) and argument2 (owl:Thing)</Data></slot>
</Atom>

<!-- swrl:DifferentIndividualsAtom
<rdfs:Class rdf:ID="DifferentIndividualsAtom">
  <rdfs:subClassOf rdf:resource="#Atom" /> 
  <rdfs:comment>consists of argument1 (owl:Thing) and argument2 (owl:Thing)</rdfs:comment> 
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="swrl:DifferentIndividualsAtom"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:subClassOf"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:comment"/><Data>consists of argument1 (owl:Thing) and argument2 (owl:Thing)</Data></slot>
</Atom>

<!-- swrl:BuiltinAtom
<rdfs:Class rdf:ID="BuiltinAtom">
  <rdfs:subClassOf rdf:resource="#Atom" /> 
  <rdfs:comment>consists of a builtin and a List of arguments</rdfs:comment> 
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="swrl:BuiltinAtom"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:subClassOf"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:comment"/><Data>consists of a builtin and a List of arguments</Data></slot>
</Atom>

<!-- swrl:builtin
<rdf:Property rdf:ID="builtin">
  <rdfs:domain rdf:resource="#BuiltinAtom"/>
  <rdfs:range rdf:resource="#Builtin"/>
</rdf:Property>
-->

<Atom>
  <oid><Ind wref="swrl:builtin"/></oid>
  <opr><Rel wref="rdf:Property"/></opr>
  <slot><Ind wref="rdfs:domain"/><Ind wref="swrl:BuiltinAtom"/></slot> 
  <slot><Ind wref="rdfs:range"/><Ind wref="#swrl:Builtin"/></slot>
</Atom>

<!-- swrl:arguments
<rdf:Property rdf:ID="arguments">
  <rdfs:domain rdf:resource="#BuiltinAtom"/>
  <rdfs:range rdf:resource="&rdf;#List"/>
</rdf:Property>
-->

<Atom>
  <oid><Ind wref="swrl:arguments"/></oid>
  <opr><Rel wref="rdf:Property"/></opr>
  <slot><Ind wref="rdfs:domain"/><Ind wref="swrl:BuiltinAtom"/></slot> 
  <slot><Ind wref="rdfs:range"/><Ind wref="&rdf;#List"/></slot>
</Atom>

<!-- swrl:DataRangeAtom
<rdfs:Class rdf:ID="DataRangeAtom">
  <rdfs:subClassOf rdf:resource="#Atom" /> 
  <rdfs:comment>consists of a dataRange and argument1</rdfs:comment> 
</rdfs:Class>
-->

<Atom>
  <oid><Ind wref="swrl:DataRangeAtom"/></oid>
  <opr><Rel wref="rdfs:Class"/></opr>
  <slot><Ind wref="rdfs:subClassOf"/><Ind wref="swrl:Atom"/></slot> 
  <slot><Ind wref="rdfs:comment"/><Data>consists of a dataRange and argument1</Data></slot>
</Atom>

<!-- swrl:dataRange
<rdf:Property rdf:ID="dataRange">
  <rdfs:domain rdf:resource="#DataRangeAtom"/>
  <rdfs:range rdf:resource="&owl;#DataRange"/>
</rdf:Property>
-->

<Atom>
  <oid><Ind wref="swrl:dataRange"/></oid>
  <opr><Rel wref="rdf:Property"/></opr>
  <slot><Ind wref="rdfs:domain"/><Ind wref="swrl:DataRangeAtom"/></slot> 
  <slot><Ind wref="rdfs:range"/><Ind wref="&owl;#DataRange"/></slot>
</Atom>

</And>
  
</Assert>