@Override
    public String extract(int storeName) {
        try {
            File prIDF = new File(this.sprIDFile);
            File prEntityF = new File(Util.ENTITY_FOLDER + "entity.sibling.relation");
            File prSegmentedF = new File(this.sprSegmentedFile);
            if(!prIDF.exists()) {
                return Util.systemTime() + "  File \"" + this.sprIDFile + "\" doesn't exist!\n" + "Please generate user dict first!\n";
            }
            if(!prEntityF.exists()) {
                return Util.systemTime() + "  File \"" + this.sprEntityFile + "\" doesn't exist!\n";
            }
            if(!prSegmentedF.exists()) {
                return Util.systemTime() + "  File \"" + this.sprSegmentedFile + "\" doesn't exist!\n" + "Please participle entity first!\n";
            }
            this.loadID();
            BufferedReader entityReader = new BufferedReader(new FileReader(Util.ENTITY_FOLDER + "entity.sibling.relation"));
            BufferedReader segReader = new BufferedReader(new FileReader(this.sprSegmentedFile));
            BufferedWriter writer = new BufferedWriter(new FileWriter(this.relationFile));
            String line = "";
            while((line = segReader.readLine()) != null) {
                String[] p = line.split("\t");
                //String[] p2 = segReader.readLine().split("\t");
                String[] result = this.relation(p[3], p[3]);
                for(String r : result) {
                    if(storeName == 1) {
                        writer.write(p[1] + "-sibling-" + r);
                        writer.newLine();
                    } else {
                        if(this.hmSRID.containsKey(r)) {
                            for(String a : this.hmSRID.get(r)) {
                                writer.write(p[0] + "-sibling-" + a);
                                System.out.println(p[0] + "-sibling-" + a);
                                writer.newLine();
                            }
                        }
                    }
                }
            }            System.out.println("The number of result is:" + resultNum);
            entityReader.close();
            segReader.close();
            writer.close();
            return Util.systemTime() + "  Done. Relation file \"" + this.relationFile + "\" has been created.\n";
        } catch (IOException ex) {
            Logger.getLogger(SiblingRelationExtractor.class.getName()).log(Level.SEVERE, null, ex);
            return ex.toString();
        }
    }