差分発生行の前後
無視リスト:
更新日時:
2014/09/25 15:42:35 (10 年 前)
更新者:
nori
ログメッセージ:

Metadataファイルの管理プログラム V1

パス:
BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/endpointMetadata
ファイル:
2 変更

凡例:

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

    r158 r160  
    22 
    33import java.io.File; 
     4import java.util.Calendar; 
     5import java.util.Date; 
     6import java.util.HashSet; 
     7 
     8import jp.riken.accc.db.rdf.crawler.dataStructure.sparql.URICollection; 
     9 
     10import org.apache.jena.riot.RDFDataMgr; 
     11 
     12import com.hp.hpl.jena.rdf.model.Literal; 
     13import com.hp.hpl.jena.rdf.model.Model; 
     14import com.hp.hpl.jena.rdf.model.NodeIterator; 
     15import com.hp.hpl.jena.rdf.model.Property; 
     16import com.hp.hpl.jena.rdf.model.RDFNode; 
     17import com.hp.hpl.jena.rdf.model.Resource; 
    418 
    519public class MetadataFile { 
    620 
     21        Model model = null; 
     22        String endpointURI = null; 
     23        Calendar startDateTime = null; 
     24        Calendar endDateTime = null; 
    725         
    826        public MetadataFile(File file) throws Exception{ 
     
    1028        } 
    1129 
     30        public String getEndpointURI(){ 
     31                return endpointURI; 
     32        } 
     33 
     34        public Calendar getStartDateTime(){ 
     35                return startDateTime; 
     36        } 
     37 
     38        public Calendar getEndDateTime(){ 
     39                return endDateTime; 
     40        } 
     41         
     42         
    1243        private void readFile(File file) throws Exception{ 
     44                model = RDFDataMgr.loadModel(file.getAbsolutePath()); 
     45                Property sd_endpoint = model.getProperty(URICollection.PROPERTY_SD_ENDPOINT); 
     46                NodeIterator nit = model.listObjectsOfProperty(sd_endpoint); 
     47                Resource endPointRes = null; 
     48                endpointURI = null; 
     49                if( nit.hasNext() ){ 
     50                                RDFNode endPointNode = nit.next(); 
     51                                endPointRes = endPointNode.asResource(); 
     52                                endpointURI = endPointRes.getURI(); 
     53                } 
    1354                 
     55                Property sd_default_dataset = model.getProperty(URICollection.PROPERTY_SD_DEFAULT_DATA_SET); 
     56                nit = model.listObjectsOfProperty(sd_default_dataset); 
     57                Resource defaultDataSet = null; 
     58                if( nit.hasNext() ){ 
     59                        RDFNode node = nit.next(); 
     60                        defaultDataSet = node.asResource(); 
     61                } 
     62                // log 
     63                Property sbm_crawlLog = model.getProperty(URICollection.PROPERTY_SB_CRAWL_LOG); 
     64                nit = model.listObjectsOfProperty(sbm_crawlLog); 
     65                Resource crawlLogBlankNode = null; 
     66                if( nit.hasNext() ){ 
     67                                RDFNode node = nit.next(); 
     68                                crawlLogBlankNode = node.asResource(); 
     69                } 
     70                // start 
     71                Property sbm_startTime = model.getProperty(URICollection.PROPERTY_SB_CRAWL_START_TIME); 
     72                nit = model.listObjectsOfProperty(sbm_startTime); 
     73                startDateTime = null; 
     74                if( nit.hasNext() ){ 
     75                        Literal startTimeLit = null; 
     76                        RDFNode node = nit.next(); 
     77                        startTimeLit = node.asLiteral(); 
     78                        startDateTime = ((com.hp.hpl.jena.datatypes.xsd.XSDDateTime)(startTimeLit.getValue())).asCalendar(); 
     79                } 
     80                // end 
     81                Property sbm_endTime = model.getProperty(URICollection.PROPERTY_SB_CRAWL_END_TIME); 
     82                nit = model.listObjectsOfProperty(sbm_endTime); 
     83                endDateTime = null; 
     84                if( nit.hasNext() ){ 
     85                        Literal endTimeLit = null; 
     86                        RDFNode node = nit.next(); 
     87                        endTimeLit = node.asLiteral(); 
     88                        endDateTime = ((com.hp.hpl.jena.datatypes.xsd.XSDDateTime)(endTimeLit.getValue())).asCalendar(); 
     89                } 
     90 
    1491        } 
    1592 
  • BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/endpointMetadata/MetadataManager.java

    r158 r160  
    22 
    33import java.io.File; 
    4 import java.util.ArrayList; 
     4import java.util.HashMap; 
     5import java.util.Set; 
    56 
    67public class MetadataManager { 
    78 
     9        HashMap<String,MetadataFile> metadataTable = null; 
     10         
     11         
     12        public static void main(String[] args) throws Exception{ 
     13                String dirStr = "c:\\temp\\crawl"; 
     14                MetadataManager manager = new MetadataManager(dirStr); 
     15                String[] uris = manager.getURIList(); 
     16                for(String uri: uris){ 
     17                        System.out.println(uri); 
     18                        MetadataFile mFile = manager.getMetadataFile(uri); 
     19                        System.out.println(mFile.getStartDateTime().getTime().toString()); 
     20                        System.out.println(mFile.getEndDateTime().getTime().toString()); 
     21                } 
     22        }        
    823 
    9         MetadataFile[] metadataFiles = null; 
     24        public MetadataFile getMetadataFile(String uri){ 
     25                return metadataTable.get(uri); 
     26        } 
     27 
     28        public String[] getURIList(){ 
     29                Set<String> keySet = metadataTable.keySet(); 
     30                return keySet.toArray(new String[0]); 
     31        } 
     32         
    1033         
    1134        public MetadataManager(String metadataDirStr) throws Exception { 
     
    1538         
    1639        public void init(String metadataDirStr) throws Exception{ 
     40                metadataTable = new HashMap<String,MetadataFile>(); 
    1741                File metadataDir = new File(metadataDirStr); 
    1842                File[] files = null; 
     
    3054                        throw new Exception("File/Directory not found: " + metadataDirStr); 
    3155                } 
    32                 ArrayList<MetadataFile> aList = new ArrayList<MetadataFile>(); 
    3356                for(File file: files){ 
    3457                        MetadataFile metadataFile = null; 
    3558                        try{ 
    3659                                metadataFile = new MetadataFile(file); 
    37                                 aList.add(metadataFile); 
     60                                String uri = metadataFile.getEndpointURI(); 
     61                                if( uri != null ){ 
     62                                        metadataTable.put(uri, metadataFile); 
     63                                } 
    3864                        }catch(Exception ex){ 
    3965                                // WARNING 
    4066                                System.out.println("Invalid metadata file: " + file.getAbsolutePath()); 
     67                                ex.printStackTrace(); 
    4168                        } 
    4269                } 
    43                 metadataFiles = aList.toArray(new MetadataFile[0]); 
    4470        } 
    4571