annotate src/de/mpiwg/dwinter/duomo/lexdump/OWLImporter.java @ 4:72004a788198

save single file
author dwinter
date Sun, 06 Feb 2011 21:19:48 +0100
parents d9fd32ecae24
children 923e73fa07f1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
fb3f3df002df first release
dwinter
parents:
diff changeset
1 package de.mpiwg.dwinter.duomo.lexdump;
fb3f3df002df first release
dwinter
parents:
diff changeset
2
fb3f3df002df first release
dwinter
parents:
diff changeset
3 import java.io.File;
fb3f3df002df first release
dwinter
parents:
diff changeset
4 import java.net.URI;
fb3f3df002df first release
dwinter
parents:
diff changeset
5 import java.net.URISyntaxException;
fb3f3df002df first release
dwinter
parents:
diff changeset
6 import java.util.ArrayList;
fb3f3df002df first release
dwinter
parents:
diff changeset
7 import java.util.Collection;
fb3f3df002df first release
dwinter
parents:
diff changeset
8 import java.util.HashMap;
fb3f3df002df first release
dwinter
parents:
diff changeset
9 import java.util.Iterator;
fb3f3df002df first release
dwinter
parents:
diff changeset
10 import java.util.List;
fb3f3df002df first release
dwinter
parents:
diff changeset
11
fb3f3df002df first release
dwinter
parents:
diff changeset
12 import org.apache.log4j.Logger;
fb3f3df002df first release
dwinter
parents:
diff changeset
13
fb3f3df002df first release
dwinter
parents:
diff changeset
14 import edu.stanford.smi.protege.exception.OntologyLoadException;
fb3f3df002df first release
dwinter
parents:
diff changeset
15 import edu.stanford.smi.protegex.owl.ProtegeOWL;
fb3f3df002df first release
dwinter
parents:
diff changeset
16 import edu.stanford.smi.protegex.owl.jena.JenaOWLModel;
fb3f3df002df first release
dwinter
parents:
diff changeset
17 import edu.stanford.smi.protegex.owl.model.OWLClass;
fb3f3df002df first release
dwinter
parents:
diff changeset
18 import edu.stanford.smi.protegex.owl.model.OWLDatatypeProperty;
fb3f3df002df first release
dwinter
parents:
diff changeset
19 import edu.stanford.smi.protegex.owl.model.OWLIndividual;
fb3f3df002df first release
dwinter
parents:
diff changeset
20 import edu.stanford.smi.protegex.owl.model.OWLNamedClass;
fb3f3df002df first release
dwinter
parents:
diff changeset
21 import edu.stanford.smi.protegex.owl.model.RDFProperty;
fb3f3df002df first release
dwinter
parents:
diff changeset
22 import edu.stanford.smi.protegex.owl.model.RDFSDatatype;
fb3f3df002df first release
dwinter
parents:
diff changeset
23 import edu.stanford.smi.protegex.owl.model.RDFSLiteral;
fb3f3df002df first release
dwinter
parents:
diff changeset
24 import edu.stanford.smi.protegex.owl.model.impl.DefaultRDFProperty;
fb3f3df002df first release
dwinter
parents:
diff changeset
25 import edu.stanford.smi.protegex.owl.model.impl.DefaultRDFSLiteral;
fb3f3df002df first release
dwinter
parents:
diff changeset
26 import edu.stanford.smi.protegex.owl.repository.RepositoryManager;
fb3f3df002df first release
dwinter
parents:
diff changeset
27 import edu.stanford.smi.protegex.owl.repository.impl.LocalFolderRepository;
fb3f3df002df first release
dwinter
parents:
diff changeset
28
fb3f3df002df first release
dwinter
parents:
diff changeset
29 public class OWLImporter {
fb3f3df002df first release
dwinter
parents:
diff changeset
30
fb3f3df002df first release
dwinter
parents:
diff changeset
31 JenaOWLModel owlModel; // contains the model
fb3f3df002df first release
dwinter
parents:
diff changeset
32 Logger logger = Logger.getRootLogger();
fb3f3df002df first release
dwinter
parents:
diff changeset
33 private HashMap<String, String> typeId2className=null;
fb3f3df002df first release
dwinter
parents:
diff changeset
34 private HashMap<String, OWLNamedClass> typeId2class=null;
4
72004a788198 save single file
dwinter
parents: 3
diff changeset
35 private String ontFolder;
72004a788198 save single file
dwinter
parents: 3
diff changeset
36 private URI uri;
0
fb3f3df002df first release
dwinter
parents:
diff changeset
37
fb3f3df002df first release
dwinter
parents:
diff changeset
38 public OWLImporter(String folder, URI uri) throws OntologyLoadException {
fb3f3df002df first release
dwinter
parents:
diff changeset
39 // owlModel = ProtegeOWL.createJenaOWLModelFromURI(uri);
fb3f3df002df first release
dwinter
parents:
diff changeset
40
4
72004a788198 save single file
dwinter
parents: 3
diff changeset
41 this.ontFolder=folder;
72004a788198 save single file
dwinter
parents: 3
diff changeset
42 this.uri=uri;
72004a788198 save single file
dwinter
parents: 3
diff changeset
43
72004a788198 save single file
dwinter
parents: 3
diff changeset
44 loadOWL(folder, uri);
72004a788198 save single file
dwinter
parents: 3
diff changeset
45 }
72004a788198 save single file
dwinter
parents: 3
diff changeset
46
72004a788198 save single file
dwinter
parents: 3
diff changeset
47 public void reloadOWL() throws OntologyLoadException{
72004a788198 save single file
dwinter
parents: 3
diff changeset
48 loadOWL(ontFolder, uri);
72004a788198 save single file
dwinter
parents: 3
diff changeset
49 }
72004a788198 save single file
dwinter
parents: 3
diff changeset
50
72004a788198 save single file
dwinter
parents: 3
diff changeset
51 public void loadOWL(String folder, URI uri) throws OntologyLoadException {
0
fb3f3df002df first release
dwinter
parents:
diff changeset
52 owlModel = ProtegeOWL.createJenaOWLModel();
fb3f3df002df first release
dwinter
parents:
diff changeset
53 // Load repository
fb3f3df002df first release
dwinter
parents:
diff changeset
54 RepositoryManager rman = owlModel.getRepositoryManager();
fb3f3df002df first release
dwinter
parents:
diff changeset
55
fb3f3df002df first release
dwinter
parents:
diff changeset
56 // Add working directory to repository manager.
fb3f3df002df first release
dwinter
parents:
diff changeset
57 File workingDirectory = new File(folder);
fb3f3df002df first release
dwinter
parents:
diff changeset
58 rman.addGlobalRepository(new LocalFolderRepository(workingDirectory));
fb3f3df002df first release
dwinter
parents:
diff changeset
59 // Load ontology
fb3f3df002df first release
dwinter
parents:
diff changeset
60
fb3f3df002df first release
dwinter
parents:
diff changeset
61 ((JenaOWLModel) owlModel).load(uri, "OWL-DL");
fb3f3df002df first release
dwinter
parents:
diff changeset
62 }
fb3f3df002df first release
dwinter
parents:
diff changeset
63
fb3f3df002df first release
dwinter
parents:
diff changeset
64 /**
fb3f3df002df first release
dwinter
parents:
diff changeset
65 * Drucke das Modell nach stdout
fb3f3df002df first release
dwinter
parents:
diff changeset
66 */
fb3f3df002df first release
dwinter
parents:
diff changeset
67 public void printModel() {
fb3f3df002df first release
dwinter
parents:
diff changeset
68 Collection<?> classes = owlModel.getUserDefinedOWLNamedClasses();
fb3f3df002df first release
dwinter
parents:
diff changeset
69 for (Iterator<?> it = classes.iterator(); it.hasNext();) {
fb3f3df002df first release
dwinter
parents:
diff changeset
70 OWLNamedClass cls = (OWLNamedClass) it.next();
fb3f3df002df first release
dwinter
parents:
diff changeset
71 Collection<?> instances = cls.getInstances(false);
fb3f3df002df first release
dwinter
parents:
diff changeset
72 System.out.println("Class " + cls.getBrowserText() + " ("
fb3f3df002df first release
dwinter
parents:
diff changeset
73 + instances.size() + ")");
fb3f3df002df first release
dwinter
parents:
diff changeset
74 for (Iterator<?> jt = instances.iterator(); jt.hasNext();) {
fb3f3df002df first release
dwinter
parents:
diff changeset
75 OWLIndividual individual = (OWLIndividual) jt.next();
fb3f3df002df first release
dwinter
parents:
diff changeset
76 System.out.println(" - " + individual.getBrowserText());
fb3f3df002df first release
dwinter
parents:
diff changeset
77 }
fb3f3df002df first release
dwinter
parents:
diff changeset
78 }
fb3f3df002df first release
dwinter
parents:
diff changeset
79
fb3f3df002df first release
dwinter
parents:
diff changeset
80 }
fb3f3df002df first release
dwinter
parents:
diff changeset
81
fb3f3df002df first release
dwinter
parents:
diff changeset
82 public static void main(String args[]) throws URISyntaxException {
fb3f3df002df first release
dwinter
parents:
diff changeset
83 String base = "/Users/dwinter/Documents/Projekte/Diss - data-mining/eclipseWorkspace/de.mpiwg.dwinter.duomo/owlInput";
fb3f3df002df first release
dwinter
parents:
diff changeset
84 URI ontologieUri = new URI(
fb3f3df002df first release
dwinter
parents:
diff changeset
85 "file:///Users/dwinter/Documents/Projekte/Diss%20-%20data-mining/eclipseWorkspace/de.mpiwg.dwinter.duomo/owlInput/duomoAnalysis.owl");
fb3f3df002df first release
dwinter
parents:
diff changeset
86 try {
fb3f3df002df first release
dwinter
parents:
diff changeset
87
fb3f3df002df first release
dwinter
parents:
diff changeset
88 OWLImporter im = new OWLImporter(base, ontologieUri);
fb3f3df002df first release
dwinter
parents:
diff changeset
89 im.printModel();
fb3f3df002df first release
dwinter
parents:
diff changeset
90 } catch (OntologyLoadException e) {
fb3f3df002df first release
dwinter
parents:
diff changeset
91 // TODO Auto-generated catch block
fb3f3df002df first release
dwinter
parents:
diff changeset
92 e.printStackTrace();
fb3f3df002df first release
dwinter
parents:
diff changeset
93 }
fb3f3df002df first release
dwinter
parents:
diff changeset
94 }
fb3f3df002df first release
dwinter
parents:
diff changeset
95
fb3f3df002df first release
dwinter
parents:
diff changeset
96 public OWLIndividual createInstance(String string) {
fb3f3df002df first release
dwinter
parents:
diff changeset
97 OWLNamedClass owlclass = (OWLNamedClass) owlModel
fb3f3df002df first release
dwinter
parents:
diff changeset
98 .getOWLNamedClass(string);
fb3f3df002df first release
dwinter
parents:
diff changeset
99
fb3f3df002df first release
dwinter
parents:
diff changeset
100 if (owlclass == null) {
fb3f3df002df first release
dwinter
parents:
diff changeset
101 logger.debug("Cannot find OWLClass:" + string);
fb3f3df002df first release
dwinter
parents:
diff changeset
102 return null;
fb3f3df002df first release
dwinter
parents:
diff changeset
103 }
fb3f3df002df first release
dwinter
parents:
diff changeset
104 //logger.debug("Create new individual of type:"+string);
fb3f3df002df first release
dwinter
parents:
diff changeset
105 return owlclass.createOWLIndividual(null);
fb3f3df002df first release
dwinter
parents:
diff changeset
106
fb3f3df002df first release
dwinter
parents:
diff changeset
107 }
fb3f3df002df first release
dwinter
parents:
diff changeset
108
fb3f3df002df first release
dwinter
parents:
diff changeset
109 public void setProperty(OWLIndividual identifier, String propertyName,
fb3f3df002df first release
dwinter
parents:
diff changeset
110 Object value) {
fb3f3df002df first release
dwinter
parents:
diff changeset
111 RDFProperty prop = owlModel.getRDFProperty(propertyName);
fb3f3df002df first release
dwinter
parents:
diff changeset
112 identifier.setPropertyValue(prop, value);
fb3f3df002df first release
dwinter
parents:
diff changeset
113
fb3f3df002df first release
dwinter
parents:
diff changeset
114 }
fb3f3df002df first release
dwinter
parents:
diff changeset
115
fb3f3df002df first release
dwinter
parents:
diff changeset
116 public void setDataTypePropery(OWLIndividual eventInstance,
fb3f3df002df first release
dwinter
parents:
diff changeset
117 String propertyName, String value, String lang) {
fb3f3df002df first release
dwinter
parents:
diff changeset
118 RDFProperty prop = owlModel.getRDFProperty(propertyName);
fb3f3df002df first release
dwinter
parents:
diff changeset
119 // if(OWLDatatypeProperty.class.isInstance(prop)){
fb3f3df002df first release
dwinter
parents:
diff changeset
120 // OWLDatatypeProperty dp = (OWLDatatypeProperty)prop;
fb3f3df002df first release
dwinter
parents:
diff changeset
121 // prop.set
fb3f3df002df first release
dwinter
parents:
diff changeset
122 //
fb3f3df002df first release
dwinter
parents:
diff changeset
123 // } else {
fb3f3df002df first release
dwinter
parents:
diff changeset
124 // logger.error("Is not a datatypeprop:"+propertyName);
fb3f3df002df first release
dwinter
parents:
diff changeset
125 // }
fb3f3df002df first release
dwinter
parents:
diff changeset
126
fb3f3df002df first release
dwinter
parents:
diff changeset
127
fb3f3df002df first release
dwinter
parents:
diff changeset
128 RDFSLiteral langLiteral = owlModel.createRDFSLiteral(value, lang);
fb3f3df002df first release
dwinter
parents:
diff changeset
129 eventInstance.setPropertyValue(prop, langLiteral);
fb3f3df002df first release
dwinter
parents:
diff changeset
130
fb3f3df002df first release
dwinter
parents:
diff changeset
131
fb3f3df002df first release
dwinter
parents:
diff changeset
132 }
fb3f3df002df first release
dwinter
parents:
diff changeset
133
fb3f3df002df first release
dwinter
parents:
diff changeset
134 public Object getRelatedIndividual(OWLIndividual cardInd,
fb3f3df002df first release
dwinter
parents:
diff changeset
135 String propertyName) {
fb3f3df002df first release
dwinter
parents:
diff changeset
136 RDFProperty prop = owlModel.getRDFProperty(propertyName);
fb3f3df002df first release
dwinter
parents:
diff changeset
137 if (prop == null) {
fb3f3df002df first release
dwinter
parents:
diff changeset
138 logger.debug("Property does not exist:" + propertyName);
fb3f3df002df first release
dwinter
parents:
diff changeset
139 }
fb3f3df002df first release
dwinter
parents:
diff changeset
140
fb3f3df002df first release
dwinter
parents:
diff changeset
141 Object value = cardInd.getPropertyValue(prop);
fb3f3df002df first release
dwinter
parents:
diff changeset
142 return value;
fb3f3df002df first release
dwinter
parents:
diff changeset
143 }
fb3f3df002df first release
dwinter
parents:
diff changeset
144
fb3f3df002df first release
dwinter
parents:
diff changeset
145 public OWLIndividual getIndividual(String classNameFrom,
fb3f3df002df first release
dwinter
parents:
diff changeset
146 String propertyNameToClass, String classNameTo,
fb3f3df002df first release
dwinter
parents:
diff changeset
147 String propertyName2, Object value) {
fb3f3df002df first release
dwinter
parents:
diff changeset
148
fb3f3df002df first release
dwinter
parents:
diff changeset
149 RDFProperty prop = owlModel.getRDFProperty(propertyName2);
fb3f3df002df first release
dwinter
parents:
diff changeset
150
fb3f3df002df first release
dwinter
parents:
diff changeset
151 OWLClass classTo = owlModel.getOWLNamedClass(classNameTo);
fb3f3df002df first release
dwinter
parents:
diff changeset
152 Collection<?> instances = classTo.getInstances(true);
fb3f3df002df first release
dwinter
parents:
diff changeset
153 OWLIndividual toIv = null;
fb3f3df002df first release
dwinter
parents:
diff changeset
154 // Such individiual mit propertyName2 und Wert value
fb3f3df002df first release
dwinter
parents:
diff changeset
155 for (Iterator<?> jt = instances.iterator(); jt.hasNext();) {
fb3f3df002df first release
dwinter
parents:
diff changeset
156 OWLIndividual iv = (OWLIndividual) jt.next();
fb3f3df002df first release
dwinter
parents:
diff changeset
157 Object propVal = iv.getPropertyValue(prop);
fb3f3df002df first release
dwinter
parents:
diff changeset
158
fb3f3df002df first release
dwinter
parents:
diff changeset
159 if (propVal!=null && iv.getPropertyValue(prop).equals(value)) {
fb3f3df002df first release
dwinter
parents:
diff changeset
160 toIv = iv;
fb3f3df002df first release
dwinter
parents:
diff changeset
161 break;
fb3f3df002df first release
dwinter
parents:
diff changeset
162 }
fb3f3df002df first release
dwinter
parents:
diff changeset
163 }
fb3f3df002df first release
dwinter
parents:
diff changeset
164
fb3f3df002df first release
dwinter
parents:
diff changeset
165 // kein treffer
fb3f3df002df first release
dwinter
parents:
diff changeset
166 if (toIv == null)
fb3f3df002df first release
dwinter
parents:
diff changeset
167 return null;
fb3f3df002df first release
dwinter
parents:
diff changeset
168
fb3f3df002df first release
dwinter
parents:
diff changeset
169 // jetzt suche das Invidual, dass mit dieser Instance verbunden ist
fb3f3df002df first release
dwinter
parents:
diff changeset
170 RDFProperty prop2 = owlModel.getRDFProperty(propertyNameToClass);
fb3f3df002df first release
dwinter
parents:
diff changeset
171
fb3f3df002df first release
dwinter
parents:
diff changeset
172 OWLClass classFrom = owlModel.getOWLNamedClass(classNameFrom);
fb3f3df002df first release
dwinter
parents:
diff changeset
173 Collection<?> instancesFrom = classFrom.getInstances(true);
fb3f3df002df first release
dwinter
parents:
diff changeset
174 OWLIndividual fromIv = null;
fb3f3df002df first release
dwinter
parents:
diff changeset
175 // Such individiual mit propertyName2 und Wert value
fb3f3df002df first release
dwinter
parents:
diff changeset
176 for (Iterator<?> jt = instancesFrom.iterator(); jt.hasNext();) {
fb3f3df002df first release
dwinter
parents:
diff changeset
177 OWLIndividual iv = (OWLIndividual) jt.next();
fb3f3df002df first release
dwinter
parents:
diff changeset
178 Object propValue = iv.getPropertyValue(prop2);
fb3f3df002df first release
dwinter
parents:
diff changeset
179 if (propValue!=null && iv.getPropertyValue(prop2).equals(toIv)) {
fb3f3df002df first release
dwinter
parents:
diff changeset
180 fromIv = iv;
fb3f3df002df first release
dwinter
parents:
diff changeset
181 break;
fb3f3df002df first release
dwinter
parents:
diff changeset
182 }
fb3f3df002df first release
dwinter
parents:
diff changeset
183 }
fb3f3df002df first release
dwinter
parents:
diff changeset
184
fb3f3df002df first release
dwinter
parents:
diff changeset
185 return fromIv;
fb3f3df002df first release
dwinter
parents:
diff changeset
186 }
fb3f3df002df first release
dwinter
parents:
diff changeset
187
fb3f3df002df first release
dwinter
parents:
diff changeset
188 public List<OWLIndividual> getIndividuals(String classNameFrom,
fb3f3df002df first release
dwinter
parents:
diff changeset
189 String propertyNameToClass, String classNameTo,
fb3f3df002df first release
dwinter
parents:
diff changeset
190 String propertyName2, Object value) {
fb3f3df002df first release
dwinter
parents:
diff changeset
191
fb3f3df002df first release
dwinter
parents:
diff changeset
192 List<OWLIndividual> returnList= new ArrayList<OWLIndividual>();
fb3f3df002df first release
dwinter
parents:
diff changeset
193
fb3f3df002df first release
dwinter
parents:
diff changeset
194 RDFProperty prop = owlModel.getRDFProperty(propertyName2);
fb3f3df002df first release
dwinter
parents:
diff changeset
195
fb3f3df002df first release
dwinter
parents:
diff changeset
196 OWLClass classTo = owlModel.getOWLNamedClass(classNameTo);
fb3f3df002df first release
dwinter
parents:
diff changeset
197 Collection<?> instances = classTo.getInstances(true);
fb3f3df002df first release
dwinter
parents:
diff changeset
198 OWLIndividual toIv = null;
fb3f3df002df first release
dwinter
parents:
diff changeset
199 // Such individiual mit propertyName2 und Wert value
fb3f3df002df first release
dwinter
parents:
diff changeset
200 for (Iterator<?> jt = instances.iterator(); jt.hasNext();) {
fb3f3df002df first release
dwinter
parents:
diff changeset
201 OWLIndividual iv = (OWLIndividual) jt.next();
fb3f3df002df first release
dwinter
parents:
diff changeset
202 if (iv.getPropertyValue(prop).equals(value)) {
fb3f3df002df first release
dwinter
parents:
diff changeset
203 toIv = iv;
fb3f3df002df first release
dwinter
parents:
diff changeset
204 break;
fb3f3df002df first release
dwinter
parents:
diff changeset
205 }
fb3f3df002df first release
dwinter
parents:
diff changeset
206 }
fb3f3df002df first release
dwinter
parents:
diff changeset
207
fb3f3df002df first release
dwinter
parents:
diff changeset
208 // kein treffer
fb3f3df002df first release
dwinter
parents:
diff changeset
209 if (toIv == null)
fb3f3df002df first release
dwinter
parents:
diff changeset
210 return null;
fb3f3df002df first release
dwinter
parents:
diff changeset
211
fb3f3df002df first release
dwinter
parents:
diff changeset
212 // jetzt suche das Invidual, dass mit dieser Instance verbunden ist
fb3f3df002df first release
dwinter
parents:
diff changeset
213 RDFProperty prop2 = owlModel.getRDFProperty(propertyNameToClass);
fb3f3df002df first release
dwinter
parents:
diff changeset
214
fb3f3df002df first release
dwinter
parents:
diff changeset
215 OWLClass classFrom = owlModel.getOWLNamedClass(classNameFrom);
fb3f3df002df first release
dwinter
parents:
diff changeset
216 Collection<?> instancesFrom = classFrom.getInstances(true);
fb3f3df002df first release
dwinter
parents:
diff changeset
217 //OWLIndividual fromIv = null;
fb3f3df002df first release
dwinter
parents:
diff changeset
218 // Such individiual mit propertyName2 und Wert value
fb3f3df002df first release
dwinter
parents:
diff changeset
219 for (Iterator<?> jt = instancesFrom.iterator(); jt.hasNext();) {
fb3f3df002df first release
dwinter
parents:
diff changeset
220 OWLIndividual iv = (OWLIndividual) jt.next();
fb3f3df002df first release
dwinter
parents:
diff changeset
221 if (iv.getPropertyValue(prop2).equals(toIv)) {
fb3f3df002df first release
dwinter
parents:
diff changeset
222 returnList.add(iv);
fb3f3df002df first release
dwinter
parents:
diff changeset
223 break;
fb3f3df002df first release
dwinter
parents:
diff changeset
224 }
fb3f3df002df first release
dwinter
parents:
diff changeset
225 }
fb3f3df002df first release
dwinter
parents:
diff changeset
226
fb3f3df002df first release
dwinter
parents:
diff changeset
227 return returnList;
fb3f3df002df first release
dwinter
parents:
diff changeset
228 }
fb3f3df002df first release
dwinter
parents:
diff changeset
229
fb3f3df002df first release
dwinter
parents:
diff changeset
230 public List<OWLIndividual> getIndividuals(String className, String propertyName,
fb3f3df002df first release
dwinter
parents:
diff changeset
231 OWLIndividual targetInd) {
fb3f3df002df first release
dwinter
parents:
diff changeset
232 List<OWLIndividual> returnList= new ArrayList<OWLIndividual>();
fb3f3df002df first release
dwinter
parents:
diff changeset
233
fb3f3df002df first release
dwinter
parents:
diff changeset
234 RDFProperty prop = owlModel.getRDFProperty(propertyName);
fb3f3df002df first release
dwinter
parents:
diff changeset
235
fb3f3df002df first release
dwinter
parents:
diff changeset
236 OWLClass cls = owlModel.getOWLNamedClass(className);
fb3f3df002df first release
dwinter
parents:
diff changeset
237
fb3f3df002df first release
dwinter
parents:
diff changeset
238 Collection<?> instances = cls.getInstances(true);
fb3f3df002df first release
dwinter
parents:
diff changeset
239 // Such individiual mit propertyName2 und Wert value
fb3f3df002df first release
dwinter
parents:
diff changeset
240 for (Iterator<?> jt = instances.iterator(); jt.hasNext();) {
fb3f3df002df first release
dwinter
parents:
diff changeset
241 OWLIndividual iv = (OWLIndividual) jt.next();
fb3f3df002df first release
dwinter
parents:
diff changeset
242 if (iv.getPropertyValue(prop).equals(targetInd)) {
fb3f3df002df first release
dwinter
parents:
diff changeset
243 returnList.add(iv);
fb3f3df002df first release
dwinter
parents:
diff changeset
244
fb3f3df002df first release
dwinter
parents:
diff changeset
245 }
fb3f3df002df first release
dwinter
parents:
diff changeset
246 }
fb3f3df002df first release
dwinter
parents:
diff changeset
247
fb3f3df002df first release
dwinter
parents:
diff changeset
248 return returnList;
fb3f3df002df first release
dwinter
parents:
diff changeset
249 }
fb3f3df002df first release
dwinter
parents:
diff changeset
250
fb3f3df002df first release
dwinter
parents:
diff changeset
251 public OWLIndividual createTimeSpan(String dateDcStart, String dateDcEnd) {
fb3f3df002df first release
dwinter
parents:
diff changeset
252 OWLIndividual timeSpan = createInstance("DatesDocument");
fb3f3df002df first release
dwinter
parents:
diff changeset
253
fb3f3df002df first release
dwinter
parents:
diff changeset
254
fb3f3df002df first release
dwinter
parents:
diff changeset
255
fb3f3df002df first release
dwinter
parents:
diff changeset
256 setProperty(timeSpan, "has_readable_date", dateDcStart);
fb3f3df002df first release
dwinter
parents:
diff changeset
257
fb3f3df002df first release
dwinter
parents:
diff changeset
258 if(!(dateDcEnd==null || dateDcEnd.equals(""))){
fb3f3df002df first release
dwinter
parents:
diff changeset
259 setProperty(timeSpan, "has_readable_to_date", dateDcEnd);
fb3f3df002df first release
dwinter
parents:
diff changeset
260 } else {
fb3f3df002df first release
dwinter
parents:
diff changeset
261 dateDcEnd=dateDcStart;
fb3f3df002df first release
dwinter
parents:
diff changeset
262 }
fb3f3df002df first release
dwinter
parents:
diff changeset
263
fb3f3df002df first release
dwinter
parents:
diff changeset
264 OWLIndividual timeSpanIdentifier = createInstance("Identifier");
fb3f3df002df first release
dwinter
parents:
diff changeset
265 setProperty(timeSpanIdentifier,"has_readable_id",dateDcStart+"-"+dateDcEnd);
fb3f3df002df first release
dwinter
parents:
diff changeset
266
fb3f3df002df first release
dwinter
parents:
diff changeset
267 setProperty(timeSpan,"crm:P48_has_preferred_identifier",timeSpanIdentifier);
fb3f3df002df first release
dwinter
parents:
diff changeset
268
fb3f3df002df first release
dwinter
parents:
diff changeset
269 return timeSpan;
fb3f3df002df first release
dwinter
parents:
diff changeset
270 }
fb3f3df002df first release
dwinter
parents:
diff changeset
271
fb3f3df002df first release
dwinter
parents:
diff changeset
272 public OWLIndividual getIndividualByReadableId(String className,String identifier){
fb3f3df002df first release
dwinter
parents:
diff changeset
273 return getIndividual(className, "crm:P48_has_preferred_identifier", "Identifier", "has_readable_id", identifier);
fb3f3df002df first release
dwinter
parents:
diff changeset
274 }
fb3f3df002df first release
dwinter
parents:
diff changeset
275
fb3f3df002df first release
dwinter
parents:
diff changeset
276 public String getClassNameFromTypeId(String typeId) {
fb3f3df002df first release
dwinter
parents:
diff changeset
277 if (typeId2className==null){ // hash nicht angelegt
fb3f3df002df first release
dwinter
parents:
diff changeset
278 createTypeId2classHashes();
fb3f3df002df first release
dwinter
parents:
diff changeset
279 }
fb3f3df002df first release
dwinter
parents:
diff changeset
280
fb3f3df002df first release
dwinter
parents:
diff changeset
281 return typeId2className.get(typeId);
fb3f3df002df first release
dwinter
parents:
diff changeset
282
fb3f3df002df first release
dwinter
parents:
diff changeset
283 }
fb3f3df002df first release
dwinter
parents:
diff changeset
284
fb3f3df002df first release
dwinter
parents:
diff changeset
285 private void createTypeId2classHashes() {
fb3f3df002df first release
dwinter
parents:
diff changeset
286 typeId2className= new HashMap<String,String>();
fb3f3df002df first release
dwinter
parents:
diff changeset
287 typeId2class= new HashMap<String,OWLNamedClass>();
fb3f3df002df first release
dwinter
parents:
diff changeset
288
fb3f3df002df first release
dwinter
parents:
diff changeset
289 Collection<?> classes = owlModel.getUserDefinedOWLNamedClasses();
fb3f3df002df first release
dwinter
parents:
diff changeset
290
fb3f3df002df first release
dwinter
parents:
diff changeset
291 RDFProperty property = owlModel.getRDFProperty("duomoTypeID");
fb3f3df002df first release
dwinter
parents:
diff changeset
292 for (Iterator<?> it = classes.iterator(); it.hasNext();) {
fb3f3df002df first release
dwinter
parents:
diff changeset
293 OWLNamedClass cls = (OWLNamedClass) it.next();
fb3f3df002df first release
dwinter
parents:
diff changeset
294 String tid = (String) cls.getPropertyValue(property);
fb3f3df002df first release
dwinter
parents:
diff changeset
295 if(tid!=null){
fb3f3df002df first release
dwinter
parents:
diff changeset
296 typeId2class.put(tid, cls);
fb3f3df002df first release
dwinter
parents:
diff changeset
297 typeId2className.put(tid, cls.getName());
fb3f3df002df first release
dwinter
parents:
diff changeset
298 logger.debug("Adding to typId2className:"+tid+"---"+cls.getName());
fb3f3df002df first release
dwinter
parents:
diff changeset
299 }
fb3f3df002df first release
dwinter
parents:
diff changeset
300 }
fb3f3df002df first release
dwinter
parents:
diff changeset
301 }
fb3f3df002df first release
dwinter
parents:
diff changeset
302
fb3f3df002df first release
dwinter
parents:
diff changeset
303 public OWLNamedClass getClassFromTypeId(String typeId) {
fb3f3df002df first release
dwinter
parents:
diff changeset
304 if (typeId2className==null){ // hash nicht angelegt
fb3f3df002df first release
dwinter
parents:
diff changeset
305 createTypeId2classHashes();
fb3f3df002df first release
dwinter
parents:
diff changeset
306 }
fb3f3df002df first release
dwinter
parents:
diff changeset
307
fb3f3df002df first release
dwinter
parents:
diff changeset
308 return typeId2class.get(typeId);
fb3f3df002df first release
dwinter
parents:
diff changeset
309 }
fb3f3df002df first release
dwinter
parents:
diff changeset
310
fb3f3df002df first release
dwinter
parents:
diff changeset
311 public void save(String string) throws URISyntaxException, Exception {
fb3f3df002df first release
dwinter
parents:
diff changeset
312 owlModel.save(new URI(string));
fb3f3df002df first release
dwinter
parents:
diff changeset
313
fb3f3df002df first release
dwinter
parents:
diff changeset
314 }
fb3f3df002df first release
dwinter
parents:
diff changeset
315
fb3f3df002df first release
dwinter
parents:
diff changeset
316 public OWLIndividual createOrGetInstanceWithIdentifier(String classNameInstance,
fb3f3df002df first release
dwinter
parents:
diff changeset
317 String classNameIdentifier, String identifier) {
fb3f3df002df first release
dwinter
parents:
diff changeset
318 OWLIndividual ind = getIndividualByReadableId(classNameInstance, identifier);
fb3f3df002df first release
dwinter
parents:
diff changeset
319 if(ind==null){
fb3f3df002df first release
dwinter
parents:
diff changeset
320 ind = createInstance(classNameInstance);
fb3f3df002df first release
dwinter
parents:
diff changeset
321 OWLIndividual identifierInd = createInstance(classNameIdentifier);
fb3f3df002df first release
dwinter
parents:
diff changeset
322 setProperty(identifierInd, "has_readable_id", identifier);
fb3f3df002df first release
dwinter
parents:
diff changeset
323 setProperty(ind, "crm:P48_has_preferred_identifier",
3
d9fd32ecae24 minor bug identifieer
dwinter
parents: 2
diff changeset
324 identifierInd);
0
fb3f3df002df first release
dwinter
parents:
diff changeset
325 }
2
273164f81926 bug in transformer handleroles
dwinter
parents: 0
diff changeset
326 return ind;
0
fb3f3df002df first release
dwinter
parents:
diff changeset
327 }
fb3f3df002df first release
dwinter
parents:
diff changeset
328 }