in OpenCalaisAnnotatorGroovy/src/main/groovy/org/apache/uima/annotator/calais_groovy/CalaisTypes.groovy [361:447]
static void main(args) {
def writer = new StringWriter()
def utypes = new groovy.xml.MarkupBuilder(writer)
utypes.types {
typeDescription {
name "${TYPE_PREFIX}Base"
supertypeName 'uima.cas.TOP'
}
typeDescription {
name "${TYPE_PREFIX}Entity"
supertypeName "${TYPE_PREFIX}Base"
}
typeDescription {
name "${TYPE_PREFIX}Relation"
supertypeName "${TYPE_PREFIX}Base"
}
typeDescription {
name "${TYPE_PREFIX}Instance"
supertypeName "uima.tcas.Annotation"
}
typeDescription {
name "${TYPE_PREFIX}EntityInstance"
supertypeName "${TYPE_PREFIX}Instance"
features {
featureDescription {
name 'entity'
rangeTypeName "${TYPE_PREFIX}Entity"
}
}
}
typeDescription {
name "${TYPE_PREFIX}RelationInstance"
supertypeName "${TYPE_PREFIX}Instance"
features {
featureDescription {
name 'relation'
rangeTypeName "${TYPE_PREFIX}Relation"
}
}
}
calaisTypes.entity[0].each {
def entityName = it.name()
typeDescription {
name "${TYPE_PREFIX}entity.${entityName}"
supertypeName "${TYPE_PREFIX}Entity"
features {
featureDescription {
name 'canonicalForm'
rangeTypeName 'uima.cas.String'
}
}
}
}
calaisTypes.factOrEvent[0].each {
def relation = it
typeDescription {
name "${TYPE_PREFIX}relation.${relation.name()}"
supertypeName "${TYPE_PREFIX}Relation"
features {
relation.attrs[0].each {
def feat = it
featureDescription {
name feat.name()
if (feat.allowedValues[0]) {
rangeTypeName 'uima.cas.String'
} else if (feat.range[0]) {
if (feat.multivalued[0]) {
rangeTypeName 'uima.cas.FSArray'
elementType "${TYPE_PREFIX}entity.${feat.range[0].text()}"
} else {
rangeTypeName "${TYPE_PREFIX}entity.${feat.range[0].text()}"
}
} else {
rangeTypeName 'uima.cas.String'
}
}
}
}
}
}
}
println writer.toString()
}