public void onStatus(Status status) 
	{
		//Calculate similarity of the received tweet with previously correctly
		//classified tweets
		double sim = rtc.similarity(status);
		
		//Calculate the number of tweets from the recent cache which are within 
		// a set range of the tweet
		double numgps = rtc.numNearbyGPS(status);
		
		//Creating an object of the CrimeDetection class which contains
		//the classifier to classify the tweet whether it is related to crime or not
		CrimeDetection cd = new CrimeDetection();
		
		//Classify the tweet using the status, the recent tweets features, and the 
		//similarity and nearby-tweets metrics calculated, with the help of an svm model
		boolean social = cd.classify(status,rtf,"svm",numgps,sim);
		
		//Write the tweet information to a file called text_social/timestamp
		writeTextAndData(status,social,rtf.getSocialFeatures(status));
		
		//If the classifier returns a positive
		if(social)
		{
			//Add the tweet to the recent tweets cache so that 
			//it contributes to the tweets henceforth
			rtc.addTweet(status);
			
			//Extract addresses which match a regular expression
			String regaddr = ner.getAddress(status.getText());
			
			//Annotate the tweet into locations
			String annotated = null;
			try {
				annotated = ner.annotate(status.getText());
			} catch (IOException e) {
				e.printStackTrace();
			}
			List<String> locs;
			
			//Extract the location from the annotation
			String nerloc = null;
			if( (locs = TweetNER.getLocations(annotated)).size() > 0)
			{
				nerloc = locs.get(0);
				nerloc = nerloc.toLowerCase();
			}
			
			if(regaddr != null)
				regaddr=regaddr.toLowerCase();
			
			//Get the category of the tweet fro a set of predefined categories of crime
			String category = ner.categorize(status.getText());
			
			//Add tweet information to the tables "tweets" and "rankings"
			dbw.addTweet(status, nerloc,regaddr,category,0);
			//Add the user information to the table "users"
			dbw.addUser(status.getUser());
		}
	}