'''
Created on Jan 23, 2013

@author: lennyn
'''

class ElemType:
    atLeastOneOf = 'atLeastOneOf'
    concatenation = 'concatenation'
    oneOf = 'oneOf'
    list = 'list'

class Entry:
    
    def __init__(self, orth, senses=[]):
        self.orth = orth
        self.senses = senses

class Sense:
    
    def __init__(self, definition=None, citations=[], schema=None):
        self.definition = definition
        self.citations = citations
        self.schema = schema
    
class Schema:
    
    def __init__(self, elements=[]):
        self.elements = elements

class SchemaElement:
    
    def __init__(self):
        pass

class Phrase(SchemaElement):
    
    def __init__(self, label, semanticAttrs=[]):
        self.label = label
        self.semanticAttrs = semanticAttrs

class Verb(SchemaElement):
    
    def __init__(self):
        pass

class TextElement(SchemaElement):
    
    def __init__(self, text):
        self.text = text

class ComplexElement(SchemaElement):
    
    def __init__(self, elemType, children=[]):
        self.type = elemType
        self.children = children
