private synchronized void fillUpHPOTerms(){
		if(HPOTerms.size()==0)
		{
			File file = new File(hpoFilePath);
			Scanner scanner = null;
			try {
				scanner = new Scanner(file);
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			Pattern p = Pattern.compile("(id:)(\\s+)(HP:)(\\d+)",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
			Pattern isa = Pattern.compile("(is_a:)(\\s+)(HP:)(\\d+)",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
			while(scanner.hasNextLine()){
				String hp= scanner.findInLine(p);
				if(hp!=null){
					//System.out.println( hp);
					
					ArrayList<String> parents = new ArrayList<String>();
					boolean reachedNext=false;
					while(!reachedNext){
						if(scanner.hasNextLine()){
							String startSentence = scanner.nextLine();
							if(startSentence.equalsIgnoreCase("[Term]")){
								reachedNext=true;
								break;
							}
							String is_a= scanner.findInLine(isa);
							if(is_a!=null){
								//System.out.println( hp + is_a);
								parents.add(is_a.replace("is_a: HP:", ""));
							}
						}else {
							
							break;}
						
					}
					HPOTerms.put(hp.replace("id: HP:", ""), parents);
					}
				else{
					if(scanner.hasNextLine())scanner.nextLine();
				}
		      }
		      scanner.close();
		}
	}