hook_menu parameter can contain a forward slash
Additional arguments are still sent to page callback functions. 

You might try doing a check for additional arguments:

function get_resource($id) {
  $args = func_get_args();
  if (count($args) &gt; 1) {
    $id = end($args);
  }
  /** rest of your code **/
} 


This way if the public id was "unitedstates/public_id", func_get_args() would return two items, the second one being "public_id" which would be set as the $id if there is more than one argument. Note this will always set the last argument as $id if there is more than one.