addSlotValue(f, u, s, parsed_value, data_type, tv);
addSlotValue(f, u, s, parsed_value, data_type, tvstr);
assignSlot (RDF_Resource u, char* slot, char* value, RDFFile f){  PRBool tv = true;  if (value[0] == '(') {    tv = false;    value = &value[1];    value[strlen(value)-1] = '\0';  }   if (startsWith("default_genl", slot)) return;    if (startsWith("name", slot) || (startsWith("local-name", slot))) {     value[strlen(value)-1] = '\0';    addSlotValue(f, u, gCoreVocab->RDF_name, copyString(&value[1]), RDF_STRING_TYPE, tv);    }  else if (startsWith("specs", slot) || (startsWith("child", slot))) {    RDF_Resource spec = resolveReference(value, f);      if (!nullp(spec)) addSlotValue(f, spec, gCoreVocab->RDF_parent, u, RDF_RESOURCE_TYPE, tv);   }  else if (startsWith("genls_pos", slot)) {    RDF_Resource genl = resolveGenlPosReference(value, f);      if (!nullp(genl)) addSlotValue(f, u, gCoreVocab->RDF_parent, genl, RDF_RESOURCE_TYPE, tv);  }  else if ((startsWith("genls", slot)) || (startsWith("parent", slot))) {    RDF_Resource genl = resolveReference(value, f);    if (!nullp(genl)) addSlotValue(f, u, gCoreVocab->RDF_parent, genl, RDF_RESOURCE_TYPE, tv);  } else {    void* parsed_value;    RDF_ValueType data_type;    RDF_Resource s = RDF_GetResource(NULL, slot, true);    RDF_Error err = parseSlotValue(f, s, value, &parsed_value, &data_type);     if ((err == noRDFErr) && (!nullp(parsed_value)))         addSlotValue(f, u, s, parsed_value, data_type, tv);  } }