root/BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/endpointMetadata/MetadataFile.java @ 163

リビジョン 163, 3.5 KB (コミッタ: nori, 10 年 前)

triples, classes を追加

  • 属性 svn:mime-type の設定値 text/plain
Rev行番号 
[158]1package org.biohackathon.SPARQLBuilder.endpointMetadata;
2
3import java.io.File;
[160]4import java.util.Calendar;
[158]5
[160]6import jp.riken.accc.db.rdf.crawler.dataStructure.sparql.URICollection;
7
8import org.apache.jena.riot.RDFDataMgr;
9
10import com.hp.hpl.jena.rdf.model.Literal;
11import com.hp.hpl.jena.rdf.model.Model;
12import com.hp.hpl.jena.rdf.model.NodeIterator;
13import com.hp.hpl.jena.rdf.model.Property;
14import com.hp.hpl.jena.rdf.model.RDFNode;
15import com.hp.hpl.jena.rdf.model.Resource;
16
[158]17public class MetadataFile {
18
[160]19        Model model = null;
20        String endpointURI = null;
21        Calendar startDateTime = null;
22        Calendar endDateTime = null;
[163]23        long numTriples = 0;
24        long numClasses = 0;
[158]25       
[163]26       
27        public long getNumTriples(){
28                return numTriples;
29        }
30       
31        public long getNumClasses(){
32                return numClasses;
33        }
34       
[158]35        public MetadataFile(File file) throws Exception{
36                readFile(file);
37        }
38
[160]39        public String getEndpointURI(){
40                return endpointURI;
41        }
42
43        public Calendar getStartDateTime(){
44                return startDateTime;
45        }
46
47        public Calendar getEndDateTime(){
48                return endDateTime;
49        }
50       
51       
[158]52        private void readFile(File file) throws Exception{
[160]53                model = RDFDataMgr.loadModel(file.getAbsolutePath());
54                Property sd_endpoint = model.getProperty(URICollection.PROPERTY_SD_ENDPOINT);
55                NodeIterator nit = model.listObjectsOfProperty(sd_endpoint);
56                Resource endPointRes = null;
57                endpointURI = null;
58                if( nit.hasNext() ){
59                                RDFNode endPointNode = nit.next();
60                                endPointRes = endPointNode.asResource();
61                                endpointURI = endPointRes.getURI();
62                }
[158]63               
[160]64                Property sd_default_dataset = model.getProperty(URICollection.PROPERTY_SD_DEFAULT_DATA_SET);
65                nit = model.listObjectsOfProperty(sd_default_dataset);
66                Resource defaultDataSet = null;
67                if( nit.hasNext() ){
68                        RDFNode node = nit.next();
69                        defaultDataSet = node.asResource();
70                }
71                // log
72                Property sbm_crawlLog = model.getProperty(URICollection.PROPERTY_SB_CRAWL_LOG);
73                nit = model.listObjectsOfProperty(sbm_crawlLog);
74                Resource crawlLogBlankNode = null;
75                if( nit.hasNext() ){
76                                RDFNode node = nit.next();
77                                crawlLogBlankNode = node.asResource();
78                }
79                // start
80                Property sbm_startTime = model.getProperty(URICollection.PROPERTY_SB_CRAWL_START_TIME);
81                nit = model.listObjectsOfProperty(sbm_startTime);
82                startDateTime = null;
83                if( nit.hasNext() ){
84                        Literal startTimeLit = null;
85                        RDFNode node = nit.next();
86                        startTimeLit = node.asLiteral();
87                        startDateTime = ((com.hp.hpl.jena.datatypes.xsd.XSDDateTime)(startTimeLit.getValue())).asCalendar();
88                }
89                // end
90                Property sbm_endTime = model.getProperty(URICollection.PROPERTY_SB_CRAWL_END_TIME);
91                nit = model.listObjectsOfProperty(sbm_endTime);
92                endDateTime = null;
93                if( nit.hasNext() ){
94                        Literal endTimeLit = null;
95                        RDFNode node = nit.next();
96                        endTimeLit = node.asLiteral();
97                        endDateTime = ((com.hp.hpl.jena.datatypes.xsd.XSDDateTime)(endTimeLit.getValue())).asCalendar();
98                }
[163]99                // numTriples
100                Property void_triples = model.getProperty(URICollection.PROPERTY_VOID_TRIPLES);
101                nit = model.listObjectsOfProperty(defaultDataSet, void_triples);
102                if( nit.hasNext()){
103                        Literal numTriplesLit = nit.next().asLiteral();
104                        numTriples = numTriplesLit.getLong();
105                }
106                // numClasses
107                Property void_classes = model.getProperty(URICollection.PROPERTY_VOID_CLASSES);
108                nit = model.listObjectsOfProperty(defaultDataSet, void_classes);
109                if( nit.hasNext()){
110                        Literal numClassesLit = nit.next().asLiteral();
111                        numClasses = numClassesLit.getLong();
112                }
[158]113        }
114
115}
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。