def dataset_by_id(self,id):
		"""
		Retrieve a specific data set using its agency assigned ID
		"""
		if (id is None):
			raise ValueError("You must specify an id")
		request = "/0.4/get_dataset?id_agency=" + id
		js = self.send_request(request)
		dataset = UNDataCatalogDataset()
		attributes = js['dataset']
		for attr in attributes:
			if (attributes[attr]):
				dataset.set_attribute(attr,attributes[attr]);
		return dataset
	def datasets_by_organization(self,organization,published = None):
		"""
		Returns the collection of datasets published by the specified
		organization.  If the boolean parameter published is not specified, 
		then the method will return the published datasets.
		"""
		if (organization is None):
			raise ValueError("You must specify an organization")
		if (published not in (None, True, False)):
			raise ValueError("If specified, you must set published to True or False")
		if (published is None):
			published = True;	
		request = ("/0.4/dataset_get_by_organization?organization=" + organization + 
			   "&published=" + ("1" if published else "0") )
		js = self.send_request(request)
		datasets = set()
		for ds in js['datasets']:
			dataset = UNDataCatalogDataset()
			for attr in ds:
				if (ds[attr]):
					dataset.set_attribute(attr,ds[attr])
			datasets.add(dataset)
		return datasets