1   package eu.fbk.dkm.premon.vocab;
2   
3   import java.util.Map;
4   
5   import com.google.common.base.Preconditions;
6   import com.google.common.collect.Maps;
7   
8   import org.openrdf.model.Namespace;
9   import org.openrdf.model.URI;
10  import org.openrdf.model.impl.NamespaceImpl;
11  import org.openrdf.model.impl.ValueFactoryImpl;
12  
13  /**
14   * Vocabulary constants for the PreMOn Ontology - VerbNet module (PMOVN).
15   */
16  public final class PMOVN {
17  
18      private static Map<URI, Map<String, URI>> INDEX = Maps.newHashMap();
19  
20      /** Recommended prefix for the vocabulary namespace: "pmovn". */
21      public static final String PREFIX = "pmovn";
22  
23      /** Vocabulary namespace: "http://premon.fbk.eu/ontology/vn#. */
24      public static final String NAMESPACE = "http://premon.fbk.eu/ontology/vn#";
25  
26      /** Immutable {@link Namespace} constant for the vocabulary namespace. */
27      public static final Namespace NS = new NamespaceImpl(PREFIX, NAMESPACE);
28  
29      // Classes - Main
30  
31      /** Class pmovn:VerbClass. */
32      public static final URI VERB_CLASS = createURI("VerbClass");
33  
34      /** Class pmovn:SemanticRole. */
35      public static final URI SEMANTIC_ROLE = createURI("SemanticRole");
36  
37      /** Class pmovn:ThematicRole. */
38      public static final URI THEMATIC_ROLE_C = createURI("ThematicRole");
39  
40      /** Class pmovn:VerbNetFrame. */
41      public static final URI VERBNET_FRAME = createURI("VerbNetFrame");
42  
43      // Classes - Syntactic items
44  
45      /** Class pmovn:SynItem. */
46      public static final URI SYN_ITEM = createURI("SynItem");
47  
48      /** Class pmovn:AdjSynItem. */
49      public static final URI ADJ_SYN_ITEM = createURI("AdjSynItem");
50  
51      /** Class pmovn:AdvSynItem. */
52      public static final URI ADV_SYN_ITEM = createURI("AdvSynItem");
53  
54      /** Class pmovn:LexSynItem. */
55      public static final URI LEX_SYN_ITEM = createURI("LexSynItem");
56  
57      /** Class pmovn:PrepSynItem. */
58      public static final URI PREP_SYN_ITEM = createURI("PrepSynItem");
59  
60      /** Class pmovn:VerbSynItem. */
61      public static final URI VERB_SYN_ITEM = createURI("VerbSynItem");
62  
63      /** Class pmovn:NpSynItem. */
64      public static final URI NP_SYN_ITEM = createURI("NpSynItem");
65  
66      /** Class pmovn:AuxnpType. */
67      public static final URI AUXNP_TYPE = createURI("AuxnpType");
68  
69      // Classes - Predicates
70  
71      /** Class pmovn:Pred. */
72      public static final URI PRED = createURI("Pred");
73  
74      /** Class pmovn:PredType. */
75      public static final URI PRED_TYPE = createURI("PredType");
76  
77      /** Class pmovn:PredArg. */
78      public static final URI PRED_ARG = createURI("PredArg");
79  
80      /** Class pmovn:VerbSpecificPredArg. */
81      public static final URI VERB_SPECIFIC_PRED_ARG = createURI("VerbSpecificPredArg");
82  
83      /** Class pmovn:ThemRolePredArg. */
84      public static final URI THEM_ROLE_PRED_ARG = createURI("ThemRolePredArg");
85  
86      /** Class pmovn:ConstantPredArg. */
87      public static final URI CONSTANT_PRED_ARG = createURI("ConstantPredArg");
88  
89      /** Class pmovn:EventPredArg. */
90      public static final URI EVENT_PRED_ARG = createURI("EventPredArg");
91  
92      /** Class pmovn:EventPredArgType. */
93      public static final URI EVENT_PRED_ARG_TYPE = createURI("EventPredArgType");
94  
95      // Classes - Restrictions
96  
97      /** Class pmovn:Restriction. */
98      public static final URI RESTRICTION_C = createURI("Restriction");
99  
100     /** Class pmovn:AtomicRestriction. */
101     public static final URI ATOMIC_RESTRICTION = createURI("AtomicRestriction");
102 
103     /** Class pmovn:ExistAtomicRestriction. */
104     public static final URI EXIST_ATOMIC_RESTRICTION = createURI("ExistAtomicRestriction");
105 
106     /** Class pmovn:AbsentAtomicRestriction. */
107     public static final URI ABSENT_ATOMIC_RESTRICTION = createURI("AbsentAtomicRestriction");
108 
109     /** Class pmovn:CompoundRestriction. */
110     public static final URI COMPOUND_RESTRICTION = createURI("CompoundRestriction");
111 
112     /** Class pmovn:AndCompoundRestriction. */
113     public static final URI AND_COMPOUND_RESTRICTION = createURI("AndCompoundRestriction");
114 
115     /** Class pmovn:OrCompoundRestriction. */
116     public static final URI OR_COMPOUND_RESTRICTION = createURI("OrCompoundRestriction");
117 
118     /** Class pmovn:SyntacticRestriction. */
119     public static final URI SYNTACTIC_RESTRICTION = createURI("SyntacticRestriction");
120 
121     /** Class pmovn:SelectionalRestriction. */
122     public static final URI SELECTIONAL_RESTRICTION = createURI("SelectionalRestriction");
123 
124     /** Class pmovn:PrepositionSelectionalRestriction. */
125     public static final URI PREPOSITION_SELECTIONAL_RESTRICTION = createURI("PrepositionSelectionalRestriction");
126 
127     /** Class pmovn:RoleSelectionalRestriction. */
128     public static final URI ROLE_SELECTIONAL_RESTRICTION = createURI("RoleSelectionalRestriction");
129 
130     // Classes - Restriction properties
131 
132     /** Class pmovn:RestrictionProperty. */
133     public static final URI RESTRICTION_PROPERTY = createURI("RestrictionProperty");
134 
135     /** Class pmovn:SyntacticRestrictionProperty. */
136     public static final URI SYNTACTIC_RESTRICTION_PROPERTY = createURI("SyntacticRestrictionProperty");
137 
138     /** Class pmovn:SelectionalRestrictionProperty. */
139     public static final URI SELECTIONAL_RESTRICTION_PROPERTY = createURI("SelectionalRestrictionProperty");
140 
141     /** Class pmovn:PrepositionRestrictionProperty. */
142     public static final URI PREPOSITION_RESTRICTION_PROPERTY = createURI("PrepositionRestrictionProperty");
143 
144     /** Class pmovn:RoleRestrictionProperty. */
145     public static final URI ROLE_RESTRICTION_PROPERTY = createURI("RoleRestrictionProperty");
146 
147     // Object properties
148 
149     /** Object property pmovn:frame. */
150     public static final URI FRAME = createURI("frame");
151 
152     /** Object property pmovn:frameExample. */
153     public static final URI FRAME_EXAMPLE = createURI("frameExample");
154 
155     /** Object property pmovn:definesFrame. */
156     public static final URI DEFINES_FRAME = createURI("definesFrame");
157 
158     /** Object property pmovn:definesSemRole. */
159     public static final URI DEFINES_SEM_ROLE = createURI("definesSemRole");
160 
161     /** Object property pmovn:restriction. */
162     public static final URI RESTRICTION_P = createURI("restriction");
163 
164     /** Object property pmovn:subclass. */
165     public static final URI SUBCLASS_OF = createURI("subclassOf");
166 
167     /** Object property pmovn:thematicRole. */
168     public static final URI THEMATIC_ROLE_P = createURI("thematicRole");
169 
170     // Datatype properties
171 
172     /** Datatype property pmovn:frameDescNumber. */
173     public static final URI FRAME_DESC_NUMBER = createURI("frameDescNumber");
174 
175     /** Datatype property pmovn:framePrimary. */
176     public static final URI FRAME_PRIMARY = createURI("framePrimary");
177 
178     /** Datatype property pmovn:frameSecondary. */
179     public static final URI FRAME_SECONDARY = createURI("frameSecondary");
180 
181     /** Datatype property pmovn:frameSemanticsDescription. */
182     public static final URI FRAME_SEMANTICS_DESCRIPTION = createURI("frameSemanticsDescription");
183 
184     /** Datatype property pmovn:frameSyntaxDescription. */
185     public static final URI FRAME_SYNTAX_DESCRIPTION = createURI("frameSyntaxDescription");
186 
187     /** Datatype property pmovn:frameXtag. */
188     public static final URI FRAME_XTAG = createURI("frameXtag");
189 
190     /** Datatype property pmovn:negPred. */
191     public static final URI NEG_PRE = createURI("negPred");
192 
193     /** Datatype property pmovn:implicitPredArg. */
194     public static final URI IMPL_PRED_ARG = createURI("implPredArg");
195 
196     // Individuals - Thematic roles
197 
198     /** Individual pmovn:actor (a pmovn:ThematicRole). */
199     public static final URI ACTOR = createURI("actor", THEMATIC_ROLE_C, "Actor");
200 
201     /** Individual pmovn:agent (a pmovn:ThematicRole). */
202     public static final URI AGENT = createURI("agent", THEMATIC_ROLE_C, "Agent");
203 
204     /** Individual pmovn:asset (a pmovn:ThematicRole). */
205     public static final URI ASSET = createURI("asset", THEMATIC_ROLE_C, "Asset");
206 
207     /** Individual pmovn:attribute (a pmovn:ThematicRole). */
208     public static final URI ATTRIBUTE = createURI("attribute", THEMATIC_ROLE_C, "Attribute");
209 
210     /** Individual pmovn:beneficiary (a pmovn:ThematicRole). */
211     public static final URI BENEFICIARY = createURI("beneficiary", THEMATIC_ROLE_C, "Beneficiary");
212 
213     /** Individual pmovn:cause (a pmovn:ThematicRole). */
214     public static final URI CAUSE = createURI("cause", THEMATIC_ROLE_C, "Cause");
215 
216     /** Individual pmovn:coAgent (a pmovn:ThematicRole). */
217     public static final URI CO_AGENT = createURI("coAgent", THEMATIC_ROLE_C, "Co-Agent");
218 
219     /** Individual pmovn:coPatient (a pmovn:ThematicRole). */
220     public static final URI CO_PATIENT = createURI("coPatient", THEMATIC_ROLE_C, "Co-Patient");
221 
222     /** Individual pmovn:coTheme (a pmovn:ThematicRole). */
223     public static final URI CO_THEME = createURI("coTheme", THEMATIC_ROLE_C, "Co-Theme");
224 
225     /** Individual pmovn:destination (a pmovn:ThematicRole). */
226     public static final URI DESTINATION = createURI("destination", THEMATIC_ROLE_C, "Destination");
227 
228     /** Individual pmovn:duration (a pmovn:ThematicRole). */
229     public static final URI DURATION = createURI("duration", THEMATIC_ROLE_C, "Duration");
230 
231     /** Individual pmovn:experiencer (a pmovn:ThematicRole). */
232     public static final URI EXPERIENCER = createURI("experiencer", THEMATIC_ROLE_C, "Experiencer");
233 
234     /** Individual pmovn:extent (a pmovn:ThematicRole). */
235     public static final URI EXTENT = createURI("extent", THEMATIC_ROLE_C, "Extent");
236 
237     /** Individual pmovn:finalTime (a pmovn:ThematicRole). */
238     public static final URI FINAL_TIME = createURI("finalTime", THEMATIC_ROLE_C, "Final_Time");
239 
240     /** Individual pmovn:frequency (a pmovn:ThematicRole). */
241     public static final URI FREQUENCY = createURI("frequency", THEMATIC_ROLE_C, "Frequency");
242 
243     /** Individual pmovn:goal (a pmovn:ThematicRole). */
244     public static final URI GOAL = createURI("goal", THEMATIC_ROLE_C, "Goal");
245 
246     /** Individual pmovn:initialLocation (a pmovn:ThematicRole). */
247     public static final URI INITIAL_LOCATION = createURI("initialLocation", THEMATIC_ROLE_C,
248             "Initial_Location");
249 
250     /** Individual pmovn:initialTime (a pmovn:ThematicRole). */
251     public static final URI INITIAL_TIME = createURI("initialTime", THEMATIC_ROLE_C,
252             "Initial_Time");
253 
254     /** Individual pmovn:instrument (a pmovn:ThematicRole). */
255     public static final URI INSTRUMENT = createURI("instrument", THEMATIC_ROLE_C, "Instrument");
256 
257     /** Individual pmovn:location (a pmovn:ThematicRole). */
258     public static final URI LOCATION = createURI("location", THEMATIC_ROLE_C, "Location");
259 
260     /** Individual pmovn:material (a pmovn:ThematicRole). */
261     public static final URI MATERIAL = createURI("material", THEMATIC_ROLE_C, "Material");
262 
263     /** Individual pmovn:participant (a pmovn:ThematicRole). */
264     public static final URI PARTICIPANT = createURI("participant", THEMATIC_ROLE_C, "Participant");
265 
266     /** Individual pmovn:patient (a pmovn:ThematicRole). */
267     public static final URI PATIENT = createURI("patient", THEMATIC_ROLE_C, "Patient");
268 
269     /** Individual pmovn:pivot (a pmovn:ThematicRole). */
270     public static final URI PIVOT = createURI("pivot", THEMATIC_ROLE_C, "Pivot");
271 
272     /** Individual pmovn:place (a pmovn:ThematicRole). */
273     public static final URI PLACE = createURI("place", THEMATIC_ROLE_C, "Place");
274 
275     /** Individual pmovn:predicate (a pmovn:ThematicRole). */
276     public static final URI PREDICATE = createURI("predicate", THEMATIC_ROLE_C, "Predicate");
277 
278     /** Individual pmovn:product (a pmovn:ThematicRole). */
279     public static final URI PRODUCT = createURI("product", THEMATIC_ROLE_C, "Product");
280 
281     /** Individual pmovn:recipient (a pmovn:ThematicRole). */
282     public static final URI RECIPIENT = createURI("recipient", THEMATIC_ROLE_C, "Recipient");
283 
284     /** Individual pmovn:reflexive (a pmovn:ThematicRole). */
285     public static final URI REFLEXIVE = createURI("reflexive", THEMATIC_ROLE_C, "Reflexive");
286 
287     /** Individual pmovn:result (a pmovn:ThematicRole). */
288     public static final URI RESULT = createURI("result", THEMATIC_ROLE_C, "Result");
289 
290     /** Individual pmovn:source (a pmovn:ThematicRole). */
291     public static final URI SOURCE = createURI("source", THEMATIC_ROLE_C, "Source");
292 
293     /** Individual pmovn:stimulus (a pmovn:ThematicRole). */
294     public static final URI STIMULUS = createURI("stimulus", THEMATIC_ROLE_C, "Stimulus");
295 
296     /** Individual pmovn:theme (a pmovn:ThematicRole). */
297     public static final URI THEME = createURI("theme", THEMATIC_ROLE_C, "Theme");
298 
299     /** Individual pmovn:time (a pmovn:ThematicRole). */
300     public static final URI TIME = createURI("time", THEMATIC_ROLE_C, "Time");
301 
302     /** Individual pmovn:topic (a pmovn:ThematicRole). */
303     public static final URI TOPIC = createURI("topic", THEMATIC_ROLE_C, "Topic");
304 
305     /** Individual pmovn:trajectory (a pmovn:ThematicRole). */
306     public static final URI TRAJECTORY = createURI("trajectory", THEMATIC_ROLE_C, "Trajectory");
307 
308     /** Individual pmovn:undergoer (a pmovn:ThematicRole). */
309     public static final URI UNDERGOER = createURI("undergoer", THEMATIC_ROLE_C, "Undergoer");
310 
311     /** Individual pmovn:value (a pmovn:ThematicRole). */
312     public static final URI VALUE = createURI("value", THEMATIC_ROLE_C, "Value");
313 
314     // Individuals - Auxiliary NP types
315 
316     /** Individual pmovn:np_auxnpType (a pmovn:AuxnpType). */
317     public static final URI NP_AUXNP_TYPE = createURI("np_auxnpType", AUXNP_TYPE, "NP");
318 
319     /** Individual pmovn:oblique_auxnpType (a pmovn:AuxnpType). */
320     public static final URI OBLIQUE_AUXNP_TYPE = createURI("oblique_auxnpType", AUXNP_TYPE,
321             "Oblique");
322 
323     /** Individual pmovn:oblique1_auxnpType (a pmovn:AuxnpType). */
324     public static final URI OBLIQUE1_AUXNP_TYPE = createURI("oblique1_auxnpType", AUXNP_TYPE,
325             "Oblique1");
326 
327     /** Individual pmovn:oblique2_auxnpType (a pmovn:AuxnpType). */
328     public static final URI OBLIQUE2_AUXNP_TYPE = createURI("oblique2_auxnpType", AUXNP_TYPE,
329             "Oblique2");
330 
331     // Individuals - Event predicate argument types
332 
333     /** Individual pmovn:duringEventArg (a pmovn:EventPredArgType). */
334     public static final URI DURING_EVENT_ARG = createURI("duringEventArg", EVENT_PRED_ARG_TYPE,
335             "during");
336 
337     /** Individual pmovn:endEventArg (a pmovn:EventPredArgType). */
338     public static final URI END_EVENT_ARG = createURI("endEventArg", EVENT_PRED_ARG_TYPE, "end");
339 
340     /** Individual pmovn:resultEventArg (a pmovn:EventPredArgType). */
341     public static final URI RESULT_EVENT_ARG = createURI("resultEventArg", EVENT_PRED_ARG_TYPE,
342             "result");
343 
344     /** Individual pmovn:startEventArg (a pmovn:EventPredArgType). */
345     public static final URI START_EVENT_ARG = createURI("startEventArg", EVENT_PRED_ARG_TYPE,
346             "start");
347 
348     // Individuals - Preposition restriction properties
349 
350     /** Individual pmovn:dest_conf_prp (a pmovn:PrepositionRestrictionProperty). */
351     public static final URI DEST_CONF_PRP = createURI("dest_conf_prp",
352             PREPOSITION_RESTRICTION_PROPERTY, "dest_conf");
353 
354     /** Individual pmovn:dest_dir_prp (a pmovn:PrepositionRestrictionProperty). */
355     public static final URI DEST_DIR_PRP = createURI("dest_dir_prp",
356             PREPOSITION_RESTRICTION_PROPERTY, "dest_dir");
357 
358     /** Individual pmovn:dest_prp (a pmovn:PrepositionRestrictionProperty). */
359     public static final URI DEST_PRP = createURI("dest_prp", PREPOSITION_RESTRICTION_PROPERTY,
360             "dest");
361 
362     /** Individual pmovn:dir_prp (a pmovn:PrepositionRestrictionProperty). */
363     public static final URI DIR_PRP = createURI("dir_prp", PREPOSITION_RESTRICTION_PROPERTY, "dir");
364 
365     /** Individual pmovn:loc_prp (a pmovn:PrepositionRestrictionProperty). */
366     public static final URI LOC_PRP = createURI("loc_prp", PREPOSITION_RESTRICTION_PROPERTY, "loc");
367 
368     /** Individual pmovn:path_prp (a pmovn:PrepositionRestrictionProperty). */
369     public static final URI PATH_PRP = createURI("path_prp", PREPOSITION_RESTRICTION_PROPERTY,
370             "path");
371 
372     /** Individual pmovn:plural_prp (a pmovn:PrepositionRestrictionProperty). */
373     public static final URI PLURAL_PRP = createURI("plural_prp", PREPOSITION_RESTRICTION_PROPERTY,
374             "plural");
375 
376     /** Individual pmovn:spatial_prp (a pmovn:PrepositionRestrictionProperty). */
377     public static final URI SPATIAL_PRP = createURI("spatial_prp",
378             PREPOSITION_RESTRICTION_PROPERTY, "spatial");
379 
380     /** Individual pmovn:src_prp (a pmovn:PrepositionRestrictionProperty). */
381     public static final URI SRC_PRP = createURI("src_prp", PREPOSITION_RESTRICTION_PROPERTY, "src");
382 
383     // Individuals - Role restriction properties
384 
385     /** Individual pmovn:abstract_rrp (a pmovn:RoleRestrictionProperty). */
386     public static final URI ABSTRACT_RRP = createURI("abstract_rrp", ROLE_RESTRICTION_PROPERTY,
387             "abstract");
388 
389     /** Individual pmovn:animal_rrp (a pmovn:RoleRestrictionProperty). */
390     public static final URI ANIMAL_RRP = createURI("animal_rrp", ROLE_RESTRICTION_PROPERTY,
391             "animal");
392 
393     /** Individual pmovn:animate_rrp (a pmovn:RoleRestrictionProperty). */
394     public static final URI ANIMATE_RRP = createURI("animate_rrp", ROLE_RESTRICTION_PROPERTY,
395             "animate");
396 
397     /** Individual pmovn:artifact_rrp (a pmovn:RoleRestrictionProperty). */
398     public static final URI ARTIFACT_RRP = createURI("artifact_rrp", ROLE_RESTRICTION_PROPERTY,
399             "artifact");
400 
401     /** Individual pmovn:biotic_rrp (a pmovn:RoleRestrictionProperty). */
402     public static final URI BIOTIC_RRP = createURI("biotic_rrp", ROLE_RESTRICTION_PROPERTY,
403             "biotic");
404 
405     /** Individual pmovn:body_part_rrp (a pmovn:RoleRestrictionProperty). */
406     public static final URI BODY_PART_RRP = createURI("body_part_rrp", ROLE_RESTRICTION_PROPERTY,
407             "body_part");
408 
409     /** Individual pmovn:comestible_rrp (a pmovn:RoleRestrictionProperty). */
410     public static final URI COMESTIBLE_RRP = createURI("comestible_rrp",
411             ROLE_RESTRICTION_PROPERTY, "comestible");
412 
413     /** Individual pmovn:communication_rrp (a pmovn:RoleRestrictionProperty). */
414     public static final URI COMMUNICATION_RRP = createURI("communication_rrp",
415             ROLE_RESTRICTION_PROPERTY, "communication");
416 
417     /** Individual pmovn:concrete_rrp (a pmovn:RoleRestrictionProperty). */
418     public static final URI CONCRETE_RRP = createURI("concrete_rrp", ROLE_RESTRICTION_PROPERTY,
419             "concrete");
420 
421     /** Individual pmovn:currency_rrp (a pmovn:RoleRestrictionProperty). */
422     public static final URI CURRENCY_RRP = createURI("currency_rrp", ROLE_RESTRICTION_PROPERTY,
423             "currency");
424 
425     /** Individual pmovn:elongated_rrp (a pmovn:RoleRestrictionProperty). */
426     public static final URI ELONGATED_RRP = createURI("elongated_rrp", ROLE_RESTRICTION_PROPERTY,
427             "elongated");
428 
429     /** Individual pmovn:force_rrp (a pmovn:RoleRestrictionProperty). */
430     public static final URI FORCE_RRP = createURI("force_rrp", ROLE_RESTRICTION_PROPERTY, "force");
431 
432     /** Individual pmovn:garment_rrp (a pmovn:RoleRestrictionProperty). */
433     public static final URI GARMENT_RRP = createURI("garment_rrp", ROLE_RESTRICTION_PROPERTY,
434             "garment");
435 
436     /** Individual pmovn:human_rrp (a pmovn:RoleRestrictionProperty). */
437     public static final URI HUMAN_RRP = createURI("human_rrp", ROLE_RESTRICTION_PROPERTY, "human");
438 
439     /** Individual pmovn:idea_rrp (a pmovn:RoleRestrictionProperty). */
440     public static final URI IDEA_RRP = createURI("idea_rrp", ROLE_RESTRICTION_PROPERTY, "idea");
441 
442     /** Individual pmovn:int_control_rrp (a pmovn:RoleRestrictionProperty). */
443     public static final URI INT_CONTROL_RRP = createURI("int_control_rrp",
444             ROLE_RESTRICTION_PROPERTY, "int_control");
445 
446     /** Individual pmovn:location_rrp (a pmovn:RoleRestrictionProperty). */
447     public static final URI LOCATION_RRP = createURI("location_rrp", ROLE_RESTRICTION_PROPERTY,
448             "location");
449 
450     /** Individual pmovn:machine_rrp (a pmovn:RoleRestrictionProperty). */
451     public static final URI MACHINE_RRP = createURI("machine_rrp", ROLE_RESTRICTION_PROPERTY,
452             "machine");
453 
454     /** Individual pmovn:natural_rrp (a pmovn:RoleRestrictionProperty). */
455     public static final URI NATURAL_RRP = createURI("natural_rrp", ROLE_RESTRICTION_PROPERTY,
456             "natural");
457 
458     /** Individual pmovn:nonrigid_rrp (a pmovn:RoleRestrictionProperty). */
459     public static final URI NONRIGID_RRP = createURI("nonrigid_rrp", ROLE_RESTRICTION_PROPERTY,
460             "nonrigid");
461 
462     /** Individual pmovn:organization_rrp (a pmovn:RoleRestrictionProperty). */
463     public static final URI ORGANIZATION_RRP = createURI("organization_rrp",
464             ROLE_RESTRICTION_PROPERTY, "organization");
465 
466     /** Individual pmovn:phys_obj_rrp (a pmovn:RoleRestrictionProperty). */
467     public static final URI PHYS_OBJ_RRP = createURI("phys_obj_rrp", ROLE_RESTRICTION_PROPERTY,
468             "phys-obj");
469 
470     /** Individual pmovn:plant_rrp (a pmovn:RoleRestrictionProperty). */
471     public static final URI PLANT_RRP = createURI("plant_rrp", ROLE_RESTRICTION_PROPERTY, "plant");
472 
473     /** Individual pmovn:plural_rrp (a pmovn:RoleRestrictionProperty). */
474     public static final URI PLURAL_RRP = createURI("plural_rrp", ROLE_RESTRICTION_PROPERTY,
475             "plural");
476 
477     /** Individual pmovn:pointy_rrp (a pmovn:RoleRestrictionProperty). */
478     public static final URI POINTY_RRP = createURI("pointy_rrp", ROLE_RESTRICTION_PROPERTY,
479             "pointy");
480 
481     /** Individual pmovn:refl_rrp (a pmovn:RoleRestrictionProperty). */
482     public static final URI REFL_RRP = createURI("refl_rrp", ROLE_RESTRICTION_PROPERTY, "refl");
483 
484     /** Individual pmovn:region_rrp (a pmovn:RoleRestrictionProperty). */
485     public static final URI REGION_RRP = createURI("region_rrp", ROLE_RESTRICTION_PROPERTY,
486             "region");
487 
488     /** Individual pmovn:rigid_rrp (a pmovn:RoleRestrictionProperty). */
489     public static final URI RIGID_RRP = createURI("rigid_rrp", ROLE_RESTRICTION_PROPERTY, "rigid");
490 
491     /** Individual pmovn:scalar_rrp (a pmovn:RoleRestrictionProperty). */
492     public static final URI SCALAR_RRP = createURI("scalar_rrp", ROLE_RESTRICTION_PROPERTY,
493             "scalar");
494 
495     /** Individual pmovn:shape_rrp (a pmovn:RoleRestrictionProperty). */
496     public static final URI SHAPE_RRP = createURI("shape_rrp", ROLE_RESTRICTION_PROPERTY, "shape");
497 
498     /** Individual pmovn:solid_rrp (a pmovn:RoleRestrictionProperty). */
499     public static final URI SOLID_RRP = createURI("solid_rrp", ROLE_RESTRICTION_PROPERTY, "solid");
500 
501     /** Individual pmovn:sound_rrp (a pmovn:RoleRestrictionProperty). */
502     public static final URI SOUND_RRP = createURI("sound_rrp", ROLE_RESTRICTION_PROPERTY, "sound");
503 
504     /** Individual pmovn:state_rrp (a pmovn:RoleRestrictionProperty). */
505     public static final URI STATE_RRP = createURI("state_rrp", ROLE_RESTRICTION_PROPERTY, "state");
506 
507     /** Individual pmovn:substance_rrp (a pmovn:RoleRestrictionProperty). */
508     public static final URI SUSBSTANCE_RRP = createURI("substance_rrp", ROLE_RESTRICTION_PROPERTY,
509             "substance");
510 
511     /** Individual pmovn:time_rrp (a pmovn:RoleRestrictionProperty). */
512     public static final URI TIME_RRP = createURI("time_rrp", ROLE_RESTRICTION_PROPERTY, "time");
513 
514     /** Individual pmovn:tool_rrp (a pmovn:RoleRestrictionProperty). */
515     public static final URI TOOL_RRP = createURI("tool_rrp", ROLE_RESTRICTION_PROPERTY, "tool");
516 
517     /** Individual pmovn:vehicle_rrp (a pmovn:RoleRestrictionProperty). */
518     public static final URI VEHICLE_RRP = createURI("vehicle_rrp", ROLE_RESTRICTION_PROPERTY,
519             "vehicle");
520 
521     // Individuals - Syntactic restriction properties
522 
523     /** Individual pmovn:acc_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
524     public static final URI ACC_ING_SYRP = createURI("acc_ing_syrp",
525             SYNTACTIC_RESTRICTION_PROPERTY, "acc_ing");
526 
527     /** Individual pmovn:ac_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
528     public static final URI AC_ING_SYRP = createURI("ac_ing_syrp", SYNTACTIC_RESTRICTION_PROPERTY,
529             "ac_ing");
530 
531     /** Individual pmovn:ac_to_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
532     public static final URI AC_TO_INF_SYRP = createURI("ac_to_inf_syrp",
533             SYNTACTIC_RESTRICTION_PROPERTY, "ac_to_inf");
534 
535     /** Individual pmovn:adv_loc_syrp (a pmovn:SyntacticRestrictionProperty). */
536     public static final URI ADV_LOC_SYRP = createURI("adv_loc_syrp",
537             SYNTACTIC_RESTRICTION_PROPERTY, "adv_loc");
538 
539     /** Individual pmovn:be_sc_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
540     public static final URI BE_SC_ING_SYRP = createURI("be_sc_ing_syrp",
541             SYNTACTIC_RESTRICTION_PROPERTY, "be_sc_ing");
542 
543     /** Individual pmovn:body_part_syrp (a pmovn:SyntacticRestrictionProperty). */
544     public static final URI BODY_PART_SYRP = createURI("body_part_syrp",
545             SYNTACTIC_RESTRICTION_PROPERTY, "body_part");
546 
547     /** Individual pmovn:definite_syrp (a pmovn:SyntacticRestrictionProperty). */
548     public static final URI DEFINITE_SYRP = createURI("definite_syrp",
549             SYNTACTIC_RESTRICTION_PROPERTY, "definite");
550 
551     /** Individual pmovn:for_comp_syrp (a pmovn:SyntacticRestrictionProperty). */
552     public static final URI FOR_COMP_SYRP = createURI("for_comp_syrp",
553             SYNTACTIC_RESTRICTION_PROPERTY, "for_comp");
554 
555     /** Individual pmovn:genitive_syrp (a pmovn:SyntacticRestrictionProperty). */
556     public static final URI GENITIVE_SYRP = createURI("genitive_syrp",
557             SYNTACTIC_RESTRICTION_PROPERTY, "genitive");
558 
559     /** Individual pmovn:how_extract_syrp (a pmovn:SyntacticRestrictionProperty). */
560     public static final URI HOW_EXTRACT_SYRP = createURI("how_extract_syrp",
561             SYNTACTIC_RESTRICTION_PROPERTY, "how_extract");
562 
563     /** Individual pmovn:np_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
564     public static final URI NP_ING_SYRP = createURI("np_ing_syrp", SYNTACTIC_RESTRICTION_PROPERTY,
565             "np_ing");
566 
567     /** Individual pmovn:np_omit_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
568     public static final URI NP_OMIT_ING_SYRP = createURI("np_omit_ing_syrp",
569             SYNTACTIC_RESTRICTION_PROPERTY, "np_omit_ing");
570 
571     /** Individual pmovn:np_p_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
572     public static final URI NP_P_ING_SYRP = createURI("np_p_ing_syrp",
573             SYNTACTIC_RESTRICTION_PROPERTY, "np_p_ing");
574 
575     /** Individual pmovn:np_ppart_syrp (a pmovn:SyntacticRestrictionProperty). */
576     public static final URI NP_PPART_SYRP = createURI("np_ppart_syrp",
577             SYNTACTIC_RESTRICTION_PROPERTY, "np_ppart");
578 
579     /** Individual pmovn:np_tobe_syrp (a pmovn:SyntacticRestrictionProperty). */
580     public static final URI NP_TOBE_SYRP = createURI("np_tobe_syrp",
581             SYNTACTIC_RESTRICTION_PROPERTY, "np_tobe");
582 
583     /** Individual pmovn:np_to_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
584     public static final URI NP_TO_INF_SYRP = createURI("np_to_inf_syrp",
585             SYNTACTIC_RESTRICTION_PROPERTY, "np_to_inf");
586 
587     /** Individual pmovn:oc_bare_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
588     public static final URI OC_BARE_INF_SYRP = createURI("oc_bare_inf_syrp",
589             SYNTACTIC_RESTRICTION_PROPERTY, "oc_bare_inf");
590 
591     /** Individual pmovn:oc_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
592     public static final URI OC_ING_SYRP = createURI("oc_ing_syrp", SYNTACTIC_RESTRICTION_PROPERTY,
593             "oc_ing");
594 
595     /** Individual pmovn:oc_to_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
596     public static final URI OC_TO_INF_SYRP = createURI("oc_to_inf_syrp",
597             SYNTACTIC_RESTRICTION_PROPERTY, "oc_to_inf");
598 
599     /** Individual pmovn:plural_syrp (a pmovn:SyntacticRestrictionProperty). */
600     public static final URI PLURAL_SYRP = createURI("plural_syrp", SYNTACTIC_RESTRICTION_PROPERTY,
601             "plural");
602 
603     /** Individual pmovn:poss_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
604     public static final URI POSS_ING_SYRP = createURI("poss_ing_syrp",
605             SYNTACTIC_RESTRICTION_PROPERTY, "poss_ing");
606 
607     /** Individual pmovn:quotation_syrp (a pmovn:SyntacticRestrictionProperty). */
608     public static final URI QUOTATION_SYRP = createURI("quotation_syrp",
609             SYNTACTIC_RESTRICTION_PROPERTY, "quotation");
610 
611     /** Individual pmovn:refl_syrp (a pmovn:SyntacticRestrictionProperty). */
612     public static final URI REFL_SYRP = createURI("refl_syrp", SYNTACTIC_RESTRICTION_PROPERTY,
613             "refl");
614 
615     /** Individual pmovn:rs_to_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
616     public static final URI RS_TO_INF_SYRP = createURI("rs_to_inf_syrp",
617             SYNTACTIC_RESTRICTION_PROPERTY, "rs_to_inf");
618 
619     /** Individual pmovn:sc_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
620     public static final URI SC_ING_SYRP = createURI("sc_ing_syrp", SYNTACTIC_RESTRICTION_PROPERTY,
621             "sc_ing");
622 
623     /** Individual pmovn:sc_to_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
624     public static final URI SC_TO_INF_SYRP = createURI("sc_to_inf_syrp",
625             SYNTACTIC_RESTRICTION_PROPERTY, "sc_to_inf");
626 
627     /** Individual pmovn:sentential_syrp (a pmovn:SyntacticRestrictionProperty). */
628     public static final URI SENTENTIAL_SYRP = createURI("sentential_syrp",
629             SYNTACTIC_RESTRICTION_PROPERTY, "sentential");
630 
631     /** Individual pmovn:small_clause_syrp (a pmovn:SyntacticRestrictionProperty). */
632     public static final URI SMALL_CLAUSE_SYRP = createURI("small_clause_syrp",
633             SYNTACTIC_RESTRICTION_PROPERTY, "small_clause");
634 
635     /** Individual pmovn:tensed_that_syrp (a pmovn:SyntacticRestrictionProperty). */
636     public static final URI TENSED_THAT_SYRP = createURI("tensed_that_syrp",
637             SYNTACTIC_RESTRICTION_PROPERTY, "tensed_that");
638 
639     /** Individual pmovn:that_comp_syrp (a pmovn:SyntacticRestrictionProperty). */
640     public static final URI THAT_COMP_SYRP = createURI("that_comp_syrp",
641             SYNTACTIC_RESTRICTION_PROPERTY, "that_comp");
642 
643     /** Individual pmovn:to_be_syrp (a pmovn:SyntacticRestrictionProperty). */
644     public static final URI TO_BE_SYRP = createURI("to_be_syrp", SYNTACTIC_RESTRICTION_PROPERTY,
645             "to_be");
646 
647     /** Individual pmovn:vc_to_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
648     public static final URI VC_TO_INF_SYRP = createURI("vc_to_inf_syrp",
649             SYNTACTIC_RESTRICTION_PROPERTY, "vc_to_inf");
650 
651     /** Individual pmovn:what_extract_syrp (a pmovn:SyntacticRestrictionProperty). */
652     public static final URI WHAT_EXTRACT_SYRP = createURI("what_extract_syrp",
653             SYNTACTIC_RESTRICTION_PROPERTY, "what_extract");
654 
655     /** Individual pmovn:what_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
656     public static final URI WHAT_INF_SYRP = createURI("what_inf_syrp",
657             SYNTACTIC_RESTRICTION_PROPERTY, "what_inf");
658 
659     /** Individual pmovn:wh_comp_syrp (a pmovn:SyntacticRestrictionProperty). */
660     public static final URI WH_COMP_SYRP = createURI("wh_comp_syrp",
661             SYNTACTIC_RESTRICTION_PROPERTY, "wh_comp");
662 
663     /** Individual pmovn:wheth_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
664     public static final URI WHETH_INF_SYRP = createURI("wheth_inf_syrp",
665             SYNTACTIC_RESTRICTION_PROPERTY, "wheth_inf");
666 
667     /** Individual pmovn:wh_extract_syrp (a pmovn:SyntacticRestrictionProperty). */
668     public static final URI WH_EXTRACT_SYRP = createURI("wh_extract_syrp",
669             SYNTACTIC_RESTRICTION_PROPERTY, "wh_extract");
670 
671     /** Individual pmovn:wh_inf_syrp (a pmovn:SyntacticRestrictionProperty). */
672     public static final URI WH_INF_SYRP = createURI("wh_inf_syrp", SYNTACTIC_RESTRICTION_PROPERTY,
673             "wh_inf");
674 
675     /** Individual pmovn:wh_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
676     public static final URI WH_ING_SYRP = createURI("wh_ing_syrp", SYNTACTIC_RESTRICTION_PROPERTY,
677             "wh_ing");
678 
679     /** VN 3.2 */
680 
681     /** Individual pmovn:to_inf_rs_syrp (a pmovn:SyntacticRestrictionProperty). */
682     public static final URI TO_INF_RF_SYRP = createURI("to_inf_rs_syrp",
683             SYNTACTIC_RESTRICTION_PROPERTY, "to_inf_rs");
684 
685     /** Individual pmovn:pos_ing_syrp (a pmovn:SyntacticRestrictionProperty). */
686     public static final URI POS_ING_SYRP = createURI("pos_ing_syrp",
687             SYNTACTIC_RESTRICTION_PROPERTY, "pos_ing");
688 
689     //    /** Individual pmovn:plural_syrp (a pmovn:SyntacticRestrictionProperty). */
690     //    public static final URI PLURAL_SYRP = createURI("plural_syrp",
691     //            SYNTACTIC_RESTRICTION_PROPERTY, "plural");
692 
693     // Utility methods
694 
695     public static URI lookup(final URI individualClass, final String externalID) {
696         final Map<String, URI> map = INDEX.get(individualClass);
697         if (map != null) {
698             return map.get(normalizeID(externalID));
699         }
700         return null;
701     }
702 
703     public static URI createURI(final String localName) {
704         return ValueFactoryImpl.getInstance().createURI(NAMESPACE, localName);
705     }
706 
707     private static URI createURI(final String localName, final URI individualClass,
708             final String... externalIDs) {
709         final URI uri = createURI(localName);
710         if (externalIDs.length > 0) {
711             Map<String, URI> map = INDEX.get(individualClass);
712             if (map == null) {
713                 map = Maps.newHashMap();
714                 INDEX.put(individualClass, map);
715             }
716             for (final String externalID : externalIDs) {
717                 final URI oldURI = map.put(normalizeID(externalID), uri);
718                 Preconditions.checkState(oldURI == null);
719             }
720         }
721         return uri;
722     }
723 
724     private static String normalizeID(final String id) {
725         final int len = id.length();
726         for (int i = 0; i < len; ++i) {
727             char ch = id.charAt(i);
728             if (!(ch >= '0' && ch <= '9') && !(ch >= 'a' && ch <= 'z')) {
729                 final StringBuilder builder = new StringBuilder(id.length());
730                 for (int j = 0; j < len; ++j) {
731                     ch = id.charAt(j);
732                     if (Character.isLetterOrDigit(ch)) {
733                         builder.append(Character.toLowerCase(ch));
734                     }
735                 }
736                 return builder.toString();
737             }
738         }
739         return id;
740     }
741 
742     private PMOVN() {
743     }
744 
745 }