public function operatorEval( core_kernel_classes_Container $firstPart,  core_kernel_classes_Container $secondPart)
    {
        $returnValue = (bool) false;

        
        if ($firstPart instanceof core_kernel_classes_Resource ) {
        	$firstPart = new core_kernel_classes_Literal($firstPart->getUri());
		}
        if ($secondPart instanceof core_kernel_classes_Resource ) {
       		$secondPart = new core_kernel_classes_Literal($secondPart->getUri());
        }
        common_Logger::d('First Value : '. $firstPart->literal, array('Generis Expression'));
        common_Logger::d('Second Value : '. $secondPart->literal, array('Generis Expression'));
        common_Logger::d('Operator : '. $this->getLogicalOperator()->getLabel(), array('Generis Expression'));
        
        switch($this->getLogicalOperator()->getUri()) {
			case RulesRdf::INSTANCE_EQUALS_OPERATOR_URI : {
				$returnValue = $this->evalEquals($firstPart,$secondPart);
				break;
			}
			case RulesRdf::INSTANCE_DIFFERENT_OPERATOR_URI : {
				$returnValue = $this->evalDifferent($firstPart,$secondPart);
				break;
			}

			case RulesRdf::INSTANCE_SUP_EQ_OPERATOR_URI : {
				$returnValue = $this->evalSupEquals($firstPart,$secondPart);
				break;
			}
			case RulesRdf::INSTANCE_INF_EQ_OPERATOR_URI : {
				$returnValue = $this->evalInfEquals($firstPart,$secondPart);
				break;
			}
			case RulesRdf::INSTANCE_SUP_OPERATOR_URI : {
				$returnValue = $this->evalSup($firstPart,$secondPart);				
				break;			
			}
			case RulesRdf::INSTANCE_INF_OPERATOR_URI : {
				$returnValue = $this->evalInf($firstPart,$secondPart);
				break;
			}
			
			default: {
				var_dump($this);
				throw new common_Exception('Expression ' . $this->getLabel() . ' do not have knowm operator');
			}
		}
		
		$logValue = $returnValue ? ' TRUE ' : ' FALSE ';
		common_Logger::d('Expression Value : '. $logValue, array('Generis Expression'));
        

        return (bool) $returnValue;
    }