public static function from_array($class_name, $params)
 {
     // Transform the array to a person object and return it.
     $type = !empty($params['@type']) ? $params['@type'] : NULL;
     $subtype = !empty($params['@subtype']) ? $params['@subtype'] : NULL;
     $valid_since = !empty($params['@valid_since']) ? $params['@valid_since'] : NULL;
     $inferred = !empty($params['@inferred']) ? $params['@inferred'] : NULL;
     $instance = new self(array(), $type, $subtype, $valid_since, $inferred);
     $instance->add_fields($instance->fields_from_array($params));
     return $instance;
 }