remoteStoreAdd(gRDFDB, r, gCoreVocab->RDF_parent, parent, RDF_RESOURCE_TYPE, PR_TRUE);
if (!remoteStoreHasAssertion (gRDFDB, r, gCoreVocab->RDF_parent, parent, RDF_RESOURCE_TYPE, PR_TRUE)) { remoteStoreAdd(gRDFDB, r, gCoreVocab->RDF_parent, parent, RDF_RESOURCE_TYPE, PR_TRUE); }
processZones(char *zones, uint16 numZones){	RDF_Resource		r, parent;	char			*escapedURL, url[1024], virtualURL[1024], *p;	uint16			loop;	XP_ASSERT(zones != NULL);	if (zones == NULL)	return;	for (loop=0; loop<numZones; loop++)	{		parent = gNavCenter->RDF_Appletalk;		XP_SPRINTF(url, zones+1, (unsigned)zones[0]);		url[(unsigned)zones[0]] = '\0';		p = url;		while (p != NULL)		{			p = XP_STRCHR(p, ' ');			if (p != NULL)	*p = '\0';			escapedURL = NET_Escape(url, URL_XALPHAS);	/* URL_PATH */			if (escapedURL == NULL)	return;			if (p != NULL)	*p++ = ' ';			virtualURL[0] = '\0';			if (p != NULL)	XP_STRCAT(virtualURL, "virtual");			XP_STRCAT(virtualURL, "at://");			XP_STRCAT(virtualURL, escapedURL);			XP_FREE(escapedURL);			if ((r = RDF_GetResource(NULL, virtualURL, PR_TRUE)) != NULL)			{				if (startsWith("at://", virtualURL))				{					setResourceType(r, ATALK_RT);				}				else				{					setResourceType(r, ATALKVIRTUAL_RT);				}			}			if (r == NULL)	break;			setContainerp(r, PR_TRUE);			setAtalkResourceName(r);			remoteStoreAdd(gRDFDB, r, gCoreVocab->RDF_parent,				parent, RDF_RESOURCE_TYPE, PR_TRUE);			parent = r;		}		zones += (1 + (unsigned)zones[0]);	}}