public function format()
    {
        $result     = array();

        $result["@type"] = $this->check_type();
        $values          = array_filter( get_object_vars( $this ) );

        foreach ($values as $key => $value) {
            if ($value instanceof ICanBecomeJSONLD) {
                $formatted = $value->format();
                if ( ! empty( $formatted )) {
                    $result[$key] = $formatted;
                }
            } else {
                $result[$key] = $value;
            }
        }

        return $result;
    }