差分発生行の前後
無視リスト:
更新日時:
2014/01/30 10:31:23 (11 年 前)
更新者:
atsuko
ログメッセージ:

The latest OWLClassGraph.java added

ファイル:
1 変更

凡例:

変更なし
追加
削除
  • BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLClassGraph.java

    r2 r3  
    1414    String startClass; 
    1515    String endClass; 
    16     int startNode; 
    17     int endNode; 
    1816    int nsteps; 
    1917    int limit; 
    20      
    21     List<OWLEdge> allOWLEdge;  
    2218         
    23     public class OWLEdge{ 
    24         String startClass; 
    25         ClassLink classLink; 
    26         public OWLEdge(String startClass, ClassLink classLink){ 
    27            this.startClass = startClass;  
    28            this.classLink = classLink; 
    29         } 
    30     } 
    31      
    3219    public class LinkAndPath{ 
    3320        ClassLink classLink; 
     
    3926    } 
    4027     
    41     public OWLClassGraph(String p_startClass, String p_endClass){ 
     28    public OWLClassGraph(String startClass, String endClass){ 
    4229        super(); 
    43         startClass = p_startClass; 
    44         adjlist.add(new LinkedList<LabeledEdge>()); 
    45         labels.add(startClass); 
    46         endClass = p_endClass; 
    47         labels.add(endClass); 
    48         nsteps = 3; 
    49         limit = 100; 
    50         allOWLEdge= new LinkedList<OWLEdge>(); 
     30        this.startClass = startClass; 
     31        addNode(startClass); 
     32        this.endClass = endClass; 
     33        addNode(endClass); 
     34        nsteps = 2; 
     35        limit = 1000; 
    5136    } 
    5237     
    53     public void generateGraph(){ 
    54         // atode 
     38    public void generateGraph(List<List<ClassLink>> paths){ 
     39         
    5540    } 
    5641     
    5742    public Path[] getPaths(OWLQueryBuilderImpl qb){ 
    58         List<List<ClassLink>> paths = searchPathsFromOWL(qb); 
     43        //List<List<ClassLink>> paths = searchPathsFromOWL(qb); 
     44        List<List<ClassLink>> paths = searchPathsFromInstances(qb); 
    5945        Path[] patharray = new Path[paths.size()]; 
    6046        ListIterator<List<ClassLink>> pit = paths.listIterator(); 
    6147        int i = 0; 
    6248        while ( pit.hasNext() ){ 
     49            patharray[i] = new Path(); 
    6350            patharray[i].setStartClass(startClass); 
    6451            List<ClassLink> path = pit.next(); 
    65             path.remove(0); 
    6652            patharray[i].setClassLinks(path); 
    6753            i++; 
     
    7157     
    7258    private List<List<ClassLink>> searchPathsFromOWL(OWLQueryBuilderImpl qb){ 
     59        return searchPathsEngine(qb, 0); 
     60    } 
     61     
     62    private List<List<ClassLink>> searchPathsFromInstances(OWLQueryBuilderImpl qb){ 
     63        return searchPathsEngine(qb, 1); 
     64    } 
     65     
     66    private List<List<ClassLink>> searchPathsEngine(OWLQueryBuilderImpl qb, int mode){ 
    7367        List<List<ClassLink>> paths = new ArrayList<List<ClassLink>>(); 
    7468        ClassLink crrLink = new ClassLink(null,startClass,Direction.both); 
     
    8276                  LinkAndPath crrlp = lit.next(); 
    8377                  if ( crrlp.classLink.getLinkedClassURI().equals(endClass) ){ continue; } 
    84                   ClassLink[] classLinks = qb.getNextClass(null, crrlp.classLink.getLinkedClassURI(), limit); 
     78                  ClassLink[] classLinks = null; 
     79                  // Mode 
     80                  if ( mode == 0 ){ 
     81                      classLinks = qb.getNextClass(null, crrlp.classLink.getLinkedClassURI(), limit); 
     82                  }else if ( mode == 1 ){ 
     83                      classLinks = qb.getNextClassViaInstanceLink(null, crrlp.classLink.getLinkedClassURI(), limit);                       
     84                  }else{ System.err.println("Mode is not correct."); } 
    8585                  for ( int j = 0 ; j < classLinks.length; j++ ){ 
    8686                      List<ClassLink> crrpath = new LinkedList<ClassLink>(crrlp.path); 
     
    9292                  } 
    9393              } 
     94              lp = nextlp; 
    9495          } 
    9596        }catch(Exception e){ System.err.println(e);} 
    96         return paths; 
     97        return paths;         
    9798    } 
    9899}