[jboss-svn-commits] JBL Code SVN: r35808 - in labs/jbossrules/branches/DRLv6/src: main/java/org/drools/lang/dl and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Oct 31 22:16:45 EDT 2010


Author: dsotty
Date: 2010-10-31 22:16:44 -0400 (Sun, 31 Oct 2010)
New Revision: 35808

Added:
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/Blank.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/TypedObject.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AnnotationDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AnnotationPropertyDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ClassDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_CountDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DataPropertyDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DatatypeDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DefinitionDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_EnumTypeDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_FacetDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_FactDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_IndividualDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_IriDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ObjectPropertyDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_OntologyDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RelationDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RestrictedTypeDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_SelfDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ValueDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aBaseDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aCompositeDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aConceptDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aDeclarationDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aLeafDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/iri/
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/util/
   labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterLexer.g
   labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterParser.g
   labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterTreeBuilder.g
   labs/jbossrules/branches/DRLv6/src/main/resources/iri.g
   labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/IRI_Test.java
   labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Manchester_Test.java
   labs/jbossrules/branches/DRLv6/src/test/resources/amminoacids.manchester
   labs/jbossrules/branches/DRLv6/src/test/resources/bhakti.manchester
   labs/jbossrules/branches/DRLv6/src/test/resources/omg_metamodel.manchester
   labs/jbossrules/branches/DRLv6/src/test/resources/organic_fun_group.manchester
   labs/jbossrules/branches/DRLv6/src/test/resources/pizza.manchester
   labs/jbossrules/branches/DRLv6/src/test/resources/tourism.manchester
Removed:
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/Manchester.tokens
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_BaseDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_CompositeDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_LeafDescr.java
   labs/jbossrules/branches/DRLv6/src/main/resources/Manchester.g
Modified:
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/ParserHelper.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DLDescrFactory.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AndDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ExistsDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ForallDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ImpliesDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_NegDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_OrDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_PropertyDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RootNode.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_TypeDescr.java
   labs/jbossrules/branches/DRLv6/src/main/java/org/drools/util/DRLTreeMLFormatter.java
   labs/jbossrules/branches/DRLv6/src/main/resources/DLTreeBuilder.g
   labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Lexer.g
   labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Parser.g
   labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Rule_Test.java
Log:


Deleted: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/Manchester.tokens
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/Manchester.tokens	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/Manchester.tokens	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,432 +0,0 @@
-VK_TYPE=330
-DOUBLE_SLASH=374
-DOUBLE_SQUARE_RIGHT=376
-BLANK_ID=430
-VK_OA_DEFAULT=273
-VK_OPERATOR=345
-VK_GLOBAL=228
-VT_TYPE=52
-VT_NEG=58
-VK_NULL=271
-VK_START=317
-VT_RHS=38
-VT_SUBPROPERTYOF=123
-VK_EQUIV=208
-VK_CLASS=180
-VK_ANNOTATIONS=167
-VK_DOUBLE=200
-VT_INDEX_ALL=83
-VK_SAMEAS=311
-VK_PROPERTY_ANNOTATION=296
-QUESTION_MARK=392
-VK_AVERAGE=172
-VK_WHEN=342
-GATE=379
-DOUBLE_MINUS=369
-VT_QUERY_PATTERN=74
-VK_NEW=268
-VK_MAX=252
-VK_DISTINCT=197
-VT_COLLECT_LIST=109
-VK_AS=169
-VK_DOMAIN=199
-VT_BRANCH_DEFAULT=42
-VT_FUNCTION_ID=18
-VK_GROUP=229
-VK_BRANCH=175
-VK_NEG=267
-VK_EXACTLY=214
-DOUBLE_ANG=366
-VK_A_DIALECT=145
-VT_RISING_EDGE=45
-VT_EXPR=85
-VT_SET=90
-VT_ENTITY_TYPE=32
-OCTAL=417
-VK_BYTE=176
-VK_SUBPROPERTYOF=320
-VK_OA_CRISP=272
-VK_ACTIVATION_GROUP=351
-VT_NEW_OBJ=51
-VK_IMPLIES=231
-FLOAT=420
-HexDigit=413
-VT_IMPORT_SECTION=7
-VT_ACCUMULATE_ITERATION=103
-VK_EVAL=212
-AT=357
-DOUBLE_PIPE=373
-RIGHT_PAREN=408
-VT_COMPILATION_UNIT=4
-VK_DISJOINT_UNION=196
-VK_INDIVIDUAL=234
-XOR_ASSIGN=405
-PLUS=391
-VK_INSERT_LOG=237
-VK_DIALECT=190
-VK_A_IMPLICATION=151
-VT_GLOBAL_ID=11
-VK_TYPE_STRING=335
-VT_ANNOTATION=114
-VT_FROM_SOURCE=99
-VT_TRAIL=92
-VK_INSTANCEOF=238
-VT_HEDGE_MOL=63
-VT_POSITIONAL_VAR=75
-VK_OA_DEFEAT=274
-VK_REVERSE=304
-VK_LENGTH=244
-TRIPLE_GREATER=397
-VK_A_DIRECTION_EQUIVALENCE=148
-VK_MDA_FUNCTIONAL_INV=254
-VK_INVERSE=240
-VT_STAR=16
-VT_DL_TYPE=30
-MINUS=385
-VK_PROPERTY=295
-VK_TYPES=336
-VK_MODIFY_LOG=263
-VK_OA_DEGREE=275
-COLON=360
-OR_ASSIGN=404
-VT_MAX=69
-VT_AND_IMPLICIT=55
-VT_TRAIL_NODE=93
-VK_RISING=305
-VT_SLOT_ID=25
-VK_OA_KIND=277
-DOUBLE_PLUS=365
-VT_FILTER=89
-VT_PARAM_LIST=20
-ARROW=358
-VK_SUM=321
-VK_AGENDA_GROUP=352
-GREATER_EQUAL=381
-VT_ACC_ITER_INIT=105
-VK_A_DURATION=149
-DOUBLE_GREATER=371
-VK_RETRACT_LOG=303
-VT_NAME=21
-FloatTypeSuffix=419
-VT_THEN=39
-VK_A_DATE_EXPIRES=143
-VK_MDA_SYMMETRIC_INV=258
-MOD_ASSIGN=406
-VT_ACCESSOR=80
-VT_DIF_PROP=135
-VT_TEMPLATE=22
-EQUALS=378
-VK_AUTO_FOCUS=350
-NEG_MARK=387
-VT_DEBUG_RIGHT_EXPR=87
-VK_AGENDA=164
-VK_KEY=243
-GREATER=380
-VK_IMPORT=232
-VT_INDEXER=82
-VK_RULE=307
-LESS_PERCENT=383
-LESS=382
-VAR=431
-VK_A_RULEFLOWGROUP=154
-VK_A_NOLOOP=153
-VT_PARAM=19
-VT_ACC_ITER_REV=107
-VT_ACC_ITER_RES=108
-VK_MIN=261
-VT_PREFIX=112
-VK_FILTER=222
-VT_BRANCH=41
-VK_PRIMITIVE_TYPE=355
-VK_TYPE_DOUBLE=332
-VT_ENABLED=73
-VK_COLLECT=182
-VK_QUERY=299
-VK_OA_PARAMS=281
-VT_DIALECT=35
-VK_ACCUMULATE_RIGHT=160
-VT_EQUIVALENTTO=119
-VT_PACKAGE_ID=5
-DOUBLE_LESS=372
-VK_THROTTLE=327
-VT_TYPES=129
-VT_DL_RESTRICTION=117
-VT_PATTERN=71
-VK_DISJOINT=193
-VT_ACCUMULATE_LEFT=101
-VT_XOR=59
-VT_FUNCTION=17
-VK_ENABLED=203
-VK_END=204
-VT_CLOSURE=40
-RIGHT_SQUARE=410
-VK_MVEL=265
-VT_MIN=68
-VT_ONTOLOGY=110
-VK_RETRACT=302
-VK_ACC=157
-VK_CLOSURE=181
-VT_IMPORT=14
-VT_ACCUMULATE_RIGHT=102
-VK_BOOLEAN=174
-VK_SUPER=322
-VK_EXISTS=216
-VK_DATE_EXPIRES=348
-ID=429
-VT_DISJOINTWITH=121
-VK_MDA_TRANSITIVE=259
-VK_XOR=344
-VK_LIMIT=247
-COMMA=361
-HEX=415
-VT_LHS=36
-EQUAL=377
-VK_FOCUS=224
-VT_BRANCH_LABEL=43
-VT_DL_PROP=116
-VK_ACCL=158
-VK_MDA_SYMMETRIC=257
-VK_A_AGENDAGROUP=139
-VT_PAREN_CHUNK=50
-VK_DISJOINT_PROPERTIES=195
-VT_HEDGE_VERY=62
-VT_NEXISTS=66
-VK_BOOL=173
-VK_EXTENDS=219
-VT_NESTED_PATTERN=72
-VK_POINT=293
-VK_TEMPLATE=323
-VK_EQUIVALENTTO=211
-VT_ACC_ITER_ACT=106
-VK_ORDERBY=287
-VK_EXCLUDES=215
-VK_SOUNDSLIKE=316
-UnicodeEscape=434
-VT_DECLARATION_SECTION=9
-VT_SQUARE_CHUNK=49
-VT_TEMPLATE_ID=23
-VK_DATE_EFFECTIVE=347
-LEFT_SQUARE=409
-VT_DATA_TYPE=12
-VK_CHAR=178
-MOD=386
-VK_FUNCTION=227
-VT_EXISTS=64
-VT_METHOD=84
-VK_SALIENCE=309
-VK_SEQ=313
-DOUBLE_DOT=370
-VK_NO=269
-EOL=424
-VK_MODIFY=262
-NOT_EQUAL=388
-VK_ACTION=161
-VT_ANNOTATIONS=113
-VT_EQUIV=60
-VK_SOME=315
-VK_MEMBEROF=260
-VK_AUTO=171
-VK_OR=286
-VT_VERSION=81
-VT_OTHERWISE=88
-VT_OR=57
-VK_ON=282
-VT_ATTRIBUTES=34
-IntegerTypeSuffix=414
-MINUS_ASSIGN=400
-BOOL=421
-VK_EVENT=213
-VK_EFFECTIVE=202
-SEMICOLON=393
-VK_THEN=325
-VT_EXTENDS=28
-VK_RULEFLOW_GROUP=353
-VK_ROLE=306
-VK_RESULT=301
-WS=433
-VK_ACTIVATION=162
-VK_ENTITY=205
-VK_NO_LOOP=349
-DOUBLE_COLON=368
-LEFT_CURLY=411
-VK_COUNT=185
-VT_FACT=128
-LEFT_PAREN=407
-PERCENT_GREATER=389
-VT_RULE_ID=33
-VT_LIST=94
-VK_ONLY=284
-C_STYLE_SINGLE_LINE_COMMENT=425
-VK_VOID=341
-VT_FACTS=127
-VK_ACCUMULATE=159
-VK_OVER=289
-VK_EXTEND=218
-VK_EQUIVALENT_PROPERTIES=210
-VK_SELF=312
-VK_LOCK=248
-VK_SAME_INDIVIDUAL=310
-VT_IRI=111
-VK_VALUE=339
-VK_A_TIMER=156
-VK_OA_MISSING=279
-VT_ACCUMULATE_FUNCTION=104
-CHAIN_SEP=359
-VT_ARGS=53
-SLASH=394
-VT_EXPRESSION_CHAIN=100
-VK_A_SALIENCE=155
-VK_DATATYPE=186
-VT_SAMEAS=130
-VK_TIME=328
-VK_SUBCLASSOF=318
-PIPE=390
-VK_A_DATE_EFFECTIVE=142
-VT_VALUE=70
-VK_A_AUTOFOCUS=140
-VT_ENTRYPOINT=97
-VK_MOL=264
-VT_KEYS=115
-VK_COLLECT_LIST=183
-VK_NOT=270
-VT_ENTRYPOINT_ID=98
-VK_DECLARE=188
-VK_TYPE_BOOLEAN=331
-VT_SUBPROPERTYCHAIN=125
-VK_DIFFERENT_INDIVIDUALS=191
-VT_ARROW=37
-VT_TYPE_DECLARE_ID=27
-VT_EQV_CLASS=132
-VK_EQUIVALENT_CLASSES=209
-VT_BINDING=79
-VK_LENGTH_MIN=246
-VK_LOCK_ON_ACTIVE=346
-VK_MDA_REFLEXIVE_INV=256
-VT_DIFFERENTFROM=131
-VK_THIS=326
-VK_ALL=165
-MULTI_LINE_COMMENT=426
-VK_A_ACTGROUP=138
-DECIMAL=416
-VK_ATTRIBUTES=170
-VT_DIF_CLASS=133
-VT_MSR=54
-VK_ENTRYPOINT=207
-VK_HASKEY=230
-PLUS_ASSIGN=399
-VK_PATTERN_LANG=292
-VK_ACTIVE=163
-VT_EQV_PROP=134
-VK_OA_ID=276
-VK_MDA_FUNCTIONAL=253
-OctalEscape=435
-VK_RULEFLOW=308
-STRING=423
-VT_ONTOLOGY_SECTION=8
-VK_ANOTHER=168
-VK_DIFFERENTFROM=192
-VK_LOOP=250
-VT_DOMAIN=126
-DOT_STAR=363
-VK_ENTRY=206
-VK_AND=166
-VK_UNIQUE=337
-VK_A_LOCKONACTIVE=152
-DIV_ASSIGN=402
-VK_A_DIRECTION_ABDUCTIVE=146
-VT_FUNCTION_IMPORT=15
-VK_LONG=249
-VK_PATTERN=291
-VK_DATE=187
-DOUBLE_AMPER=364
-VT_AND=61
-DOUBLE_SQUARE_LEFT=375
-VK_PREFIX=294
-VT_DL_RESTRICTED_TYPE=118
-VT_SLOT=24
-VT_SUBCLASSOF=120
-VK_FROM=226
-VK_PROPERTY_DATA=297
-VT_EQV_INDV=136
-VT_DISJOINTUNIONOF=122
-VT_PACKAGE=6
-VK_OA_MERGE=278
-VT_TYPE_DECLARE=26
-VT_POSITIONAL_SKIP=78
-IdentifierStart=427
-VK_INT=239
-VK_ONCHANGE=283
-VT_NEG_BRANCH_LABEL=44
-VT_FORALL=65
-VT_RHS_CHUNK=47
-VK_VERY=340
-VK_FALLING=221
-VK_SUBPROPERTYCHAIN=319
-VK_ENTRY_POINT=354
-VK_INSERT=236
-VK_CALENDARS=177
-VK_IN=233
-VK_RANGE=300
-LESS_EQUAL=384
-VT_DL_DEFINITION=29
-VK_EXPIRES=217
-MISC=432
-EscapeSequence=422
-VK_DEFEATS=189
-VK_PACKAGE=290
-VK_MATCHES=251
-RIGHT_CURLY=412
-VK_TYPE_FLOAT=333
-VK_A_ENABLED=150
-VK_DISJOINT_CLASSES=194
-VK_JAVA=242
-MULT_ASSIGN=401
-VK_TYPE_INTEGER=334
-VT_FIELD=31
-VK_PROPERTY_OBJECT=298
-VT_SEQUENCE=91
-Exponent=418
-VT_POSITIONAL_CONST=76
-AND_ASSIGN=403
-VK_TIMER=329
-VK_CHARACTERISTICS=179
-VT_IMPLIES=56
-AMPER=356
-VT_FALLING_EDGE=46
-VK_SHORT=314
-TILDE=395
-DOUBLE_CAP=367
-VT_BEHAVIOR=96
-VT_RULEBASE_SECTION=10
-VT_INVERSEOF=124
-DOT=362
-VK_WINDOW=343
-IdentifierPart=428
-VT_DIM_SIZE=13
-VK_A_CALENDAR=141
-XOR=398
-VK_CONTAINS=184
-VK_FACTS=220
-VT_COUNT=67
-VK_INVERSEOF=241
-VK_FLOAT=223
-VK_LENGTH_MAX=245
-VT_DIF_INDV=137
-VK_DURATION=201
-VK_OTHERWISE=288
-VK_THAT=324
-VK_FORALL=225
-VK_DO=198
-VK_UPDATE=338
-VT_CURLY_CHUNK=48
-VT_DEBUG_LEFT_EXPR=86
-VK_A_DEDUCTION=144
-VT_RANGE=95
-VK_NAMESPACE=266
-VT_POSITIONAL_INDEX=77
-VK_ONTOLOGY=285
-TIMES=396
-VK_MDA_REFLEXIVE=255
-VK_INIT=235
-VK_OA_OTHERWISE=280
-VK_A_DIRECTION_DEDUCTIVE=147

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/ParserHelper.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/ParserHelper.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/ParserHelper.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -7,14 +7,15 @@
 import java.util.Map;
 import java.util.Stack;
 
+import org.antlr.runtime.Parser;
 import org.antlr.runtime.RecognitionException;
 import org.antlr.runtime.RecognizerSharedState;
 import org.antlr.runtime.Token;
 import org.antlr.runtime.TokenStream;
 import org.drools.compiler.DroolsParserException;
 
-import static org.drools.lang.DRLv6Parser.*;
 
+
 /**
  * This is a class to hold all the helper functions/methods used
  * by the DRL parser
@@ -27,12 +28,12 @@
     private Stack<Map<DroolsParaphraseTypes, String>> paraphrases              = new Stack<Map<DroolsParaphraseTypes, String>>();
 
     // parameters from parser
-    private DRLv6Parser                       parser                   = null;
+    private Parser                       parser                   = null;
     private DroolsParserExceptionFactory              errorMessageFactory      = null;
     private TokenStream                               input                    = null;
     private RecognizerSharedState                     state                    = null;
 
-    public ParserHelper(DRLv6Parser parser,
+    public ParserHelper(Parser parser,
                         String[] tokenNames,
                         TokenStream input,
                         RecognizerSharedState state) {
@@ -188,12 +189,12 @@
         }
     }
 
-    public boolean validateNotWithBinding() {
-        if ( input.LA( 1 ) == ID && input.LA( 2 ) == ID && input.LA( 3 ) == COLON ) {
-            return true;
-        }
-        return false;
-    }
+//    public boolean validateNotWithBinding() {
+//        if ( input.LA( 1 ) == ID && input.LA( 2 ) == ID && input.LA( 3 ) == COLON ) {
+//            return true;
+//        }
+//        return false;
+//    }
 
 //    public boolean validateRestr() {
 //        int lookahead = 2;

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/Blank.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/Blank.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/Blank.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,21 @@
+package org.drools.lang.dl;
+
+public class Blank {
+
+	private String name;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Blank(String name) {
+		super();
+		this.name = name;
+	}
+	
+	
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/TypedObject.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/TypedObject.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/TypedObject.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,38 @@
+package org.drools.lang.dl;
+
+public class TypedObject {
+	
+	private Object obj;
+	
+	private String type;
+
+	public Object getObj() {
+		return obj;
+	}
+
+	public void setObj(Object obj) {
+		this.obj = obj;
+	}	
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+	
+	public TypedObject(Object obj, String type) {
+		super();
+		this.obj = obj;
+		this.type = type;
+	}
+
+	@Override
+	public String toString() {
+		return obj.toString()+ ((type != null) ? ("^^"+type) : "");
+	}
+	
+	
+
+}

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DLDescrFactory.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DLDescrFactory.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DLDescrFactory.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,50 +1,98 @@
 package org.drools.lang.dl.descr;
 
+import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 public class DLDescrFactory {
 
 	private static int N = 0;
 	
-	public static DL_BaseDescr createImplies(List<DL_BaseDescr> children) {
-		DL_CompositeDescr impl = new DL_ImpliesDescr();
+	public DL_OntologyDescr buildOntologyDescr() {
+		return new DL_OntologyDescr();
+	}
+	
+	
+	public DL_IriDescr buildIriDescr(String nameSpace, String localName, Map<String,String> nsMap) {
+		return new DL_IriDescr(nameSpace,localName,nsMap);
+	}
+	
+	public DL_IriDescr buildIriDescr(String iri) {
+		return new DL_IriDescr(iri);
+	}
+	
+	public DL_AnnotationDescr buildAnnotationDescr() {
+		return new DL_AnnotationDescr();
+	}
+	
+	public DL_ClassDescr buildClassDescr() {
+		return new DL_ClassDescr();
+	}
+	
+	public DL_DatatypeDescr buildDatatypeDescr() {
+		return new DL_DatatypeDescr();
+	}
+	
+	public DL_ObjectPropertyDescr buildObjectPropertyDescr() {
+		return new DL_ObjectPropertyDescr();
+	}
+	
+	public DL_DataPropertyDescr buildDataPropertyDescr() {
+		return new DL_DataPropertyDescr();
+	}
+	
+	public DL_AnnotationPropertyDescr buildAnnotationPropertyDescr() {
+		return new DL_AnnotationPropertyDescr();
+	}
+	
+	public DL_IndividualDescr buildIndividualDescr() {
+		return new DL_IndividualDescr();		
+	}
+	
+	public DL_RelationDescr buildGenericRelationDescr(DL_IriDescr iri, boolean inverse) {
+		DL_RelationDescr descr = new DL_RelationDescr();
+			descr.setIri(iri);
+			descr.setInverse(inverse);
+		return descr;
+	}
+	
+
+	
+	public DL_DefinitionDescr buildDefinitionDescr(DL_aBaseDescr root) {
+		return new DL_DefinitionDescr(root);
+	}
+
+	public Object buildFactDescr(DL_RelationDescr rel, Object tgt, boolean negated) {
+		DL_FactDescr descr = new DL_FactDescr();
+			descr.setRel(rel);
+			descr.setObject(tgt);
+			descr.setNegated(negated);
+		return descr;
+	}
+	
+	
+	public DL_aBaseDescr buildImplies(List<DL_aBaseDescr> children) {
+		DL_aCompositeDescr impl = new DL_ImpliesDescr();
 			impl.addChildren(children);
 		impl.setId(nextId());
 		return impl;
 	}
 	
-	public static DL_BaseDescr createAnd(List<DL_BaseDescr> children) {
-		DL_CompositeDescr et = new DL_AndDescr();
+	public DL_aBaseDescr buildAnd(List<DL_aBaseDescr> children) {
+		DL_aCompositeDescr et = new DL_AndDescr();
 			et.addChildren(children);
 		et.setId(nextId());
 		return et;
 	}
 	
-	public static DL_BaseDescr createOr(List<DL_BaseDescr> children) {
-		DL_CompositeDescr vel = new DL_OrDescr();
+	public DL_aBaseDescr buildOr(List<DL_aBaseDescr> children) {
+		DL_aCompositeDescr vel = new DL_OrDescr();
 			vel.addChildren(children);	
 		vel.setId(nextId());
 		return vel;
 	}
 	
-	public static DL_BaseDescr createNeg(DL_BaseDescr child) {
-//		DL_CompositeDescr neg = new DL_NegDescr();
-//		if (child instanceof DL_NegDescr) {
-//			return ((DL_NegDescr) child).getChildren().get(0); 
-//		} else if (child instanceof DL_ExistsDescr) {
-//			DL_ExistsDescr ext = (DL_ExistsDescr) child;
-//			ext.setNegated(! ext.isNegated());
-//			return ext;
-//		} else if (child instanceof DL_ForallDescr) {
-//			DL_ForallDescr fal = (DL_ForallDescr) child;
-//			fal.setNegated(! fal.isNegated());
-//			return fal;
-//		} else {
-//			neg.addChild(child);
-//			neg.setId(nextId());
-//			return neg;
-//		}	
-		
+	public DL_aBaseDescr buildNeg(DL_aBaseDescr child) {
 		if (child instanceof DL_NegDescr) {
 			return ((DL_NegDescr) child).getChildren().get(0); 
 		} else {
@@ -54,7 +102,7 @@
 	}
 	
 	
-	public static DL_BaseDescr createType(String klass) {
+	public DL_aBaseDescr buildType(String klass) {
 		DL_TypeDescr type = new DL_TypeDescr();
 			type.setType(klass);
 		type.setId(nextId());
@@ -62,7 +110,7 @@
 	}
 	
 	
-	public static DL_BaseDescr createProperty(String klass) {
+	public DL_aBaseDescr buildProperty(String klass) {
 		DL_PropertyDescr prop = new DL_PropertyDescr();
 			prop.setType(klass);
 		prop.setId(nextId());
@@ -70,8 +118,8 @@
 	}
 	
 	
-	public static DL_BaseDescr createExists(DL_BaseDescr prop, DL_BaseDescr klass) {
-		DL_CompositeDescr exist = new DL_ExistsDescr();
+	public DL_aBaseDescr buildExists(DL_aBaseDescr prop, DL_aBaseDescr klass) {
+		DL_aCompositeDescr exist = new DL_ExistsDescr();
 			exist.addChild(prop);
 			exist.addChild(klass);
 		exist.setId(nextId());
@@ -79,8 +127,8 @@
 	}
 	
 	
-	public static DL_BaseDescr createForall(DL_BaseDescr prop, DL_BaseDescr klass) {
-		DL_CompositeDescr foral = new DL_ForallDescr();
+	public DL_aBaseDescr buildForall(DL_aBaseDescr prop, DL_aBaseDescr klass) {
+		DL_aCompositeDescr foral = new DL_ForallDescr();
 			foral.addChild(prop);
 			foral.addChild(klass);
 		foral.setId(nextId());
@@ -88,7 +136,61 @@
 	}
 	
 	
-	public static DL_BaseDescr buildRootType(String klass, DL_BaseDescr def) {
+	public DL_aBaseDescr buildValue(DL_aBaseDescr prop, Object val) {
+		DL_ValueDescr value = new DL_ValueDescr();
+			value.addChild(prop);
+			if (val != null) 
+				value.setVal(val);
+			else
+				value.addChild(new DL_SelfDescr());
+		value.setId(nextId());
+		return value;
+	}
+	
+	
+	public DL_aBaseDescr buildCount(DL_aBaseDescr prop, String min, String max, DL_aBaseDescr klass) {
+		DL_CountDescr count = new DL_CountDescr();
+			count.addChild(prop);
+			if (klass != null) count.addChild(klass);
+			if (min != null) {
+				try {
+					count.setMin(Integer.valueOf(min));
+				} catch (NumberFormatException nfe) { }
+			}
+			if (max != null) {
+				try {
+					count.setMax(Integer.valueOf(max));
+				} catch (NumberFormatException nfe) { }
+			}
+			
+		count.setId(nextId());
+		return count;
+	}
+	
+		
+	public DL_aBaseDescr buildEnumTypeDescr(Collection<Object> values) {
+		DL_EnumTypeDescr descr = new DL_EnumTypeDescr();
+			descr.addAll(values);
+		return descr;
+	}
+	
+	public DL_RestrictedTypeDescr buildRestrictedTypeDescr(DL_aBaseDescr type, DL_aBaseDescr facets) {
+		DL_RestrictedTypeDescr descr = new DL_RestrictedTypeDescr();
+			if (type instanceof DL_TypeDescr)
+				descr.setType(((DL_TypeDescr) type).getType());
+			if (facets instanceof DL_AndDescr)
+				descr.addChildren(((DL_AndDescr) facets).getChildren());
+		return descr;
+	}
+	
+	public DL_FacetDescr buildFacetDescr(String op, Object val) {
+		DL_FacetDescr facet = new DL_FacetDescr();
+			facet.setOp(op);
+			facet.setVal(val);
+		return facet;
+	}
+	
+	public DL_aBaseDescr buildRootType(String klass, DL_aBaseDescr def) {
 		DL_RootNode root = new DL_RootNode();
 			root.setType(klass);
 			root.addChild(def);
@@ -97,7 +199,7 @@
 	}
 	
 	
-	public static DL_TypeDescr buildRandomTypeDescr() {
+	public DL_TypeDescr buildRandomTypeDescr() {
 		int id = nextId();
 		String type = "klass_"+id;
 		DL_TypeDescr td = new DL_TypeDescr();
@@ -109,6 +211,8 @@
 	public static int nextId() {
 		return N++;
 	}
+
+
 	
 	
 	

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AndDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AndDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AndDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,7 +1,7 @@
 package org.drools.lang.dl.descr;
 
 
-public class DL_AndDescr extends DL_CompositeDescr {
+public class DL_AndDescr extends DL_aCompositeDescr {
 
 	@Override	
 	public String getType() {

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AnnotationDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AnnotationDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AnnotationDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,54 @@
+package org.drools.lang.dl.descr;
+
+
+public class DL_AnnotationDescr extends DL_aBaseDescr {
+
+	
+	private DL_IriDescr iriKey;
+	
+	private Object targetValue;
+	
+				
+	public DL_AnnotationDescr() {
+		
+	}
+	
+	
+	public DL_AnnotationDescr(DL_IriDescr key, String value) {
+		this.iriKey = key;
+		this.targetValue = value;
+	}
+	
+	
+	
+	@Override
+	public String getType() {
+		return "Annotations";
+	}
+	
+	
+
+	public DL_IriDescr getIriKey() {
+		return iriKey;
+	}
+
+	public void setIriKey(DL_IriDescr iriKey) {
+		this.iriKey = iriKey;
+	}
+
+	public Object getTargetValue() {
+		return targetValue;
+	}
+
+	public void setTargetValue(Object targetValue) {
+		this.targetValue = targetValue;
+	}
+	
+	
+	
+		
+	
+	
+
+
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AnnotationPropertyDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AnnotationPropertyDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_AnnotationPropertyDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,6 @@
+package org.drools.lang.dl.descr;
+
+public class DL_AnnotationPropertyDescr extends DL_RelationDescr {
+	
+
+}

Deleted: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_BaseDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_BaseDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_BaseDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,112 +0,0 @@
-package org.drools.lang.dl.descr;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-public abstract class DL_BaseDescr  {
-
-    private static final long serialVersionUID = 400L;       
-    private int id;
-    private DL_CompositeDescr father;
-    private boolean negated = false;
-//    private int level = 0;
-    
-        
-    
-    
-    
-    public String toUpwardString() {
-    	StringBuilder sb = new StringBuilder();
-    		sb.append(this.toString());
-    		sb.append(" | son-of " + 
-    						((father == null) ? "null" : father.toUpwardString()) 
-    						);    		
-    	return sb.toString();
-    }
-    
-    public String toDownwardString() {
-    	return toString();
-    }
-    
-    public String toFullDownwardString(int n) {
-    	return toString();
-    }
-
-    public String toString() {
-    	//return "DL["+id+"]: " + this.getClass().getSimpleName() +"\n";
-    	return "DL["+id+"]: " + this.getType() +"\n";
-    }
-    
-    
-    
-	public void setFather(DL_CompositeDescr father) {
-		this.father = father;
-	}
-
-	public DL_CompositeDescr getFather() {
-		return father;
-	}
-
-	public void setId(int id) {
-		this.id = id;
-	}
-
-	public int getId() {
-		return id;
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + id;
-		return result;
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		DL_BaseDescr other = (DL_BaseDescr) obj;
-		if (id != other.id)
-			return false;
-		return true;
-	}
-	
-	public abstract String getType();
-
-//	public void setLevel(int level) {
-//		this.level = level;
-//	}
-
-	public int getLevel() {
-		return (father == null) ? 0 : (1+father.getLevel());
-	}
-
-	public void setNegated(boolean negated) {
-		this.negated = negated;
-	}
-
-	public boolean isNegated() {
-		return negated;
-	}
-    
-}
\ No newline at end of file

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ClassDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ClassDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ClassDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,89 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.Set;
+
+public class DL_ClassDescr extends DL_aConceptDescr {
+
+	private Set<DL_DefinitionDescr> subClassOf;
+	
+	private Set<DL_DefinitionDescr> disjointWith;
+	
+	private Set<DL_DefinitionDescr> disjointUnion;
+	
+	private Set<DL_RelationDescr> hasKey;
+
+	
+	
+	
+	
+	public Set<DL_DefinitionDescr> getSubClassOf() {
+		return subClassOf;
+	}
+	public void setSubClassOf(Set<DL_DefinitionDescr> subClassOf) {
+		this.subClassOf = subClassOf;
+	}
+	public void addSubClassOf(DL_DefinitionDescr descr) {
+		this.subClassOf.add(descr);
+	}
+	public void addAllSubClassOf(Collection<DL_DefinitionDescr> descrs) {
+		this.subClassOf.addAll(descrs);
+	}
+
+	
+	
+	
+	
+	
+	public Set<DL_DefinitionDescr> getDisjointWith() {
+		return disjointWith;
+	}
+	public void setDisjointWith(Set<DL_DefinitionDescr> disjointWith) {
+		this.disjointWith = disjointWith;
+	}
+	public void addDisjointWith(DL_DefinitionDescr descr) {
+		this.disjointWith.add(descr);
+	}
+	public void addAllDisjointWith(Collection<DL_DefinitionDescr> descr) {
+		this.disjointWith.addAll(descr);
+	}
+	
+
+	
+	
+	
+	
+	public Set<DL_DefinitionDescr> getDisjointUnion() {
+		return disjointUnion;
+	}
+	public void setDisjointUnion(Set<DL_DefinitionDescr> disjointUnion) {
+		this.disjointUnion = disjointUnion;
+	}
+	public void addDisjointUnion(DL_DefinitionDescr descr) {
+		this.disjointUnion.add(descr);
+	}
+	public void addAllDisjointUnion(Collection<DL_DefinitionDescr> descr) {
+		this.disjointUnion.addAll(descr);
+	}
+	
+
+	
+	
+	
+	
+	
+	
+	public Set<DL_RelationDescr> getHasKey() {
+		return hasKey;
+	}
+	public void setHasKey(Set<DL_RelationDescr> hasKey) {
+		this.hasKey = hasKey;
+	}
+	public void addHasKey(DL_RelationDescr descr) {
+		this.hasKey.add(descr);
+	}
+	public void addAllHasKey(Collection<DL_RelationDescr> descr) {
+		this.hasKey.addAll(descr);
+	}
+
+}

Deleted: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_CompositeDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_CompositeDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_CompositeDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,76 +0,0 @@
-package org.drools.lang.dl.descr;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-
-public abstract class DL_CompositeDescr extends DL_BaseDescr {
-	
-	private List<DL_BaseDescr> children = new LinkedList<DL_BaseDescr>();
-	
-	   
-	public void addChild(DL_BaseDescr child) {
-		children.add(child);
-		child.setFather(this);
-		//child.setLevel(getLevel()+1);
-		//this.setLevel(child.getLevel()+1);
-	}
-	
-	public void addChildren(Collection<DL_BaseDescr> childs) {
-		for (DL_BaseDescr child : childs)
-			this.addChild(child);
-	}
-
-	public List<String> getChildTypes() {
-		List<String> ans = new LinkedList<String>();
-		for (DL_BaseDescr child : children) {
-			ans.add(child.getType());
-		}
-		return ans;
-	}
-	
-	public List<DL_BaseDescr> getChildren() {
-		return children;
-	}
-	
-	public List<DL_BaseDescr> getChildrenReversed() {
-		List<DL_BaseDescr> rev = new LinkedList<DL_BaseDescr>();
-		for (int j = children.size()-1; j >= 0; j--) {
-			rev.add(children.get(j));				
-		}
-		return rev;
-	}
-	
-	public void removeChild(DL_BaseDescr child) {
-		children.remove(child);
-	}
-	
-	public void replaceChild(DL_BaseDescr oldChild, DL_BaseDescr newChild) {
-		int idx = children.indexOf(oldChild);
-		children.set(idx, newChild);
-		newChild.setFather(this);
-		oldChild.setFather(null);
-	}
-	
-	
-	
-	public String toDownwardString() {
-		StringBuilder sb = new StringBuilder();
-			sb.append(super.toString());
-			for (DL_BaseDescr child : children)
-    			sb.append("\t"+child.toString());
-		return sb.toString();
-	}
-	
-	public String toFullDownwardString(int n) {
-		StringBuilder sb = new StringBuilder();
-		sb.append(this.toString());
-			for (DL_BaseDescr child : children) {
-				for (int j = 0; j < n; j++)
-					sb.append("\t");
-				sb.append(child.toFullDownwardString(n+1));
-			}
-			return sb.toString();
-    }
-
-}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_CountDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_CountDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_CountDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,35 @@
+package org.drools.lang.dl.descr;
+
+
+
+public class DL_CountDescr extends DL_aCompositeDescr {
+	
+	private int min = 0;
+	private int max = Integer.MAX_VALUE;
+	
+	@Override
+	public String getType() {
+		return (isNegated() ? "not" : "") +  "DL_COUNT[" + min + ".." + max + "]";
+	}
+
+	public int getMin() {
+		return min;
+	}
+
+	public void setMin(int min) {
+		this.min = min;
+	}
+
+	public int getMax() {
+		return max;
+	}
+
+	public void setMax(int max) {
+		this.max = max;
+	}
+
+	
+	
+	
+	
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DataPropertyDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DataPropertyDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DataPropertyDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,6 @@
+package org.drools.lang.dl.descr;
+
+public class DL_DataPropertyDescr extends DL_RelationDescr {
+
+
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DatatypeDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DatatypeDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DatatypeDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,7 @@
+package org.drools.lang.dl.descr;
+
+public class DL_DatatypeDescr extends DL_aConceptDescr {
+
+	
+
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DefinitionDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DefinitionDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_DefinitionDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,28 @@
+package org.drools.lang.dl.descr;
+
+public class DL_DefinitionDescr extends DL_aBaseDescr {
+
+	private DL_aBaseDescr root;
+
+	@Override
+	public String getType() {
+		return root.getType();
+	}
+
+	public DL_DefinitionDescr(DL_aBaseDescr root) {
+		super();
+		this.root = root;
+	}
+
+	public DL_aBaseDescr getRoot() {
+		return root;
+	}
+
+	public void setRoot(DL_aBaseDescr root) {
+		this.root = root;
+	}
+	
+	
+	
+
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_EnumTypeDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_EnumTypeDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_EnumTypeDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,47 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+
+
+public class DL_EnumTypeDescr extends DL_aLeafDescr {
+	
+	private Collection<Object> elements;
+
+	@Override
+	public String getType() {
+		return "Set";
+	}
+
+	public Collection<Object> getElements() {
+		return elements;
+	}
+
+	public void setElements(Collection<Object> elements) {
+		this.elements = elements;
+	}
+
+	public boolean add(Object e) {
+		return elements.add(e);
+	}
+
+	public boolean addAll(Collection<? extends Object> c) {
+		return elements.addAll(c);
+	}
+
+	public boolean contains(Object o) {
+		return elements.contains(o);
+	}
+
+	public Iterator<Object> iterator() {
+		return elements.iterator();
+	}
+
+	public int size() {
+		return elements.size();
+	}
+	
+	
+		
+}

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ExistsDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ExistsDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ExistsDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -2,7 +2,7 @@
 
 
 
-public class DL_ExistsDescr extends DL_CompositeDescr {
+public class DL_ExistsDescr extends DL_aCompositeDescr {
 	
 	
 	

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_FacetDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_FacetDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_FacetDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,29 @@
+package org.drools.lang.dl.descr;
+
+public class DL_FacetDescr extends DL_aLeafDescr {
+
+	private String op;
+	
+	private Object val;
+	
+	public String getType() {
+		return "facet";
+	}
+
+	public String getOp() {
+		return op;
+	}
+
+	public void setOp(String op) {
+		this.op = op;
+	}
+
+	public Object getVal() {
+		return val;
+	}
+
+	public void setVal(Object val) {
+		this.val = val;
+	}
+
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_FactDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_FactDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_FactDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,35 @@
+package org.drools.lang.dl.descr;
+
+public class DL_FactDescr extends DL_aBaseDescr {
+
+	private DL_RelationDescr rel;
+	
+	private Object object;
+	
+		
+	@Override
+	public String getType() {
+		return rel.getType();
+	}
+
+
+	public DL_RelationDescr getRel() {
+		return rel;
+	}
+
+
+	public void setRel(DL_RelationDescr rel) {
+		this.rel = rel;
+	}
+
+
+	public Object getObject() {
+		return object;
+	}
+
+
+	public void setObject(Object object) {
+		this.object = object;
+	}
+
+}

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ForallDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ForallDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ForallDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -2,7 +2,7 @@
 
 
 
-public class DL_ForallDescr extends DL_CompositeDescr {
+public class DL_ForallDescr extends DL_aCompositeDescr {
 	
 	private boolean negated = false;
 

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ImpliesDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ImpliesDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ImpliesDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -4,14 +4,14 @@
 
 
 
-public class DL_ImpliesDescr extends DL_CompositeDescr {
+public class DL_ImpliesDescr extends DL_aCompositeDescr {
 	
-	public void addChild(DL_BaseDescr child) {
+	public void addChild(DL_aBaseDescr child) {
 		if (getChildren().size() < 2)
 			super.addChild(child);
 	}
 	
-	public void addChildren(Collection<DL_BaseDescr> childs) {
+	public void addChildren(Collection<DL_aBaseDescr> childs) {
 		if (getChildren().size()+childs.size() <= 2)
 			super.addChildren(childs);
 	}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_IndividualDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_IndividualDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_IndividualDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,77 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.Set;
+
+public class DL_IndividualDescr extends DL_aDeclarationDescr {
+
+	private Set<DL_aConceptDescr> types;
+	
+	private Set<DL_FactDescr> facts;
+	
+	private Set<Object> sameAs;
+	
+	private Set<Object> differentFrom;
+
+
+	
+	
+	
+	public Set<DL_aConceptDescr> getTypes() {
+		return types;
+	}
+	public void setTypes(Set<DL_aConceptDescr> types) {
+		this.types = types;
+	}
+	public void addType(DL_aConceptDescr descr) {
+		this.types.add(descr);
+	}
+	public void addAllType(Collection<DL_aConceptDescr> descr) {
+		this.types.addAll(descr);
+	}
+	
+
+	public Set<DL_FactDescr> getFacts() {
+		return facts;
+	}
+	public void setFacts(Set<DL_FactDescr> facts) {
+		this.facts = facts;
+	}
+	public void addFact(DL_FactDescr descr) {
+		this.facts.add(descr);
+	}
+	public void addAllFact(Collection<DL_FactDescr> descr) {
+		this.facts.addAll(descr);
+	}
+	
+	
+	public Set<Object> getSameAs() {
+		return sameAs;
+	}
+	public void setSameAs(Set<Object> sameAs) {
+		this.sameAs = sameAs;
+	}
+	public void addSameAs(Object descr) {
+		this.sameAs.add(descr);
+	}
+	public void addAllSameAs(Collection<Object> descr) {
+		this.sameAs.addAll(descr);
+	}
+	
+
+	public Set<Object> getDifferentFrom() {
+		return differentFrom;
+	}
+	public void setDifferentFrom(Set<Object> differentFrom) {
+		this.differentFrom = differentFrom;
+	}
+	public void addDifferentFrom(Object descr) {
+		this.differentFrom.add(descr);
+	}
+	public void addAllDifferentFrom(Collection<Object> descr) {
+		this.differentFrom.addAll(descr);
+	}
+	
+	
+
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_IriDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_IriDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_IriDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,74 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Map;
+
+import sun.security.action.GetLongAction;
+
+public class DL_IriDescr extends DL_aLeafDescr {
+	
+	private String namespace;
+	private String localName;
+		
+	private String iri;
+	private boolean resolved = false;
+
+	public DL_IriDescr() {
+		
+	}
+	
+	public DL_IriDescr(String iri) {
+		this.iri = iri;
+		this.resolved = true;
+	}
+	
+	public DL_IriDescr(String ns, String ln, Map<String,String> namespaces) {
+		this.namespace = ns;
+		this.localName = ln;
+		
+		resolved = namespaces.containsKey(ns);
+		if (resolved)			
+			this.iri = namespaces.get(ns) + ln;
+	}
+	
+	
+	
+	public String getIri() {
+		return iri;
+	}
+	
+	public String getNamespace() {
+		return namespace;
+	}
+	
+	public String getLocalName() {
+		return localName;
+	}
+
+	@Override
+	public String getType() {		
+		return localName;
+	}
+	
+	public String toString() {
+		return  iri + " (" + namespace + ":" + localName + ")";
+	}
+	
+	public String toFullString() {
+		return iri;
+	}
+	
+	
+	public boolean isResolved() {
+		return resolved;
+	}
+	
+	public void resolve(Map<String,String> namespaces) {
+		if (! resolved) {
+			resolved = namespaces.containsKey(getNamespace());
+			if (resolved) 
+				this.iri = namespaces.get(getNamespace()) + getLocalName(); 
+		}
+	}
+	
+
+}

Deleted: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_LeafDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_LeafDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_LeafDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,5 +0,0 @@
-package org.drools.lang.dl.descr;
-
-public abstract class DL_LeafDescr extends DL_BaseDescr {
-				
-}

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_NegDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_NegDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_NegDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -3,14 +3,14 @@
 import java.util.Collection;
 
 
-public class DL_NegDescr extends DL_CompositeDescr {
+public class DL_NegDescr extends DL_aCompositeDescr {
 	
-	public void addChild(DL_BaseDescr child) {
+	public void addChild(DL_aBaseDescr child) {
 		if (getChildren().size() == 0)
 			super.addChild(child);
 	}
 	
-	public void addChildren(Collection<DL_BaseDescr> childs) {
+	public void addChildren(Collection<DL_aBaseDescr> childs) {
 		if (getChildren().size() == 0 && childs.size() == 1)
 			super.addChildren(childs);
 	}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ObjectPropertyDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ObjectPropertyDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ObjectPropertyDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,49 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+public class DL_ObjectPropertyDescr extends DL_RelationDescr {
+
+	
+	
+	private Set<DL_DefinitionDescr> inverseOf;
+	
+	private Set<List<DL_RelationDescr>> subPropertyChains;
+	
+	
+	
+	
+	public Set<DL_DefinitionDescr> getInverseOf() {
+		return inverseOf;
+	}
+	public void setInverseOf(Set<DL_DefinitionDescr> inverseOf) {
+		this.inverseOf = inverseOf;
+	}
+	public void addInverseOf(DL_DefinitionDescr descr) {
+		this.inverseOf.add(descr);
+	}
+	public void addAllInverseOf(Collection<DL_DefinitionDescr> descr) {
+		this.inverseOf.addAll(descr);
+	}
+	
+	
+	
+	
+	public void setSubPropertyChains(Set<List<DL_RelationDescr>> subPropertyChains) {
+		this.subPropertyChains = subPropertyChains;
+	}
+	public Set<List<DL_RelationDescr>> getSubPropertyChains() {
+		return subPropertyChains;
+	}
+	public void addSubPropertyChain(List<DL_RelationDescr> chain) {
+		this.subPropertyChains.add(chain);
+	}
+	
+	
+	
+	
+	
+
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_OntologyDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_OntologyDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_OntologyDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,108 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+
+public class DL_OntologyDescr extends DL_aCompositeDescr {
+
+	private DL_IriDescr name;
+	private DL_IriDescr version;
+	
+	private Map<String,String> namespaces;
+	
+	private Collection<String> importRefs;
+	
+	
+	private Collection<DL_aDeclarationDescr> declarations;
+	
+	
+	
+	public DL_OntologyDescr() {
+		this.namespaces = new HashMap<String, String>();
+		this.namespaces.put("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
+		this.namespaces.put("rdfs", "http://www.w3.org/2000/01/rdf-schema#");
+		this.namespaces.put("xsd", "http://www.w3.org/2001/XMLSchema#");
+		this.namespaces.put("owl", "http://www.w3.org/2002/07/owl#");
+		this.namespaces.put("", "http://drools.jboss.org/test/v6#");
+		
+		this.importRefs = new LinkedList<String>();
+		
+		this.declarations = new LinkedList<DL_aDeclarationDescr>();
+	}
+	
+	@Override
+	public String getType() {		
+		return "Ontology";		
+	}
+
+	
+	public String toFullDownwardString(int n) {
+		StringBuilder sb = new StringBuilder();
+		sb.append(super.toFullDownwardString(n)).append("\n");
+		for (DL_aDeclarationDescr descr : declarations)
+			sb.append(descr.toFullDownwardString(n+1)).append("\n");
+		return sb.toString();
+    }
+	
+	
+	
+	public DL_IriDescr getName() {
+		return name;
+	}
+
+	public void setName(DL_IriDescr name) {
+		this.name = name;
+	}
+
+	public DL_IriDescr getVersion() {
+		return version;
+	}
+
+	public void setVersion(DL_IriDescr version) {
+		this.version = version;
+	}
+
+	public void addNamespace(String key, String full) {
+		this.namespaces.put(key, full);
+		
+		// prefixes come after ontology name and version, so need to check
+		if (name != null && ! name.isResolved())
+			name.resolve(namespaces);
+		if (version != null && ! version.isResolved())
+			version.resolve(namespaces);
+	}
+
+	public Map<String,String> getNamespaces() {
+		return namespaces;
+	}
+	
+	
+	public String toString() {
+		return "Ontology " + name + " - " + version; 
+	}
+	
+	
+	public void addImport(String tgtRef) {
+		this.importRefs.add(tgtRef);
+	}
+
+	
+	
+	
+	public void setDeclarations(Collection<DL_aDeclarationDescr> declarations) {
+		this.declarations = declarations;
+	}
+	public Collection<? extends DL_aDeclarationDescr> getDeclarations() {
+		return declarations;
+	}
+	public void addDeclaration(DL_aDeclarationDescr descr) {
+		this.declarations.add(descr);
+	}
+	
+	
+	
+	
+
+}

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_OrDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_OrDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_OrDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -2,7 +2,7 @@
 
 
 
-public class DL_OrDescr extends DL_CompositeDescr {
+public class DL_OrDescr extends DL_aCompositeDescr {
 	
 	
 	@Override

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_PropertyDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_PropertyDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_PropertyDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -2,7 +2,7 @@
 
 
 
-public class DL_PropertyDescr extends DL_LeafDescr {
+public class DL_PropertyDescr extends DL_aLeafDescr {
 	
 	private String type;
 

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RelationDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RelationDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RelationDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,174 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.Set;
+
+public class DL_RelationDescr extends DL_aDeclarationDescr {
+	
+	private Set<DL_DefinitionDescr> equivalentTo;
+	
+	private Set<DL_DefinitionDescr> disjointWith;
+	
+	private Set<DL_DefinitionDescr> domain;
+	
+	private Set<DL_DefinitionDescr> range;
+	
+	private Set<DL_DefinitionDescr> subPropertyOf;
+	
+	private boolean functional;
+	
+	private boolean inverseFunctional;
+	
+	private boolean reflexive;
+	
+	private boolean irreflexive;
+	
+	private boolean symmetric;
+	
+	private boolean asymmetric;
+	
+	private boolean transitive; 
+	
+	private boolean inverse;
+	
+	
+	
+
+	public Set<DL_DefinitionDescr> getEquivalentTo() {
+		return equivalentTo;
+	}
+	public void setEquivalentTo(Set<DL_DefinitionDescr> equivalentTo) {
+		this.equivalentTo = equivalentTo;
+	}
+	public void addEquivalentTo(DL_DefinitionDescr descr) {
+		this.equivalentTo.add(descr);
+	}
+	public void addAllEquivalentTo(Collection<DL_DefinitionDescr> descrs) {
+		this.equivalentTo.addAll(descrs);
+	}
+	
+	
+	
+	
+	public Set<DL_DefinitionDescr> getDisjointWith() {
+		return disjointWith;
+	}
+	public void setDisjointWith(Set<DL_DefinitionDescr> disjointWith) {
+		this.disjointWith = disjointWith;
+	}
+	public void addDisjointWith(DL_DefinitionDescr descr) {
+		this.disjointWith.add(descr);
+	}
+	public void addAllDisjointWith(Collection<DL_DefinitionDescr> descrs) {
+		this.disjointWith.addAll(descrs);
+	}
+	
+	
+	
+	public Set<DL_DefinitionDescr> getDomain() {
+		return domain;
+	}
+	public void setDomain(Set<DL_DefinitionDescr> domain) {
+		this.domain = domain;
+	}
+	public void addDomain(DL_DefinitionDescr descr) {
+		this.domain.add(descr);
+	}
+	public void addAllDomain(Collection<DL_DefinitionDescr> descrs) {
+		this.domain.addAll(descrs);
+	}
+	
+	
+	
+	
+	public Set<DL_DefinitionDescr> getRange() {
+		return range;
+	}
+	public void setRange(Set<DL_DefinitionDescr> range) {
+		this.range = range;
+	}
+	public void addRange(DL_DefinitionDescr descr) {
+		this.range.add(descr);
+	}
+	public void addAllRange(Collection<DL_DefinitionDescr> descrs) {
+		this.range.addAll(descrs);
+	}
+	
+	
+	
+	
+	public Set<DL_DefinitionDescr> getSubPropertyOf() {
+		return subPropertyOf;
+	}
+	public void setSubPropertyOf(Set<DL_DefinitionDescr> subPropertyOf) {
+		this.subPropertyOf = subPropertyOf;
+	}
+	public void addSubPropertyOf(DL_DefinitionDescr descr) {
+		this.subPropertyOf.add(descr);
+	}
+	public void addAllSubPropertyOf(Collection<DL_DefinitionDescr> descrs) {
+		this.subPropertyOf.addAll(descrs);
+	}
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	public boolean isFunctional() {
+		return functional;
+	}
+	public void setFunctional(boolean functional) {
+		this.functional = functional;
+	}
+	public boolean isInverseFunctional() {
+		return inverseFunctional;
+	}
+	public void setInverseFunctional(boolean inverseFunctional) {
+		this.inverseFunctional = inverseFunctional;
+	}
+	public boolean isReflexive() {
+		return reflexive;
+	}
+	public void setReflexive(boolean reflexive) {
+		this.reflexive = reflexive;
+	}
+	public boolean isIrreflexive() {
+		return irreflexive;
+	}
+	public void setIrreflexive(boolean irreflexive) {
+		this.irreflexive = irreflexive;
+	}
+	public boolean isSymmetric() {
+		return symmetric;
+	}
+	public void setSymmetric(boolean symmetric) {
+		this.symmetric = symmetric;
+	}
+	public boolean isAsymmetric() {
+		return asymmetric;
+	}
+	public void setAsymmetric(boolean asymmetric) {
+		this.asymmetric = asymmetric;
+	}
+	public boolean isTransitive() {
+		return transitive;
+	}
+	public void setTransitive(boolean transitive) {
+		this.transitive = transitive;
+	}
+	public boolean isInverse() {
+		return inverse;
+	}
+	public void setInverse(boolean inverse) {
+		this.inverse = inverse;
+	}
+	
+	
+	
+	
+
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RestrictedTypeDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RestrictedTypeDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RestrictedTypeDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,23 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+
+
+public class DL_RestrictedTypeDescr extends DL_aCompositeDescr {
+	
+	private String type;
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public String getType() {
+		return  type;
+	}
+	
+
+
+		
+}

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RootNode.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RootNode.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_RootNode.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -2,16 +2,16 @@
 
 import java.util.Collection;
 
-public class DL_RootNode extends DL_CompositeDescr {
+public class DL_RootNode extends DL_aCompositeDescr {
 
 	private String type;
 	
-	public void addChild(DL_BaseDescr child) {
+	public void addChild(DL_aBaseDescr child) {
 		if (getChildren().size() == 0)
 			super.addChild(child);
 	}
 	
-	public void addChildren(Collection<DL_BaseDescr> childs) {
+	public void addChildren(Collection<DL_aBaseDescr> childs) {
 		if (getChildren().size() == 0 && childs.size() == 1)
 			super.addChildren(childs);
 	}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_SelfDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_SelfDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_SelfDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,12 @@
+package org.drools.lang.dl.descr;
+
+import org.drools.lang.dl.descr.DL_aBaseDescr;
+
+public class DL_SelfDescr extends DL_aBaseDescr {
+
+	@Override
+	public String getType() {
+		return "Self";
+	}
+
+}

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_TypeDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_TypeDescr.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_TypeDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -2,7 +2,7 @@
 
 
 
-public class DL_TypeDescr extends DL_LeafDescr {
+public class DL_TypeDescr extends DL_aLeafDescr {
 	
 	private String type;
 

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ValueDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ValueDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_ValueDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,27 @@
+package org.drools.lang.dl.descr;
+
+
+
+public class DL_ValueDescr extends DL_aCompositeDescr {
+	
+	private Object val;
+	
+	
+	@Override
+	public String getType() {
+		return (isNegated() ? "not" : "") +  "DL_VALUE";
+	}
+
+
+	public Object getVal() {
+		return val;
+	}
+
+
+	public void setVal(Object val) {
+		this.val = val;
+	}
+
+	
+	
+}

Copied: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aBaseDescr.java (from rev 33525, labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_BaseDescr.java)
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aBaseDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aBaseDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,158 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+
+public abstract class DL_aBaseDescr  {
+
+    private static final long serialVersionUID = 600L;
+    
+    private boolean negated = false;
+    
+    private int id;
+    
+    private DL_aCompositeDescr father;
+    
+ 
+    
+    private Map<String,DL_AnnotationDescr> annotations = new HashMap<String, DL_AnnotationDescr>();
+    
+                  
+    public String toUpwardString() {
+    	StringBuilder sb = new StringBuilder();
+    		sb.append(this.toString());
+    		sb.append(" | son-of " + 
+    						((father == null) ? "null" : father.toUpwardString()) 
+    						);    		
+    	return sb.toString();
+    }
+    
+    public String toDownwardString() {
+    	return toString();
+    }
+    
+    public String toFullDownwardString(int n) {
+    	return toString() + formatAnnotations(1);
+    }
+
+    public String toString() {
+    	return "DL["+id+"]: " + this.getType() + "\n";
+    }
+    
+    
+    
+	protected String formatAnnotations(int lev) {
+		String meta = "\n";
+		String tab = "";
+		for (int j = 0; j < lev; j++) tab += "\t";		
+		for (String key : annotations.keySet()) {			
+			meta += tab + "@" + key + " | " + annotations.get(key).getTargetValue().toString();
+			if (annotations.get(key).getAnnotationMap().size() > 0)
+				meta += annotations.get(key).formatAnnotations(lev+1);
+			else meta += " ,\n";
+		}
+		return meta;		
+	}
+
+	public void setFather(DL_aCompositeDescr father) {
+		this.father = father;
+	}
+
+	public DL_aCompositeDescr getFather() {
+		return father;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public int getId() {
+		return id;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result + id;
+		return result;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		DL_aBaseDescr other = (DL_aBaseDescr) obj;
+		if (id != other.id)
+			return false;
+		return true;
+	}
+	
+	
+	
+	
+	public abstract String getType();
+
+	
+	
+	
+	
+//	private void setLevel(int level) {
+//		//this.level = level;
+//	}
+
+	public int getLevel() {
+		return (father == null) ? 0 : (1+father.getLevel());
+	}
+
+	
+	
+	
+	
+	
+	
+	
+	
+	public Map<String,DL_AnnotationDescr> getAnnotationMap() {
+		return annotations;
+	}
+    
+	public Collection<DL_AnnotationDescr> getAnnotations() {
+		return annotations.values();
+	}
+	
+	public void addAnnotations(Collection<DL_AnnotationDescr> moreAnnotations) {
+		for (DL_AnnotationDescr descr : moreAnnotations)
+			annotations.put(descr.getIriKey().getIri(), descr);
+	}
+	
+	public void addAnnotation(DL_AnnotationDescr annotation) {
+		annotations.put(annotation.getIriKey().getIri(), annotation);
+	}
+	
+	public DL_AnnotationDescr getAnnotation(String key) {
+		return annotations.get(key);
+	}
+	
+	
+	
+	
+
+	public void setNegated(boolean negated) {
+		this.negated = negated;
+	}
+
+	public boolean isNegated() {
+		return negated;
+	}
+	
+	
+}
+
+

Copied: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aCompositeDescr.java (from rev 33525, labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_CompositeDescr.java)
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aCompositeDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aCompositeDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,76 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+
+public abstract class DL_aCompositeDescr extends DL_aBaseDescr {
+	
+	private List<DL_aBaseDescr> children = new LinkedList<DL_aBaseDescr>();
+	
+	   
+	public void addChild(DL_aBaseDescr child) {
+		children.add(child);
+		child.setFather(this);
+		//child.setLevel(getLevel()+1);
+		//this.setLevel(child.getLevel()+1);
+	}
+	
+	public void addChildren(Collection<DL_aBaseDescr> childs) {
+		for (DL_aBaseDescr child : childs)
+			this.addChild(child);
+	}
+
+	public List<String> getChildTypes() {
+		List<String> ans = new LinkedList<String>();
+		for (DL_aBaseDescr child : children) {
+			ans.add(child.getType());
+		}
+		return ans;
+	}
+	
+	public List<DL_aBaseDescr> getChildren() {
+		return children;
+	}
+	
+	public List<DL_aBaseDescr> getChildrenReversed() {
+		List<DL_aBaseDescr> rev = new LinkedList<DL_aBaseDescr>();
+		for (int j = children.size()-1; j >= 0; j--) {
+			rev.add(children.get(j));				
+		}
+		return rev;
+	}
+	
+	public void removeChild(DL_aBaseDescr child) {
+		children.remove(child);
+	}
+	
+	public void replaceChild(DL_aBaseDescr oldChild, DL_aBaseDescr newChild) {
+		int idx = children.indexOf(oldChild);
+		children.set(idx, newChild);
+		newChild.setFather(this);
+		oldChild.setFather(null);
+	}
+	
+	
+	
+	public String toDownwardString() {
+		StringBuilder sb = new StringBuilder();
+			sb.append(super.toString());
+			for (DL_aBaseDescr child : children)
+    			sb.append("\t"+child.toString());
+		return sb.toString();
+	}
+	
+	public String toFullDownwardString(int n) {
+		StringBuilder sb = new StringBuilder();
+		sb.append(this.toString() + formatAnnotations(1));
+			for (DL_aBaseDescr child : children) {
+				for (int j = 0; j < n; j++)
+					sb.append("\t");
+				sb.append(child.toFullDownwardString(n+1));
+			}
+			return sb.toString();
+    }
+
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aConceptDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aConceptDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aConceptDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,24 @@
+package org.drools.lang.dl.descr;
+
+import java.util.Collection;
+import java.util.Set;
+
+public abstract class DL_aConceptDescr extends DL_aDeclarationDescr {
+
+	private Set<DL_DefinitionDescr> equivalentTo;
+
+	public Set<DL_DefinitionDescr> getEquivalentTo() {
+		return equivalentTo;
+	}
+	public void setEquivalentTo(Set<DL_DefinitionDescr> equivalentTo) {
+		this.equivalentTo = equivalentTo;
+	}
+	public void addEquivalentTo(DL_DefinitionDescr descr) {
+		this.equivalentTo.add(descr);
+	}
+	public void addAllEquivalentTo(Collection<DL_DefinitionDescr> descrs) {
+		this.equivalentTo.addAll(descrs);
+	}
+	
+	
+}

Added: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aDeclarationDescr.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aDeclarationDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aDeclarationDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,21 @@
+package org.drools.lang.dl.descr;
+
+public class DL_aDeclarationDescr extends DL_aBaseDescr {
+
+	private DL_IriDescr iri;
+	
+		
+	public String getType() {
+		return iri.getIri();
+	}
+
+
+	public DL_IriDescr getIri() {
+		return iri;
+	}
+
+	public void setIri(DL_IriDescr iri) {
+		this.iri = iri;
+	}
+
+}

Copied: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aLeafDescr.java (from rev 33525, labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_LeafDescr.java)
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aLeafDescr.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/lang/dl/descr/DL_aLeafDescr.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,5 @@
+package org.drools.lang.dl.descr;
+
+public abstract class DL_aLeafDescr extends DL_aBaseDescr {
+				
+}

Modified: labs/jbossrules/branches/DRLv6/src/main/java/org/drools/util/DRLTreeMLFormatter.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/java/org/drools/util/DRLTreeMLFormatter.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/java/org/drools/util/DRLTreeMLFormatter.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,5 +1,7 @@
 package org.drools.util;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
 
@@ -19,17 +21,17 @@
 	public static final String FIELD = "text";
 
 	public static InputStream getAsStream(CommonTree resultTree) {
-		ByteArrayBuffer buffer = new ByteArrayBuffer();
+		ByteArrayOutputStream baos = new ByteArrayOutputStream();
 		Graph graph = buildGraph(resultTree);
 		
 		TreeMLWriter writer = new TreeMLWriter();				
 		try {
-			writer.writeGraph(graph, buffer);
+			writer.writeGraph(graph, baos);
 		} catch (DataIOException e) {
 			e.printStackTrace();
 		}
 		
-		return buffer.newInputStream(); 
+		return new ByteArrayInputStream(baos.toByteArray());
 	}
 
 	private static Graph buildGraph(CommonTree resultTree) {

Modified: labs/jbossrules/branches/DRLv6/src/main/resources/DLTreeBuilder.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/DLTreeBuilder.g	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/DLTreeBuilder.g	2010-11-01 02:16:44 UTC (rev 35808)
@@ -12,7 +12,7 @@
     package org.drools.lang.dl;
     
     import org.drools.lang.dl.descr.DLDescrFactory;
-    import org.drools.lang.dl.descr.DL_BaseDescr;
+    import org.drools.lang.dl.descr.DL_aBaseDescr;
     import java.util.List;
     import java.util.LinkedList;
        

Modified: labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Lexer.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Lexer.g	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Lexer.g	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,5 +1,5 @@
 lexer grammar DRLv6Lexer;
-   
+    
 options {
   language = Java; 
 }  

Modified: labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Parser.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Parser.g	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Parser.g	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,6 +1,6 @@
 parser grammar DRLv6Parser; 
 
-   
+        
 options {  
   language = Java;
   output = AST;
@@ -12,8 +12,8 @@
    
   
 //import  General, Expression; 
-import DRLv6Keywords, Manchester;
-
+import DRLv6Keywords; //, Manchester;
+ 
         
  
 
@@ -26,7 +26,7 @@
   import java.util.HashSet;
   import org.drools.compiler.DroolsParserException;
 }
-    
+     
 @members {
 
     private Tree curField;
@@ -46,8 +46,8 @@
 //        gExpression.setParserHelper( helper );
 //        gGeneral.setParserHelper( helper );          
 //          gAttributes.setParserHelper( helper );
-          gManchester.setParserHelper( helper );
-          gManchester.setPrefixSet( prefixes );
+//          gManchester.setParserHelper( helper );
+//          gManchester.setPrefixSet( prefixes );
     }  
    
     public ParserHelper getHelper()                           { return helper; }
@@ -66,18 +66,18 @@
 }
  
 
-
+     
 compilation_unit
   : package_statement?  
     import_section
     declaration_section
-    ontology_section?
+//    ontology_section?
     rulebase_section?
     EOF
     -> ^(VT_COMPILATION_UNIT package_statement?
           ^(VT_IMPORT_SECTION import_section?) 
           ^(VT_DECLARATION_SECTION declaration_section?)
-          ^(VT_ONTOLOGY_SECTION ontology_section?)
+//          ^(VT_ONTOLOGY_SECTION ontology_section?)
           ^(VT_RULEBASE_SECTION rulebase_section?)
         )        
   ;
@@ -120,11 +120,9 @@
 declaration_statement
   : global  
   | function
+  | declare_bean
   ;
 
-ontology_section
-  : manDL_ontology 
-  ;
 
 rulebase_section
   : rulebase_statement+
@@ -187,9 +185,23 @@
 
 
  
+declare_bean
+  :
+  ;
 
-
  
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
      
      
 
@@ -994,7 +1006,7 @@
   ;
 
 
-
+ 
 accumulate_iteration
   : init_key pc1=accumulate_paren_chunk COMMA?  
     action_key pc2=accumulate_paren_chunk COMMA?
@@ -1415,9 +1427,12 @@
 // --------------------------------------------------------
 
   
-
-literal
-    :   STRING m=msr_unit?
+locale
+  : AT ID
+  ;  
+ 
+literal 
+    :   STRING m=msr_unit? ( (locale) => locale )?
         -> {m==null}? STRING
         -> ^(VT_MSR STRING $m)
     |   DECIMAL m=msr_unit?
@@ -1426,7 +1441,7 @@
     |   FLOAT m=msr_unit?
         -> {m==null}? FLOAT
         -> ^(VT_MSR FLOAT $m)
-    |   HEX
+    |   HEX  
     |   OCTAL
     |   BOOL 
     | null_key 

Deleted: labs/jbossrules/branches/DRLv6/src/main/resources/Manchester.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/Manchester.g	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/Manchester.g	2010-11-01 02:16:44 UTC (rev 35808)
@@ -1,735 +0,0 @@
-parser grammar Manchester;
-
-
-    
- at members {
-    
-    private Set prefixes = null;     
-    public void setPrefixSet( Set ps )    { this.prefixes = ps; }    
-    
-    private ParserHelper helper = null;
-    public void setParserHelper( ParserHelper helper )        { this.helper = helper; }
-    public void reportError(RecognitionException ex)          {      helper.reportError( ex ); }  
-    
-    private Tree curField;
-}
-
-
-//******************************************************************
-//                        MANCHESTER SYNTAX
-//******************************************************************  
-
-
-manDL_ontology
-options{
-	k=5;
-}
-  :	
-  	manDL_prefix*
-    ontology_key COLON (nam=iri ver=iri?)?
-    manDL_inport*
-    ((AT? annotations_key) => manDL_annotations)?
-    manDL_type_declaration*
-    -> ^(VT_ONTOLOGY ^(VT_NAME $nam? $ver?) 
-    		manDL_prefix* 
-    		manDL_inport* 
-    		manDL_annotations? 
-    		manDL_type_declaration*
-    		)    
-  ; 
-
-
-manDL_inport  // :)
-  : import_key COLON iri   
-  -> ^(VT_IMPORT iri)
-  ;  
-
-
-  
-manDL_prefix
-  : (prefix_key | namespace_key) COLON pref=ID COLON? full_iri 
-    { prefixes.add($pref.text); }
-  -> ^(VT_PREFIX ID full_iri)
-  ; 
-
-
-
-manDL_annotations
-  : annotations_key COLON manDL_annotation_list
-  ->  ^(VT_ANNOTATIONS manDL_annotation_list)  
-  ;   
-  
-manDL_annotation_list
-  : manDL_annotation (COMMA! manDL_annotation)* 
-  ;  
-
-manDL_annotation
-  : manDL_annotations? manDL_annotationPropertyIRI manDL_annotation_target
-  -> ^(VT_ANNOTATION manDL_annotations? manDL_annotationPropertyIRI manDL_annotation_target )
-  ;
-  
-manDL_annotation_target  
-  : manDL_individual | literal 
-  ;  
-
- 
-
-manDL_type_declaration
-options{
-  backtrack=true;
-}
-  : manDL_datatype_def
-  | manDL_class     
-  | manDL_objectProperty
-  | manDL_dataProperty
-  | manDL_annotationProperty
-  | manDL_namedIndividual  
-  | manDL_misc
-  ;  
-
-
-
-
-
-
-
-
-manDL_class
-scope{
-  CommonTree keys; 
-} 
- at init{
-  ((manDL_class_scope) manDL_class_stack.peek()).keys = new CommonTree(new CommonToken(DRLv6Lexer.VT_KEYS,"VT_KEYS"));
-}
- at after{
-  retval.tree.addChild(((manDL_class_scope) manDL_class_stack.peek()).keys);
-}
-  :   	  	
-  	
-    ( (AT typ=classevent_key)? declare_key
-    	| typ=classevent_key COLON )
-      
-      iri
-      manDL_class_frame*
-      manDL_decl_fields?         
-    end_key?
-  -> {typ!=null}? ^(VT_TYPE_DECLARE 
-                      ^(VT_ENTITY_TYPE[$typ.text]) 
-                      ^(VT_TYPE_DECLARE_ID iri)                                                               
-                      manDL_class_frame* manDL_decl_fields?)                        
-  -> ^(VT_TYPE_DECLARE 
-          ^(VT_ENTITY_TYPE["Class"]) 
-          ^(VT_TYPE_DECLARE_ID iri) 
-          manDL_class_frame* 
-          manDL_decl_fields?)
-   
-  ;
-
-classevent_key
-	:	class_key 
-	| event_key
-	;
-
-
-manDL_decl_fields
-  : manDL_decl_field more=manDL_decl_field*
-  -> ^(VT_EQUIVALENTTO ^(VT_DL_DEFINITION ^(VT_AND manDL_decl_field+)))
-  ;
-
-                          
-manDL_decl_field
-  : manDL_field^ manDL_decl_field_attributes? SEMICOLON!    	 
-  ;
-
-manDL_field
-  : (manDL_property_expression COLON) => manDL_property_expression COLON manDL_data_type_restriction
-      -> ^(VT_COUNT manDL_property_expression ^(VT_MIN DECIMAL["1"]) ^(VT_MAX DECIMAL["1"]) manDL_data_type_restriction)
-  | manDL_quantified_restriction_core  
-      -> manDL_quantified_restriction_core  
-  ;  
-
- 
-manDL_decl_field_attributes
-  :
-      AT LEFT_SQUARE
-          manDL_decl_field_attribute (COMMA manDL_decl_field_attribute)*         
-      RIGHT_SQUARE
-      -> ^(VT_ATTRIBUTES manDL_decl_field_attribute+)   
-      | ( AT manDL_decl_field_attribute )+
-      -> ^(VT_ATTRIBUTES manDL_decl_field_attribute+)   
-  ;
-
-manDL_decl_field_attribute
-  :
-    key_key 
-    {
-      if ($manDL_class::keys != null)              
-        $manDL_class::keys.addChild(curField);
-    }    
-  ;
-  
-
-
-  
-  
-  
-  
-  
-  
-manDL_class_frame
-  : (annotations_key) => manDL_annotations
-  | (disjointUnionOf_key) => manDL_disjointUnionOf
-  | (disjointWith_key) => manDL_disjointWith
-  | (as_key | equivalentTo_key) => manDL_equivalentTo
-  | (subClassOf_key) => manDL_subClassOf
-  | (hasKey_key) => manDL_hasKey ->     
-  ;  
-  
-  
-  
-manDL_disjointUnionOf
-  : disjointUnionOf_key COLON manDL_disjointUnionOf_list
-    -> ^(VT_DISJOINTUNIONOF manDL_disjointUnionOf_list)
-  ;
-
-manDL_disjointUnionOf_list
-  : manDL_annotated_description (COMMA! manDL_annotated_description)+ 
-  ;  
-  
-manDL_disjointWith
-  : disjointWith_key COLON manDL_annotated_description_list
-  -> ^(VT_DISJOINTWITH manDL_annotated_description_list)
-  ;
-
-manDL_equivalentTo
-  : ( as_key | equivalentTo_key COLON)  manDL_annotated_description_list
-  -> ^(VT_EQUIVALENTTO manDL_annotated_description_list)  
-  ;
-  
-manDL_subClassOf
-  : subClassOf_key COLON manDL_annotated_description_list
-  -> ^(VT_SUBCLASSOF manDL_annotated_description_list)
-  ;  
-  
-manDL_hasKey
- at after{
-  ((manDL_class_scope) manDL_class_stack.peek()).keys.addChildren(retval.tree.getChildren());
-}
-  : hasKey_key^ COLON! manDL_annotations? manDL_property_expression (COMMA! manDL_property_expression)*
-
-  ;  
-  
-  
-  
- 
- 
-
-manDL_annotated_description_list
-  : manDL_annotated_description (COMMA! manDL_annotated_description)*
-  ;
-
-
-manDL_annotated_description
-  : manDL_annotations? manDL_description
-  -> ^(VT_DL_DEFINITION manDL_annotations? manDL_description)
-  ;
-  
-
-
-manDL_description 
-  : manDL_conjunction ( (or_key manDL_primary) => or=or_key manDL_conjunction)*
-  -> {or==null}? manDL_conjunction
-  -> ^(VT_OR manDL_conjunction+)
-  ;
-  
-manDL_conjunction
-  : (manDL_classIRI that_key) => manDL_classIRI that_key manDL_restriction (and_key manDL_restriction)*
-  -> ^(VT_AND ^(VT_DL_TYPE manDL_classIRI) manDL_restriction+)     
-  
-  | manDL_primary ( (and_key manDL_primary) => and=and_key manDL_primary)*
-  -> {and==null}? manDL_primary
-  -> ^(VT_AND manDL_primary+)
-  ;  
-
-
-manDL_primary 
-options{
-	backtrack=true;
-}
-  : manDL_restriction 
-  | manDL_atomic   
-  ;
-  
-manDL_atomic
-  : not=not_key? manDL_atomic_core
-  -> {not!=null}? ^(VT_NEG manDL_atomic_core)
-  -> manDL_atomic_core
-  ;
-
-manDL_atomic_core
-  : LEFT_CURLY! literal_list RIGHT_CURLY!
-  | manDL_data_type_restriction
-  -> manDL_data_type_restriction
-  | LEFT_PAREN! manDL_description RIGHT_PAREN!
-  ;  
-
-manDL_restriction
-  : not=not_key? manDL_quantified_restriction_core
-  -> {not!=null}? ^(VT_NEG manDL_quantified_restriction_core)
-  -> manDL_quantified_restriction_core
-  ;
- 
-
-manDL_quantified_restriction_core
-  : p=manDL_property_expression {curField  = $p.tree;}  
-    (   (some_key) => some_key manDL_primary
-      -> ^(VT_EXISTS manDL_property_expression manDL_primary)
-      | (only_key) => only_key  manDL_primary
-      -> ^(VT_FORALL manDL_property_expression manDL_primary)
-      | (all_key) => all_key  manDL_primary
-      -> ^(VT_FORALL manDL_property_expression manDL_primary)
-      | (value_key) => value_key (manDL_individual | literal)
-      -> ^(VT_VALUE manDL_property_expression manDL_individual? literal?)
-      | (self_key) => self_key
-      -> ^(self_key manDL_property_expression)
-      | (min_key) => min_key DECIMAL 
-              ((and_key) => 
-              | (or_key) =>
-              | (manDL_primary) => manDL_primary)?
-      -> ^(VT_COUNT manDL_property_expression ^(VT_MIN DECIMAL) manDL_primary?)
-      | (max_key) => max_key DECIMAL 
-              ((and_key) => 
-              | (or_key) =>
-              | (manDL_primary) => manDL_primary)?
-      -> ^(VT_COUNT manDL_property_expression ^(VT_MAX DECIMAL) manDL_primary?)
-      
-      | (exactly_key) => exactly_key DECIMAL 
-              ((and_key) => 
-              | (or_key) =>
-              | (manDL_primary) => manDL_primary)?
-      -> ^(VT_COUNT manDL_property_expression ^(VT_MIN DECIMAL) ^(VT_MAX DECIMAL) manDL_primary?)
-      
-      
-      | (manDL_data_type_restriction) => manDL_data_type_restriction
-      -> ^(VT_COUNT manDL_property_expression ^(VT_MIN DECIMAL["1"]) ^(VT_MAX DECIMAL["1"]) manDL_data_type_restriction)       
-   ) 
-  ; 
-  
-manDL_data_type_restriction
-  : manDL_data_type (LEFT_SQUARE fac=manDL_facets RIGHT_SQUARE)?	
-  -> {fac!=null}? ^(VT_DL_RESTRICTED_TYPE manDL_data_type manDL_facets) 
-  -> ^(VT_DL_TYPE manDL_data_type)
-  ;
- 
-
-manDL_facets
-  : manDL_facet manDL_restriction_value more=(COMMA manDL_facet manDL_restriction_value)*
-  -> {more==null}? ^(VT_DL_RESTRICTION manDL_facet manDL_restriction_value*)
-  -> ^(VT_AND ^(VT_DL_RESTRICTION manDL_facet manDL_restriction_value)+)
-  ;  
-
-manDL_restriction_value
-  : literal
-  ; 
-
-manDL_facet
-  : facet_length_key
-  | facet_minLength_key
-  | facet_maxLength_key
-  | facet_pattern_key
-  | facet_langPattern_key
-  | GREATER_EQUAL
-  | GREATER
-  | LESS_EQUAL
-  | LESS
-  ;   
- 
- 
- 
- 
- 
- 
-
-
-
-
-
-manDL_datatype_def
-  : (AT typ=datatype_key declare_key
-    | typ=datatype_key COLON )
-      iri
-      manDL_datatype_frame*
-    end_key?
-  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE[$typ.text]) ^(VT_TYPE_DECLARE_ID iri) manDL_datatype_frame*)
-  ;
- 
-manDL_datatype_frame
-  : manDL_annotations
-  | manDL_equivalentTo  
-  ;  
-  
-  
-  
- 
-
-manDL_objectProperty
-  : ( AT typ=objectProperty_key declare_key
-    | typ=objectProperty_key COLON)
-      iri
-      qa=(manDL_quick_attributes -> ^(VT_ATTRIBUTES manDL_quick_attributes?))
-      manDL_objProp_frame*
-    end_key?
-  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE[$typ.text]) ^(VT_TYPE_DECLARE_ID iri) $qa? manDL_objProp_frame*)
-  ;
-  
-manDL_objProp_frame
-  : manDL_annotations
-  | manDL_attributes
-  | manDL_disjointWith
-  | manDL_equivalentTo
-  | manDL_inverseOf
-  | manDL_domain  
-  | manDL_range
-  | manDL_subPropertyOf
-  | manDL_subPropChain
-  ;
-  
-  
-    
-manDL_dataProperty
-  : 				
-		(AT typ=dataProperty_key declare_key
-    | typ=dataProperty_key COLON) 
-      iri
-      qa=(manDL_quick_attributes -> ^(VT_ATTRIBUTES manDL_quick_attributes?))
-      manDL_dataProp_frame*
-    end_key?
-  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE[$typ.text]) ^(VT_TYPE_DECLARE_ID iri) $qa? manDL_dataProp_frame*)
-  ; 
-  
-
-manDL_dataProp_frame
-  : manDL_annotations
-  | manDL_domain  
-  | manDL_range  
-  | manDL_attributes    
-  | manDL_disjointWith
-  | manDL_equivalentTo
-  | manDL_subPropertyOf   
-  ;    
-
-
-manDL_domain
-  : domain_key COLON manDL_annotated_description_list
-  -> ^(VT_DOMAIN manDL_annotated_description_list)
-  ;
-  
-manDL_range
-  : range_key COLON manDL_annotated_description_list  
-  -> ^(VT_RANGE manDL_annotated_description_list)
-  ;
-
-     
- 
- 
- 
-manDL_subPropertyOf
-  : subPropertyOf_key COLON manDL_property_list
-  -> ^(VT_SUBPROPERTYOF manDL_property_list)
-  ;  
-  
-manDL_inverseOf
-  : inverseOf_key COLON manDL_property_list
-  -> ^(VT_INVERSEOF manDL_property_list)
-  ;  
-
-manDL_subPropChain
-  : subPropertyChain_key COLON manDL_annotations? manDL_property_expression ( CHAIN_SEP manDL_property_expression )*
-  -> ^(VT_SUBPROPERTYCHAIN manDL_annotations? manDL_property_expression+)
-  ;
-     
- 
-
-
-
-
-
-  
-manDL_annotationProperty
-  : ( AT typ=annotationProperty_key declare_key
-    | typ=annotationProperty_key COLON)
-     iri
-      manDL_annProp_frame*
-    end_key?
-  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE[$typ.text]) ^(VT_TYPE_DECLARE_ID iri) manDL_annProp_frame*)
-  ;  
-  
-  
-manDL_annProp_frame
-  : manDL_annotations
-  | manDL_domain  
-  | manDL_range
-  | manDL_subPropertyOf
-  ; 
-  
-  
-  
-  
-  
-  
-  
-manDL_namedIndividual
-  : (AT typ=individual_key declare_key
-    | typ=individual_key COLON)  
-      iri
-      manDL_indiv_frame*
-    end_key?
-  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE[$typ.text]) ^(VT_NAME iri) manDL_indiv_frame*)
-  ;  
-  
-manDL_indiv_frame 
-  : manDL_annotations
-  | manDL_types
-  | manDL_facts
-  | manDL_sameAs
-  | manDL_differentFrom
-  ;  
-  
-manDL_types
-  : types_key COLON manDL_annotated_description_list
-  -> ^(VT_TYPES manDL_annotated_description_list)
-  ;
-
-manDL_individual_list
-  : manDL_annotated_individual (COMMA! manDL_annotated_individual)*
-  ;
-  
-manDL_annotated_individual
-  : ^(manDL_individual manDL_annotations?) 
-  ;   
-  
-manDL_facts
-  : facts_key COLON manDL_fact_annotated_list
-  -> ^(VT_FACTS manDL_fact_annotated_list)
-  ;
-  
-manDL_fact_annotated_list
-  : manDL_annotated_fact (COMMA! manDL_annotated_fact)*
-  ;
-
-manDL_annotated_fact
-  : ^(manDL_fact manDL_annotations?)   
-  ;   
-
-manDL_fact
-  : neg=not_key? manDL_property_expression (manDL_individual | literal)
-  -> {neg==null}? ^(VT_FACT manDL_property_expression manDL_individual? literal?)
-  -> ^(VT_NEG ^(VT_FACT manDL_property_expression manDL_individual? literal?))
-  ;    
-
-
-  
-manDL_sameAs
-  : sameAs_key COLON manDL_individual_list
-  -> ^(VT_SAMEAS manDL_individual_list)
-  ;
-  
-manDL_differentFrom
-  : differentFrom_key COLON manDL_individual_list
-  -> ^(VT_DIFFERENTFROM manDL_individual_list)
-  ;  
-
-  
-
-  
-  
-  
-  
-  
-
-
-
-
-  
-  
-
-
-
-manDL_misc
-  : (eq=equivalentClasses_key | df=disjointClasses_key) COLON
-      manDL_annotations? manDL_description (COMMA manDL_description)+
-      -> {eq!=null}? ^(VT_EQV_CLASS manDL_annotations? manDL_description+)
-      -> ^(VT_DIF_CLASS manDL_annotations? manDL_description+)
-      
-  | (eq2=equivalentProperties_key | df2=disjointProperties_key) COLON
-      manDL_annotations? manDL_property_expression (COMMA manDL_property_expression)+
-      -> {eq2!=null}? ^(VT_EQV_PROP manDL_annotations? manDL_property_expression+)
-      -> ^(VT_DIF_PROP manDL_annotations? manDL_property_expression+)
-      
-  | (eq3=sameIndividual_key | df3=differentIndividuals_key) COLON
-      manDL_annotations? manDL_individual (COMMA manDL_individual)+
-      -> {eq3!=null}? ^(VT_EQV_INDV manDL_annotations? manDL_individual+)
-      -> ^(VT_DIF_INDV manDL_annotations? manDL_individual+)
-  ;
-   
-
-
-
-
-
-
-
-  
-  
-
-
-
-
-
-  
-
-
-
-  
-  
-
-          
-
-
-  
-
-
-  
-  
-  
-  
- 
-  
-  
- 
-
-
-
-manDL_attributes
-  : characteristics_key COLON (manDL_annotations? manDL_attribute) (COMMA  manDL_annotations? manDL_attribute)*
-  -> ^(VT_ATTRIBUTES ^(manDL_attribute manDL_annotations?)+)   
-  ; 
- 
- 
-manDL_quick_attributes
-	: (AT manDL_att_functional) => AT! manDL_att_functional manDL_quick_attributes
-	| (AT manDL_att_inverseFunctional) => AT! manDL_att_inverseFunctional manDL_quick_attributes
-	| (AT manDL_att_reflexive) => AT! manDL_att_reflexive manDL_quick_attributes
-	| (AT manDL_att_irreflexive) => AT! manDL_att_irreflexive manDL_quick_attributes
-	| (AT manDL_att_symmetric) => AT! manDL_att_symmetric manDL_quick_attributes
-	| (AT manDL_att_asymmetric) => AT! manDL_att_asymmetric manDL_quick_attributes
-	| (AT manDL_att_transitive) => AT! manDL_att_transitive manDL_quick_attributes
-	| 
-	;
-	 
-manDL_attribute
-  : 
-   manDL_att_functional
-  | manDL_att_inverseFunctional
-  | manDL_att_reflexive
-  | manDL_att_irreflexive
-  | manDL_att_symmetric
-  | manDL_att_asymmetric
-  | manDL_att_transitive
-  ;
-  
-  
-
-manDL_att_functional
-  : mda_functional_key
-  ;
-  
-manDL_att_inverseFunctional
-  : mda_inverseFunctional_key
-  ;
-  
-manDL_att_reflexive
-  : mda_reflexive_key
-  ;
-  
-manDL_att_irreflexive
-  : mda_irreflexive_key
-  ;
-  
-manDL_att_symmetric
-  : mda_symmetric_key
-  ;
-  
-manDL_att_asymmetric
-  : mda_asymmetric_key
-  ;
-
-manDL_att_transitive
-  : mda_transitive_key
-  ; 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
-  
-  
-manDL_property_list
-  : manDL_annotatedProperty (COMMA! manDL_annotatedProperty)?
-  ; 
-  
-manDL_annotatedProperty
-  : manDL_annotations? manDL_property_expression
-  ;
-       
-manDL_property_expression  
-  : inv=inverse_key? manDL_propertyIRI
-  -> ^(VT_DL_PROP manDL_propertyIRI $inv?)     
-  ;  
-  
-  
-  
-manDL_classIRI 
-  : iri
-  ;
-
-manDL_data_type returns [int dim]
- at init{
- $dim=0;  
-}
-  : iri (dimension_definition {$dim++;})*
-    -> ^(VT_DATA_TYPE VT_DIM_SIZE[$start,""+$dim] iri)
-  ;
- 
-manDL_objectPropertyIRI 
-  : iri
-  ;
-  
-manDL_dataPropertyIRI 
-  : iri
-  ;
-  
-manDL_annotationPropertyIRI 
-  : iri
-  ;
-  
-manDL_propertyIRI
-  : iri
-  ;  
-  
-manDL_individual 
-  : manDL_individualIRI 
-  | nodeID
-  ;
-  
-manDL_individualIRI 
-  : iri  
-  ;
-
- 
\ No newline at end of file

Added: labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterLexer.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterLexer.g	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterLexer.g	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,436 @@
+lexer grammar ManchesterLexer;
+     
+options {
+  language = Java; 
+}  
+             
+ 
+tokens {
+  
+  VT_IMPORT;
+  VT_NAME;
+  
+  VT_TYPE_DECLARE;
+  VT_ENTITY_TYPE_CLASS;
+  VT_ENTITY_TYPE_DATATYPE;
+  VT_ENTITY_TYPE_OBJPROP;
+  VT_ENTITY_TYPE_DATAPROP;
+  VT_ENTITY_TYPE_ANNPROP;
+  VT_ENTITY_TYPE_INDIVIDUAL;
+  
+  VT_TYPE_DECLARE_ID;
+  VT_DATA_TYPE;
+  VT_LIST;
+  
+  VT_ATTRIBUTES;
+  VT_DIM_SIZE;
+   
+  VT_PAREN_CHUNK;
+    
+  VT_IMPLIES; 
+  VT_NEG;
+  VT_AND;
+  VT_OR;
+    
+  VT_EXISTS;
+  VT_FORALL;  
+  VT_COUNT;
+  VT_MIN;
+  VT_MAX;
+  VT_VALUE;
+    
+  
+  
+  VT_ONTOLOGY; 
+  VT_PREFIX;
+  VT_ANNOTATIONS;
+  VT_ANNOTATION;
+  VT_DL_DEFINITION;
+  VT_FIELD;
+  VT_KEYS;
+    
+  VT_FACTS;
+  VT_FACT;
+  VT_DL_TYPE;
+  VT_TYPES;
+  VT_TYPE;  
+  VT_MSR;
+        
+  VT_DL_PROP;
+  VT_DL_INV_PROP;
+  VT_DL_RESTRICTION;
+  VT_DL_RESTRICTED_TYPE;
+  
+  VT_EQUIVALENTTO;
+  VT_SUBCLASSOF;
+  VT_DISJOINTWITH;
+  VT_DISJOINTUNIONOF;
+  VT_SUBPROPERTYOF; 
+  VT_INVERSEOF;
+  VT_SUBPROPERTYCHAIN;
+  VT_DOMAIN;
+  VT_RANGE; 
+  
+  VT_SAMEAS;
+  VT_DIFFERENTFROM;
+  
+  VT_EQV_CLASS;
+  VT_DIF_CLASS;
+  VT_EQV_PROP;
+  VT_DIF_PROP;
+  VT_EQV_INDV;
+  VT_DIF_INDV;
+
+  VT_IRI;
+  VT_BLANK;
+  VT_ANON; 
+  VT_DEF_NS;
+  
+  
+  VT_DLA_FUN;
+  VT_DLA_IFUN;
+  VT_DLA_REF;
+  VT_DLA_IREF;
+  VT_DLA_SYM;
+  VT_DLA_ASYM;
+  VT_DLA_TRN;
+  
+  VT_SELF;
+  
+  VK_FACET;
+}     
+     
+
+
+ at lexer::header {
+  package org.drools.lang.dl;
+
+}
+
+ 
+// --------------------------------------------------------
+//                      KEYWORDS
+// --------------------------------------------------------
+
+AND_K : 'and' ;
+
+ANNOTATIONS_K : 'Annotations' ;
+
+ANNOTATIONPROPERTY_K : 'AnnotationProperty' ;
+
+ASYMMETRIC_K : 'Asymmetric' ;
+
+CHARACTERISTICS_K : 'Characteristics' ;
+
+CLASS_K : 'Class' ;
+
+DATAPROPERTY_K : 'DataProperty' ;
+
+DATATYPE_K : 'Datatype' ;
+
+DECIMAL_K : 'decimal' ;
+
+DIFFERENTINDIVIDUALS_K : 'DifferentIndividuals' ;
+
+DISJOINTCLASSES_K : 'DisjointClasses' ;
+
+DISJOINTPROPERTIES_K : 'DisjointProperties' ;
+
+DIFFERENTFROM_K : 'DifferentFrom' ;
+
+DISJOINTWITH_K : 'DisjointWith' ;
+
+DISJOINTUNIONOF_K : 'DisjointUnionOf' ;
+
+DOMAIN_K : 'Domain' ;
+
+EQUIVALENTCLASSES_K : 'EquivalentClasses' ;
+
+EQUIVALENTPROPERTIES_K : 'EquivalentProperties' ;
+
+EQUIVALENTTO_K : 'EquivalentTo' ; 
+ 
+EXACTLY_K : 'exactly' ;
+
+FACTS_K : 'Facts' ;
+
+FLOAT_K : 'float' ;
+
+FUNCTIONAL_K : 'Functional' ;
+
+HASKEY_K : 'HasKey' ;
+
+IMPORT_K : 'Import' ;
+
+INDIVIDUAL_K : 'Individual' ;
+ 
+INVERSE_K : 'inverse' ;
+
+INVERSEFUNCTIONAL_K : 'InverseFunctional' ;
+
+INVERSEOF_K : 'InverseOf' ;
+
+INTEGER_K : 'integer' ;
+
+IRREFLEXIVE_K : 'Irreflexive' ;
+
+LANGPATTERN_K : 'langPattern' ;
+
+LENGTH_K : 'length' ;
+
+MAX_K : 'max' ;
+
+MAXLENGTH_K : 'maxLength' ;
+
+MIN_K : 'min' ;
+
+MINLENGTH_K : 'minLength' ;
+
+NAMEDINDIVIDUAL_K : 'NamedIndividual' ;
+
+//Not standard??
+NAMESPACE_K : 'Namespace' ;
+
+NOT_K : 'not' ;
+
+OBJECTPROPERTY_K : 'ObjectProperty' ;
+
+ONLY_K : 'only' ;
+
+ONTOLOGY_K : 'Ontology' ;
+
+OR_K : 'or' ;
+
+PATTERN_K : 'pattern' ;
+
+PREFIX_K : 'Prefix' ;
+
+RANGE_K : 'Range' ;
+
+REFLEXIVE_K : 'Reflexive' ;
+
+SAMEAS_K : 'SameAs' ;
+
+SAMEINDIVIDUAL_K : 'SameIndividual' ;
+ 
+SELF_K : 'Self' ;
+
+SOME_K : 'some' ;
+
+STRING_K : 'string' ;
+
+SUBCLASSOF_K : 'SubClassOf' ;
+
+SUBPROPERTYOF_K : 'SubPropertyOf' ;
+
+SUBPROPERTYCHAIN_K : 'SubPropertyChain' ;
+
+SYMMETRIC_K : 'Symmetric' ;
+
+THAT_K : 'that' ;
+
+TRANSITIVE_K : 'Transitive' ;
+
+TYPES_K : 'Types' ;
+
+VALUE_K : 'value' ;
+
+
+
+
+
+GREATER : '>' ;
+ 
+GEQ : '>=' ;
+
+LEQ : '<=' ;
+
+LESS : '<' ;
+
+CHAIN : 'o' ; 
+
+DBL_CAP : '^^' ;
+
+BLANK : '_:' ;
+
+UNDERSCORE : '_' ;
+
+COLON : ':' ;
+
+COMMA : ',' ;
+
+SLASH : '/' ;
+
+
+
+
+LEFT_SQUARE : '[' ;
+
+RIGHT_SQUARE : ']' ;
+
+LEFT_PAREN : '(' ;
+
+RIGHT_PAREN : ')' ;
+
+LEFT_CURLY : '{' ;
+
+RIGHT_CURLY : '}' ;
+
+
+  
+
+
+IntegerLiteral : ('+' | '-')? Digits ;
+DecimalLiteral : ('+' | '-')? Digits '.' Digits ;
+FloatingPointLiteral : 
+  ( '+' | '-' )? 
+  (   Digits ('.' Digits)? Exponent 
+      | '.' Digits Exponent
+  ) 
+  ( 'f' | 'F' )
+  ;
+QuotedString
+  :   ('"' ( EscapeSequence | ~('\\'|'"') )+ '"')      
+  ;
+LanguageTag : '@' (ALPHA ALPHA) ;
+
+
+//PN_CHARS_BASE | '_'
+
+
+PN_ID
+	: PN_CHARS_BASE PN_INNER?
+	;
+	
+PN_NUMID
+	: DIGIT PN_INNER?
+	;
+	
+PN_UNDSCID
+	: '_' PN_INNER?
+	;	
+
+OTHER_CHARS
+    : '#' | '+' | '-' | '?' | '^' 
+    ;    
+
+WS      
+  :       
+  ( ' '
+  | '\t'
+  | '\f'
+  | EOL
+  )+
+  { $channel=HIDDEN; }
+  ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+fragment
+ALPHA : ('a'..'z') | ('A'..'Z') ;
+
+fragment
+DIGIT : ZERO | NONZERO ;
+
+fragment
+NONZERO : '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' ;
+
+fragment
+HEXDIGIT : DIGIT | ('a'..'f') | ('A'..'F') ;
+
+fragment
+ZERO : '0' ;
+
+fragment  
+Exponent : ('e' | 'E') ('+' | '-')? Digits ;
+
+fragment
+Digits : DIGIT+ ;
+
+fragment
+EscapeSequence
+    :   '\\' ('b'|'B'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\'|'.'|'o'|
+              'x'|'a'|'e'|'c'|'d'|'D'|'s'|'S'|'w'|'W'|'p'|'A'|
+              'G'|'Z'|'z'|'Q'|'E'|'*'|'['|']'|'('|')'|'$'|'^'|
+              '{'|'}'|'?'|'+'|'-'|'&'|'|')
+    |   UnicodeEscape
+    |   OctalEscape
+    ;
+
+fragment
+OctalEscape
+    :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')
+    |   '\\' ('0'..'7') ('0'..'7')
+    |   '\\' ('0'..'7')
+    ;
+
+fragment
+UnicodeEscape
+    :   '\\' 'u' HEXDIGIT HEXDIGIT HEXDIGIT HEXDIGIT
+    ;
+
+fragment
+EOL   
+  :      
+  ( ( '\r\n' )=> '\r\n' 
+  | '\r'    
+  | '\n'    
+  )
+  ;
+  
+
+fragment
+PN_INNER
+  : (PN_CHARS | '.')* PN_CHARS 
+  ;
+
+
+fragment
+PN_CHARS
+    : PN_CHARS_BASE
+    | '_'
+    | '-' 
+    | DIGIT 
+    | '\u00B7' 
+    | ('\u0300'..'\u036F') 
+    | ('\u203F'..'\u2040') 
+    ;
+    
+fragment
+PN_CHARS_BASE
+    : ALPHA 
+    | ('\u00C0'..'\u00D6') 
+    | ('\u00D8'..'\u00F6') 
+    | ('\u00F8'..'\u02FF') 
+    | ('\u0370'..'\u037D') 
+    | ('\u037F'..'\u1FFF') 
+    | ('\u200C'..'\u200D') 
+    | ('\u2070'..'\u218F') 
+    | ('\u2C00'..'\u2FEF') 
+    | ('\u3001'..'\uD7FF') 
+    | ('\uF900'..'\uFDCF') 
+    | ('\uFDF0'..'\uFFFD') 
+   // | ('\u10000'..'\uEFFFF')  //not supported... yet?
+    ;    
+    
+
+
+
+  
+
+
+
+

Added: labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterParser.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterParser.g	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterParser.g	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,927 @@
+parser grammar ManchesterParser;
+       
+         
+options {  
+  language = Java;
+  output = AST;
+  ASTLabelType=CommonTree;
+  tokenVocab=ManchesterLexer;
+  k=2; 
+}
+   
+ at header { 
+  package org.drools.lang.dl;
+  
+  import java.util.List;
+  import java.util.LinkedList;
+  import java.util.Set;
+  import java.util.HashSet;
+  
+  import org.drools.lang.iri.iriParser;
+  import org.drools.lang.iri.iriLexer;
+  import java.io.ByteArrayInputStream;
+  import java.io.IOException;
+  import org.antlr.runtime.ANTLRInputStream;
+  import org.antlr.runtime.CommonTokenStream;
+  import org.antlr.runtime.RecognitionException;
+  
+}
+    
+
+    
+ at members {
+    
+    private Set prefixes = new HashSet();     
+    public void setPrefixSet( Set ps )    { this.prefixes = ps; }    
+          
+    private boolean validateIRI(String iriS) {
+            try { 
+              iriLexer iri_lexer = new iriLexer( new ANTLRInputStream( new ByteArrayInputStream(iriS.getBytes()) ));     
+              iriParser iri_parser = new iriParser(new CommonTokenStream( iri_lexer ));      
+                                              
+              iri_parser.iri();
+              return (iri_parser.getNumberOfSyntaxErrors() == 0);
+            } catch (IOException ioe) {
+              return false;
+            } catch (RecognitionException re) {
+              return false;
+            }
+        
+    }
+    
+}
+
+
+
+
+//******************************************************************
+//                        MANCHESTER SYNTAX
+//******************************************************************  
+
+
+manDL_ontology
+options{
+	k=5;
+}
+  :	
+  	manDL_prefix*  
+    ONTOLOGY_K COLON (nam=iri ver=iri?)?
+    manDL_inport*
+    manDL_annotations?
+    manDL_type_declaration*    
+    -> ^(VT_ONTOLOGY ^(VT_NAME $nam? $ver?) 
+    		manDL_prefix* 
+    		manDL_inport* 
+    		manDL_annotations? 
+    		manDL_type_declaration*    		
+    		)    
+  ; 
+
+
+manDL_inport  // :)
+  : IMPORT_K COLON iri   
+  -> ^(VT_IMPORT iri)
+  ;  
+
+
+//prefixName := a finite sequence of characters matching the PNAME_NS production of [SPARQL] and not matching any of the keyword terminals of the syntax
+   
+manDL_prefix
+  : (PREFIX_K | NAMESPACE_K) COLON
+    ( 
+        (pref=pn_Prefix { prefixes.add($pref.text); }) COLON? full_iri
+        | full_iri    
+    )    
+  ->{pref==null}? ^(VT_PREFIX full_iri VT_DEF_NS)
+  -> ^(VT_PREFIX full_iri pn_Prefix)  
+  ; 
+ 
+
+
+manDL_annotations
+  : ANNOTATIONS_K COLON manDL_annotation_list
+  ->  ^(VT_ANNOTATIONS manDL_annotation_list)  
+  ;   
+  
+manDL_annotation_list
+  : manDL_annotation (COMMA! manDL_annotation)* 
+  ;  
+
+manDL_annotation
+  : manDL_annotations? manDL_annotationPropertyIRI manDL_annotation_target
+  -> ^(VT_ANNOTATION manDL_annotations? manDL_annotationPropertyIRI manDL_annotation_target )
+  ;
+  
+manDL_annotation_target  
+  : manDL_individual | manDL_literal 
+  ;  
+
+ 
+
+manDL_type_declaration
+  : manDL_datatype_def
+  | manDL_class     
+  | manDL_objectProperty
+  | manDL_dataProperty
+  | manDL_annotationProperty
+  | manDL_namedIndividual  
+  | manDL_misc
+  ;  
+
+
+
+
+ 
+
+
+
+manDL_class
+  :   	  	  	
+    	typ=CLASS_K COLON      
+      iri
+      manDL_class_frame*         
+  -> 
+      ^(VT_TYPE_DECLARE 
+         ^(VT_ENTITY_TYPE_CLASS) 
+         ^(VT_TYPE_DECLARE_ID iri)                                                               
+         manDL_class_frame* 
+      )                           
+  ;
+
+
+
+  
+  
+  
+  
+   
+  
+manDL_class_frame
+  : (ANNOTATIONS_K) => manDL_annotations
+  | (DISJOINTUNIONOF_K) => manDL_disjointUnionOf
+  | (DISJOINTWITH_K) => manDL_disjointWith
+  | (EQUIVALENTTO_K) => manDL_equivalentTo
+  | (SUBCLASSOF_K) => manDL_subClassOf
+  | (HASKEY_K) => manDL_hasKey     
+  ;  
+  
+   
+  
+manDL_disjointUnionOf
+  : DISJOINTUNIONOF_K COLON manDL_disjointUnionOf_list
+    -> ^(VT_DISJOINTUNIONOF manDL_disjointUnionOf_list)
+  ;
+
+manDL_disjointUnionOf_list
+  : manDL_annotated_description (COMMA! manDL_annotated_description)+ 
+  ;  
+  
+manDL_disjointWith
+  : DISJOINTWITH_K COLON manDL_annotated_description_list
+  -> ^(VT_DISJOINTWITH manDL_annotated_description_list)
+  ;
+
+manDL_equivalentTo
+  : (EQUIVALENTTO_K COLON)  manDL_annotated_description_list
+  -> ^(VT_EQUIVALENTTO manDL_annotated_description_list)  
+  ;
+  
+manDL_subClassOf
+  : SUBCLASSOF_K COLON manDL_annotated_description_list
+  -> ^(VT_SUBCLASSOF manDL_annotated_description_list)
+  ;  
+  
+manDL_hasKey
+  : HASKEY_K COLON manDL_annotations? manDL_property_expression (COMMA manDL_property_expression)*
+  -> ^(VT_KEYS manDL_annotations? manDL_property_expression+)
+  ;  
+  
+  
+  
+ 
+ 
+manDL_annotated_description_list
+  : manDL_annotated_description (COMMA! manDL_annotated_description)*
+  ;
+
+
+manDL_annotated_description
+  : manDL_annotations? manDL_description
+  -> ^(VT_DL_DEFINITION manDL_annotations? manDL_description)
+  ;
+  
+
+
+manDL_description 
+  : manDL_conjunction ( or=OR_K manDL_conjunction )*
+  -> {or==null}? manDL_conjunction
+  -> ^(VT_OR manDL_conjunction+)
+  ;
+  
+manDL_conjunction
+  : (manDL_classIRI THAT_K) => 
+     manDL_classIRI THAT_K 
+        manDL_restr 
+     (AND_K manDL_restr)*
+  -> ^(VT_AND ^(VT_DL_TYPE manDL_classIRI) manDL_restr+)     
+  
+  | manDL_primary ( and=AND_K manDL_primary)*
+  -> {and==null}? manDL_primary
+  -> ^(VT_AND manDL_primary+)
+  ;  
+
+
+
+
+
+manDL_primary 
+options{
+	backtrack=true;
+}
+  :      
+  manDL_restr
+  | manDL_atom 
+  ;
+
+
+manDL_atom
+  : not=NOT_K? manDL_atomic_core
+  -> {not!=null}? ^(VT_NEG manDL_atomic_core)
+  -> manDL_atomic_core
+  ;
+
+manDL_restr
+  : not=NOT_K? manDL_quantified_restriction_core
+  -> {not!=null}? ^(VT_NEG manDL_quantified_restriction_core)
+  -> manDL_quantified_restriction_core
+  ;
+
+
+
+
+
+
+
+
+
+  
+manDL_atomic_core
+  : LEFT_CURLY! manDL_item_list  RIGHT_CURLY!
+  
+  | manDL_data_type_restriction
+  -> manDL_data_type_restriction
+  
+  | LEFT_PAREN! manDL_description RIGHT_PAREN!
+  ; 
+  
+
+
+ 
+
+ 
+ manDL_quantified_restriction_core
+  : p=manDL_property_expression   
+    (   (SOME_K) => SOME_K manDL_primary
+      -> ^(VT_EXISTS manDL_property_expression manDL_primary)
+      | (ONLY_K) => ONLY_K  manDL_primary
+      -> ^(VT_FORALL manDL_property_expression manDL_primary)
+//      | (ALL_K) => ALL_K  manDL_primary
+//      -> ^(VT_FORALL manDL_property_expression manDL_primary)
+      | (VALUE_K) => VALUE_K (manDL_individual | manDL_literal)
+      -> ^(VT_VALUE manDL_property_expression manDL_individual? manDL_literal?)
+      | (SELF_K) => SELF_K
+      -> ^(VT_SELF manDL_property_expression)
+      | (MIN_K) => manDL_min_restr      
+      -> ^(VT_COUNT manDL_property_expression manDL_min_restr)
+      | (MAX_K) => manDL_max_restr      
+      -> ^(VT_COUNT manDL_property_expression manDL_max_restr)                                
+      | (EXACTLY_K) => manDL_exactly_restr
+      -> ^(VT_COUNT manDL_property_expression manDL_exactly_restr)
+      
+      
+      | (manDL_data_type_restriction) => manDL_data_type_restriction
+      -> ^(VT_COUNT manDL_property_expression ^(VT_MIN IntegerLiteral["1"]) ^(VT_MAX IntegerLiteral["1"]) manDL_data_type_restriction)       
+   ) 
+  ;  
+  
+  
+manDL_exactly_restr
+options{
+ backtrack=true;
+}
+  : 
+   (EXACTLY_K IntegerLiteral manDL_primary?) 
+   -> ^(VT_MIN IntegerLiteral) ^(VT_MAX IntegerLiteral) manDL_primary?
+  ;  
+  
+  
+manDL_max_restr
+options{
+ backtrack=true;
+}
+  : 
+  (MAX_K IntegerLiteral manDL_primary?) 
+   -> ^(VT_MAX IntegerLiteral) manDL_primary?  
+  ;  
+
+manDL_min_restr
+options{
+ backtrack=true;
+}
+  : 
+  (MIN_K IntegerLiteral manDL_primary?) 
+   -> ^(VT_MIN IntegerLiteral) manDL_primary?
+  ;  
+
+      
+  
+  
+  
+    
+manDL_data_type_restriction
+  : manDL_data_type (LEFT_SQUARE fac=manDL_facets RIGHT_SQUARE)?	
+  -> {fac!=null}? ^(VT_DL_RESTRICTED_TYPE manDL_data_type manDL_facets) 
+  -> ^(VT_DL_TYPE manDL_data_type)
+  ;
+ 
+
+manDL_facets
+  : manDL_facet manDL_restriction_value more=(COMMA manDL_facet manDL_restriction_value)*
+  -> {more==null}? ^(VT_DL_RESTRICTION manDL_facet manDL_restriction_value*)
+  -> ^(VT_AND ^(VT_DL_RESTRICTION manDL_facet manDL_restriction_value)+)
+  ;  
+
+manDL_restriction_value
+  : manDL_literal
+  ; 
+
+manDL_facet
+  : f=(LENGTH_K
+  | MINLENGTH_K
+  | MAXLENGTH_K
+  | PATTERN_K
+  | LANGPATTERN_K
+  | GEQ
+  | GREATER
+  | LEQ
+  | LESS)
+  -> ^(VK_FACET[$f.text])
+  ;   
+ 
+ 
+ 
+ 
+ 
+ 
+
+
+
+
+
+manDL_datatype_def
+  : 
+    typ=DATATYPE_K COLON
+      iri
+      manDL_datatype_frame*
+  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE_DATATYPE) ^(VT_TYPE_DECLARE_ID iri) manDL_datatype_frame*)
+  ;
+ 
+manDL_datatype_frame
+  : manDL_annotations
+  | manDL_equivalentTo  
+  ;  
+  
+  
+  
+ 
+
+manDL_objectProperty
+  : typ=OBJECTPROPERTY_K COLON
+      iri
+      manDL_objProp_frame*
+  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE_OBJPROP) ^(VT_TYPE_DECLARE_ID iri) 
+        //$qa? 
+        manDL_objProp_frame*)
+  ;
+  
+manDL_objProp_frame
+  : manDL_annotations
+  | manDL_attributes
+  | manDL_disjointWith
+  | manDL_equivalentTo
+  | manDL_inverseOf
+  | manDL_domain  
+  | manDL_range
+  | manDL_subPropertyOf
+  | manDL_subPropChain
+  ;
+  
+  
+    
+manDL_dataProperty
+  : 				
+		typ=DATAPROPERTY_K COLON 
+      iri
+     // qa=(manDL_quick_attributes -> ^(VT_ATTRIBUTES manDL_quick_attributes?))
+      manDL_dataProp_frame*
+  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE_DATAPROP) ^(VT_TYPE_DECLARE_ID iri) 
+        //$qa?  
+        manDL_dataProp_frame*)
+  ; 
+  
+
+manDL_dataProp_frame
+  : manDL_annotations
+  | manDL_domain  
+  | manDL_range  
+  | manDL_attributes    
+  | manDL_disjointWith
+  | manDL_equivalentTo
+  | manDL_subPropertyOf   
+  ;    
+
+
+manDL_domain
+  : DOMAIN_K COLON manDL_annotated_description_list
+  -> ^(VT_DOMAIN manDL_annotated_description_list)
+  ;
+  
+manDL_range
+  : RANGE_K COLON manDL_annotated_description_list  
+  -> ^(VT_RANGE manDL_annotated_description_list)
+  ;
+
+     
+ 
+ 
+ 
+manDL_subPropertyOf
+  : SUBPROPERTYOF_K COLON manDL_property_list
+  -> ^(VT_SUBPROPERTYOF manDL_property_list)
+  ;  
+  
+manDL_inverseOf
+  : INVERSEOF_K COLON manDL_property_list
+  -> ^(VT_INVERSEOF manDL_property_list)
+  ;  
+
+manDL_subPropChain
+  : SUBPROPERTYCHAIN_K COLON manDL_annotations? manDL_property_expression ( CHAIN manDL_property_expression )*
+  -> ^(VT_SUBPROPERTYCHAIN manDL_annotations? manDL_property_expression+)
+  ;
+     
+ 
+
+
+
+
+
+  
+manDL_annotationProperty
+  : typ=ANNOTATIONPROPERTY_K COLON
+      iri
+      manDL_annProp_frame*
+  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE_ANNPROP) ^(VT_TYPE_DECLARE_ID iri) manDL_annProp_frame*)
+  ;  
+  
+  
+manDL_annProp_frame
+  : manDL_annotations
+  | manDL_domain  
+  | manDL_range
+  | manDL_subPropertyOf
+  ; 
+  
+  
+  
+  
+  
+  
+  
+manDL_namedIndividual
+  : typ=INDIVIDUAL_K COLON
+      iri
+      manDL_indiv_frame*
+  -> ^(VT_TYPE_DECLARE ^(VT_ENTITY_TYPE_INDIVIDUAL) ^(VT_NAME iri) manDL_indiv_frame*)
+  ;  
+  
+manDL_indiv_frame 
+  : manDL_annotations
+  | manDL_types
+  | manDL_facts
+  | manDL_sameAs
+  | manDL_differentFrom
+  ;  
+  
+manDL_types
+  : TYPES_K COLON manDL_annotated_description_list
+  -> ^(VT_TYPES manDL_annotated_description_list)
+  ;
+
+manDL_individual_list
+  : manDL_annotated_individual (COMMA manDL_annotated_individual)*
+    -> ^(VT_LIST manDL_annotated_individual+)
+  ;
+  
+manDL_annotated_individual
+  : manDL_annotations? manDL_individual 
+  -> ^(manDL_individual manDL_annotations?) 
+  ;   
+  
+manDL_facts
+  : FACTS_K COLON manDL_fact_annotated_list
+  -> ^(VT_FACTS manDL_fact_annotated_list)
+  ;
+  
+manDL_fact_annotated_list
+  : manDL_annotated_fact (COMMA! manDL_annotated_fact)*
+  ;
+
+manDL_annotated_fact
+  : manDL_annotations? manDL_fact
+  -> ^(manDL_fact manDL_annotations?)   
+  ;   
+
+manDL_fact
+  : neg=NOT_K? manDL_property_expression (manDL_individual | manDL_literal)
+  -> {neg==null}? ^(VT_FACT manDL_property_expression manDL_individual? manDL_literal?)
+  -> ^(VT_NEG ^(VT_FACT manDL_property_expression manDL_individual? manDL_literal?))
+  ;    
+
+
+  
+manDL_sameAs
+  : SAMEAS_K COLON manDL_individual_list
+  -> ^(VT_SAMEAS manDL_individual_list)
+  ;
+  
+manDL_differentFrom
+  : DIFFERENTFROM_K COLON manDL_individual_list
+  -> ^(VT_DIFFERENTFROM manDL_individual_list)
+  ;  
+
+  
+
+  
+  
+  
+  
+  
+
+
+
+
+  
+  
+
+
+
+manDL_misc
+  : (eq=EQUIVALENTCLASSES_K | df=DISJOINTCLASSES_K) COLON
+      manDL_annotations? manDL_description (COMMA manDL_description)+
+      -> {eq!=null}? ^(VT_EQV_CLASS manDL_annotations? manDL_description+)
+      -> ^(VT_DIF_CLASS manDL_annotations? manDL_description+)
+      
+  | (eq2=EQUIVALENTPROPERTIES_K | df2=DISJOINTPROPERTIES_K) COLON
+      manDL_annotations? manDL_property_expression (COMMA manDL_property_expression)+
+      -> {eq2!=null}? ^(VT_EQV_PROP manDL_annotations? manDL_property_expression+)
+      -> ^(VT_DIF_PROP manDL_annotations? manDL_property_expression+)
+      
+  | (eq3=SAMEINDIVIDUAL_K | df3=DIFFERENTINDIVIDUALS_K) COLON
+      manDL_annotations? manDL_individual (COMMA manDL_individual)+
+      -> {eq3!=null}? ^(VT_EQV_INDV manDL_annotations? manDL_individual+)
+      -> ^(VT_DIF_INDV manDL_annotations? manDL_individual+)
+  ;
+   
+
+
+
+
+
+
+
+  
+  
+
+
+
+
+
+  
+
+
+
+  
+  
+
+          
+
+
+  
+
+
+  
+  
+  
+  
+    
+  
+  
+ 
+
+
+
+manDL_attributes
+  : CHARACTERISTICS_K COLON (manDL_annotations? manDL_attribute) (COMMA  manDL_annotations? manDL_attribute)*
+  -> ^(VT_ATTRIBUTES ^(manDL_attribute manDL_annotations?)+)   
+  ; 
+	 
+manDL_attribute
+  : 
+   manDL_att_functional
+  | manDL_att_inverseFunctional
+  | manDL_att_reflexive
+  | manDL_att_irreflexive
+  | manDL_att_symmetric
+  | manDL_att_asymmetric
+  | manDL_att_transitive
+  ;
+  
+
+manDL_att_functional
+  : FUNCTIONAL_K -> VT_DLA_FUN  
+  ;
+  
+manDL_att_inverseFunctional
+  : INVERSEFUNCTIONAL_K -> VT_DLA_IFUN  
+  ;
+  
+manDL_att_reflexive
+  : REFLEXIVE_K -> VT_DLA_REF  
+  ;
+  
+manDL_att_irreflexive
+  : IRREFLEXIVE_K -> VT_DLA_IREF  
+  ;
+  
+manDL_att_symmetric
+  : SYMMETRIC_K -> VT_DLA_SYM  
+  ;
+  
+manDL_att_asymmetric
+  : ASYMMETRIC_K -> VT_DLA_ASYM
+  ;
+
+manDL_att_transitive
+  : TRANSITIVE_K -> VT_DLA_TRN
+  ; 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+manDL_property_list
+  : manDL_annotatedProperty (COMMA! manDL_annotatedProperty)?
+  ; 
+  
+manDL_annotatedProperty
+  : manDL_annotations? manDL_property_expression
+  ;
+       
+manDL_property_expression  
+  : inv=INVERSE_K? manDL_propertyIRI
+  -> {inv==null}? ^(VT_DL_PROP manDL_propertyIRI)
+  -> ^(VT_DL_INV_PROP manDL_propertyIRI)     
+  ;  
+  
+
+manDL_item_list
+  : manDL_literal_list
+  | manDL_individual_list
+  ;
+  
+manDL_literal_list
+  : manDL_literal (COMMA manDL_literal)*
+    -> ^(VT_LIST manDL_literal+)
+  ;
+
+
+
+
+
+
+
+
+
+  
+
+
+  
+
+manDL_literal :
+  manDL_typedLiteral 
+  | QuotedString LanguageTag?    
+  | IntegerLiteral 
+  | DecimalLiteral 
+  | FloatingPointLiteral
+  ;
+
+
+//primitives are obtained via iri
+manDL_data_type
+  : manDL_classIRI 
+  ;  
+  
+manDL_primitive_data_type  
+  : INTEGER_K 
+  | DECIMAL_K 
+  | FLOAT_K 
+  | STRING_K
+  ;
+  
+manDL_typedLiteral
+  : QuotedString DBL_CAP! manDL_data_type
+  ;  
+  
+manDL_classIRI 
+  : iri
+  ;
+ 
+manDL_objectPropertyIRI 
+  : iri
+  ;
+  
+manDL_dataPropertyIRI 
+  : iri
+  ;
+  
+manDL_annotationPropertyIRI 
+  : iri
+  ;
+  
+manDL_propertyIRI
+  : iri
+  ;  
+  
+manDL_individual 
+  : manDL_individualIRI 
+  | nodeID
+  ;
+  
+manDL_individualIRI 
+  : iri  
+  ;
+
+
+
+
+
+
+
+
+iri
+options{
+  backtrack=true;
+  memoize=true;
+} 
+  :
+  full_iri 
+  | abbreviated_iri 
+  | simple_iri
+  ;
+
+
+
+
+//nodeID := a finite sequence of characters matching the BLANK_NODE_LABEL production of [SPARQL]
+nodeID
+  : blank_node
+  | anon
+  ;
+  
+blank_node
+  : BLANK pn_Local
+  -> ^( VT_BLANK pn_Local )  
+  ;  
+ 
+anon
+  : LEFT_SQUARE RIGHT_SQUARE
+  -> ^( VT_ANON )
+  ;
+
+
+//abbreviatedIRI := a finite sequence of characters matching the PNAME_LN production of [SPARQL]
+abbreviated_iri
+  : pname_ns ln=pn_Local
+  -> ^(VT_IRI pn_Local pname_ns) 
+  ;
+
+pname_ns  
+  : pref=pn_Prefix? COLON
+  -> {pref==null}? ^(VT_DEF_NS)
+  -> pn_Prefix  
+  ; 
+
+//simpleIRI := a finite sequence of characters matching the PN_LOCAL production of [SPARQL] and not matching any of the keyword terminals of the syntax
+simple_iri
+  : pn_Local
+  -> ^(VT_IRI pn_Local ^(VT_DEF_NS) )
+  ;
+  
+
+
+
+pn_Local 
+  :  pid=PN_ID -> ^(VT_NAME[$pid.text])
+  | ( UNDERSCORE | DIGIT ) PN_INNER?
+  | typ=manDL_primitive_data_type -> ^(VT_NAME[$typ.text]) 
+  ;
+
+pn_Prefix
+  : pref=PN_ID -> ^(VT_NAME[$pref.text])
+  ;
+
+
+
+
+//fullIRI := an IRI as defined in [RFC 3987], enclosed in a pair of < (U+3C) and > (U+3E) characters 
+full_iri
+  : LESS!
+      checked_iri
+    GREATER!    
+  ; 
+    
+    
+checked_iri
+  : i=any_iri {validateIRI($i.text)}?=>
+  -> ^(VT_IRI any_iri)
+  ;   
+    
+any_iri
+ at init{
+  String text = "";
+} : cc=any_iri_content {text = $cc.text;}
+  -> ^(VT_PAREN_CHUNK[$cc.start,text])  
+  ;  
+  
+any_iri_content 
+  : (~ (GREATER | SLASH) | SLASH)*
+  ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
\ No newline at end of file

Added: labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterTreeBuilder.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterTreeBuilder.g	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/ManchesterTreeBuilder.g	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,460 @@
+tree grammar ManchesterTreeBuilder;
+
+options {
+  language = Java;
+  tokenVocab = ManchesterLexer;
+  ASTLabelType = CommonTree;
+} 
+
+
+ at header {
+
+    package org.drools.lang.dl;
+    
+    import org.drools.lang.dl.descr.*;
+    import java.util.List;
+    import java.util.LinkedList;
+       
+}
+ 
+  
+ at members {
+  DLDescrFactory factory = new DLDescrFactory();
+  DL_OntologyDescr ontoDescr = null;  
+}
+
+
+ontology returns [DL_OntologyDescr od]  
+ at init{ $od = factory.buildOntologyDescr(); this.ontoDescr = $od; }
+  : ^(VT_ONTOLOGY  
+          
+          ^(VT_NAME 
+            name=iri { this.ontoDescr.setName($name.iriDescr);}          
+            (version=iri { $od.setVersion($version.iriDescr); })?         
+            )
+                     
+          (^(VT_PREFIX tgt=iri ns=(VT_DEF_NS | VT_NAME) )
+            { $od.addNamespace($ns.text,$tgt.iriDescr.getIri()); }
+          )*   
+          
+          ( imp=inport {$od.addImport($imp.ref);} )*
+           
+          ( props=annotations {$od.addAnnotations($props.annList);} )*
+           
+          ( dec=declaration {$od.addDeclaration($dec.declDescr);} )*
+          
+          ( misc )*
+          
+        )        
+  ;
+
+ 
+
+//******************************************************************//
+//    Preamble 
+//******************************************************************//
+  
+
+
+inport returns [String ref]
+  : ^(VT_IMPORT i=iri { $ref = $i.iriDescr.getIri(); })
+  ;
+
+ 
+
+//******************************************************************//
+//    Class Types 
+//******************************************************************//
+
+
+
+declaration returns [DL_aDeclarationDescr declDescr]
+  //class
+  : ^( VT_TYPE_DECLARE 
+         VT_ENTITY_TYPE_CLASS  { DL_ClassDescr descr = factory.buildClassDescr(); }
+         ^( VT_TYPE_DECLARE_ID i=iri { descr.setIri($i.iriDescr); } )    
+         
+         ( ann=annotations { descr.addAnnotations($ann.annList); }
+           | diu=disjointUnions { descr.addAllDisjointUnion($diu.diuList); }
+           | diw=disjointWiths { descr.addAllDisjointWith($diw.diwList); }
+           | eqs=equivalentTos { descr.addAllEquivalentTo($eqs.eqsList); }
+           | sub=subClassOfs { descr.addAllSubClassOf($sub.subList); }
+           | key=hasKeys { descr.addAllHasKey($key.keyList); }                                                                     
+         )*
+     ) 
+     { $declDescr = descr; }  
+  //datatype
+  | ^( VT_TYPE_DECLARE 
+         VT_ENTITY_TYPE_DATATYPE { DL_DatatypeDescr descr = factory.buildDatatypeDescr(); }  
+         ^( VT_TYPE_DECLARE_ID i=iri { descr.setIri($i.iriDescr); } )  
+         
+         ( ann=annotations { descr.addAnnotations($ann.annList); }           
+           | eqs=equivalentTos { descr.addAllEquivalentTo($eqs.eqsList); }                                                                               
+         )*                                                                       
+      )
+      { $declDescr = descr; }  
+  //object property    
+  | ^( VT_TYPE_DECLARE 
+         VT_ENTITY_TYPE_OBJPROP { DL_ObjectPropertyDescr descr = factory.buildObjectPropertyDescr(); }  
+         ^( VT_TYPE_DECLARE_ID i=iri { descr.setIri($i.iriDescr); } )   
+         
+         ( ann=annotations { descr.addAnnotations($ann.annList); }
+         
+           | ^(VT_ATTRIBUTES 
+                (^((
+                    VT_DLA_FUN { descr.setFunctional(true); }
+                    | VT_DLA_IFUN { descr.setInverseFunctional(true); }    
+                    | VT_DLA_REF { descr.setReflexive(true); }
+                    | VT_DLA_IREF { descr.setIrreflexive(true); }
+                    | VT_DLA_SYM { descr.setSymmetric(true); }
+                    | VT_DLA_ASYM { descr.setAsymmetric(true); }
+                    | VT_DLA_TRN { descr.setTransitive(true); }
+                   )                      
+                 annotations? ))+
+              )   
+           | diw=disjointWiths { descr.addAllDisjointWith($diw.diwList); }
+           | eqs=equivalentTos { descr.addAllEquivalentTo($eqs.eqsList); }
+           | inv=inverseOfs { descr.addAllInverseOf($inv.invList); }
+           | dom=domains { descr.addAllDomain($dom.domList); } 
+           | rng=ranges { descr.addAllRange($rng.rngList); }
+           | sub=subPropertyOfs { descr.addAllSubPropertyOf($sub.subList); }
+           | chn=subPropertyChain { descr.addSubPropertyChain($chn.chnList); }
+         )*                                                                      
+      )            
+      { $declDescr = descr; }  
+  //data property             
+  | ^( VT_TYPE_DECLARE 
+         VT_ENTITY_TYPE_DATAPROP { DL_DataPropertyDescr descr = factory.buildDataPropertyDescr(); }  
+         ^( VT_TYPE_DECLARE_ID i=iri { descr.setIri($i.iriDescr); } )            
+         
+          ( ann=annotations { descr.addAnnotations($ann.annList); }
+           | ^(VT_ATTRIBUTES 
+                (^(VT_DLA_FUN { descr.setFunctional(true); }) annotations? )
+              ) 
+           | diw=disjointWiths { descr.addAllDisjointWith($diw.diwList); }
+           | eqs=equivalentTos { descr.addAllEquivalentTo($eqs.eqsList); }           
+           | dom=domains { descr.addAllDomain($dom.domList); } 
+           | rng=ranges { descr.addAllRange($rng.rngList); }
+           | sub=subPropertyOfs { descr.addAllSubPropertyOf($sub.subList); }           
+         )*                                                                                    
+      )    
+      { $declDescr = descr; }  
+  //annotation property    
+  | ^( VT_TYPE_DECLARE 
+         VT_ENTITY_TYPE_ANNPROP { DL_AnnotationPropertyDescr descr = factory.buildAnnotationPropertyDescr(); }  
+         ^( VT_TYPE_DECLARE_ID i=iri { descr.setIri($i.iriDescr); } ) 
+         
+         ( ann=annotations { descr.addAnnotations($ann.annList); }                     
+           | dom=domains { descr.addAllDomain($dom.domList); } 
+           | rng=ranges { descr.addAllRange($rng.rngList); }
+           | sub=subPropertyOfs { descr.addAllSubPropertyOf($sub.subList); }           
+         )*                                                                        
+      )    
+      { $declDescr = descr; }  
+  //individual    
+  | ^( VT_TYPE_DECLARE 
+         VT_ENTITY_TYPE_INDIVIDUAL { DL_IndividualDescr descr = factory.buildIndividualDescr(); }  
+         ^( VT_NAME i=iri { descr.setIri($i.iriDescr); } )        
+         
+         ( ann=annotations { descr.addAnnotations($ann.annList); }                     
+           | typ=types { descr.addAllType($typ.typList); } 
+           | fac=facts { descr.addAllFact($fac.facList); }
+           | eqs=sames { descr.addAllSameAs($eqs.eqsList); }
+           | dif=differs { descr.addAllDifferentFrom($dif.difList); }
+         )*                                                                  
+                                                                                           
+      )    
+      { $declDescr = descr; }  
+  ;
+
+
+
+        
+           
+                                                                           
+disjointUnions returns [LinkedList diuList]
+ at init {$diuList = new LinkedList();}
+  : ^(  VT_DISJOINTUNIONOF       
+        ( d=definition {$diuList.add($d.defDescr);} )*  
+     ) 
+  ;
+
+
+disjointWiths returns [LinkedList diwList]
+ at init {$diwList = new LinkedList();}
+  : ^(  VT_DISJOINTWITH       
+        ( d=definition {$diwList.add($d.defDescr);} )*  
+     ) 
+  ;
+
+equivalentTos returns [LinkedList eqsList]
+ at init {$eqsList = new LinkedList();}
+  : ^(  VT_EQUIVALENTTO       
+        ( e=definition {$eqsList.add($e.defDescr);} )*  
+     ) 
+  ;
+
+subClassOfs returns [LinkedList subList]
+ at init {$subList = new LinkedList();}
+  : ^(  VT_SUBCLASSOF       
+        ( s=definition {$subList.add($s.defDescr);} )*  
+     ) 
+  ;
+
+
+hasKeys returns [LinkedList keyList]
+ at init {$keyList = new LinkedList();}
+  : ^(  VT_KEYS
+        ( k=relation {$keyList.add($k.relDescr);} )*  
+     ) 
+  ;
+
+
+domains returns [LinkedList domList]
+ at init {$domList = new LinkedList();}
+  : ^(  VT_DOMAIN       
+        ( d=definition {$domList.add($d.defDescr);} )*  
+     ) 
+  ;
+
+
+ranges returns [LinkedList rngList]
+ at init {$rngList = new LinkedList();}
+  : ^(  VT_RANGE       
+        ( d=definition {$rngList.add($d.defDescr);} )*  
+     ) 
+  ;
+
+subPropertyOfs returns [LinkedList subList]
+ at init {$subList = new LinkedList();}
+  : ^(  VT_SUBPROPERTYOF       
+        ( r=relation {$subList.add($r.relDescr);} )*  
+     ) 
+  ;
+
+inverseOfs returns [LinkedList invList]
+ at init {$invList = new LinkedList();}
+  : ^(  VT_INVERSEOF       
+        ( r=relation {$invList.add($r.relDescr);} )*  
+     ) 
+  ;
+
+subPropertyChain returns [LinkedList chnList]
+ at init {$chnList = new LinkedList();}
+  : ^(  VT_SUBPROPERTYCHAIN    
+        ( r=relation {$chnList.add($r.relDescr);} )*  
+     ) 
+  ;
+
+
+types returns [LinkedList typList]
+ at init {$typList = new LinkedList();}
+  : ^(  VT_TYPES    
+        (  d=definition {$typList.add($d.defDescr);} )*  
+     ) 
+  ;
+
+facts returns [LinkedList facList]
+ at init {$facList = new LinkedList();}
+  : ^(  VT_FACTS    
+        (  
+          ^(VT_FACT r=relation e=entity ) 
+          { $facList.add(factory.buildFactDescr($r.relDescr,$e.val,false)); }
+          | ^(VT_NEG ^(VT_FACT relation entity )) 
+          { $facList.add(factory.buildFactDescr($r.relDescr,$e.val,true)); } 
+        )*  
+     ) 
+  ;
+
+
+sames returns [LinkedList eqsList]
+ at init {$eqsList = new LinkedList();}
+  : ^(  VT_SAMEAS    
+        (  annotations? x=individual {$eqsList.add($x.val);} )*  
+     ) 
+  ;
+
+differs returns [LinkedList difList]
+ at init {$difList = new LinkedList();}
+  : ^(  VT_DIFFERENTFROM    
+        (  annotations? x=individual {$difList.add($x.val);} )*  
+     ) 
+  ;
+
+
+
+//relation returns [DL_RelationDescr relDescr]
+//  : (ann=annotations? rel=relation) { $relDescr = $rel.relDescr; $relDescr.addAnnotations($ann.annList); }
+//  | ^(VT_DL_PROP prop=iri) { $relDescr = factory.buildGenericRelationDescr($prop.iriDescr,false); }
+//  | ^(VT_DL_INV_PROP prop=iri) { $relDescr = factory.buildGenericRelationDescr($prop.iriDescr,true); }
+//  ;
+
+relation returns [DL_RelationDescr relDescr]
+  :	^(VT_DL_PROP prop=iri) { $relDescr = factory.buildGenericRelationDescr($prop.iriDescr,false); }
+  	| ^(VT_DL_INV_PROP prop=iri) { $relDescr = factory.buildGenericRelationDescr($prop.iriDescr,true); }  	  
+  ;
+
+
+
+
+//******************************************************************//
+//    Definitions 
+//******************************************************************//
+
+
+definition returns [DL_DefinitionDescr defDescr]
+  : root=dl_tree { $defDescr = factory.buildDefinitionDescr($root.descr); }
+  ;
+
+ 
+dl_tree returns [DL_aBaseDescr descr]
+ at init{ 
+  List<DL_aBaseDescr> descrList = new LinkedList<DL_aBaseDescr>();
+  List<Object> valuesList = new LinkedList<Object>();
+}
+
+
+  :   ^(VT_OR 
+          (child=dl_tree { descrList.add($child.descr); })+
+       )
+      { $descr = factory.buildOr(descrList); }
+  |   ^(VT_AND  
+          (child=dl_tree { descrList.add($child.descr); })+
+       )
+      { $descr = factory.buildAnd(descrList); }  
+  |   ^(VT_NEG child=dl_tree)
+      { $descr = factory.buildNeg($child.descr); }
+ 
+ 
+ 
+ 
+ 
+  |   ^(VT_EXISTS rel=relation tgt=dl_tree)
+      { $descr = factory.buildExists(
+                        $rel.relDescr, 
+                        $tgt.descr); }
+  |   ^(VT_FORALL rel=relation tgt=dl_tree)
+      { $descr = factory.buildForall(
+                        $rel.relDescr, 
+                        $tgt.descr); }
+  |   ^(VT_VALUE rel=relation val=entity)
+      { $descr = factory.buildValue(
+                        $rel.relDescr, 
+                        $val.val); }
+  |   ^(VT_SELF rel=relation)
+      { $descr = factory.buildValue(
+                        $rel.relDescr, 
+                        null); }                                                    
+  |   ^(VT_COUNT rel=relation
+          (^(VT_MIN min=IntegerLiteral))?
+          (^(VT_MAX max=IntegerLiteral))?
+          typ=dl_tree?   
+       )
+      { $descr = factory.buildCount(
+                        $rel.relDescr, 
+                        $min.text,
+                        $max.text,
+                        $typ.descr); }  
+  
+  
+  
+  
+  |   ^(VT_DL_TYPE klass=iri)  
+      { $descr = factory.buildType($klass.iriDescr.getIri()); }       
+  |   ^(VT_LIST (val=individual { valuesList.add($val.val); } )+  )
+      { $descr = factory.buildEnumTypeDescr(valuesList); }
+  |   ^(VT_LIST (val=literal { valuesList.add($val.val); } )+  )
+      { $descr = factory.buildEnumTypeDescr(valuesList); }     
+  |   ^(VT_DL_RESTRICTED_TYPE typ=dl_tree fac=dl_tree)
+      { $descr = factory.buildRestrictedTypeDescr(typ,fac); }
+  |   ^(VT_DL_RESTRICTION fc=facet lit=literal)     
+      { descr = factory.buildFacetDescr(fc,$lit.val); }                                
+  ;  
+
+
+facet returns [String txt] 
+  : ^( f=VK_FACET {$txt = $f.text;} )
+  ;
+
+
+
+//******************************************************************//
+//    "Terminals" 
+//******************************************************************//
+
+
+
+annotations returns [LinkedList annList]
+ at init {$annList = new LinkedList();}
+  : ^(  VT_ANNOTATIONS         
+        ( a=annotation {$annList.add($a.annDescr);} )*  
+     ) 
+  ;
+
+annotation returns [DL_AnnotationDescr annDescr]
+ at init {$annDescr = factory.buildAnnotationDescr();}
+  : ^(VT_ANNOTATION   
+        ( nestedAnn=annotations { $annDescr.addAnnotations($nestedAnn.annList); } )?      
+        src=iri { $annDescr.setIriKey($src.iriDescr); } 
+        tgt=entity { $annDescr.setTargetValue($tgt.val); } 
+     )
+  ;
+
+
+individual returns [Object val]  
+	: i=iri { $val=$i.iriDescr.getIri(); }
+  | ^( VT_ANON { $val=new Object(); } )
+  | ^( VT_BLANK ln=VT_NAME { $val=new Blank($ln.text); } )
+	;
+  
+  
+entity returns [Object val]  
+  : x=individual { $val = $x.val; }
+  | lit=literal { $val=$lit.val; }
+  ;  
+
+
+
+
+ 
+ 
+literal returns [Object val]
+  : s=QuotedString i=iri { $val = new TypedObject($s.text,$i.iriDescr.getIri()); } 
+  | s=QuotedString l=LanguageTag? { $val = new String($s.text); if ($l != null) $val = $val+$l.text; }   
+  | j=IntegerLiteral { $val = Integer.valueOf($j.text); } 
+  | d=DecimalLiteral { $val = java.math.BigDecimal.valueOf(Double.parseDouble($d.text)); }
+  | f=FloatingPointLiteral { $val = Double.valueOf($f.text); }
+  ; 
+
+ 
+iri returns [DL_IriDescr iriDescr]
+  : ^(VT_IRI ln=VT_NAME ns=VT_NAME)
+    { 
+      $iriDescr = factory.buildIriDescr($ns.text,$ln.text,this.ontoDescr.getNamespaces()); }
+    | ^(VT_IRI ln=VT_NAME VT_DEF_NS) 
+    { $iriDescr = factory.buildIriDescr("",$ln.text,this.ontoDescr.getNamespaces()); }      
+    | ^(VT_IRI full=VT_PAREN_CHUNK )
+    { $iriDescr = factory.buildIriDescr($full.text); }
+  ;  
+
+
+
+
+
+
+//******************************************************************//
+//    Misc 
+//******************************************************************//
+
+
+misc
+  : ^(VT_EQV_CLASS annotations? definition+)
+  | ^(VT_DIF_CLASS annotations? definition+)
+  | ^(VT_EQV_PROP annotations? relation+)
+  | ^(VT_DIF_PROP annotations? relation+)
+  | ^(VT_EQV_INDV annotations? individual+)
+  | ^(VT_DIF_INDV annotations? individual+)
+  ;
+
+
+ 
\ No newline at end of file

Added: labs/jbossrules/branches/DRLv6/src/main/resources/iri.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/iri.g	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/iri.g	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,324 @@
+grammar iri;
+  
+options {
+  language = Java;
+  output = AST;
+}
+
+ at lexer::header {
+  package org.drools.lang.iri;
+}
+
+ at parser::header {
+  package org.drools.lang.iri;
+}
+
+iri_reference
+  : iri 
+  | irelative_ref
+  ;
+
+absolute_iri 
+  : scheme COLON ihier_part 
+    (QUESTION_MARK iquery)?  
+  ;
+
+
+iri 
+  : scheme COLON ihier_part 
+    (QUESTION_MARK iquery)?  
+    (GATE ifragment)?
+  ;
+
+
+irelative_ref 
+  : irelative_part 
+    (QUESTION_MARK iquery)?
+    (GATE ifragment)?    
+  ;
+
+
+ 
+ihier_part     
+  : DBL_SLASH iauthority ipath_abempty
+  | ipath_absolute
+  | ipath_rootless
+  | //ipath_empty
+  ;  
+
+irelative_part 
+  : DBL_SLASH iauthority ipath_abempty
+  | ipath_absolute
+  | ipath_noscheme
+  | //ipath_empty
+  ;
+
+
+
+
+scheme 
+	:	 ALPHA ( ALPHA | DIGIT | PLUS | MINUS | DOT )*
+	;
+  
+  
+
+
+
+
+
+iauthority     
+  : (iuserinfo AT)? ihost (COLON port)?
+  ;
+
+iuserinfo      
+  : ( ALPHA | DIGIT | MINUS | DOT | IUNRESERVED | PCT_ENCODED | SUB_DELIMS | COLON )*
+  ;
+  
+ihost          
+  : ip_literal 
+  | ip_v4address 
+  | ireg_name
+  ;
+
+port 
+	: DIGIT*
+	;  
+  
+ireg_name 
+  : ( ALPHA | DIGIT | MINUS | DOT | IUNRESERVED | PCT_ENCODED | SUB_DELIMS )*
+  ;
+
+
+
+
+
+ipath_abempty 
+  : ( SLASH isegment )*
+  ;
+    
+ipath_absolute 
+  : SLASH (isegment_nz ( SLASH isegment )* )?
+  ;
+
+ipath_noscheme 
+  : isegment_nz_nc ( SLASH isegment )*
+  ;
+  
+ipath_rootless
+  : isegment_nz ( SLASH isegment )*
+  ;
+
+
+  
+  
+  
+  
+  
+
+
+
+isegment
+  : ipchar*
+  ;
+
+isegment_nz
+  : ipchar+
+  ;
+  
+isegment_nz_nc 
+  : ( ALPHA | DIGIT | IUNRESERVED | MINUS | DOT | PCT_ENCODED | SUB_DELIMS | AT )+
+  ;
+
+iquery
+  : ( ipchar | IPRIVATE | SLASH | QUESTION_MARK )*  
+  ;
+
+ifragment
+  : ( ipchar | SLASH | QUESTION_MARK )*
+  ;
+
+ipchar
+  : ALPHA | DIGIT | IUNRESERVED | MINUS | DOT | PCT_ENCODED | SUB_DELIMS | COLON | AT 
+  ; 
+
+
+
+
+
+
+
+
+
+ip_literal 
+	:	 LEFT_SQUARE  ip_vFuture  RIGHT_SQUARE
+	;
+
+ip_vFuture
+	: ALPHA HEXDIG DOT ( ALPHA | DIGIT | MINUS | DOT | IUNRESERVED | SUB_DELIMS )+
+	;
+
+ip_v4address
+	: DEC_OCTET DOT DEC_OCTET DOT DEC_OCTET DOT DEC_OCTET 
+	;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+QUESTION_MARK
+	:	'?'
+	;
+
+GATE
+	:	'#'
+	;
+
+PLUS
+	:	'+'
+	;
+
+MINUS
+	:	'-'
+	;
+
+DOT
+	:	'.'
+	;
+
+COLON
+	:	':'
+	;
+
+AT
+	:	'@'
+	;
+
+DBL_SLASH
+	:	'//'
+	;
+
+SLASH
+	:	'/'
+	;
+
+LEFT_SQUARE
+	:	'['
+	;
+
+RIGHT_SQUARE
+	:	']'
+	;
+
+
+ALPHA : ('a'..'z') | ('A'..'Z') ;
+
+DIGIT : '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' ;
+
+SUB_DELIMS : '!' | '$' | '&' | '\'' | '(' | ')' | '*' | '+' | ',' | ';' | '=' ;
+
+PCT_ENCODED :	'%' HEXDIG HEXDIG ;
+
+IUNRESERVED
+  : '_' | '~' | UCSCHAR
+  ;
+
+fragment
+HEXDIG
+	:	 DIGIT | ('a'..'f') | ('A'..'F') ;
+
+
+fragment
+UCSCHAR
+  : ('\u00a0'..'\ud7ff') | ('\uf900'..'\ufdcf') | ('\ufdf0'..'\uffef')  
+  ;
+
+fragment
+IPRIVATE
+  : ('\ue000'..'\uf8ff')
+  ;    
+  
+//
+//   ucschar        = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF
+//                  / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD
+//                  / %x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD
+//                  / %x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD
+//                  / %xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD
+//                  / %xD0000-DFFFD / %xE1000-EFFFD
+//
+//   iprivate       = %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD
+//
+
+
+
+
+
+   
+
+
+//fragment
+//UNRESERVED : ALPHA | DIGIT | MINUS | DOT | '_' | '~' ;
+	
+//fragment	
+//RESERVED : GEN_DELIMS | SUB_DELIMS ;
+
+//fragment
+//GEN_DELIMS 	:	 ':' | '/' | '?' | '#' | '[' | ']' | '@' ;
+
+
+
+
+
+
+
+WS      
+  :       
+  ( ' '
+  | '\t'
+  | '\f'
+  | EOL
+  )+
+  { $channel=HIDDEN; }
+  ;
+
+fragment
+EOL   
+  :      
+  ( ( '\r\n' )=> '\r\n' 
+  | '\r'    
+  | '\n'    
+  )
+  ;
+
+
+
+
+
+
+
+
+
+
+
+fragment
+DEC_OCTET 
+	:	('1'..'9') DIGIT
+	| '1' DIGIT DIGIT
+	| '2' ('0'..'4') DIGIT
+	| '25' ('0'..'5')
+	;
+
+
+
+  
+

Added: labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/IRI_Test.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/IRI_Test.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/IRI_Test.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,85 @@
+package org.drools.lang;
+
+
+import static org.junit.Assert.fail;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+
+import org.antlr.runtime.ANTLRInputStream;
+import org.antlr.runtime.CommonTokenStream;
+import org.antlr.runtime.RecognitionException;
+import org.drools.lang.iri.iriLexer;
+import org.drools.lang.iri.iriParser;
+import org.junit.Test;
+
+
+public class IRI_Test {
+
+
+	 
+	
+	
+	
+	@Test	
+	public void test_iri() {
+		String iri = "";
+		
+		iri = "http://sx.org";
+		if (! check(iri)) fail();
+		
+		iri = "foo://username:password@example.com:8042/over/there/index.dtb?type=animal;name=narwhal#nose"; 
+		if (! check(iri)) fail();
+		
+		iri = "??urn:example:animal:ferret:nose";
+		if (! check(iri)) fail();
+	}
+	
+	
+	protected boolean check(String iri) {
+		try {						  		
+			iriLexer lexer = new iriLexer( new ANTLRInputStream( new ByteArrayInputStream(iri.getBytes()) ));			
+			iriParser parser = new iriParser(new CommonTokenStream( lexer ));						
+				parser.iri();
+				
+			return (parser.getNumberOfSyntaxErrors() == 0);	
+		} catch (IOException ioe) {
+			ioe.printStackTrace();
+			return false;
+		} catch (RecognitionException e) { 
+			e.printStackTrace();
+			return false;
+		}
+			
+		
+	}
+	
+		
+
+    
+    
+    
+               
+            
+    
+    
+    
+    
+    
+    
+
+	
+	
+	
+	
+	
+	
+}
+
+
+
+
+
+
+
+

Added: labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Manchester_Test.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Manchester_Test.java	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Manchester_Test.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,784 @@
+package org.drools.lang;
+
+
+
+/**
+ * Test for future Drools Language Enhancements as of
+ * 
+ * 
+ * Nested Objects	-- done
+ * 		will require .# syntax even if no cast is required
+ * Casting Nested Objects -- done
+ * 		with #
+ * Positional Constraints -- done
+ * 		added positional restrictions and anonymous : X( 5, ?, ? == 12 )
+ * POSL - Positional-Slotted Language -- done
+ * Method Calls -- done
+ * Maps and Arrays (Collections) -- done
+ * Collections and XPath like filtering -- done
+ * Free form Expressions -- done 
+ * 		basic arithmetic expressions. require || when used on the left of a constraint
+ * Queries and Unification -- done
+ * Ontologies and Relations via Triples with Hybrid POJO Graph Notation 
+ * 		IN PROGRESS
+ * Escapes for Dialects -- done
+ * Accumulate -- done
+ * 		kept compatible,
+ * SQL Group Operators -- done
+ * Pipes - Pass through Filters -- done
+ * Unit support -- done
+ * Otherwise -- done
+ * 		using evaluator metadata
+ * Branch (Labelled Else) -- done
+ * Rule Dependency Meta-Rule Language -- not a language problem
+ * Parallel Meta-Rule Language -- future
+ * MVCC -- future (not a language problem? - depends on Parallel Meta-Rule)
+ * Slot-specific -- done
+ * 		used metadata
+ * Field Versioning -- done
+ * 		no metadata, but field<<ver>> in accessor paths
+ * Logical Modify -- done
+ * 		part of structured RHS
+ * Lambda Support with Analysis -- not a language problem?
+ * Rising / Falling edges -- done
+ * Single Pass Insertion / Single Match -- not a language problem?
+ * Query Based Backward Chaining with POSL -- done
+ * Federated Data Sources for Queries -- done 
+ * 		using from
+ * Event Sequencing -- done
+ * 		used metadata to determine start/end node
+ * Uncertainty / Vagueness -- done
+ * 		old story
+ * Ordered facts -- done
+ * 		basic works
+ */
+
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Vector;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.swing.JFrame;
+import javax.swing.JList;
+import javax.swing.JScrollPane;
+import javax.swing.ListSelectionModel;
+
+import org.antlr.runtime.ANTLRInputStream;
+import org.antlr.runtime.CommonTokenStream;
+import org.antlr.runtime.ParserRuleReturnScope;
+import org.antlr.runtime.tree.CommonTree;
+import org.antlr.runtime.tree.CommonTreeNodeStream;
+import org.drools.lang.dl.ManchesterLexer;
+import org.drools.lang.dl.ManchesterParser;
+import org.drools.lang.dl.ManchesterTreeBuilder;
+import org.drools.lang.dl.descr.DL_OntologyDescr;
+import org.drools.util.DRLTreeFormatter;
+import org.drools.util.DRLTreeMLFormatter;
+import org.drools.util.ParsingResult;
+import org.drools.util.ProTreeView;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+
+
+public class Manchester_Test {
+
+	private static Logger log;	
+	
+	private boolean visual = false;
+	public boolean isVisual() {	return visual; }
+	public void setVisual(boolean visual) {	this.visual = visual; }
+		
+	
+	
+	@BeforeClass
+	public static void setUpBeforeClass() throws Exception {
+		log = Logger.getAnonymousLogger();
+		log.setLevel(Level.INFO);		
+	}
+
+	@AfterClass
+	public static void tearDownAfterClass() throws Exception {
+		
+	}
+
+	@Before
+	public void setUp() throws Exception {
+		
+	}
+
+	@After
+	public void tearDown() throws Exception {
+		
+	}
+	
+	
+	 
+	
+	
+		
+	
+	@Test
+	public void test_manDL_iri() {
+		
+		String rule = "iri";
+		String[] testDRL = {				
+				
+				"foo ",	
+				
+				"SomeEvent",
+				
+				":defNS",
+				
+				"with:namespace",
+				
+				"<http://xmlns.com/foaf/0.1/#>",
+				
+				
+				
+		};
+				
+		check(rule,testDRL);
+		
+	}
+	
+	
+	
+	@Test	
+	public void test_manDL_declaration_root() {
+		String rule = "manDL_type_declaration";
+		String[] testDRL = {				
+				
+				"Class : foo ",
+				
+				"Class : SomeEvent",
+		};
+				
+		check(rule,testDRL);										
+	}
+	   
+	
+	
+	@Test	
+	public void test_manDL_annotations() {
+		String rule = "manDL_annotations";
+		String[] testDRL = {				
+				
+				"Annotations : creator sotty",
+				
+				"Annotations : creator sotty, " +
+				"	Annotations: rdfsComment year creationYear 2008, " +
+				"mainClass Person," +
+				"	Annotations: meta target annotationProp annotationTgt",
+				
+				
+				" Annotations:" + "\n" + 
+				" rdfs:seeAlsso \"http://xmlns.com/foaf/0.1/\"^^xsd:anyURI, " + "\n" +
+				" dc:description \"The Friend of a Friend (FOAF) RDF vocabulary, described using W3C RDF Schema and the Web Ontology Language.\", " + "\n" + 
+				" dc:title \"Friend of a Friend (FOAF) vocabulary\", " + "\n" + 
+				" dc:date \"$Date: 2006/01/29 22:38:45 $\" ",
+				
+				
+				"Annotations: " + "\n" + 
+				    "dc:publisher \"Dumontier Lab\"^^xsd:string"+ "\n " +
+				    "dc:publisher \"Dumontier Lab\"^^xsd:string"+ "\n " +
+				    "dc:title \"Organic Functional Group Ontology (complex)\"^^xsd:string"+ "\n " +
+				    "dc:creator \"Michel Dumontier\"^^xsd:string"+ "\n " +
+				    "dc:language \"en\"^^xsd:string"+ "\n " +
+				    "owl:versionInfo \"2.0\"^^xsd:string"+ "\n " +
+				    "dc:date \"2007-10-01\"^^xsd:date"+ "\n " +
+				    "dc:description \"Complex class descriptions for the realization of organic functional groups.\"^^xsd:string"+ "\n " +
+				    "dc:format \"application/rdf+xml\"^^xsd:string"
+				    
+		};
+				
+		check(rule,testDRL);										
+	}
+	
+	@Test	
+	public void test_manDL_class() {
+		String rule = "manDL_type_declaration";
+		String[] testDRL = {
+				"Class : Foo " + "\n" +				
+				" Annotations: creatory sotty " + "\n" +
+				" DisjointUnionOf: Annotations: guess what Child, Adult" + "\n" +
+				" SubClassOf: Person and Worker" + "\n" +
+				" EquivalentTo: Annotations: guess again Person" + "\n" +
+				" DisjointWith: Person" + "\n" +
+				" HasKey: Annotations: annkey targt hasSSN" + "\n"
+		};
+				
+		check(rule,testDRL);										
+	}
+	
+	
+	
+	
+	
+	
+	@Test	
+	public void test_manDL_datatype_declaration() {
+		String rule = "manDL_type_declaration";
+		String[] testDRL = {
+				"Datatype: NegInt " + "\n" +								
+				" EquivalentTo: Annotations: creator sotty Integer[ < 0 ], NegativeInteger" + "\n",												
+		};
+				
+		check(rule,testDRL);										
+	}
+
+	
+	
+	@Test	
+	public void test_manDL_annotated_description() {
+		String rule = "manDL_annotated_description";
+		String[] testDRL = {
+				
+				"Person and " +
+				"	hasChildren exactly 3 Male ",
+				
+				"Person and (" +
+				"	hasChildren exactly 3 Male or hasChildren min 2 Female ) ",
+				
+				"hasAge exactly 1 and hasAge only not NegInt",
+				
+				"Annotations: tell me Human or Animal or Robot and not Alien",
+				
+				
+				
+				"hasChild Male",
+				
+				"Person and hasChildren some Male ",
+								
+				"Person and hasChildren only Male ",
+				
+				"Person and hasChildren value john ",
+				
+				"Person and hasChildren min 3 ",
+				
+				"Person and hasChildren max 5 ",
+				
+				"Person and hasChildren exactly 10 (Male or Female and hasFriend only Cat)",
+				
+				"Thing that hasFirstName exactly 1 and hasFirstName only String[minLength 1]",
+											
+				"hasGender exactly 1 and hasGender only {\"female\", \"male\"}",
+				
+				"hasFirstName value \"John\" or hasFirstName value \"Joe\" ",
+				
+				"Person or hasChildren only Male ",
+				
+				
+		};
+				
+		check(rule,testDRL);										
+	}
+	
+	
+	@Test
+	public void test_manDL_quantified_restriction_core() {
+		String rule = "manDL_quantified_restriction_core";
+		String[] testDRL = {
+								
+				
+				
+				"hasChildren some Male ",
+								
+				"hasChildren only Male ",
+				
+				"hasChildren value john ",
+				
+				"hasChildren min 3 ",
+				
+				"hasChildren max 5 ",
+				
+				"hasChildren exactly 10",
+				
+				"hasChildren Male",
+				
+					
+				
+		};
+				
+		check(rule,testDRL);										
+	}
+	
+	
+
+	
+	
+	
+	@Test	
+	public void test_manDL_objectprop() {
+		String rule = "manDL_objectProperty";
+		String[] testDRL = {
+				"ObjectProperty: hasWife" + "\n" +				
+				" Annotations: creator sotty " + "\n" +
+				" Characteristics: Functional, InverseFunctional, Reflexive, Irreflexive, Asymmetric, Transitive " + "\n" +
+				" Domain: Annotations: rdfsComment \"General dom\", creator sotty Person," + "\n" +
+				"         Annotations: rdfsCcomment \"More specific dom\" Man" + "\n" +
+				" Range: Person, Woman " + "\n" +
+				" SubPropertyOf: hasSpouse, loves" + "\n" +
+				" EquivalentTo: isMarriedTo " + "\n" +
+				" DisjointWith: hates " + "\n" +
+				" InverseOf: hasSpouse, inverse hasSpouse" + "\n" +
+				" SubPropertyChain: hasChild o hasParent " + "\n",												
+			
+		};
+				
+		check(rule,testDRL);										
+	}
+	
+	
+	
+	@Test
+	public void test_manDL_dataprop() {
+		String rule = "manDL_dataProperty";
+		String[] testDRL = {
+				"DataProperty: hasAge" + "\n" +				
+				" Annotations: creator sotty " + "\n" +
+				" Characteristics: Functional " + "\n" +
+				" Domain: Person " + "\n" +
+				" Range: integer " + "\n" +
+				" SubPropertyOf: hasVerifiedAge" + "\n" +
+				" EquivalentTo: hasAgeInYears " + "\n" +
+				" DisjointWith: hasSSN " + "\n",
+
+		};
+		check(rule,testDRL);										
+	}
+
+	@Test
+	public void test_manDL_annotation_prop() {
+		String rule = "manDL_type_declaration";
+		String[] testDRL = {
+				"AnnotationProperty: creator" + "\n" +				
+				" Annotations: price 100 " + "\n" +					
+				" Domain: Person " + "\n" +
+				" Range: String " + "\n" +
+				" SubPropertyOf: initialCreator" + "\n",
+
+		};	
+		check(rule,testDRL);										
+	}
+	
+	@Test
+	public void test_manDL_individuals() {
+		String rule = "manDL_type_declaration";
+		String[] testDRL = {
+				"Individual: John" + "\n" +				
+				" Annotations: creator sotty " + "\n" +					
+				" Types: Person, hasFirstName value \"John\" or hasFirstName value \"Joe\" " + "\n" +
+				" Facts: hasWife Mary, not hasChild Susan, hasAge 33 " + "\n" +
+				" SameAs: Joe" + "\n" +
+				" DifferentFrom: Susan" + "\n",
+			
+		};	
+		check(rule,testDRL);										
+	}
+	
+	@Test
+	public void test_manDL_individual_list() {
+		String rule = "manDL_individual_list";
+		String[] testDRL = {
+				"John, Susan, Mark " 											
+		};	
+		check(rule,testDRL);
+	}
+	
+	@Test
+	public void test_manDL_individual_list_core() {
+		String rule = "manDL_atomic_core";
+		String[] testDRL = {
+				"{John, Susan, Mark}" 											
+		};	
+		check(rule,testDRL);
+	}
+	
+	
+	@Test
+	public void test_manDL_literal_list_core() {
+		String rule = "manDL_atomic_core";
+		String[] testDRL = {
+				"{\"John\", \"Susan\", \"Mark\"}" 											
+		};	
+		check(rule,testDRL);
+	}
+	
+	
+	
+	@Test
+	public void test_manDL_misc() {
+		String rule = "manDL_type_declaration";
+		String[] testDRL = {
+				"EquivalentClasses: Annotations: creator sotty Rock, Scissors, Paper ",
+				 
+				"DisjointClasses: Annotations: creator sotty q:Rock, q:Scissors, Paper ",
+				
+				"EquivalentProperties: Annotations: creator sotty h:loves, h:hates ",
+				
+				"DisjointProperties: Annotations: creator sotty loves, hates ",
+				
+				"SameIndividual: Annotations: creator sotty John, Joe, Jack ",
+				
+				"DifferentIndividuals: Annotations: creator sotty John, Joe, Jack ",
+			
+		};	
+		check(rule,testDRL);										
+	}
+	
+		
+	
+	
+	@Test	
+	public void test_manDL_data_type_restriction() {
+		String rule = "manDL_data_type_restriction";
+		String[] testDRL = new String[] {
+				
+				"Integer",
+				
+				"Custom",
+				
+				
+				"Integer[ length 3, > 342 ]",
+		};
+		check(rule,testDRL);	
+	}
+	
+	
+	
+	@Test
+	public void test_manDL_ontology() {
+		String rule = "manDL_ontology";
+		String[] testDRL = {
+				" Prefix: g: <sk:someIRI#> " +"\n" +								
+				" Ontology : owl:myOnto g:v1 " +"\n" +
+				" Import: anotherOnto " + "\n" +
+				" Annotations: g:creator g:sotty, Annotations: many ways mark sman," + "\n"+
+				"              year 2008, sometype string" + "\n" + 
+				"  " +"\n" + 
+				" Class : g:klass " +"\n" + 
+				" Datatype : g:dtype2 " +"\n" +
+				" DataProperty : g:dprop " +"\n" +
+				" AnnotationProperty : g:aprop " +"\n" +				
+				" ObjectProperty : g:oprop" + "\n" +
+				" Individual : g:indiv ",
+				
+				
+				
+				
+//				"Namespace: dc <http://purl.org/dc/elements/1.1/>"+ "\n " +
+//				" Ontology : pass" + "\n " +
+//				" Import: <http://ontology.dumontierlab.com/atom-common> " + "\n " +
+//				" " + "\n " +
+//				"Annotations: " + "\n" + 
+//			    "dc:publisher \"Dumontier Lab\"^^string,"+ "\n " +
+//			    "dc:publisher \"Dumontier Lab\"^^xsd:string,"+ "\n " +
+//			    "dc:title \"Organic Functional Group Ontology (complex)\"^^xsd:string,"+ "\n " +
+//			    "dc:creator \"Michel Dumontier\"^^xsd:string,"+ "\n " +
+//			    "dc:language \"en\"^^xsd:string,"+ "\n " +
+//			    "owl:versionInfo \"2.0\"^^xsd:string,"+ "\n " +
+//			    "dc:date \"2007-10-01\"^^xsd:date,"+ "\n " +
+//			    "dc:description \"Complex class descriptions for the realization of organic functional groups.\"^^xsd:string,"+ "\n " +
+//			    "dc:format \"application/rdf+xml\"^^xsd:string"
+											
+		};	
+		check(rule,testDRL);
+		
+		
+	}
+	
+	
+	@Test
+	public void test_manDL_prefix() {
+		String rule = "manDL_prefix";
+		String[] testDRL = {
+				" Prefix: g: <sk:someIRI> " +"\n",
+				" Namespace: g <sk:someIRI> " +"\n",
+				" Namespace: <sk:someIRI> " +"\n",
+				" Namespace: dc <http://purl.org/dc/elements/1.1/>",
+				" Namespace:  <http://www.co-ode.org/ontologies/pizza/pizza.owl#>",
+				
+											
+		};	
+		check(rule,testDRL);										
+	}
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	@Test
+	public void test_foaf_ontology() {
+		test_ontology("foaf.manchester");			
+	}
+	
+	
+	
+	@Test
+	public void test_pizza_ontology() {
+		test_ontology("pizza.manchester");
+	}
+	
+	@Test
+	public void test_amminoacids_ontology() {
+		test_ontology("amminoacids.manchester");
+	}
+    
+	@Test
+	public void test_bhakti_ontology() {
+		test_ontology("bhakti.manchester");
+	}
+	
+	@Test
+	public void test_organic_ontology() {
+		test_ontology("organic_fun_group.manchester");
+	}
+	
+	@Test
+	public void tourism_ontology() {
+		test_ontology("tourism.manchester");
+	}
+	
+
+	
+    
+    
+               
+            
+    
+    
+    
+	public void test_ontology(String ontoName) {
+		String rule = "manDL_ontology";
+		InputStream stream = Manchester_Test.class.getClassLoader().getResourceAsStream(ontoName);
+		assertNotNull(stream);
+
+		try {
+			byte[] buf = new byte[stream.available()];
+			stream.read(buf);
+			String source = new String(buf);
+
+			check(rule,new String[] {source});
+		} catch (IOException ioe) {
+			ioe.printStackTrace();
+			fail();
+		}
+		
+		
+
+	}
+	
+	    
+    
+    
+
+	
+	
+	
+	
+	private void check(String key) {
+		try {
+			Method method = Manchester_Test.class.getMethod(key);
+			method.invoke(this);
+		} catch (SecurityException e) {
+			e.printStackTrace();
+		} catch (NoSuchMethodException e) {
+			e.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		} catch (InvocationTargetException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	
+	
+	private void check(String rule, String[] drl) {
+		System.err.println(isVisual());
+		ParsingResult[] res = parseAndTest(rule, drl, isVisual());
+			
+		for (int j = 0; j < res.length; j++) {			
+			assertTrue(res[j].isSuccess());
+		}	
+		
+		 
+	}
+	
+	
+	
+	
+	
+	public ParsingResult[] parseAndTest(String rulekey, String[] drl, boolean visual) {
+		ParsingResult[] ans = new ParsingResult[drl.length];
+		int j = 0;
+		
+		Method ruleM;
+		try {
+			ruleM = ManchesterParser.class.getMethod(rulekey);
+		} catch (SecurityException e) {
+			return null;
+		} catch (NoSuchMethodException e) {
+			return null;
+		}
+				
+				CommonTree fakeRoot = new CommonTree();
+					
+				
+				for (String drlString : drl) {
+					ParsingResult res = new ParsingResult();
+										
+					res.setSource(drlString);
+						
+					try {
+						ManchesterLexer lexer = new ManchesterLexer( new ANTLRInputStream( new ByteArrayInputStream(drlString.getBytes()) ));			
+						ManchesterParser parser = new ManchesterParser(new CommonTokenStream( lexer ));
+						
+						
+					
+						long start = new Date().getTime();
+							ParserRuleReturnScope root;			
+							root = (ParserRuleReturnScope) ruleM.invoke(parser);
+							long after = new Date().getTime();
+					
+							final CommonTree resultTree = (CommonTree) root.getTree();
+							fakeRoot.addChild(resultTree);
+																	
+					
+						final String tree = DRLTreeFormatter.toIndentedStringTree(resultTree);
+						log.log(Level.INFO, tree);
+						
+						
+						res.setNumErrors(parser.getNumberOfSyntaxErrors());
+						res.setTree(resultTree);
+						res.setParseTime(after-start);
+						
+						if (rulekey.equals("manDL_ontology")) {
+							ManchesterTreeBuilder builder = new ManchesterTreeBuilder(new CommonTreeNodeStream(resultTree));
+							DL_OntologyDescr od = builder.ontology();
+							System.out.println(od.toFullDownwardString(2));
+							
+							
+						}
+					
+						
+					} catch (Exception e) {
+						e.printStackTrace();
+						res.setError(e);
+					} finally {
+						ans[j++] = res;
+					}
+				}
+				
+				
+				
+				if (visual) {							
+					StringBuilder source = new StringBuilder();
+						for (String s : drl) {
+							source.append(s).append("\n");
+						}
+					
+					JFrame view = ProTreeView.visualize_tree(DRLTreeMLFormatter.getAsStream(fakeRoot),
+							DRLTreeMLFormatter.FIELD,
+							source.toString(),	
+							DRLTreeFormatter.toIndentedStringTree(fakeRoot,"  "),
+							rulekey);
+					view.setVisible(true);
+				}
+        
+        return ans;
+	}
+	
+		
+	
+	
+	
+	public static void main(String[] args) {
+		try {
+			Manchester_Test tester = new Manchester_Test();
+				log = Logger.getAnonymousLogger();
+				log.setLevel(Level.INFO);
+				tester.setVisual(true);
+				
+								
+				Vector<String> methods = new Vector<String>();
+					Class<?> klass = Manchester_Test.class;
+					for (Method m : klass.getMethods())
+						if (m.getAnnotation(Test.class) != null)
+							methods.add(m.getName());
+					Collections.sort(methods);
+					
+				JList list = new JList(methods);				
+				ListSelectionModel lsm = list.getSelectionModel();
+			    	lsm.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+			    list.addMouseListener(new MouseListener() {										
+					public void mouseReleased(MouseEvent e) {}					
+					public void mousePressed(MouseEvent e) {}					
+					public void mouseExited(MouseEvent e) {}
+					public void mouseEntered(MouseEvent e) {}
+					public void mouseClicked(MouseEvent e) {
+						if (e.getClickCount() > 1) {
+							String methodName = ((JList)e.getSource()).getSelectedValue().toString();
+							Manchester_Test tester = new Manchester_Test();
+							tester.setVisual(true);
+							tester.check(methodName);
+						}
+							 							
+					}
+				});			    
+			    JScrollPane jsp = new JScrollPane(list);
+				
+				JFrame frame = new JFrame();
+				frame.setSize(200, 600);
+				frame.setLocation(200, 100);
+				frame.add(jsp);
+				frame.pack();
+				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+				frame.setVisible(true);
+				
+				//tester.check("test_package_statement");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+
+
+	
+	
+	
+}
+
+
+
+
+
+
+
+

Modified: labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Rule_Test.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Rule_Test.java	2010-10-31 02:44:42 UTC (rev 35807)
+++ labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Rule_Test.java	2010-11-01 02:16:44 UTC (rev 35808)
@@ -149,8 +149,8 @@
 				" " + "\n" +	
 				"global int N; \n" +				
 				" " + "\n" +
-				"Ontology : " + "\n" +
-				" @Class declare Test end " + "\n" +
+//				"Ontology : " + "\n" +
+//				" @Class declare Test end " + "\n" +
 				" " + "\n" +
 				"rule \"ruel\"\n" +
 				"when\n" +
@@ -163,8 +163,8 @@
 				
 	}	
 	
+						
 	
-	
 	@Test	
 	public void test_package_statement() {		
 		String rule = "package_statement";
@@ -261,6 +261,92 @@
 	
 	
 	
+	@Test
+	public void test_declare() {
+		String rule = "declare_bean";
+		String[] testDRL = new String[] {							
+				" declare Person " +
+				"  @role(fact) " +	
+				"  name : String @key" +
+				"  age : int" +
+				" end " +				
+				"  ",
+				
+				" declare MyEvent " +
+				"  @role(event) " +
+				"  @timestamp(tim_field) " +
+				"  @duration(dur_field) " +
+				"  @expires(exp_field) " +			//todo 
+				"  " + 
+				"  field : String " +				
+				" end " +				
+				"  ",
+				
+				" declare MyEvent " +
+				"  @role(event) " +
+				"  @timestamp(tim_field) " +
+				"  @duration(dur_field) " +
+				"  @expires(exp_field) " +			//todo 
+				"  " + 
+				"  field : String " +				
+				" end " +				
+				"  ",
+				
+				" declare @role(individual) " +				
+				"  Person(\"john\",34,Address(\"London\",44,true))" +				
+				// optional end " end " +				
+				"  ",
+				
+				
+				" declare ns:hasName " +
+				"  @role(property) " +				
+				"  domain : Person " +
+				"  range : String" +
+				" end ",
+				
+				" declare ns:hasName " +
+				"  @role(property) " +
+				"  @transitive " +
+				"  @symmetric " +
+				"  @reflexive " +
+				" " +
+				"  domain : Person " +
+				"  range : String" +
+				" end " +				
+				"  ",
+					
+				
+				
+				" declare ns:YoungPerson " +
+				"  aka Kid " + 
+				"  extends Person " +
+				"  as Person and :hasAge only Integer [< 18] " +
+				"  @role(concept) " +								
+				"  hasSchool : School" +
+				" end " +				
+				"  ",
+				
+				
+				
+				
+				
+				
+				
+				//dec indiv
+				//
+				
+				
+		};
+		check(rule,testDRL);											
+	}	
+	
+	
+	
+	
+	
+	
+	
+	
 	@Test		
 	public void test_rule() {
 		String rule = "rule";
@@ -1645,416 +1731,7 @@
 	
 	
 		
-	
-	@Test	
-	public void test_manDL_declaration_root() {
-		String rule = "manDL_type_declaration";
-		String[] testDRL = {
-				"@Class " + "\n" +
-				"declare foo " + "\n" +
-				"end",
-				
-				"Class : foo ",
-				
-				"@Event declare SomeEvent end",
-		};
-				
-		check(rule,testDRL);										
-	}
-	   
-	
-	
-	@Test	
-	public void test_manDL_annotations() {
-		String rule = "manDL_annotations";
-		String[] testDRL = {				
-				
-				"Annotations : creator sotty",
-				
-				"Annotations : creator sotty, " +
-				"	Annotations: rdfsComment year creationYear 2008, " +
-				"mainClass Person," +
-				"	Annotations: meta target annotationProp annotationTgt",
-				
-				
-				" Annotations:" + "\n" + 
-				" rdfs:seeAlsso \"http://xmlns.com/foaf/0.1/\"^^xsd:anyURI, " + "\n" +
-				" dc:description \"The Friend of a Friend (FOAF) RDF vocabulary, described using W3C RDF Schema and the Web Ontology Language.\", " + "\n" + 
-				" dc:title \"Friend of a Friend (FOAF) vocabulary\", " + "\n" + 
-				" dc:date \"$Date: 2006/01/29 22:38:45 $\" ",
-		};
-				
-		check(rule,testDRL);										
-	}
-	
-	@Test	
-	public void test_manDL_class() {
-		String rule = "manDL_type_declaration";
-		String[] testDRL = {
-				"@Class " + "\n" +
-				"declare Foo " + "\n" +
-				" Annotations: creatory sotty " + "\n" +
-				" DisjointUnionOf: Annotations: guess what Child, Adult" + "\n" +
-				" SubClassOf: Person and Worker" + "\n" +
-				" EquivalentTo: Annotations: guess again Person" + "\n" +
-				" DisjointWith: Person" + "\n" +
-				" HasKey: Annotations: annkey targt hasSSN" + "\n" + 
-				"end",
-				
-				
-				"@Class " + "\n" +
-				"declare Foo2 " + "\n" +				
-				" as Person or Worker and hasAge : Integer[ < 33 ]" + "\n" +								
-				"end",
-				
-		};
-				
-		check(rule,testDRL);										
-	}
-	
-	
-	
-	
-	
-	
-	@Test	
-	public void test_manDL_datatype_declaration() {
-		String rule = "manDL_type_declaration";
-		String[] testDRL = {
-				"Datatype: NegInt " + "\n" +								
-				" EquivalentTo: Annotations: creator sotty Integer[ < 0 ], NegativeInteger" + "\n",
-				
-				"@Datatype declare NegInt " + "\n" +				
-				" as Integer[ < 0 ]" + "\n",
-				
-		};
-				
-		check(rule,testDRL);										
-	}
 
-	
-	
-	@Test	
-	public void test_manDL_annotated_description() {
-		String rule = "manDL_annotated_description";
-		String[] testDRL = {
-				
-				"hasAge exactly 1 and hasAge only not NegInt",
-				
-				"Annotations: tell me Human or Animal or Robot and not Alien",
-				
-				"Person and (" +
-				"	hasChildren exactly 3 Male or hasChildren min 2 Female ) ",
-				
-				"hasChild Male",
-				
-				"Person and hasChildren some Male ",
-								
-				"Person and hasChildren only Male ",
-				
-				"Person and hasChildren value john ",
-				
-				"Person and hasChildren min 3 ",
-				
-				"Person and hasChildren max 5 ",
-				
-				"Person and hasChildren exactly 10 (Male or Female and hasFriend only Cat)",
-				
-				"Thing that hasFirstName exactly 1 and hasFirstName only String[minLength 1]",
-				
-				
-				
-				"hasGender exactly 1 and hasGender only {\"female\", \"male\"}",
-				
-				"hasFirstName value \"John\" or hasFirstName value \"Joe\" ",
-				
-				"Person or hasChildren only Male ",
-				
-				
-		};
-				
-		check(rule,testDRL);										
-	}
-	
-	
-	@Test
-	public void test_manDL_quantified_restriction_core() {
-		String rule = "manDL_quantified_restriction_core";
-		String[] testDRL = {
-								
-				
-				
-				"hasChildren some Male ",
-								
-				"hasChildren only Male ",
-				
-				"hasChildren value john ",
-				
-				"hasChildren min 3 ",
-				
-				"hasChildren max 5 ",
-				
-				"hasChildren exactly 10",
-				
-				"hasChildren Male",
-				
-					
-				
-		};
-				
-		check(rule,testDRL);										
-	}
-	
-	
-
-	
-	
-	
-	@Test	
-	public void test_manDL_objectprop() {
-		String rule = "manDL_objectProperty";
-		String[] testDRL = {
-				"ObjectProperty: hasWife" + "\n" +				
-				" Annotations: creator sotty " + "\n" +
-				" Characteristics: Functional, InverseFunctional, Reflexive, Irreflexive, Asymmetric, Transitive " + "\n" +
-				" Domain: Annotations: rdfsComment \"General dom\", creator sotty Person," + "\n" +
-				"         Annotations: rdfsCcomment \"More specific dom\" Man" + "\n" +
-				" Range: Person, Woman " + "\n" +
-				" SubPropertyOf: hasSpouse, loves" + "\n" +
-				" EquivalentTo: isMarriedTo " + "\n" +
-				" DisjointWith: hates " + "\n" +
-				" InverseOf: hasSpouse, inverse hasSpouse" + "\n" +
-				" SubPropertyChain: hasChild o hasParent " + "\n",	
-				
-				
-				"@ObjectProperty declare hasWife" + "\n" +				
-				" @Functional" +
-				" @InverseFunctional" +
-				" @Reflexive " +
-				" @Irreflexive " +
-				" @Asymmetric " +
-				" @Transitive " + "\n" +
-				" domain : Person " + "\n" +         
-				" range : Woman " + "\n" +
-				"end ",	
-			
-		};
-				
-		check(rule,testDRL);										
-	}
-	
-	
-	
-	@Test
-	public void test_manDL_dataprop() {
-		String rule = "manDL_dataProperty";
-		String[] testDRL = {
-				"DataProperty: hasAge" + "\n" +				
-				" Annotations: creator sotty " + "\n" +
-				" Characteristics: Functional " + "\n" +
-				" Domain: Person " + "\n" +
-				" Range: integer " + "\n" +
-				" SubPropertyOf: hasVerifiedAge" + "\n" +
-				" EquivalentTo: hasAgeInYears " + "\n" +
-				" DisjointWith: hasSSN " + "\n",
-
-
-
-				"@DataProperty declare hasAge" + "\n" +				
-				" @Functional" +				
-				" domain : Person" + "\n" +         
-				" range : Integer " + "\n" +
-				"end ",
-
-		};
-		check(rule,testDRL);										
-	}
-
-	@Test
-	public void test_manDL_annotation_prop() {
-		String rule = "manDL_type_declaration";
-		String[] testDRL = {
-				"AnnotationProperty: creator" + "\n" +				
-				" Annotations: price 100 " + "\n" +					
-				" Domain: Person " + "\n" +
-				" Range: String " + "\n" +
-				" SubPropertyOf: initialCreator" + "\n",
-
-				"@AnnotationProperty declare creator" + "\n" +				
-				" domain : Person" + "\n" +         
-				" range : Integer " + "\n" +
-				"end ",
-
-		};	
-		check(rule,testDRL);										
-	}
-	
-	@Test
-	public void test_manDL_individuals() {
-		String rule = "manDL_type_declaration";
-		String[] testDRL = {
-				"Individual: John" + "\n" +				
-				" Annotations: creator sotty " + "\n" +					
-				" Types: Person, hasFirstName value \"John\" or hasFirstName value \"Joe\" " + "\n" +
-				" Facts: hasWife Mary, not hasChild Susan, hasAge 33 " + "\n" +
-				" SameAs: Joe" + "\n" +
-				" DifferentFrom: Susan" + "\n",
-			
-		};	
-		check(rule,testDRL);										
-	}
-	
-	
-	@Test
-	public void test_manDL_misc() {
-		String rule = "manDL_type_declaration";
-		String[] testDRL = {
-				"EquivalentClasses: Annotations: creator sotty Rock, Scissors, Paper ",
-				 
-				"DisjointClasses: Annotations: creator sotty q:Rock, q:Scissors, Paper ",
-				
-				"EquivalentProperties: Annotations: creator sotty h:loves, h:hates ",
-				
-				"DisjointProperties: Annotations: creator sotty loves, hates ",
-				
-				"SameIndividual: Annotations: creator sotty John, Joe, Jack ",
-				
-				"DifferentIndividuals: Annotations: creator sotty John, Joe, Jack ",
-			
-		};	
-		check(rule,testDRL);										
-	}
-	
-	
-	@Test	
-	public void test_manDL_decl_field() {
-		String rule = "manDL_decl_field";
-		String[] testDRL = new String[] {
-				"field : datatype ;",
-				
-				"field : datatype[][] ;",
-				
-				"field : datatype[][][ > 18 ] ;",
-		};
-		check(rule,testDRL);	
-	}
-	
-	
-	
-	@Test	
-	public void test_manDL_data_type_restriction() {
-		String rule = "manDL_data_type_restriction";
-		String[] testDRL = new String[] {
-				
-				"Integer",
-				
-				"Custom",
-				
-				
-				"Integer[ length 3, > 342 ]",
-		};
-		check(rule,testDRL);	
-	}
-	
-	
-	
-	@Test
-	public void test_manDL_ontology() {
-		String rule = "manDL_ontology";
-		String[] testDRL = {
-				" Prefix: g: <someIRI> " +"\n" +								
-				" Ontology : myOnto v1 " +"\n" +
-				" Import: anotherOnto " + "\n" +
-				" Annotations: creator sotty" + "\n" +
-				"  " +"\n" + 
-				" declare g:Test end " +"\n",
-											
-		};	
-		check(rule,testDRL);										
-	}
-	
-	
-	@Test
-	public void test_manDL_prefix() {
-		String rule = "manDL_prefix";
-		String[] testDRL = {
-				" Prefix: g: <someIRI> " +"\n",
-				" Namespace: g <someIRI> " +"\n",
-				" Namespace: dc <http://purl.org/dc/elements/1.1/>",
-				
-											
-		};	
-		check(rule,testDRL);										
-	}
-	
-	
-	
-	
-	@Test	
-	public void test_manDL_bean() {
-		String rule = "manDL_type_declaration";
-		String[] testDRL = {
-				"@Class " + "\n" +
-				"declare Person " + "\n" +				
-				" DisjointUnionOf: Child, Adult" + "\n" +
-				" SubClassOf: Mammal" + "\n" +
-				" EquivalentTo: Mankind" + "\n" +
-				" DisjointWith: Vegetal" + "\n" +
-				" HasKey: hasage" + "\n" +
-				" " + "\n" +
-				" name : String @key ;" + "\n" +
-				" age : Integer ;" + "\n" +
-				" hasRelation String[ minLength 10 ] ;" + "\n" +
-				" hasAddress : Address[][] ;" + "\n" +
-				" hasAddress some Address ;" + "\n" +
-				" " + "\n" +
-				" " + "\n" +
-				"end",
-											
-		};
-				
-		check(rule,testDRL);										
-	}
-	
-	
-	
-	@Test	
-	public void test_manDL_backwardtype_declaration() {
-		String rule = "manDL_type_declaration";
-		String[] testDRL = new String[] {
-				"declare Student " + "\n" +
-				" as Male and Human and (Slave or worksAt some (School or Prison))" + "\n" +				
-				" age  : int ;" + "\n" +
-				" name : String ;" + "\n" +
-				" end \n"
-		};
-		check(rule,testDRL);											
-	}
-	
-	
-	
-	@Test
-	public void test_foaf_ontology() {
-		String rule = "manDL_ontology";
-		InputStream stream = Rule_Test.class.getClassLoader().getResourceAsStream("foaf.manchester");
-		assertNotNull(stream);
-
-		try {
-			byte[] buf = new byte[stream.available()];
-			stream.read(buf);
-			String source = new String(buf);
-
-			check(rule,new String[] {source});
-		} catch (IOException ioe) {
-			ioe.printStackTrace();
-			fail();
-		}
-		
-		
-
-	}
-	
-	
     
     
     

Added: labs/jbossrules/branches/DRLv6/src/test/resources/amminoacids.manchester
===================================================================
--- labs/jbossrules/branches/DRLv6/src/test/resources/amminoacids.manchester	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/test/resources/amminoacids.manchester	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,1290 @@
+Namespace: dc <http://purl.org/dc/elements/1.1/>
+Namespace: amino-acid <http://www.co-ode.org/ontologies/amino-acid/2005/10/11/amino-acid.owl#>
+Namespace:  <http://www.co-ode.org/ontologies/amino-acid/2005/10/11/amino-acid.owl#>
+Namespace: rdfs <http://www.w3.org/2000/01/rdf-schema#>
+Namespace: owl2xml <http://www.w3.org/2006/12/owl2-xml#>
+Namespace: owl <http://www.w3.org/2002/07/owl#>
+Namespace: xsd <http://www.w3.org/2001/XMLSchema#>
+Namespace: rdf <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+Namespace: daml <http://www.daml.org/2001/03/daml+oil#>
+Namespace: meta <http://www.co-ode.org/ontologies/meta/2005/06/15/meta.owl#>
+
+
+
+Ontology: <http://www.co-ode.org/ontologies/amino-acid/2005/10/11/amino-acid.owl>
+Import: <http://www.co-ode.org/ontologies/meta/2005/06/15/meta.owl>
+
+Annotations: 
+    owl:versionInfo "version 1.0, copyright The University of Manchester,  Nick Drummond, Georgina Moulton, Robert Stevens, Phil Lord"^^xsd:string,
+    rdfs:comment "Amino acids and their properties"@en
+
+ObjectProperty: hasSize
+
+    Characteristics: 
+        Functional
+    
+    Domain: 
+        AminoAcid
+    
+    Range: 
+        Size
+    
+    
+
+
+
+ObjectProperty: hasHydrophobicity
+
+    Characteristics: 
+        Functional
+    
+    Domain: 
+        AminoAcid
+    
+    Range: 
+        Hydrophobicity
+    
+    
+
+
+
+ObjectProperty: hasPolarity
+
+    Characteristics: 
+        Functional
+    
+    Domain: 
+        AminoAcid
+    
+    Range: 
+        Polarity
+    
+    
+
+
+
+ObjectProperty: hasCharge
+
+    Characteristics: 
+        Functional
+    
+    Domain: 
+        AminoAcid
+    
+    Range: 
+        Charge
+    
+    
+
+
+
+ObjectProperty: hasSideChainStructure
+
+    Characteristics: 
+        Functional
+    
+    Domain: 
+        AminoAcid
+    
+    Range: 
+        SideChainStructure
+    
+    
+
+
+
+Class: F
+
+    Annotations: 
+        rdfs:label "Phenylalanine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Non-Polar,
+        hasSideChainStructure some Aromatic,
+        hasSize some Large,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Non-Polar,
+        hasSideChainStructure only Aromatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        V,
+        I,
+        G,
+        N,
+        P,
+        S,
+        Y,
+        R,
+        H,
+        L,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        C,
+        M
+    
+    
+
+
+
+Class: V
+
+    Annotations: 
+        rdfs:label "Valine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Non-Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Small,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Non-Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Small
+    
+    DisjointWith: 
+        F,
+        I,
+        G,
+        N,
+        P,
+        S,
+        Y,
+        L,
+        R,
+        H,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        M,
+        C
+    
+    
+
+
+
+Class: AromaticAminoAcid
+
+    EquivalentTo: 
+        AminoAcid
+        and (hasSideChainStructure some Aromatic)
+    
+    
+
+
+
+Class: I
+
+    Annotations: 
+        rdfs:label "Isoleucine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Non-Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Large,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Non-Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        F,
+        V,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        H,
+        L,
+        R,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        M,
+        C
+    
+    
+
+
+
+Class: Tiny
+
+    SubClassOf: 
+        Size
+    
+    DisjointWith: 
+        Small,
+        Large
+    
+    
+
+
+
+Class: G
+
+    Annotations: 
+        rdfs:label "Glycine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Non-Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Tiny,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Non-Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Tiny
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        N,
+        P,
+        S,
+        Y,
+        H,
+        R,
+        L,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        C,
+        M
+    
+    
+
+
+
+Class: Small
+
+    SubClassOf: 
+        Size
+    
+    DisjointWith: 
+        Tiny,
+        Large
+    
+    
+
+
+
+Class: N
+
+    Annotations: 
+        rdfs:label "Asparagine"^^xsd:string,
+        owl:versionInfo "TODO: Should this be Aliphatic?"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophilic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Small,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophilic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Small
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        S,
+        Y,
+        R,
+        L,
+        H,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        C,
+        M
+    
+    
+
+
+
+Class: Hydrophobic
+
+    SubClassOf: 
+        Hydrophobicity
+    
+    DisjointWith: 
+        Hydrophilic
+    
+    
+
+
+
+Class: Positive
+
+    SubClassOf: 
+        Charge
+    
+    DisjointWith: 
+        Negative,
+        Neutral
+    
+    
+
+
+
+Class: Neutral
+
+    SubClassOf: 
+        Charge
+    
+    DisjointWith: 
+        Negative,
+        Positive
+    
+    
+
+
+
+Class: AminoAcid
+
+    EquivalentTo: 
+        A
+        or C
+        or D
+        or E
+        or F
+        or G
+        or H
+        or I
+        or K
+        or L
+        or M
+        or N
+        or P
+        or Q
+        or R
+        or S
+        or T
+        or V
+        or W
+        or Y
+    
+    
+
+
+
+Class: LargeAliphaticAminoAcid
+
+    EquivalentTo: 
+        AminoAcid
+        and (hasSideChainStructure some Aliphatic)
+        and (hasSize some Large)
+    
+    
+
+
+
+Class: L
+
+    Annotations: 
+        rdfs:label "Leucine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Non-Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Large,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Non-Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        N,
+        P,
+        S,
+        Y,
+        H,
+        R,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        C,
+        M
+    
+    
+
+
+
+Class: H
+
+    Annotations: 
+        rdfs:label "Histidine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Positive,
+        hasHydrophobicity some Hydrophilic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aromatic,
+        hasSize some Large,
+        hasCharge only Positive,
+        hasHydrophobicity only Hydrophilic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aromatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        L,
+        R,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        M,
+        C
+    
+    
+
+
+
+Class: Aliphatic
+
+    SubClassOf: 
+        SideChainStructure
+    
+    DisjointWith: 
+        Aromatic
+    
+    
+
+
+
+Class: Negative
+
+    SubClassOf: 
+        Charge
+    
+    DisjointWith: 
+        Positive,
+        Neutral
+    
+    
+
+
+
+Class: NegativeChargedAminoAcid
+
+    EquivalentTo: 
+        AminoAcid
+        and (hasCharge some Negative)
+    
+    
+
+
+
+Class: Charge
+
+    EquivalentTo: 
+        Negative
+        or Neutral
+        or Positive
+    
+    SubClassOf: 
+        meta:ValuePartition,
+        owl:Thing
+    
+    
+
+
+
+Class: A
+
+    Annotations: 
+        rdfs:label "Alanine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Non-Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Tiny,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Non-Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Tiny
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        H,
+        R,
+        L,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        M,
+        C
+    
+    
+
+
+
+Class: TinyPolarAminoAcid
+
+    EquivalentTo: 
+        AminoAcid
+        and (hasPolarity some Polar)
+        and (hasSize some Tiny)
+    
+    
+
+
+
+Class: W
+
+    Annotations: 
+        rdfs:label "Tryptophan"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Non-Polar,
+        hasSideChainStructure some Aromatic,
+        hasSize some Large,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Non-Polar,
+        hasSideChainStructure only Aromatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        H,
+        L,
+        R,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        D,
+        C,
+        M
+    
+    
+
+
+
+Class: Large
+
+    SubClassOf: 
+        Size
+    
+    DisjointWith: 
+        Tiny,
+        Small
+    
+    
+
+
+
+Class: D
+
+    Annotations: 
+        rdfs:label "Aspartate"^^xsd:string,
+        owl:versionInfo "TODO: Aspartate?"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Negative,
+        hasHydrophobicity some Hydrophilic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Small,
+        hasCharge only Negative,
+        hasHydrophobicity only Hydrophilic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Small
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        R,
+        H,
+        L,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        C,
+        M
+    
+    
+
+
+
+Class: Polar
+
+    SubClassOf: 
+        Polarity
+    
+    DisjointWith: 
+        Non-Polar
+    
+    
+
+
+
+Class: P
+
+    Annotations: 
+        rdfs:label "Proline"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Non-Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Small,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Non-Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Small
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        N,
+        S,
+        Y,
+        H,
+        R,
+        L,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        M,
+        C
+    
+    
+
+
+
+Class: S
+
+    Annotations: 
+        rdfs:label "Serine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophilic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Tiny,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophilic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Tiny
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        N,
+        P,
+        Y,
+        L,
+        H,
+        R,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        M,
+        C
+    
+    
+
+
+
+Class: Y
+
+    Annotations: 
+        rdfs:label "Tyrosine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aromatic,
+        hasSize some Large,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aromatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        N,
+        P,
+        S,
+        H,
+        R,
+        L,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        M,
+        C
+    
+    
+
+
+
+Class: Non-Polar
+
+    SubClassOf: 
+        Polarity
+    
+    DisjointWith: 
+        Polar
+    
+    
+
+
+
+Class: Hydrophobicity
+
+    EquivalentTo: 
+        Hydrophilic
+        or Hydrophobic
+    
+    SubClassOf: 
+        meta:ValuePartition,
+        owl:Thing
+    
+    
+
+
+
+Class: SideChainStructure
+
+    EquivalentTo: 
+        Aliphatic
+        or Aromatic
+    
+    SubClassOf: 
+        meta:ValuePartition,
+        owl:Thing
+    
+    
+
+
+
+Class: owl:Thing
+
+    
+
+
+
+Class: SpecificAminoAcid
+
+    SubClassOf: 
+        AminoAcid
+    
+    
+
+
+
+Class: AliphaticAminoAcid
+
+    EquivalentTo: 
+        AminoAcid
+        and (hasSideChainStructure some Aliphatic)
+    
+    
+
+
+
+Class: R
+
+    Annotations: 
+        rdfs:label "Arginine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Positive,
+        hasHydrophobicity some Hydrophilic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Large,
+        hasCharge only Positive,
+        hasHydrophobicity only Hydrophilic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        H,
+        L,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        C,
+        M
+    
+    
+
+
+
+Class: PositiveChargedAminoAcid
+
+    EquivalentTo: 
+        AminoAcid
+        and (hasCharge some Positive)
+    
+    
+
+
+
+Class: Hydrophilic
+
+    SubClassOf: 
+        Hydrophobicity
+    
+    DisjointWith: 
+        Hydrophobic
+    
+    
+
+
+
+Class: Q
+
+    Annotations: 
+        rdfs:label "Glutamine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophilic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Large,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophilic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        L,
+        R,
+        H,
+        A,
+        T,
+        K,
+        E,
+        W,
+        D,
+        C,
+        M
+    
+    
+
+
+
+Class: T
+
+    Annotations: 
+        rdfs:label "Threonine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophilic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Tiny,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophilic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Tiny
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        N,
+        P,
+        S,
+        Y,
+        L,
+        R,
+        H,
+        A,
+        Q,
+        K,
+        E,
+        W,
+        D,
+        M,
+        C
+    
+    
+
+
+
+Class: meta:ValuePartition
+
+    
+
+
+
+Class: K
+
+    Annotations: 
+        rdfs:label "Lysine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Positive,
+        hasHydrophobicity some Hydrophilic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Large,
+        hasCharge only Positive,
+        hasHydrophobicity only Hydrophilic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        R,
+        L,
+        H,
+        A,
+        Q,
+        T,
+        E,
+        W,
+        D,
+        M,
+        C
+    
+    
+
+
+
+Class: Size
+
+    EquivalentTo: 
+        Large
+        or Small
+        or Tiny
+    
+    SubClassOf: 
+        meta:ValuePartition,
+        owl:Thing
+    
+    
+
+
+
+Class: Aromatic
+
+    SubClassOf: 
+        SideChainStructure
+    
+    DisjointWith: 
+        Aliphatic
+    
+    
+
+
+
+Class: E
+
+    Annotations: 
+        rdfs:label "Glutamate"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Negative,
+        hasHydrophobicity some Hydrophilic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Small,
+        hasCharge only Negative,
+        hasHydrophobicity only Hydrophilic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Small
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        L,
+        H,
+        R,
+        A,
+        Q,
+        T,
+        K,
+        W,
+        D,
+        C,
+        M
+    
+    
+
+
+
+Class: Polarity
+
+    EquivalentTo: 
+        Non-Polar
+        or Polar
+    
+    SubClassOf: 
+        meta:ValuePartition,
+        owl:Thing
+    
+    
+
+
+
+Class: M
+
+    Annotations: 
+        rdfs:label "Methionine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Non-Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Large,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Non-Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Large
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        P,
+        N,
+        S,
+        Y,
+        H,
+        R,
+        L,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        C
+    
+    
+
+
+
+Class: C
+
+    Annotations: 
+        rdfs:label "Cysteine"^^xsd:string
+    
+    SubClassOf: 
+        SpecificAminoAcid,
+        hasCharge some Neutral,
+        hasHydrophobicity some Hydrophobic,
+        hasPolarity some Polar,
+        hasSideChainStructure some Aliphatic,
+        hasSize some Small,
+        hasCharge only Neutral,
+        hasHydrophobicity only Hydrophobic,
+        hasPolarity only Polar,
+        hasSideChainStructure only Aliphatic,
+        hasSize only Small
+    
+    DisjointWith: 
+        F,
+        V,
+        I,
+        G,
+        N,
+        P,
+        S,
+        Y,
+        R,
+        H,
+        L,
+        A,
+        Q,
+        T,
+        K,
+        E,
+        W,
+        D,
+        M
+    
+    
+
+
+

Added: labs/jbossrules/branches/DRLv6/src/test/resources/bhakti.manchester
===================================================================
--- labs/jbossrules/branches/DRLv6/src/test/resources/bhakti.manchester	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/test/resources/bhakti.manchester	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,656 @@
+Namespace:  <http://www.owl-ontologies.com/unnamed.owl#>
+Namespace: rdfs <http://www.w3.org/2000/01/rdf-schema#>
+Namespace: protege <http://protege.stanford.edu/plugins/owl/protege#>
+Namespace: owl2xml <http://www.w3.org/2006/12/owl2-xml#>
+Namespace: owl <http://www.w3.org/2002/07/owl#>
+Namespace: xsd <http://www.w3.org/2001/XMLSchema#>
+Namespace: rdf <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+Namespace: unnamed <http://www.owl-ontologies.com/unnamed.owl#>
+
+
+
+Ontology: <http://www.owl-ontologies.com/unnamed.owl>
+Import: <http://protege.stanford.edu/plugins/owl/protege>
+
+DataProperty: rdf__Sanskrit_name
+
+    Annotations: 
+        rdfs:label "rdf_:Sanskrit_name"
+    
+    Range: 
+        string
+    
+    
+
+
+
+DataProperty: rdf__rasa
+
+    Annotations: 
+        rdfs:label "rdf_:rasa"
+    
+    Range: 
+        string
+    
+    
+
+
+
+DataProperty: rdf__Reference
+
+    Annotations: 
+        rdfs:label "rdf_:Reference",
+        rdfs:comment "Vedic Scriptural reference"^^xsd:string
+    
+    Domain: 
+        Gaudiya_Bhakti
+    
+    Range: 
+        string
+    
+    
+
+
+
+DataProperty: rdf__Primary_rasa
+
+    Annotations: 
+        rdfs:label "rdf_:Primary_rasa"
+    
+    Domain: 
+        Bhavas
+        or Sentiments
+    
+    Range: 
+        string
+    
+    
+
+
+
+DataProperty: rdf__Secondary_rasa
+
+    Annotations: 
+        rdfs:label "rdf_:Secondary_rasa"
+    
+    Domain: 
+        Bhavas
+        or Sentiments
+    
+    Range: 
+        string
+    
+    
+
+
+
+Class: Mana
+
+    Annotations: 
+        rdfs:label "rdf_:Mana"
+    
+    SubClassOf: 
+        Pure_Love_of_Godhead
+    
+    
+
+
+
+Class: Endeavors
+
+    Annotations: 
+        rdfs:label "rdf_:Endeavors",
+        rdfs:comment "Sanskrit: cesta-rupa"^^xsd:string
+    
+    SubClassOf: 
+        Devotional_Activities
+    
+    
+
+
+
+Class: Neutrality
+
+    Annotations: 
+        rdfs:comment "Sanskrit: santa-rasa"^^xsd:string,
+        rdfs:label "rdf_:Neutrality"
+    
+    SubClassOf: 
+        Permanent_Sentiment
+    
+    
+
+
+
+Class: Devotional_Activities
+
+    Annotations: 
+        rdfs:comment "Sanskrit: Krsnanusilana
+Description: Cultivation of activities for Sri Krsna"^^xsd:string,
+        rdfs:label "rdf_:Devotional_Activities"
+    
+    SubClassOf: 
+        Gaudiya_Bhakti
+    
+    
+
+
+
+Class: Permanent_Sentiment
+
+    Annotations: 
+        rdfs:comment "Sanskrit: sthayi-bhava-rupa"^^xsd:string,
+        rdfs:label "rdf_:Permanent_sentiment"
+    
+    SubClassOf: 
+        Sentiments
+    
+    
+
+
+
+Class: Sneha
+
+    Annotations: 
+        rdfs:comment "Sanskrit:"^^xsd:string,
+        rdfs:label "rdf_:Sneha"
+    
+    SubClassOf: 
+        Pure_Love_of_Godhead
+    
+    
+
+
+
+Class: Attachment
+
+    Annotations: 
+        rdfs:label "rdf_:Attachment",
+        rdfs:comment "Sanskrit: rati"^^xsd:string
+    
+    SubClassOf: 
+        Spontaneous_Devotional_Service
+    
+    
+
+
+
+Class: Ecstatic_Love
+
+    Annotations: 
+        rdfs:comment "Sanskrit: bhava"^^xsd:string,
+        rdfs:label "rdf_:Ecstatic_Love"
+    
+    SubClassOf: 
+        Spontaneous_Devotional_Service
+    
+    
+
+
+
+Class: Regulative_Devotional_Service
+
+    Annotations: 
+        rdfs:label "rdf_:Regulative_Devotional_Service",
+        rdfs:comment "Sanskrit: vaidhi-bhakti"^^xsd:string
+    
+    SubClassOf: 
+        Stages_of_Devotion
+    
+    
+
+
+
+Class: Pure_Love_of_Godhead
+
+    Annotations: 
+        rdfs:comment "Sanskrit: prema-bhakti"^^xsd:string,
+        rdfs:label "rdf_:Pure_Love_of_Godhead"
+    
+    SubClassOf: 
+        Stages_of_Devotion
+    
+    
+
+
+
+Class: Sthayi-bhava
+
+    Annotations: 
+        rdfs:label "rdf_:Sthayi-bhava"
+    
+    SubClassOf: 
+        Bhavas
+    
+    
+
+
+
+Class: Training
+
+    Annotations: 
+        rdfs:comment "Sanskrit: sadhana-rupa
+Description: effort in the preliminary cultivation of devotional service, leading to bhava."^^xsd:string,
+        rdfs:label "rdf_:Training"
+    
+    SubClassOf: 
+        Endeavors
+    
+    
+
+
+
+Class: Raga
+
+    Annotations: 
+        rdfs:label "rdf_:Raga"
+    
+    SubClassOf: 
+        Pure_Love_of_Godhead
+    
+    
+
+
+
+Class: Taste
+
+    Annotations: 
+        rdfs:comment "Sanskrit: ruci"^^xsd:string,
+        rdfs:label "rdf_:Taste"
+    
+    SubClassOf: 
+        Spontaneous_Devotional_Service
+    
+    
+
+
+
+Class: Anger
+
+    Annotations: 
+        rdfs:label "rdf_:Anger"
+    
+    SubClassOf: 
+        Transitory_Emotions
+    
+    
+
+
+
+Class: Initiation
+
+    Annotations: 
+        rdfs:label "rdf_:Initiation",
+        rdfs:comment "Sanskrit: diksa"^^xsd:string
+    
+    SubClassOf: 
+        Regulative_Devotional_Service
+    
+    
+
+
+
+Class: Bhava
+
+    Annotations: 
+        rdfs:label "rdf_:Bhava"
+    
+    SubClassOf: 
+        Pure_Love_of_Godhead
+    
+    
+
+
+
+Class: Faith
+
+    Annotations: 
+        rdfs:comment "Sanskrit: sraddha"^^xsd:string,
+        rdfs:label "rdf_:Faith"
+    
+    SubClassOf: 
+        Regulative_Devotional_Service
+    
+    
+
+
+
+Class: Negative_Actions
+
+    Annotations: 
+        rdfs:label "rdf_:Negative_Actions",
+        rdfs:comment "Sanskrit: nivrtti"^^xsd:string
+    
+    SubClassOf: 
+        Training
+    
+    
+
+
+
+Class: Sentiments
+
+    Annotations: 
+        rdfs:comment "Sanskrit: bhava-rupa"^^xsd:string,
+        rdfs:label "rdf_:Sentiments"
+    
+    SubClassOf: 
+        Devotional_Activities
+    
+    
+
+
+
+Class: Pranaya
+
+    Annotations: 
+        rdfs:label "rdf_:Pranaya"
+    
+    SubClassOf: 
+        Pure_Love_of_Godhead
+    
+    
+
+
+
+Class: Compassion
+
+    Annotations: 
+        rdfs:label "rdf_:Compassion"
+    
+    SubClassOf: 
+        Transitory_Emotions
+    
+    
+
+
+
+Class: Parenthood
+
+    Annotations: 
+        rdfs:comment "Sanskrit: vatsalya-rasa"^^xsd:string,
+        rdfs:label "rdf_:Parenthood"
+    
+    SubClassOf: 
+        Permanent_Sentiment
+    
+    
+
+
+
+Class: Sancari-bhava
+
+    Annotations: 
+        rdfs:label "rdf_:Sancari-bhava"
+    
+    SubClassOf: 
+        Bhavas
+    
+    
+
+
+
+Class: Dread
+
+    Annotations: 
+        rdfs:label "rdf_:Dread"
+    
+    SubClassOf: 
+        Transitory_Emotions
+    
+    
+
+
+
+Class: Servitude
+
+    Annotations: 
+        rdfs:comment "Sanskrit: dasya-bhava"^^xsd:string,
+        rdfs:label "rdf_:Servitude"
+    
+    SubClassOf: 
+        Permanent_Sentiment
+    
+    
+
+
+
+Class: Service
+
+    Annotations: 
+        rdfs:comment "Sanskrit: bhajana-kriya"^^xsd:string,
+        rdfs:label "rdf_:Service"
+    
+    SubClassOf: 
+        Regulative_Devotional_Service
+    
+    
+
+
+
+Class: Friendship
+
+    Annotations: 
+        rdfs:comment "Sanskrit: sakhya-bhava"^^xsd:string,
+        rdfs:label "rdf_:Friendship"
+    
+    SubClassOf: 
+        Permanent_Sentiment
+    
+    
+
+
+
+Class: Steadiness
+
+    Annotations: 
+        rdfs:comment "Sanskrit: nistha"^^xsd:string,
+        rdfs:label "rdf_:Steadiness"
+    
+    SubClassOf: 
+        Spontaneous_Devotional_Service
+    
+    
+
+
+
+Class: Spontaneous_Devotional_Service
+
+    Annotations: 
+        rdfs:label "rdf_:Spontaneous_Devotional_Service",
+        rdfs:comment "Sanskrit: raganuga-bhakti"^^xsd:string
+    
+    SubClassOf: 
+        Stages_of_Devotion
+    
+    
+
+
+
+Class: Mahabhava
+
+    Annotations: 
+        rdfs:label "rdf_:Mahabhava"
+    
+    SubClassOf: 
+        Pure_Love_of_Godhead
+    
+    
+
+
+
+Class: Laughter
+
+    Annotations: 
+        rdfs:label "rdf_:Laughter"
+    
+    SubClassOf: 
+        Transitory_Emotions
+    
+    
+
+
+
+Class: Bhavas
+
+    Annotations: 
+        rdfs:comment "Sanskrit: karya-rupa
+Description: efforts manifesting as effects upon attainment of bhava."^^xsd:string,
+        rdfs:label "rdf_:Bhavas"
+    
+    SubClassOf: 
+        Endeavors
+    
+    
+
+
+
+Class: Chivalry
+
+    Annotations: 
+        rdfs:label "rdf_:Chivalry"
+    
+    SubClassOf: 
+        Transitory_Emotions
+    
+    
+
+
+
+Class: Purity
+
+    Annotations: 
+        rdfs:label "rdf_:Purity",
+        rdfs:comment "Sanskrit: anartha-nivrtti"^^xsd:string
+    
+    SubClassOf: 
+        Regulative_Devotional_Service
+    
+    
+
+
+
+Class: Stages_of_Devotion
+
+    Annotations: 
+        rdfs:label "rdf_:Stages_of_Devotion"
+    
+    SubClassOf: 
+        Gaudiya_Bhakti
+    
+    
+
+
+
+Class: Anuraga
+
+    Annotations: 
+        rdfs:label "rdf_:Anuraga"
+    
+    SubClassOf: 
+        Pure_Love_of_Godhead
+    
+    
+
+
+
+Class: Positive_Actions
+
+    Annotations: 
+        rdfs:comment "Sanskrit: pravritti"^^xsd:string,
+        rdfs:label "rdf_:Positive_Actions"
+    
+    SubClassOf: 
+        Training
+    
+    
+
+
+
+Class: Vyabhicari-bhava
+
+    Annotations: 
+        rdfs:label "rdf_:Vyabhicari-bhava"
+    
+    SubClassOf: 
+        Bhavas
+    
+    
+
+
+
+Class: Association
+
+    Annotations: 
+        rdfs:label "rdf_:Association",
+        rdfs:comment "Sanskrit: sadhu-sanga"^^xsd:string
+    
+    SubClassOf: 
+        Regulative_Devotional_Service
+    
+    
+
+
+
+Class: Ghastliness
+
+    Annotations: 
+        rdfs:label "rdf_:Ghastliness"
+    
+    SubClassOf: 
+        Transitory_Emotions
+    
+    
+
+
+
+Class: Conjugal_Love
+
+    Annotations: 
+        rdfs:label "rdf_:Conjugal_Love",
+        rdfs:comment "Sanskrit: madhurya-rasa"^^xsd:string
+    
+    SubClassOf: 
+        Permanent_Sentiment
+    
+    
+
+
+
+Class: Astonishment
+
+    Annotations: 
+        rdfs:label "rdf_:Astonishment"
+    
+    SubClassOf: 
+        Transitory_Emotions
+    
+    
+
+
+
+Class: Transitory_Emotions
+
+    Annotations: 
+        rdfs:label "rdf_:Transitory_Emotions",
+        rdfs:comment "Sanskrit: sancari-bhava-rupa
+Description: 33 internal emotions (sancari-bhavas)"^^xsd:string
+    
+    SubClassOf: 
+        Sentiments
+    
+    
+
+
+
+Class: Gaudiya_Bhakti
+
+    Annotations: 
+        rdfs:comment "The system of terminology in Gaudiya Vaisnavism describing devotional service. From works of Rupa Gosvami and Visvanath Cakravarti Thakur."^^xsd:string,
+        rdfs:label "rdf_:Bhakti_Gaudiya_"
+    
+    
+
+
+
+

Added: labs/jbossrules/branches/DRLv6/src/test/resources/omg_metamodel.manchester
===================================================================

Added: labs/jbossrules/branches/DRLv6/src/test/resources/organic_fun_group.manchester
===================================================================
--- labs/jbossrules/branches/DRLv6/src/test/resources/organic_fun_group.manchester	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/test/resources/organic_fun_group.manchester	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,442 @@
+Namespace: dc <http://purl.org/dc/elements/1.1/>
+Namespace:  <http://ontology.dumontierlab.com/organic-functional-group-complex>
+Namespace: rdfs <http://www.w3.org/2000/01/rdf-schema#>
+Namespace: owl2xml <http://www.w3.org/2006/12/owl2-xml#>
+Namespace: owl11 <http://www.w3.org/2006/12/owl11#>
+Namespace: owl11xml <http://www.w3.org/2006/12/owl11-xml#>
+Namespace: owl <http://www.w3.org/2002/07/owl#>
+Namespace: xsd <http://www.w3.org/2001/XMLSchema#>
+Namespace: rdf <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+Namespace: dl <http://ontology.dumontierlab.com/>
+
+
+
+Ontology: <http://ontology.dumontierlab.com/organic-functional-group-complex>
+Import: <http://ontology.dumontierlab.com/organic-functional-group-primitive>
+Import: <http://ontology.dumontierlab.com/atom-common>
+Import: <http://ontology.dumontierlab.com/annotation>
+
+Annotations: 
+    dc:publisher "Dumontier Lab"^^xsd:string,
+    dc:title "Organic Functional Group Ontology (complex)"^^xsd:string,
+    dc:creator "Michel Dumontier"^^xsd:string,
+    dc:language "en"^^xsd:string,
+    owl:versionInfo "2.0"^^xsd:string,
+    dc:date "2007-10-01"^^xsd:date,
+    dc:description "Complex class descriptions for the realization of organic functional groups."^^xsd:string,
+    dc:format "application/rdf+xml"^^xsd:string
+
+ObjectProperty: dl:hasDoubleBondWith
+
+    
+
+
+
+ObjectProperty: dl:hasAromaticBondWith
+
+    
+
+
+
+ObjectProperty: dl:hasBondWith
+
+    
+
+
+
+ObjectProperty: dl:hasSingleBondWith
+
+    
+
+
+
+Class: dl:MethylGroup
+
+    SubClassOf: 
+        dl:CarbonGroup
+    
+    
+
+
+
+Class: dl:SulfurAtom
+
+    
+
+
+
+Class: dl:AcylGroup
+
+    EquivalentTo: 
+        dl:CarbonAtom
+        and (dl:hasDoubleBondWith exactly 1 dl:OxygenAtom)
+        and (dl:hasSingleBondWith exactly 2 dl:OrganicGroup)
+    
+    
+
+
+
+Class: dl:HeteroAtom
+
+    
+
+
+
+Class: dl:PrimaryAmineGroup
+
+    EquivalentTo: 
+        dl:NitrogenAtom
+        and (dl:hasSingleBondWith some dl:CarbonAtom)
+        and (dl:hasSingleBondWith exactly 2 dl:HydrogenAtom)
+    
+    
+
+
+
+Class: dl:Alkyl
+
+    EquivalentTo: 
+        dl:CarbonAtom
+        and (dl:hasSingleBondWith some (dl:CarbonAtom
+        or dl:HydrogenAtom))
+    
+    
+
+
+
+Class: dl:OrganicGroup
+
+    
+
+
+
+Class: dl:AldehydeGroup
+
+    EquivalentTo: 
+        dl:CarbonAtom
+        and (dl:hasDoubleBondWith exactly 1 dl:OxygenAtom)
+        and (dl:hasSingleBondWith exactly 1 dl:HydrogenAtom)
+    
+    
+
+
+
+Class: dl:AmineGroup
+
+    EquivalentTo: 
+        dl:NitrogenAtom
+        and (dl:hasBondWith some dl:CarbonAtom)
+    
+    
+
+
+
+Class: dl:NitrogenAtom
+
+    
+
+
+
+Class: dl:ImineGroup
+
+    EquivalentTo: 
+        dl:OrganicGroup
+        and (dl:hasSingleBondWith some (dl:CarbonAtom
+        and (dl:hasDoubleBondWith some dl:NitrogenAtom)))
+    
+    
+
+
+
+Class: dl:SulfinicAcidGeneralGroup
+
+    EquivalentTo: 
+        dl:CarbonGroup
+        and (dl:hasSingleBondWith some (dl:SulfurAtom
+        and (dl:hasDoubleBondWith some dl:OxygenAtom)
+        and (dl:hasDoubleBondWith exactly 1 dl:OxygenAtom)))
+    
+    
+
+
+
+Class: dl:SulfonicAcidGroup
+
+    EquivalentTo: 
+        dl:CarbonGroup
+        and (dl:hasSingleBondWith some (dl:SulfurAtom
+        and (dl:hasDoubleBondWith some dl:OxygenAtom)
+        and (dl:hasSingleBondWith some (dl:OxygenAtom
+        and (dl:hasSingleBondWith some dl:HydrogenAtom)))
+        and (dl:hasDoubleBondWith min 2 dl:OxygenAtom)))
+    
+    
+
+
+
+Class: dl:AcylHalideGroup
+
+    EquivalentTo: 
+        dl:CarbonAtom
+        and (dl:hasDoubleBondWith exactly 1 dl:OxygenAtom)
+        and (dl:hasSingleBondWith exactly 1 dl:HalogenAtom)
+        and (dl:hasSingleBondWith exactly 1 dl:OrganicGroup)
+    
+    
+
+
+
+Class: dl:SulfonylHalideGroup
+
+    EquivalentTo: 
+        dl:CarbonGroup
+        and (dl:hasSingleBondWith some (dl:SulfurAtom
+        and (dl:hasDoubleBondWith some dl:OxygenAtom)
+        and (dl:hasSingleBondWith some dl:HalogenAtom)
+        and (dl:hasDoubleBondWith min 2 dl:OxygenAtom)))
+    
+    
+
+
+
+Class: dl:CarbonAtom
+
+    
+
+
+
+Class: dl:OrganicNitrogenGroup
+
+    EquivalentTo: 
+        dl:OrganicGroup
+        and (dl:hasBondWith some dl:NitrogenAtom)
+    
+    
+
+
+
+Class: dl:OxygenAtom
+
+    
+
+
+
+Class: dl:TertiaryAmineGroup
+
+    EquivalentTo: 
+        dl:NitrogenAtom
+        and (dl:hasSingleBondWith exactly 3 dl:CarbonAtom)
+    
+    
+
+
+
+Class: dl:AcylBromideGroup
+
+    EquivalentTo: 
+        dl:CarbonAtom
+        and (dl:hasDoubleBondWith exactly 1 dl:OxygenAtom)
+        and (dl:hasSingleBondWith exactly 1 dl:BromineAtom)
+        and (dl:hasSingleBondWith exactly 1 dl:OrganicGroup)
+    
+    
+
+
+
+Class: dl:Aryl
+
+    EquivalentTo: 
+        dl:CarbonAtom
+        and (dl:hasAromaticBondWith some dl:CarbonAtom)
+    
+    
+
+
+
+Class: dl:CarbonGroup
+
+    EquivalentTo: 
+        dl:Alkyl
+        or dl:Aryl
+    
+    
+
+
+
+Class: dl:PhosphorusAtom
+
+    
+
+
+
+Class: dl:CarboxylicAcidGroup
+
+    EquivalentTo: 
+        dl:OrganicGroup
+        and (dl:hasSingleBondWith some (dl:CarbonAtom
+        and (dl:hasDoubleBondWith some dl:OxygenAtom)
+        and (dl:hasSingleBondWith some (dl:OxygenAtom
+        and (dl:hasSingleBondWith some dl:HydrogenAtom)))))
+    
+    
+
+
+
+Class: dl:OrganicPhosphateGroup
+
+    EquivalentTo: 
+        dl:OrganicGroup
+        and (dl:hasBondWith some dl:PhosphorusAtom)
+    
+    SubClassOf: 
+        dl:OrganicGroup
+    
+    
+
+
+
+Class: dl:HydrogenAtom
+
+    
+
+
+
+Class: dl:SecondaryAmineGroup
+
+    SubClassOf: 
+        dl:CarbonGroup
+    
+    
+
+
+
+Class: dl:HalogenAtom
+
+    
+
+
+
+Class: dl:HydroxylGroup
+
+    EquivalentTo: 
+        dl:OxygenAtom
+        and (dl:hasBondWith some dl:HydrogenAtom)
+    
+    
+
+
+
+Class: dl:BromineAtom
+
+    
+
+
+
+Class: dl:SulfoxideGroup
+
+    EquivalentTo: 
+        dl:CarbonGroup
+        and (dl:hasSingleBondWith some (dl:SulfurAtom
+        and (dl:hasDoubleBondWith some dl:OxygenAtom)
+        and (dl:hasSingleBondWith some dl:CarbonGroup)
+        and (dl:hasSingleBondWith min 2 dl:CarbonGroup)
+        and (dl:hasDoubleBondWith exactly 1 dl:OxygenAtom)))
+    
+    
+
+
+
+Class: owl:Thing
+
+    
+
+
+
+Class: dl:EsterGroup
+
+    EquivalentTo: 
+        (dl:CarbonAtom
+        and (dl:hasDoubleBondWith exactly 1 dl:OxygenAtom))
+        and (dl:hasSingleBondWith exactly 1 owl:Thing)
+    
+    
+
+
+
+Class: dl:EtherGroup
+
+    EquivalentTo: 
+        dl:OxygenAtom
+        and (dl:hasSingleBondWith exactly 2 dl:Alkyl)
+    
+    
+
+
+
+Class: dl:OrganicSulfurGroup
+
+    EquivalentTo: 
+        dl:OrganicGroup
+        and (dl:hasBondWith some dl:SulfurAtom)
+    
+    
+
+
+
+Class: dl:SulfonicAcidDerivativeGroup
+
+    EquivalentTo: 
+        dl:CarbonGroup
+        and (dl:hasSingleBondWith some ((dl:SulfurAtom
+        and (dl:hasDoubleBondWith min 2 dl:OxygenAtom))
+        and (dl:hasDoubleBondWith some dl:OxygenAtom)
+        and (dl:hasSingleBondWith some dl:HeteroAtom)))
+    
+    
+
+
+
+Class: dl:ThiolGroup
+
+    EquivalentTo: 
+        dl:CarbonGroup
+        and (dl:hasSingleBondWith some (dl:SulfurAtom
+        and (dl:hasSingleBondWith some dl:HydrogenAtom)))
+    
+    
+
+
+
+Class: dl:AmideGroup
+
+    EquivalentTo: 
+        dl:CarbonAtom
+        and (dl:hasDoubleBondWith some dl:OxygenAtom)
+        and (dl:hasSingleBondWith some dl:NitrogenAtom)
+    
+    
+
+
+
+Class: dl:KetoneGroup
+
+    EquivalentTo: 
+        (dl:CarbonAtom
+        and (dl:hasSingleBondWith exactly 2 dl:Alkyl))
+        and (dl:hasDoubleBondWith exactly 1 dl:OxygenAtom)
+    
+    
+
+
+
+Class: dl:CarbonylGroup
+
+    EquivalentTo: 
+        dl:CarbonAtom
+        and (dl:hasDoubleBondWith exactly 1 dl:OxygenAtom)
+    
+    
+
+
+
+

Added: labs/jbossrules/branches/DRLv6/src/test/resources/pizza.manchester
===================================================================
--- labs/jbossrules/branches/DRLv6/src/test/resources/pizza.manchester	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/test/resources/pizza.manchester	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,2696 @@
+Namespace:  <http://www.co-ode.org/ontologies/pizza/pizza.owl#>
+Namespace: rdfs <http://www.w3.org/2000/01/rdf-schema#>
+Namespace: owl2xml <http://www.w3.org/2006/12/owl2-xml#>
+Namespace: owl11 <http://www.w3.org/2006/12/owl11#>
+Namespace: owl11xml <http://www.w3.org/2006/12/owl11-xml#>
+Namespace: pizza <http://www.co-ode.org/ontologies/pizza/pizza.owl#>
+Namespace: owl <http://www.w3.org/2002/07/owl#>
+Namespace: xsd <http://www.w3.org/2001/XMLSchema#>
+Namespace: rdf <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+
+
+Ontology: <http://www.co-ode.org/ontologies/pizza/pizza.owl>
+
+Annotations: 
+    owl:versionInfo "version 1.5"^^xsd:string,
+    rdfs:comment "An example ontology that contains all constructs required for the various versions of the Pizza Tutorial run by Manchester University (see http://www.co-ode.org/resources/tutorials/)"@en,
+    owl:versionInfo "v.1.5. Removed protege.owl import and references. Made ontology URI date-independent"@en,
+    owl:versionInfo "v.1.4. Added Food class (used in domain/range of hasIngredient), Added several hasCountryOfOrigin restrictions on pizzas, Made hasTopping invers functional"@en
+
+ObjectProperty: isBaseOf
+
+    Characteristics: 
+        Functional,
+        InverseFunctional
+    
+    Domain: 
+        PizzaBase
+    
+    Range: 
+        Pizza
+    
+    InverseOf: 
+        hasBase
+    
+    SubPropertyOf: 
+        isIngredientOf
+    
+    
+
+
+
+ObjectProperty: hasBase
+
+    Characteristics: 
+        Functional,
+        InverseFunctional
+    
+    Domain: 
+        Pizza
+    
+    Range: 
+        PizzaBase
+    
+    InverseOf: 
+        isBaseOf
+    
+    SubPropertyOf: 
+        hasIngredient
+    
+    
+
+
+
+ObjectProperty: hasSpiciness
+
+    Annotations: 
+        rdfs:comment "A property created to be used with the ValuePartition - Spiciness."@en
+    
+    Characteristics: 
+        Functional
+    
+    Range: 
+        Spiciness
+    
+    
+
+
+
+ObjectProperty: hasCountryOfOrigin
+
+    
+
+
+
+ObjectProperty: isToppingOf
+
+    Annotations: 
+        rdfs:comment "Any given instance of topping should only be added to a single pizza (no cheap half-measures on our pizzas)"@en
+    
+    Characteristics: 
+        Functional
+    
+    Domain: 
+        PizzaTopping
+    
+    Range: 
+        Pizza
+    
+    InverseOf: 
+        hasTopping
+    
+    SubPropertyOf: 
+        isIngredientOf
+    
+    
+
+
+
+ObjectProperty: hasIngredient
+
+    Annotations: 
+        rdfs:comment "NB Transitive - the ingredients of ingredients are ingredients of the whole"@en
+    
+    Characteristics: 
+        Transitive
+    
+    Domain: 
+        Food
+    
+    Range: 
+        Food
+    
+    InverseOf: 
+        isIngredientOf
+    
+    
+
+
+
+ObjectProperty: hasTopping
+
+    Annotations: 
+        rdfs:comment "Note that hasTopping is inverse functional because isToppingOf is functional"@en
+    
+    Characteristics: 
+        InverseFunctional
+    
+    Domain: 
+        Pizza
+    
+    Range: 
+        PizzaTopping
+    
+    InverseOf: 
+        isToppingOf
+    
+    SubPropertyOf: 
+        hasIngredient
+    
+    
+
+
+
+ObjectProperty: isIngredientOf
+
+    Annotations: 
+        rdfs:comment "The inverse property tree to hasIngredient - all subproperties and attributes of the properties should reflect those under hasIngredient."@en
+    
+    Characteristics: 
+        Transitive
+    
+    Domain: 
+        Food
+    
+    Range: 
+        Food
+    
+    InverseOf: 
+        hasIngredient
+    
+    
+
+
+
+Class: UnclosedPizza
+
+    Annotations: 
+        rdfs:label "PizzaAberta"@pt,
+        rdfs:comment "An unclosed Pizza cannot be inferred to be either a VegetarianPizza or a NonVegetarianPizza, because it might have other toppings."^^xsd:string
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some MozzarellaTopping
+    
+    DisjointWith: 
+        FourSeasons,
+        Caprina,
+        American,
+        Capricciosa,
+        Giardiniera,
+        Cajun,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        Napoletana,
+        QuattroFormaggi,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: GarlicTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeAlho"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Medium
+    
+    DisjointWith: 
+        AsparagusTopping,
+        MushroomTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        ArtichokeTopping,
+        LeekTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: FishTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDePeixe"@pt
+    
+    SubClassOf: 
+        PizzaTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        HerbSpiceTopping,
+        CheeseTopping,
+        NutTopping,
+        SauceTopping,
+        FruitTopping,
+        MeatTopping,
+        VegetableTopping
+    
+    
+
+
+
+Class: ValuePartition
+
+    Annotations: 
+        rdfs:label "ValorDaParticao"@pt,
+        rdfs:comment "A ValuePartition is a pattern that describes a restricted set of classes from which a property can be associated. The parent class is used in restrictions, and the covering axiom means that only members of the subclasses may be used as values. The possible subclasses cannot be extended without updating the ValuePartition class."^^xsd:string
+    
+    DisjointWith: 
+        DomainConcept
+    
+    
+
+
+
+Class: CajunSpiceTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeCajun"@pt
+    
+    SubClassOf: 
+        HerbSpiceTopping,
+        hasSpiciness some Hot
+    
+    DisjointWith: 
+        RosemaryTopping
+    
+    
+
+
+
+Class: MozzarellaTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeMozzarella"@pt
+    
+    SubClassOf: 
+        CheeseTopping,
+        hasSpiciness some Mild,
+        hasCountryOfOrigin value Italy
+    
+    DisjointWith: 
+        FourCheesesTopping,
+        GorgonzolaTopping,
+        ParmesanTopping,
+        GoatsCheeseTopping
+    
+    
+
+
+
+Class: PizzaBase
+
+    Annotations: 
+        rdfs:label "BaseDaPizza"@pt
+    
+    SubClassOf: 
+        Food
+    
+    DisjointWith: 
+        IceCream,
+        Pizza,
+        PizzaTopping
+    
+    
+
+
+
+Class: NutTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeCastanha"@pt
+    
+    SubClassOf: 
+        PizzaTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        HerbSpiceTopping,
+        CheeseTopping,
+        FishTopping,
+        FruitTopping,
+        SauceTopping,
+        MeatTopping,
+        VegetableTopping
+    
+    
+
+
+
+Class: PrinceCarlo
+
+    Annotations: 
+        rdfs:label "CoberturaPrinceCarlo"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some LeekTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some ParmesanTopping,
+        hasTopping some RosemaryTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (LeekTopping
+        or MozzarellaTopping
+        or ParmesanTopping
+        or RosemaryTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Caprina,
+        Capricciosa,
+        Giardiniera,
+        Cajun,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        Margherita,
+        Napoletana,
+        QuattroFormaggi,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: TobascoPepperSauce
+
+    Annotations: 
+        rdfs:label "MolhoTobascoPepper"@pt
+    
+    SubClassOf: 
+        SauceTopping,
+        hasSpiciness some Hot
+    
+    
+
+
+
+Class: VegetarianPizzaEquivalent2
+
+    Annotations: 
+        rdfs:label "PizzaVegetarianaEquivalente2"@pt,
+        rdfs:comment "An alternative to VegetarianPizzaEquiv1 that does not require a definition of VegetarianTopping. Perhaps more difficult to maintain. Not equivalent to VegetarianPizza"@en
+    
+    EquivalentTo: 
+        Pizza
+        and (hasTopping only (CheeseTopping
+        or FruitTopping
+        or HerbSpiceTopping
+        or NutTopping
+        or SauceTopping
+        or VegetableTopping))
+    
+    
+
+
+
+Class: GreenPepperTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDePimentaoVerde"@pt
+    
+    SubClassOf: 
+        PepperTopping
+    
+    DisjointWith: 
+        SweetPepperTopping,
+        JalapenoPepperTopping,
+        PeperonataTopping
+    
+    
+
+
+
+Class: HotSpicedBeefTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeBifePicante"@pt
+    
+    SubClassOf: 
+        MeatTopping,
+        hasSpiciness some Hot
+    
+    DisjointWith: 
+        PeperoniSausageTopping,
+        HamTopping,
+        ChickenTopping
+    
+    
+
+
+
+Class: ParmesanTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeParmesao"@pt
+    
+    SubClassOf: 
+        CheeseTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        FourCheesesTopping,
+        MozzarellaTopping,
+        GorgonzolaTopping,
+        GoatsCheeseTopping
+    
+    
+
+
+
+Class: PineKernels
+
+    Annotations: 
+        rdfs:label "CoberturaPineKernels"@pt
+    
+    SubClassOf: 
+        NutTopping
+    
+    
+
+
+
+Class: IceCream
+
+    Annotations: 
+        rdfs:label "Sorvete"@pt,
+        rdfs:comment "A class to demonstrate mistakes made with setting a property domain. The property hasTopping has a domain of Pizza. This means that the reasoner can infer that all individuals using the hasTopping property must be of type Pizza. Because of the restriction on this class, all members of IceCream must use the hasTopping property, and therefore must also be members of Pizza. However, Pizza and IceCream are disjoint, so this causes an inconsistency. If they were not disjoint, IceCream would be inferred to be a subclass of Pizza."@en
+    
+    SubClassOf: 
+        Food,
+        hasTopping some FruitTopping
+    
+    DisjointWith: 
+        PizzaBase,
+        Pizza,
+        PizzaTopping
+    
+    
+
+
+
+Class: GoatsCheeseTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeQueijoDeCabra"@pt
+    
+    SubClassOf: 
+        CheeseTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        FourCheesesTopping,
+        MozzarellaTopping,
+        GorgonzolaTopping,
+        ParmesanTopping
+    
+    
+
+
+
+Class: MixedSeafoodTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeFrutosDoMarMistos"@pt
+    
+    SubClassOf: 
+        FishTopping
+    
+    DisjointWith: 
+        PrawnsTopping,
+        AnchoviesTopping
+    
+    
+
+
+
+Class: SpinachTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeEspinafre"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        AsparagusTopping,
+        MushroomTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        CaperTopping,
+        TomatoTopping,
+        ArtichokeTopping,
+        LeekTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: SpicyPizzaEquivalent
+
+    Annotations: 
+        rdfs:label "PizzaTemperadaEquivalente"@pt,
+        rdfs:comment "An alternative definition for the SpicyPizza which does away with needing a definition of SpicyTopping and uses a slightly more complicated restriction: Pizzas that have at least one topping that is both a PizzaTopping and has spiciness hot are members of this class."@en
+    
+    EquivalentTo: 
+        Pizza
+        and (hasTopping some (PizzaTopping
+        and (hasSpiciness some Hot)))
+    
+    
+
+
+
+Class: Soho
+
+    Annotations: 
+        rdfs:label "Soho"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some GarlicTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some OliveTopping,
+        hasTopping some ParmesanTopping,
+        hasTopping some RocketTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (GarlicTopping
+        or MozzarellaTopping
+        or OliveTopping
+        or ParmesanTopping
+        or RocketTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Caprina,
+        Capricciosa,
+        Giardiniera,
+        Cajun,
+        Veneziana,
+        FruttiDiMare,
+        Parmense,
+        Mushroom,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        Napoletana,
+        QuattroFormaggi,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: FourCheesesTopping
+
+    Annotations: 
+        rdfs:label "CoberturaQuatroQueijos"@pt
+    
+    SubClassOf: 
+        CheeseTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        MozzarellaTopping,
+        GorgonzolaTopping,
+        ParmesanTopping,
+        GoatsCheeseTopping
+    
+    
+
+
+
+Class: CaperTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeCaper"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        MushroomTopping,
+        AsparagusTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        TomatoTopping,
+        ArtichokeTopping,
+        LeekTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: HamTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDePresunto"@pt
+    
+    SubClassOf: 
+        MeatTopping
+    
+    DisjointWith: 
+        HotSpicedBeefTopping,
+        PeperoniSausageTopping,
+        ChickenTopping
+    
+    
+
+
+
+Class: JalapenoPepperTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeJalapeno"@pt
+    
+    SubClassOf: 
+        PepperTopping,
+        hasSpiciness some Hot
+    
+    DisjointWith: 
+        GreenPepperTopping,
+        SweetPepperTopping,
+        PeperonataTopping
+    
+    
+
+
+
+Class: MushroomTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeCogumelo"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        AsparagusTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        LeekTopping,
+        ArtichokeTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: Caprina
+
+    Annotations: 
+        rdfs:label "Caprina"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some GoatsCheeseTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some SundriedTomatoTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (GoatsCheeseTopping
+        or MozzarellaTopping
+        or SundriedTomatoTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Capricciosa,
+        Giardiniera,
+        Cajun,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        Margherita,
+        PrinceCarlo,
+        QuattroFormaggi,
+        Napoletana,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: Siciliana
+
+    Annotations: 
+        rdfs:label "Siciliana"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some AnchoviesTopping,
+        hasTopping some ArtichokeTopping,
+        hasTopping some GarlicTopping,
+        hasTopping some HamTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some OliveTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (AnchoviesTopping
+        or ArtichokeTopping
+        or GarlicTopping
+        or HamTopping
+        or MozzarellaTopping
+        or OliveTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Caprina,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        Napoletana,
+        QuattroFormaggi,
+        PolloAdAstra,
+        AmericanHot,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: QuattroFormaggi
+
+    Annotations: 
+        rdfs:label "QuatroQueijos"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some FourCheesesTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (FourCheesesTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Giardiniera,
+        Cajun,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Parmense,
+        Mushroom,
+        Siciliana,
+        Fiorentina,
+        Margherita,
+        PrinceCarlo,
+        Napoletana,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: AmericanHot
+
+    Annotations: 
+        rdfs:label "AmericanaPicante"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some HotGreenPepperTopping,
+        hasTopping some JalapenoPepperTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some PeperoniSausageTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (HotGreenPepperTopping
+        or JalapenoPepperTopping
+        or MozzarellaTopping
+        or PeperoniSausageTopping
+        or TomatoTopping),
+        hasCountryOfOrigin value America
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        Margherita,
+        PrinceCarlo,
+        Napoletana,
+        QuattroFormaggi,
+        PolloAdAstra,
+        Rosa,
+        LaReine,
+        SloppyGiuseppe
+    
+    
+
+
+
+Class: OliveTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeAzeitona"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        MushroomTopping,
+        AsparagusTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        LeekTopping,
+        ArtichokeTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: PeperoniSausageTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeCalabreza"@pt
+    
+    SubClassOf: 
+        MeatTopping,
+        hasSpiciness some Medium
+    
+    DisjointWith: 
+        HotSpicedBeefTopping,
+        ChickenTopping,
+        HamTopping
+    
+    
+
+
+
+Class: SpicyPizza
+
+    Annotations: 
+        rdfs:label "PizzaTemperada"@pt,
+        rdfs:comment "Any pizza that has a spicy topping is a SpicyPizza"@en
+    
+    EquivalentTo: 
+        Pizza
+        and (hasTopping some SpicyTopping)
+    
+    
+
+
+
+Class: Pizza
+
+    Annotations: 
+        rdfs:label "Pizza"@en
+    
+    SubClassOf: 
+        Food,
+        hasBase some PizzaBase
+    
+    DisjointWith: 
+        PizzaBase,
+        IceCream,
+        PizzaTopping
+    
+    
+
+
+
+Class: Capricciosa
+
+    Annotations: 
+        rdfs:label "Capricciosa"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some AnchoviesTopping,
+        hasTopping some CaperTopping,
+        hasTopping some HamTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some OliveTopping,
+        hasTopping some PeperonataTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (AnchoviesTopping
+        or CaperTopping
+        or HamTopping
+        or MozzarellaTopping
+        or OliveTopping
+        or PeperonataTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Parmense,
+        Mushroom,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        QuattroFormaggi,
+        Napoletana,
+        PolloAdAstra,
+        AmericanHot,
+        Rosa,
+        LaReine,
+        SloppyGiuseppe
+    
+    
+
+
+
+Class: Cajun
+
+    Annotations: 
+        rdfs:label "Cajun"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some MozzarellaTopping,
+        hasTopping some OnionTopping,
+        hasTopping some PeperonataTopping,
+        hasTopping some PrawnsTopping,
+        hasTopping some TobascoPepperSauce,
+        hasTopping some TomatoTopping,
+        hasTopping only (MozzarellaTopping
+        or OnionTopping
+        or PeperonataTopping
+        or PrawnsTopping
+        or TobascoPepperSauce
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        Margherita,
+        PrinceCarlo,
+        Napoletana,
+        QuattroFormaggi,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        LaReine,
+        SloppyGiuseppe
+    
+    
+
+
+
+Class: Giardiniera
+
+    Annotations: 
+        rdfs:label "Giardiniera"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some LeekTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some MushroomTopping,
+        hasTopping some OliveTopping,
+        hasTopping some PeperonataTopping,
+        hasTopping some PetitPoisTopping,
+        hasTopping some SlicedTomatoTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (LeekTopping
+        or MozzarellaTopping
+        or MushroomTopping
+        or OliveTopping
+        or PeperonataTopping
+        or PetitPoisTopping
+        or SlicedTomatoTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Cajun,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        QuattroFormaggi,
+        Napoletana,
+        PolloAdAstra,
+        AmericanHot,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: PrawnsTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeCamarao"@pt
+    
+    SubClassOf: 
+        FishTopping
+    
+    DisjointWith: 
+        MixedSeafoodTopping,
+        AnchoviesTopping
+    
+    
+
+
+
+Class: SpicyTopping
+
+    Annotations: 
+        rdfs:label "CoberturaTemperada"@pt,
+        rdfs:comment "Any pizza topping that has spiciness Hot"@en
+    
+    EquivalentTo: 
+        PizzaTopping
+        and (hasSpiciness some Hot)
+    
+    
+
+
+
+Class: CheeseyVegetableTopping
+
+    Annotations: 
+        rdfs:comment "This class will be inconsistent. This is because we have given it 2 disjoint parents, which means it could never have any members (as nothing can simultaneously be a CheeseTopping and a VegetableTopping). NB Called ProbeInconsistentTopping in the ProtegeOWL Tutorial."@en,
+        rdfs:label "CoberturaDeQueijoComVegetais"@pt
+    
+    SubClassOf: 
+        CheeseTopping,
+        VegetableTopping
+    
+    
+
+
+
+Class: ArtichokeTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeArtichoke"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        AsparagusTopping,
+        MushroomTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        LeekTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: NamedPizza
+
+    Annotations: 
+        rdfs:comment "A pizza that can be found on a pizza menu"@en,
+        rdfs:label "PizzaComUmNome"@pt
+    
+    SubClassOf: 
+        Pizza
+    
+    
+
+
+
+Class: CheeseyPizza
+
+    Annotations: 
+        rdfs:label "PizzaComQueijo"@pt,
+        rdfs:comment "Any pizza that has at least 1 cheese topping."@en
+    
+    EquivalentTo: 
+        Pizza
+        and (hasTopping some CheeseTopping)
+    
+    
+
+
+
+Class: PetitPoisTopping
+
+    Annotations: 
+        rdfs:label "CoberturaPetitPois"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        AsparagusTopping,
+        MushroomTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        LeekTopping,
+        ArtichokeTopping,
+        OliveTopping,
+        PepperTopping
+    
+    
+
+
+
+Class: RealItalianPizza
+
+    Annotations: 
+        rdfs:label "PizzaItalianaReal"@pt,
+        rdfs:comment "This defined class has conditions that are part of the definition: ie any Pizza that has the country of origin, Italy is a RealItalianPizza. It also has conditions that merely describe the members - that all RealItalianPizzas must only have ThinAndCrispy bases. In essence, all pizzas from Italy must have ThinAndCrispy bases."@en
+    
+    EquivalentTo: 
+        Pizza
+        and (hasCountryOfOrigin value Italy)
+    
+    SubClassOf: 
+        hasBase only ThinAndCrispyBase
+    
+    
+
+
+
+Class: AsparagusTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeAspargos"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        MushroomTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        ArtichokeTopping,
+        LeekTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: ThinAndCrispyPizza
+
+    EquivalentTo: 
+        Pizza
+        and (hasBase only ThinAndCrispyBase)
+    
+    
+
+
+
+Class: American
+
+    Annotations: 
+        rdfs:label "Americana"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some MozzarellaTopping,
+        hasTopping some PeperoniSausageTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (MozzarellaTopping
+        or PeperoniSausageTopping
+        or TomatoTopping),
+        hasCountryOfOrigin value America
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        Capricciosa,
+        Giardiniera,
+        Cajun,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Parmense,
+        Mushroom,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        QuattroFormaggi,
+        Napoletana,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: Mushroom
+
+    Annotations: 
+        rdfs:label "Cogumelo"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some MozzarellaTopping,
+        hasTopping some MushroomTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (MozzarellaTopping
+        or MushroomTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Caprina,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        Napoletana,
+        QuattroFormaggi,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        LaReine,
+        SloppyGiuseppe
+    
+    
+
+
+
+Class: RosemaryTopping
+
+    Annotations: 
+        rdfs:label "CoberturaRosemary"@pt
+    
+    SubClassOf: 
+        HerbSpiceTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        CajunSpiceTopping
+    
+    
+
+
+
+Class: Margherita
+
+    Annotations: 
+        rdfs:label "Margherita"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some MozzarellaTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (MozzarellaTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Napoletana,
+        QuattroFormaggi,
+        PolloAdAstra,
+        AmericanHot,
+        Rosa,
+        LaReine,
+        SloppyGiuseppe
+    
+    
+
+
+
+Class: VegetarianPizzaEquivalent1
+
+    Annotations: 
+        rdfs:label "PizzaVegetarianaEquivalente1"@pt,
+        rdfs:comment "Any pizza that only has vegetarian toppings or no toppings is a VegetarianPizzaEquiv1. Should be inferred to be equivalent to VegetarianPizzaEquiv2.  Not equivalent to VegetarianPizza because PizzaTopping is not covering"@en
+    
+    EquivalentTo: 
+        Pizza
+        and (hasTopping only VegetarianTopping)
+    
+    
+
+
+
+Class: PolloAdAstra
+
+    Annotations: 
+        rdfs:label "PolloAdAstra"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some CajunSpiceTopping,
+        hasTopping some ChickenTopping,
+        hasTopping some GarlicTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some RedOnionTopping,
+        hasTopping some SweetPepperTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (CajunSpiceTopping
+        or ChickenTopping
+        or GarlicTopping
+        or MozzarellaTopping
+        or RedOnionTopping
+        or SweetPepperTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Caprina,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        Margherita,
+        PrinceCarlo,
+        Napoletana,
+        QuattroFormaggi,
+        AmericanHot,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: HotGreenPepperTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDePimentaoVerdePicante"@pt
+    
+    SubClassOf: 
+        GreenPepperTopping,
+        hasSpiciness some Hot
+    
+    
+
+
+
+Class: ThinAndCrispyBase
+
+    Annotations: 
+        rdfs:label "BaseFinaEQuebradica"@pt
+    
+    SubClassOf: 
+        PizzaBase
+    
+    DisjointWith: 
+        DeepPanBase
+    
+    
+
+
+
+Class: PepperTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDePimentao"@pt
+    
+    SubClassOf: 
+        VegetableTopping
+    
+    DisjointWith: 
+        MushroomTopping,
+        AsparagusTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        ArtichokeTopping,
+        LeekTopping,
+        OliveTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: PeperonataTopping
+
+    Annotations: 
+        rdfs:label "CoberturaPeperonata"@pt
+    
+    SubClassOf: 
+        PepperTopping,
+        hasSpiciness some Medium
+    
+    DisjointWith: 
+        GreenPepperTopping,
+        SweetPepperTopping,
+        JalapenoPepperTopping
+    
+    
+
+
+
+Class: RocketTopping
+
+    Annotations: 
+        rdfs:label "CoberturaRocket"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Medium
+    
+    DisjointWith: 
+        MushroomTopping,
+        AsparagusTopping,
+        GarlicTopping,
+        OnionTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        ArtichokeTopping,
+        LeekTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: ChickenTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeFrango"@pt
+    
+    SubClassOf: 
+        MeatTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        HotSpicedBeefTopping,
+        PeperoniSausageTopping,
+        HamTopping
+    
+    
+
+
+
+Class: FruttiDiMare
+
+    Annotations: 
+        rdfs:label "FrutosDoMar"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some GarlicTopping,
+        hasTopping some MixedSeafoodTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (GarlicTopping
+        or MixedSeafoodTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Caprina,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        QuattroFormaggi,
+        Napoletana,
+        PolloAdAstra,
+        AmericanHot,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: VegetableTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeVegetais"@pt
+    
+    SubClassOf: 
+        PizzaTopping
+    
+    DisjointWith: 
+        HerbSpiceTopping,
+        CheeseTopping,
+        FishTopping,
+        NutTopping,
+        SauceTopping,
+        FruitTopping,
+        MeatTopping
+    
+    
+
+
+
+Class: AnchoviesTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeAnchovies"@pt
+    
+    SubClassOf: 
+        FishTopping
+    
+    DisjointWith: 
+        MixedSeafoodTopping,
+        PrawnsTopping
+    
+    
+
+
+
+Class: NonVegetarianPizza
+
+    Annotations: 
+        rdfs:comment "Any Pizza that is not a VegetarianPizza"@en,
+        rdfs:label "PizzaNaoVegetariana"@pt
+    
+    EquivalentTo: 
+        Pizza
+        and (not (VegetarianPizza))
+    
+    DisjointWith: 
+        VegetarianPizza
+    
+    
+
+
+
+Class: DomainConcept
+
+    DisjointWith: 
+        ValuePartition
+    
+    
+
+
+
+Class: LeekTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeLeek"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        MushroomTopping,
+        AsparagusTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        ArtichokeTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: VegetarianPizza
+
+    Annotations: 
+        rdfs:comment "Any pizza that does not have fish topping and does not have meat topping is a VegetarianPizza. Members of this class do not need to have any toppings at all."@en,
+        rdfs:label "PizzaVegetariana"@pt
+    
+    EquivalentTo: 
+        Pizza
+        and (not (hasTopping some FishTopping))
+        and (not (hasTopping some MeatTopping))
+    
+    DisjointWith: 
+        NonVegetarianPizza
+    
+    
+
+
+
+Class: SweetPepperTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDePimentaoDoce"@pt
+    
+    SubClassOf: 
+        PepperTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        GreenPepperTopping,
+        PeperonataTopping,
+        JalapenoPepperTopping
+    
+    
+
+
+
+Class: ParmaHamTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDePrezuntoParma"@pt
+    
+    SubClassOf: 
+        HamTopping,
+        hasSpiciness some Mild
+    
+    
+
+
+
+Class: Rosa
+
+    Annotations: 
+        rdfs:label "Rosa"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some GorgonzolaTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (GorgonzolaTopping
+        or MozzarellaTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        Margherita,
+        PrinceCarlo,
+        Napoletana,
+        QuattroFormaggi,
+        PolloAdAstra,
+        AmericanHot,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: MeatTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeCarne"@pt
+    
+    SubClassOf: 
+        PizzaTopping
+    
+    DisjointWith: 
+        HerbSpiceTopping,
+        CheeseTopping,
+        FishTopping,
+        NutTopping,
+        SauceTopping,
+        FruitTopping,
+        VegetableTopping
+    
+    
+
+
+
+Class: FourSeasons
+
+    Annotations: 
+        rdfs:label "QuatroQueijos"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some AnchoviesTopping,
+        hasTopping some CaperTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some MushroomTopping,
+        hasTopping some OliveTopping,
+        hasTopping some PeperoniSausageTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (AnchoviesTopping
+        or CaperTopping
+        or MozzarellaTopping
+        or MushroomTopping
+        or OliveTopping
+        or PeperoniSausageTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Giardiniera,
+        Cajun,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        Napoletana,
+        QuattroFormaggi,
+        PolloAdAstra,
+        AmericanHot,
+        Rosa,
+        SloppyGiuseppe,
+        LaReine
+    
+    
+
+
+
+Class: InterestingPizza
+
+    Annotations: 
+        rdfs:label "PizzaInteressante"@pt,
+        rdfs:comment "Any pizza that has at least 3 toppings. Note that this is a cardinality constraint on the hasTopping property and NOT a qualified cardinality constraint (QCR). A QCR would specify from which class the members in this relationship must be. eg has at least 3 toppings from PizzaTopping. This is currently not supported in OWL."@en
+    
+    EquivalentTo: 
+        Pizza
+        and (hasTopping min 3 owl:Thing)
+    
+    
+
+
+
+Class: Spiciness
+
+    Annotations: 
+        rdfs:comment "A ValuePartition that describes only values from Hot, Medium or Mild. NB Subclasses can themselves be divided up into further partitions."@en,
+        rdfs:label "Tempero"@pt
+    
+    EquivalentTo: 
+        Hot
+        or Medium
+        or Mild
+    
+    SubClassOf: 
+        ValuePartition
+    
+    
+
+
+
+Class: MeatyPizza
+
+    Annotations: 
+        rdfs:label "PizzaDeCarne"@pt,
+        rdfs:comment "Any pizza that has at least one meat topping"@en
+    
+    EquivalentTo: 
+        Pizza
+        and (hasTopping some MeatTopping)
+    
+    
+
+
+
+Class: HerbSpiceTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeErvas"@pt
+    
+    SubClassOf: 
+        PizzaTopping
+    
+    DisjointWith: 
+        CheeseTopping,
+        FishTopping,
+        NutTopping,
+        SauceTopping,
+        FruitTopping,
+        MeatTopping,
+        VegetableTopping
+    
+    
+
+
+
+Class: Parmense
+
+    Annotations: 
+        rdfs:label "Parmense"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some AsparagusTopping,
+        hasTopping some HamTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some ParmesanTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (AsparagusTopping
+        or HamTopping
+        or MozzarellaTopping
+        or ParmesanTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Caprina,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        QuattroFormaggi,
+        Napoletana,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        LaReine,
+        SloppyGiuseppe
+    
+    
+
+
+
+Class: SlicedTomatoTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeTomateFatiado"@pt
+    
+    SubClassOf: 
+        TomatoTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        SundriedTomatoTopping
+    
+    
+
+
+
+Class: Country
+
+    Annotations: 
+        rdfs:label "Pais"@pt,
+        rdfs:comment "A class that is equivalent to the set of individuals that are described in the enumeration - ie Countries can only be either America, England, France, Germany or Italy and nothing else. Note that these individuals have been asserted to be allDifferent from each other."@en
+    
+    EquivalentTo: 
+        DomainConcept
+        and ({America , England , France , Germany , Italy})
+    
+    
+
+
+
+Class: Fiorentina
+
+    Annotations: 
+        rdfs:label "Fiorentina"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some GarlicTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some OliveTopping,
+        hasTopping some ParmesanTopping,
+        hasTopping some SpinachTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (GarlicTopping
+        or MozzarellaTopping
+        or OliveTopping
+        or ParmesanTopping
+        or SpinachTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Caprina,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Parmense,
+        Mushroom,
+        Siciliana,
+        Margherita,
+        PrinceCarlo,
+        QuattroFormaggi,
+        Napoletana,
+        PolloAdAstra,
+        AmericanHot,
+        Rosa,
+        LaReine,
+        SloppyGiuseppe
+    
+    
+
+
+
+Class: TomatoTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeTomate"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        MushroomTopping,
+        AsparagusTopping,
+        GarlicTopping,
+        OnionTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        LeekTopping,
+        ArtichokeTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: SultanaTopping
+
+    Annotations: 
+        rdfs:label "CoberturaSultana"@pt
+    
+    SubClassOf: 
+        FruitTopping,
+        hasSpiciness some Medium
+    
+    
+
+
+
+Class: SauceTopping
+
+    Annotations: 
+        rdfs:label "CoberturaEmMolho"@pt
+    
+    SubClassOf: 
+        PizzaTopping
+    
+    DisjointWith: 
+        HerbSpiceTopping,
+        CheeseTopping,
+        FishTopping,
+        NutTopping,
+        FruitTopping,
+        MeatTopping,
+        VegetableTopping
+    
+    
+
+
+
+Class: Hot
+
+    Annotations: 
+        rdfs:label "Picante"@pt
+    
+    SubClassOf: 
+        Spiciness
+    
+    DisjointWith: 
+        Medium,
+        Mild
+    
+    
+
+
+
+Class: PizzaTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDaPizza"@pt
+    
+    SubClassOf: 
+        Food
+    
+    DisjointWith: 
+        PizzaBase,
+        Pizza,
+        IceCream
+    
+    
+
+
+
+Class: Food
+
+    SubClassOf: 
+        DomainConcept
+    
+    
+
+
+
+Class: SundriedTomatoTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeTomateRessecadoAoSol"@pt
+    
+    SubClassOf: 
+        TomatoTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        SlicedTomatoTopping
+    
+    
+
+
+
+Class: SloppyGiuseppe
+
+    Annotations: 
+        rdfs:label "SloppyGiuseppe"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some GreenPepperTopping,
+        hasTopping some HotSpicedBeefTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some OnionTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (GreenPepperTopping
+        or HotSpicedBeefTopping
+        or MozzarellaTopping
+        or OnionTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Parmense,
+        Mushroom,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        Napoletana,
+        QuattroFormaggi,
+        PolloAdAstra,
+        AmericanHot,
+        Rosa,
+        LaReine
+    
+    
+
+
+
+Class: GorgonzolaTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeGorgonzola"@pt
+    
+    SubClassOf: 
+        CheeseTopping,
+        hasSpiciness some Mild
+    
+    DisjointWith: 
+        FourCheesesTopping,
+        MozzarellaTopping,
+        ParmesanTopping,
+        GoatsCheeseTopping
+    
+    
+
+
+
+Class: CheeseTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeQueijo"@pt
+    
+    SubClassOf: 
+        PizzaTopping
+    
+    DisjointWith: 
+        HerbSpiceTopping,
+        FishTopping,
+        NutTopping,
+        SauceTopping,
+        FruitTopping,
+        MeatTopping,
+        VegetableTopping
+    
+    
+
+
+
+Class: OnionTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeCebola"@pt
+    
+    SubClassOf: 
+        VegetableTopping,
+        hasSpiciness some Medium
+    
+    DisjointWith: 
+        MushroomTopping,
+        AsparagusTopping,
+        GarlicTopping,
+        RocketTopping,
+        SpinachTopping,
+        CaperTopping,
+        TomatoTopping,
+        ArtichokeTopping,
+        LeekTopping,
+        OliveTopping,
+        PepperTopping,
+        PetitPoisTopping
+    
+    
+
+
+
+Class: Mild
+
+    Annotations: 
+        rdfs:label "NaoPicante"@pt
+    
+    SubClassOf: 
+        Spiciness
+    
+    DisjointWith: 
+        Medium,
+        Hot
+    
+    
+
+
+
+Class: Veneziana
+
+    Annotations: 
+        rdfs:label "Veneziana"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some CaperTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some OliveTopping,
+        hasTopping some OnionTopping,
+        hasTopping some PineKernels,
+        hasTopping some SultanaTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (CaperTopping
+        or MozzarellaTopping
+        or OliveTopping
+        or OnionTopping
+        or PineKernels
+        or SultanaTopping
+        or TomatoTopping),
+        hasCountryOfOrigin value Italy
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        PrinceCarlo,
+        Margherita,
+        Napoletana,
+        QuattroFormaggi,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        LaReine,
+        SloppyGiuseppe
+    
+    
+
+
+
+Class: owl:Thing
+
+    
+
+
+
+Class: VegetarianTopping
+
+    Annotations: 
+        rdfs:comment "An example of a covering axiom. VegetarianTopping is equivalent to the union of all toppings in the given axiom. VegetarianToppings can only be Cheese or Vegetable or....etc."@en,
+        rdfs:label "CoberturaVegetariana"@pt
+    
+    EquivalentTo: 
+        PizzaTopping
+        and (CheeseTopping
+        or FruitTopping
+        or HerbSpiceTopping
+        or NutTopping
+        or SauceTopping
+        or VegetableTopping)
+    
+    
+
+
+
+Class: Medium
+
+    Annotations: 
+        rdfs:label "Media"@pt
+    
+    SubClassOf: 
+        Spiciness
+    
+    DisjointWith: 
+        Mild,
+        Hot
+    
+    
+
+
+
+Class: DeepPanBase
+
+    Annotations: 
+        rdfs:label "BaseEspessa"@pt
+    
+    SubClassOf: 
+        PizzaBase
+    
+    DisjointWith: 
+        ThinAndCrispyBase
+    
+    
+
+
+
+Class: Napoletana
+
+    Annotations: 
+        rdfs:label "Napoletana"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some AnchoviesTopping,
+        hasTopping some CaperTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some OliveTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (AnchoviesTopping
+        or CaperTopping
+        or MozzarellaTopping
+        or OliveTopping
+        or TomatoTopping),
+        hasCountryOfOrigin value Italy
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        Caprina,
+        American,
+        Capricciosa,
+        Giardiniera,
+        Cajun,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        Margherita,
+        PrinceCarlo,
+        QuattroFormaggi,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        LaReine,
+        SloppyGiuseppe
+    
+    
+
+
+
+Class: FruitTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeFrutas"@pt
+    
+    SubClassOf: 
+        PizzaTopping
+    
+    DisjointWith: 
+        HerbSpiceTopping,
+        CheeseTopping,
+        FishTopping,
+        NutTopping,
+        SauceTopping,
+        MeatTopping,
+        VegetableTopping
+    
+    
+
+
+
+Class: RedOnionTopping
+
+    Annotations: 
+        rdfs:label "CoberturaDeCebolaVermelha"@pt
+    
+    SubClassOf: 
+        OnionTopping
+    
+    
+
+
+
+Class: LaReine
+
+    Annotations: 
+        rdfs:label "LaReine"@pt
+    
+    SubClassOf: 
+        NamedPizza,
+        hasTopping some HamTopping,
+        hasTopping some MozzarellaTopping,
+        hasTopping some MushroomTopping,
+        hasTopping some OliveTopping,
+        hasTopping some TomatoTopping,
+        hasTopping only (HamTopping
+        or MozzarellaTopping
+        or MushroomTopping
+        or OliveTopping
+        or TomatoTopping)
+    
+    DisjointWith: 
+        FourSeasons,
+        UnclosedPizza,
+        American,
+        Caprina,
+        Capricciosa,
+        Cajun,
+        Giardiniera,
+        Veneziana,
+        FruttiDiMare,
+        Soho,
+        Mushroom,
+        Parmense,
+        Siciliana,
+        Fiorentina,
+        Margherita,
+        PrinceCarlo,
+        Napoletana,
+        QuattroFormaggi,
+        AmericanHot,
+        PolloAdAstra,
+        Rosa,
+        SloppyGiuseppe
+    
+    
+
+
+
+Individual: England
+
+    Types: 
+        Country,
+        owl:Thing
+    
+    DifferentFrom: 
+        America,
+        France,
+        Germany,
+        Italy
+    
+    
+
+
+
+Individual: Italy
+
+    Types: 
+        Country,
+        owl:Thing
+    
+    DifferentFrom: 
+        America,
+        England,
+        France,
+        Germany
+    
+    
+
+
+
+Individual: Germany
+
+    Types: 
+        Country,
+        owl:Thing
+    
+    DifferentFrom: 
+        America,
+        England,
+        France,
+        Italy
+    
+    
+
+
+
+Individual: France
+
+    Types: 
+        Country,
+        owl:Thing
+    
+    DifferentFrom: 
+        America,
+        England,
+        Germany,
+        Italy
+    
+    
+
+
+
+Individual: America
+
+    Types: 
+        Country,
+        owl:Thing
+    
+    DifferentFrom: 
+        England,
+        France,
+        Germany,
+        Italy
+    

Added: labs/jbossrules/branches/DRLv6/src/test/resources/tourism.manchester
===================================================================
--- labs/jbossrules/branches/DRLv6/src/test/resources/tourism.manchester	                        (rev 0)
+++ labs/jbossrules/branches/DRLv6/src/test/resources/tourism.manchester	2010-11-01 02:16:44 UTC (rev 35808)
@@ -0,0 +1,20 @@
+
+
+Ontology: <http://www.owlontologies.com/tur.owl>
+
+    ObjectProperty: is_inhabits
+
+    Characteristics: 
+        Functional
+    
+    Domain: 
+        person
+    
+    Range: 
+        center_of_pollution
+        or political_region
+        or tourists_place
+    
+    
+
+



More information about the jboss-svn-commits mailing list