チェンジセット 201 : SPARQLBuilderWWW/src/java

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

パス数を予め計算するための土台作成

パス:
SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL
ファイル:
5 変更

凡例:

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

    r171 r201  
    297297                 
    298298        private String getLinkedClassLabel(SClass[] classes){ 
    299             return QueryPathGenerator.getClassLabel(linkedClassURI, classes); 
     299            return QueryPathGenerator.getClassLabelfromList(linkedClassURI, classes); 
    300300        } 
    301301         
  • SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/LabeledMultiDigraph.java

    r133 r201  
    2121        String label; 
    2222        Direction direction; 
     23        Integer ntriples; 
     24         
     25        public LabeledEdge(Integer node, String label, Direction direction, Integer ntriples){ 
     26            this.node = node; 
     27            this.label = label; 
     28            this.direction = direction; 
     29            this.ntriples = ntriples; 
     30        } 
    2331    } 
    2432     
     
    3038     
    3139    public void addNode(String label){ 
     40        labelednodes.put(label, labels.size()); 
    3241        labels.add(label); 
    3342        adjlist.add(new LinkedList<LabeledEdge>()); 
    3443    } 
    3544     
     45    public void addEdge(Integer node1, Integer node2, String elabel, Direction direction, Integer ntriples){ 
     46        if ( labels.size() < node1 || labels.size() < node2 ){ 
     47            System.err.println("Error for Edge Addition: No Node for the Edge"); 
     48            return; 
     49        } 
     50        LabeledEdge edge = new LabeledEdge(node2, elabel, direction, ntriples); 
     51        adjlist.get(node1).add(edge); 
     52    } 
    3653} 
  • SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/OWLClassGraph.java

    r197 r201  
    5353        limit = 1000; 
    5454        prunecut = 100; 
    55          
    56         // constructing subgraph 
    5755         
    5856    } 
     
    9088        return patharray; 
    9189    } 
    92          
     90     
    9391    private List<List<ClassLink>> searchPaths(RDFSchemaAnalyzer rdfsa, boolean countLinks){ 
    9492        List<List<ClassLink>> paths = new ArrayList<>(); 
     
    235233    */ 
    236234       
    237    private void setGraph(RDFSchemaAnalyzer rdfsa, boolean countLink){ 
    238        // BFS 
    239         
    240         
    241        //ClassLink[] classLinks = rdfsa.getNextClass(null, crrlp.classLink.getLinkedClassURI(), limit, countLinks); 
     235   public void setWholeGraph(RDFSchemaAnalyzer rdfsa){ 
     236       // setNodes 
     237       SClass[] classes = null; 
     238       try{ 
     239           classes = rdfsa.getOWLClasses(null, null, null, true); 
     240       }catch(Exception e){ 
     241           System.err.println(e); return; 
     242       } 
     243       for (int i = 0 ; i < classes.length; i++){ 
     244           addNode(classes[i].getClassURI()); 
     245       } 
     246       // setEdges 
     247       for (int i = 0 ; i < classes.length; i++){ 
     248           try{ 
     249               ClassLink[] classLinks = rdfsa.getNextClass(null, classes[i].getClassURI(), limit, true); 
     250               for (int j = 0 ; j < classLinks.length; j++){ 
     251                   addEdge(i, labelednodes.get(classLinks[j].getLinkedClassURI()), 
     252                           classLinks[j].getPropertyURI(), 
     253                           classLinks[j].getDirection(), 
     254                           classLinks[j].getNumOfLinkedInstances()); 
     255               } 
     256           }catch(Exception e){ 
     257               System.err.println(e); 
     258           } 
     259       }  
    242260   } 
    243      
    244261} 
  • SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/Path.java

    r167 r201  
    7474                String json_str=""; 
    7575                json_str+="{\"startClassURI\":\""+ startClass+"\","; 
    76                 json_str+="\"startClassLabel\":\""+QueryPathGenerator.getClassLabel(startClass, classes)+"\","; 
     76                json_str+="\"startClassLabel\":\""+QueryPathGenerator.getClassLabelfromList(startClass, classes)+"\","; 
    7777                if (classLinks != null && classLinks.size() != 0) { 
    7878                        json_str+="\"classLinks\":["; 
  • SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/QueryPathGenerator.java

    r197 r201  
    4545        //SClass[] cl = qpg.getClasses(null); 
    4646         
     47        /* 
    4748        long start1 = System.currentTimeMillis(); 
    4849        Path[] path1 = qpg1.getPaths(sc, ec, false); 
     
    6061        System.out.println(path1.length); 
    6162        System.out.println(path2.length); 
     63        */ 
    6264    } 
    6365     
     
    119121    } 
    120122     
    121     public static String getClassLabel(String classURI, SClass[] classes){ 
     123    public static String getClassLabelfromList(String classURI, SClass[] classes){ 
    122124        if ( classURI == null ){ 
    123125                    return ""; 
    124126        } 
     127        SClass sclass = null; 
    125128        for ( int i = 0 ; i < classes.length; i++ ){ 
    126129            if ( classURI.equals(classes[i].getClassURI()) ){ 
    127                 Label[] labels = classes[i].getLabels(); 
    128                 for ( int j = 0 ; j < labels.length; j++ ){ 
    129                     if ( labels[j].getLanguage() == null ){ 
    130                         return labels[j].getLabel(); 
    131                     }else if ( labels[j].getLanguage().equals("en") ){ 
    132                         return labels[j].getLabel(); 
    133                     } 
    134                 } 
    135                 break; 
     130                return getClassLabelfromClass(classes[i]); 
    136131            }                     
    137132        } 
    138         String[] url = classURI.split("/"); 
     133        return ""; 
     134    } 
     135     
     136    public static String getClassLabelfromClass(SClass sclass){ 
     137        Label[] labels = sclass.getLabels(); 
     138        for ( int i = 0 ; i < labels.length; i++ ){ 
     139            if ( labels[i].getLanguage() == null ){ 
     140                return labels[i].getLabel(); 
     141            }else if ( labels[i].getLanguage().equals("en") ){ 
     142                return labels[i].getLabel(); 
     143            } 
     144        } 
     145        String[] url = sclass.getClassURI().split("/"); 
    139146        String tmplabel = url[url.length-1]; 
    140147        String[] tmplabel2 = tmplabel.split("#");