def create(self, specify_uri=False, ignore_tombstone=False, serialization_format=None, stream=False, auto_refresh=None):
		'''
		Primary method to create resources.
		Args:
			specify_uri (bool): If True, uses PUT verb and sets the URI during creation.  If False, uses POST and gets repository minted URI
			ignore_tombstone (bool): If True, will attempt creation, if tombstone exists (409), will delete tombstone and retry
			serialization_format(str): Content-Type header / mimetype that will be used to serialize self.rdf.graph, and set headers for PUT/POST requests
			auto_refresh (bool): If True, refreshes resource after update. If left None, defaults to repo.default_auto_refresh
		'''
		if self.exists:
			raise Exception('resource exists attribute True, aborting')
		else:
			if specify_uri:
				verb = 'PUT'
			else:
				verb = 'POST'
			logger.debug('creating resource %s with verb %s' % (self.uri, verb))
			if issubclass(type(self),NonRDFSource):
				self.binary._prep_binary()
				data = self.binary.data
			else:
				if not serialization_format:
					serialization_format = self.repo.default_serialization
				data = self.rdf.graph.serialize(format=serialization_format)
				logger.debug('Serialized graph used for resource creation:')
				logger.debug(data.decode('utf-8'))
				self.headers['Content-Type'] = serialization_format
			response = self.repo.api.http_request(verb, self.uri, data=data, headers=self.headers, stream=stream)
			return self._handle_create(response, ignore_tombstone, auto_refresh)