1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package cz.zcu.mre.dao;
23
24 import java.io.File;
25 import org.apache.jena.ontology.OntDocumentManager;
26 import org.apache.jena.ontology.OntModel;
27 import org.apache.jena.ontology.OntModelSpec;
28 import org.apache.jena.rdf.model.ModelFactory;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32
33
34
35
36 public class OntologyRepositoryImpl implements OntologyRepository {
37
38 private static final Logger LOG = LoggerFactory.getLogger(OntologyRepositoryImpl.class);
39
40
41
42
43 private OntModelSpec ontModelSpec = OntModelSpec.OWL_MEM;
44
45
46
47
48 private OntModel ontology;
49
50
51
52
53 public OntologyRepositoryImpl() {
54 initialize(ontModelSpec);
55 }
56
57
58
59
60
61
62
63 public final void initialize(OntModelSpec ontModelSpec) {
64
65 this.ontModelSpec = ontModelSpec;
66
67 ontology = ModelFactory.createOntologyModel(this.ontModelSpec);
68 }
69
70
71
72
73
74
75
76 @Override
77 public void addOntology(String ontologyURI, String ontologyLocalFileCopy) {
78
79 LOG.info("Load ontology {} (local file {})", ontologyURI, ontologyLocalFileCopy);
80 try {
81
82 OntDocumentManager dm = ontology.getDocumentManager();
83 if (ontologyLocalFileCopy != null && new File(ontologyLocalFileCopy).isFile()) {
84 dm.addAltEntry(ontologyURI, ontologyLocalFileCopy);
85 }
86
87
88 ontology.read(ontologyURI);
89 LOG.info("Loaded ontology {}", ontologyURI);
90
91 } catch (ExceptionInInitializerError e) {
92 LOG.info("Can't read ontology {} (used local file {}). Is the ontology availaible?", ontologyURI, ontologyLocalFileCopy);
93 }
94 }
95
96
97
98
99
100
101 @Override
102 public synchronized OntModel getOntology() {
103 return ontology;
104 }
105
106 }