差分発生行の前後
無視リスト:
更新日時:
2014/02/17 16:11:59 (11 年 前)
更新者:
nori
ログメッセージ:

getNextClassで、トリプルの起点となるインスタンス数と終点となるインスタンス数をそれぞれ求められるようにした。

ファイル:
1 変更

凡例:

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

    r42 r46  
    7272                } 
    7373*/ 
     74 
    7475                System.out.println("CLS"); 
    7576 
    7677                String uri = "http://purl.jp/bio/10/lsd/ontology/201209#EnglishEntry"; 
    7778                 
    78                 ClassLink[] cls = builder.getNextClass(null, uri, 100, false); 
    79  
     79                ClassLink[] cls = null; 
     80                try{ 
     81                        cls = builder.getNextClass(null, uri, 100, false); 
     82                }catch(Exception ex) { 
     83                        ex.printStackTrace(); 
     84                } 
     85 
     86                System.out.println("Solutions: "); 
    8087                if (cls != null) { 
    8188                        for (ClassLink cl : cls) { 
     
    8794                        } 
    8895                } 
     96 
     97                 
     98                 
     99                 
    89100/* 
     101                uri = "http://purl.jp/bio/10/lsd/ontology/201209#EnglishEntry"; 
     102 
    90103                System.out.println("CLS-INS"); 
    91                 cls = builder.getNextClassViaInstanceLink(null, clz[0].getClassURI(), 
    92                                 100); 
     104                cls = null; 
     105                try{  
     106                        cls = builder.getNextClassViaInstanceLink(null, uri, 100); 
     107                }catch(Exception ex){ 
     108                        ex.printStackTrace(); 
     109                } 
    93110                if (cls != null) { 
    94111                        for (ClassLink cl : cls) { 
     
    96113                        } 
    97114                } 
    98  
     115*/ 
     116                /* 
    99117                System.out.println("Instances"); 
    100118                Instance[] ins = builder.getInstances(null, "\"A.C. Reed\"@en"); 
     
    184202 
    185203                Query query = QueryFactory.create(queryStr.toString()); 
    186                 QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI, 
    187                                 query); 
     204 
     205                 
     206                QueryExecution qexec = null; 
     207                try{ 
     208                        long start = System.currentTimeMillis(); 
     209                        qexec = QueryExecutionFactory.sparqlService(endpointURI, 
     210                                        query); 
     211                        long end = System.currentTimeMillis(); 
     212                        System.out.println("EXEC TIME: " + (end-start)); 
     213                }catch(Exception ex){ 
     214                        ex.printStackTrace(); 
     215                        throw ex; 
     216                } 
    188217 
    189218                ResultSet results = qexec.execSelect(); 
     
    327356                // SELECT 
    328357                if (countLinks) { 
    329                         queryStr.append("SELECT DISTINCT ?p ?pDirection ?c (COUNT(?s) AS ?numOfLinks) \n"); 
     358                        queryStr.append("SELECT DISTINCT ?p ?pDirection ?c (COUNT(?s) AS ?numOfLinks) (COUNT(DISTINCT(?s)) AS ?numOfLinkedInstances) \n"); 
    330359                } else { 
    331360                        queryStr.append("SELECT DISTINCT ?p ?pDirection ?c \n"); 
     
    390419                } 
    391420 
     421                System.out.println("getNextClasses SPARQL Query: "); 
    392422                System.out.println(queryStr.toString()); 
    393423 
    394424                Query query = QueryFactory.create(queryStr.toString()); 
    395                 QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI, 
     425                QueryExecution qexec = null; 
     426                try{ 
     427                        qexec = QueryExecutionFactory.sparqlService(endpointURI, 
    396428                                query); 
    397  
    398                 ResultSet results = qexec.execSelect(); 
     429                }catch(Exception ex){ 
     430                        ex.printStackTrace(); 
     431                        throw ex; 
     432                } 
     433                         
     434                ResultSet results = null; 
     435                try{ 
     436                        long start = System.currentTimeMillis(); 
     437                        results = qexec.execSelect(); 
     438                        long end = System.currentTimeMillis(); 
     439                        System.out.println("EXEC TIME: " + (end-start)); 
     440                }catch(Exception ex){ 
     441                        ex.printStackTrace(); 
     442                        throw ex; 
     443                } 
     444                         
    399445                ArrayList<ClassLink> solCLs = new ArrayList<ClassLink>(); 
    400446                for (; results.hasNext();) { 
     
    431477                                } 
    432478                                ClassLink cl = new ClassLink(proURI, clsURI, direction, 
    433                                                 numOfLinks); 
     479                                                numOfLinks, 0, 0 ); 
    434480                                solCLs.add(cl); 
    435481                        } 
     
    484530                } 
    485531 
    486                 // System.out.println(queryStr.toString()); 
     532System.out.println(queryStr.toString()); 
    487533 
    488534                Query query = QueryFactory.create(queryStr.toString()); 
     
    513559                        // System.out.println(propURI + " " + clsURI + " " + direction); 
    514560 
    515                         ClassLink cl = new ClassLink(propURI, clsURI, direction, 0); 
     561                        ClassLink cl = new ClassLink(propURI, clsURI, direction, 0, 0, 0); 
    516562                        solCLs.add(cl); 
    517563                } 
     
    714760                        queryStr.append("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"); 
    715761 
    716                         queryStr.append("SELECT (COUNT(?os) AS ?numOfLinks) \n"); 
     762                        queryStr.append("SELECT (COUNT(?os) AS ?numOfLinks) (COUNT(DISTINCT(?is)) AS ?numOfOriginInstances) (COUNT(DISTINCT(?os)) AS ?numOfLinkedInstances) \n"); 
    717763                        if (graphURIs != null) { 
    718764                                for (String graphURI : graphURIs) { 
     
    778824                                        classLink.setNumOfLinks(numOfLinks); 
    779825                                } 
     826                                lit = sol.getLiteral("numOfLinkedInstances"); 
     827                                if (lit != null) { 
     828                                        int numOfLinkedInstances = lit.getInt(); 
     829                                        classLink.setNumOfLinkedInstances(numOfLinkedInstances); 
     830                                } 
     831                                lit = sol.getLiteral("numOfOriginInstances"); 
     832                                if (lit != null) { 
     833                                        int numOfOriginInstances = lit.getInt(); 
     834                                        classLink.setNumOfOriginInstances(numOfOriginInstances); 
     835                                } 
    780836                        } 
    781837                        qexec.close();