A. For simple criterion

1. If only one NP instance in the preferred parser or majority of parse outputs, then

2. If >1 NP, then drop any that involves time and "other secondary restriction type," (need to enumerate) and go to 1 or 3, depending whether >1 NP

3.If >1 NP, then

B. For comparison criterion

(assume the criterion is rewritten in the form NP =|<|>|<=|>= Quantity

  1. Take the first NP in the parse, and apply 1.1 and 1.2 to get the NP annotation
  2. Pick out the comparison operator
  3. Try to recognize "value unit" in Quantity, return [NP, comparison operator, (value, unit)] or some Protege instance equivalent
  4. If cannot recognize "value unit", return [NP, comparison operator, QuantityAsAString] or some Protege instance equivalent

At the end of the parse, we expect

If N has more than one UMLS matches, use the preference ordering
- Disease or clinical attribute or "organ or tissue function"
- Medication
- Procedure
- Lab test