def _getCaseAgreement(self, token1, token2):
        '''  Detects whether there is a morphological case agreement 
            between two consecutive nominals (token1 and token2), and 
            returns the common case, or None if no agreement exists;
             Applies a special set of rules for detecting agreement on
            the word in genitive followed by the word in ter, es, ab or
            kom.
        '''
        forms1 = set( [a[FORM] for a in token1[ANALYSIS]] )
        forms2 = set( [a[FORM] for a in token2[ANALYSIS]] )
        if len(forms1.intersection(forms2))==0:
            # Kontrollime ka ni-na-ta-ga k22ndeid:
            if 'sg g' in forms1:
                if 'sg ter' in forms2:
                    return 'sg ter'
                elif 'sg es' in forms2:
                    return 'sg es'
                elif 'sg ab' in forms2:
                    return 'sg ab'
                elif 'sg kom' in forms2:
                    return 'sg kom'
            elif 'pl g' in forms1:
                if 'pl ter' in forms2:
                    return 'pl ter'
                elif 'pl es' in forms2:
                    return 'pl es'
                elif 'pl ab' in forms2:
                    return 'pl ab'
                elif 'pl kom' in forms2:
                    return 'pl kom'
            return None
        else:
            return list(forms1.intersection(forms2))[0]
Detects whether there is a morphological case agreement 
            between two consecutive nominals (token1 and token2), and 
            returns the common case, or None if no agreement exists;
             Applies a special set of rules for detecting agreement on
            the word in genitive followed by the word in ter, es, ab or
            kom.