public function getNotationAspects(
        $notation,
        $field = null,
        $before = null,
        &$errors = null,
        $namespace = null
    ) {
        $params = null;
        $type = $this->getNotationType($notation, $params, $errors, $namespace);
        $aspects = $this->getNotationCommonAspects($field, $before);

        // Looking type
        switch ($type) {
            case 'schema':
                return $this->getNotationAspectsSchema($notation, $aspects);
            case 'json':
                return $this->getNotationAspectsJson($notation, $aspects);
            case 'date':
                return $this->getNotationAspectsDate($notation, $aspects);
            case 'time':
                return $this->getNotationAspectsTime($notation, $aspects);
            case 'datetime':
                return $this->getNotationAspectsDatetime($notation, $aspects);
            case 'timestamp':
                return $this->getNotationAspectsTimestamp($notation, $aspects);
            case 'primary_key':
                return $this->getNotationAspectsPrimaryKey($notation, $aspects, $params);
            case 'string':
                return $this->getNotationAspectsString($notation, $aspects);
            case 'text':
                return $this->getNotationAspectsText($notation, $aspects);
            case 'null':
                return $this->getNotationAspectsNull($notation, $aspects);
            case 'boolean':
                return $this->getNotationAspectsBoolean($notation, $aspects);
            case 'integer':
                return $this->getNotationAspectsInteger($notation, $aspects);
            case 'float':
                return $this->getNotationAspectsFloat($notation, $aspects);
            case 'double':
                return $this->getNotationAspectsDouble($notation, $aspects);
            case 'enum':
                return $this->getNotationAspectsEnum($notation, $aspects);

            case 'class':
                return static::getNotationAspectsClass($notation, $aspects, $params, $namespace);
            case 'vector':
                return static::getNotationAspectsVector($notation, $aspects, $params, $namespace);
            case 'matchs':
                return static::getNotationAspectsMatchs($notation, $aspects, $params, $namespace);
        }

        $errors[] = "irrational notation '{$notation}' by type '{$type}'";
    }