annotate src/de/mpiwg/itgroup/triplestoremanager/owl/MetaDataHandler.java @ 3:6c8dac2c5214

New tools export graph and generate landing page of an echo ressource
author dwinter
date Thu, 21 Jun 2012 12:24:29 +0200
parents 221a0fd0a5d3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
47075a8171a6 initial
dwinter
parents:
diff changeset
1 package de.mpiwg.itgroup.triplestoremanager.owl;
47075a8171a6 initial
dwinter
parents:
diff changeset
2
47075a8171a6 initial
dwinter
parents:
diff changeset
3 import java.io.File;
47075a8171a6 initial
dwinter
parents:
diff changeset
4 import java.net.URI;
47075a8171a6 initial
dwinter
parents:
diff changeset
5 import java.net.URISyntaxException;
47075a8171a6 initial
dwinter
parents:
diff changeset
6 import java.util.ArrayList;
47075a8171a6 initial
dwinter
parents:
diff changeset
7 import java.util.Collection;
47075a8171a6 initial
dwinter
parents:
diff changeset
8 import java.util.Iterator;
47075a8171a6 initial
dwinter
parents:
diff changeset
9 import java.util.List;
47075a8171a6 initial
dwinter
parents:
diff changeset
10 import java.util.Map;
47075a8171a6 initial
dwinter
parents:
diff changeset
11 import java.util.Set;
47075a8171a6 initial
dwinter
parents:
diff changeset
12
47075a8171a6 initial
dwinter
parents:
diff changeset
13 import org.apache.log4j.Logger;
47075a8171a6 initial
dwinter
parents:
diff changeset
14 import org.openrdf.repository.RepositoryException;
47075a8171a6 initial
dwinter
parents:
diff changeset
15
47075a8171a6 initial
dwinter
parents:
diff changeset
16 import de.mpiwg.itgroup.triplestoremanager.exceptions.TripleStoreHandlerException;
47075a8171a6 initial
dwinter
parents:
diff changeset
17 import edu.stanford.smi.protege.exception.OntologyLoadException;
47075a8171a6 initial
dwinter
parents:
diff changeset
18 import edu.stanford.smi.protegex.owl.ProtegeOWL;
47075a8171a6 initial
dwinter
parents:
diff changeset
19 import edu.stanford.smi.protegex.owl.jena.JenaOWLModel;
47075a8171a6 initial
dwinter
parents:
diff changeset
20 import edu.stanford.smi.protegex.owl.model.OWLIndividual;
47075a8171a6 initial
dwinter
parents:
diff changeset
21 import edu.stanford.smi.protegex.owl.model.OWLNamedClass;
47075a8171a6 initial
dwinter
parents:
diff changeset
22 import edu.stanford.smi.protegex.owl.model.RDFProperty;
47075a8171a6 initial
dwinter
parents:
diff changeset
23 import edu.stanford.smi.protegex.owl.model.RDFSNamedClass;
47075a8171a6 initial
dwinter
parents:
diff changeset
24 import edu.stanford.smi.protegex.owl.model.impl.DefaultOWLNamedClass;
47075a8171a6 initial
dwinter
parents:
diff changeset
25 import edu.stanford.smi.protegex.owl.model.impl.DefaultRDFSNamedClass;
47075a8171a6 initial
dwinter
parents:
diff changeset
26 import edu.stanford.smi.protegex.owl.repository.RepositoryManager;
47075a8171a6 initial
dwinter
parents:
diff changeset
27 import edu.stanford.smi.protegex.owl.repository.impl.LocalFolderRepository;
47075a8171a6 initial
dwinter
parents:
diff changeset
28
47075a8171a6 initial
dwinter
parents:
diff changeset
29 public class MetaDataHandler {
47075a8171a6 initial
dwinter
parents:
diff changeset
30
3
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
31 //String ontologieUriString = "file:///Users/dwinter/Documents/Projekte/ECHO-eSciDoc-MPDL/escidocMPIWG/NamedIdentityManager/ontologies/namedIdentities.owl";
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
32 String ontologieUriString = "file:///Users/dwinter/Documents/Projekte/ECHO-eSciDoc-MPDL/escidocMPIWG/MPIWG-ontologies/namedIdentities.owl";
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
33 //String ontologieUriString = "http://ontologies.mpiwg-berlin.mpg.de/owl/authorities/namedIdentities";
0
47075a8171a6 initial
dwinter
parents:
diff changeset
34 //String rdfUriString = "file:///Users/dwinter/Documents/Projekte/ECHO-eSciDoc-MPDL/escidocMPIWG/NamedIdentityManager/ontologies/rdf-schema";
3
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
35 //String owlFolder = "/Users/dwinter/Documents/Projekte/ECHO-eSciDoc-MPDL/escidocMPIWG/NamedIdentityManager/ontologies";
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
36 String owlFolder = "/Users/dwinter/Documents/Projekte/ECHO-eSciDoc-MPDL/escidocMPIWG/MPIWG-ontologies/";
0
47075a8171a6 initial
dwinter
parents:
diff changeset
37
47075a8171a6 initial
dwinter
parents:
diff changeset
38 static MetaDataHandler instance=null;
47075a8171a6 initial
dwinter
parents:
diff changeset
39
47075a8171a6 initial
dwinter
parents:
diff changeset
40 private JenaOWLModel owlModel;
47075a8171a6 initial
dwinter
parents:
diff changeset
41
47075a8171a6 initial
dwinter
parents:
diff changeset
42 public JenaOWLModel getOwlModel() {
47075a8171a6 initial
dwinter
parents:
diff changeset
43 return owlModel;
47075a8171a6 initial
dwinter
parents:
diff changeset
44 }
47075a8171a6 initial
dwinter
parents:
diff changeset
45
47075a8171a6 initial
dwinter
parents:
diff changeset
46 private Logger logger = Logger.getRootLogger();
47075a8171a6 initial
dwinter
parents:
diff changeset
47
47075a8171a6 initial
dwinter
parents:
diff changeset
48 public MetaDataHandler() {
47075a8171a6 initial
dwinter
parents:
diff changeset
49 try {
47075a8171a6 initial
dwinter
parents:
diff changeset
50 URI ontologieUri = new URI(ontologieUriString);
47075a8171a6 initial
dwinter
parents:
diff changeset
51 loadOWL(owlFolder, ontologieUri);
47075a8171a6 initial
dwinter
parents:
diff changeset
52 } catch (URISyntaxException e) {
47075a8171a6 initial
dwinter
parents:
diff changeset
53 // TODO Auto-generated catch block
47075a8171a6 initial
dwinter
parents:
diff changeset
54 e.printStackTrace();
47075a8171a6 initial
dwinter
parents:
diff changeset
55 return;
47075a8171a6 initial
dwinter
parents:
diff changeset
56 } catch (OntologyLoadException e) {
47075a8171a6 initial
dwinter
parents:
diff changeset
57 // TODO Auto-generated catch block
47075a8171a6 initial
dwinter
parents:
diff changeset
58 e.printStackTrace();
47075a8171a6 initial
dwinter
parents:
diff changeset
59 }
47075a8171a6 initial
dwinter
parents:
diff changeset
60 logger.info("initialized handler");
47075a8171a6 initial
dwinter
parents:
diff changeset
61
47075a8171a6 initial
dwinter
parents:
diff changeset
62 }
47075a8171a6 initial
dwinter
parents:
diff changeset
63
47075a8171a6 initial
dwinter
parents:
diff changeset
64 // public JenaOWLModel createMyJenaOWLModelFromURI(String uri) throws OntologyLoadException {
47075a8171a6 initial
dwinter
parents:
diff changeset
65 // //Collection errors = new ArrayList();
47075a8171a6 initial
dwinter
parents:
diff changeset
66 // OwlProjectFromUriCreator creator = new OwlProjectFromUriCreator();
47075a8171a6 initial
dwinter
parents:
diff changeset
67 // creator.setLang(FileUtils.
47075a8171a6 initial
dwinter
parents:
diff changeset
68 // creator.setOntologyUri(uri);
47075a8171a6 initial
dwinter
parents:
diff changeset
69 // //creator.create(errors);
47075a8171a6 initial
dwinter
parents:
diff changeset
70 // JenaOWLModel owlModel = creator.getOwlModel();
47075a8171a6 initial
dwinter
parents:
diff changeset
71 // //handleErrors(errors);
47075a8171a6 initial
dwinter
parents:
diff changeset
72 // return owlModel;
47075a8171a6 initial
dwinter
parents:
diff changeset
73 // }
47075a8171a6 initial
dwinter
parents:
diff changeset
74
47075a8171a6 initial
dwinter
parents:
diff changeset
75 public void loadOWL(String folder, URI uri) throws OntologyLoadException {
47075a8171a6 initial
dwinter
parents:
diff changeset
76 //owlModel = ProtegeOWL.createJenaOWLModel();
47075a8171a6 initial
dwinter
parents:
diff changeset
77
47075a8171a6 initial
dwinter
parents:
diff changeset
78 owlModel = ProtegeOWL.createJenaOWLModelFromURI(ontologieUriString);
47075a8171a6 initial
dwinter
parents:
diff changeset
79
47075a8171a6 initial
dwinter
parents:
diff changeset
80 //ProfilesManager.setProfile(owlModel, OWLProfiles.RDFSClass_but_not_OWLClass_Type.getURI());
47075a8171a6 initial
dwinter
parents:
diff changeset
81 // Load repository
47075a8171a6 initial
dwinter
parents:
diff changeset
82 RepositoryManager rman = owlModel.getRepositoryManager();
47075a8171a6 initial
dwinter
parents:
diff changeset
83
47075a8171a6 initial
dwinter
parents:
diff changeset
84 // Add working directory to repository manager.
47075a8171a6 initial
dwinter
parents:
diff changeset
85 File workingDirectory = new File(folder);
47075a8171a6 initial
dwinter
parents:
diff changeset
86 rman.addGlobalRepository(new LocalFolderRepository(workingDirectory));
47075a8171a6 initial
dwinter
parents:
diff changeset
87
47075a8171a6 initial
dwinter
parents:
diff changeset
88 LocalFolderRepository localRepository = new LocalFolderRepository(new File("/tmp"));
47075a8171a6 initial
dwinter
parents:
diff changeset
89 rman.addProjectRepository(localRepository);
47075a8171a6 initial
dwinter
parents:
diff changeset
90
47075a8171a6 initial
dwinter
parents:
diff changeset
91
47075a8171a6 initial
dwinter
parents:
diff changeset
92
47075a8171a6 initial
dwinter
parents:
diff changeset
93
47075a8171a6 initial
dwinter
parents:
diff changeset
94 // Load ontology
47075a8171a6 initial
dwinter
parents:
diff changeset
95
47075a8171a6 initial
dwinter
parents:
diff changeset
96 //((JenaOWLModel) owlModel).load(uri, "OWL-FULL");
47075a8171a6 initial
dwinter
parents:
diff changeset
97 }
47075a8171a6 initial
dwinter
parents:
diff changeset
98
47075a8171a6 initial
dwinter
parents:
diff changeset
99 /**
47075a8171a6 initial
dwinter
parents:
diff changeset
100 * Gibt alle Properties der Klasse zurueck, d.h. auch diejenigen die inferiert werden.
47075a8171a6 initial
dwinter
parents:
diff changeset
101 * @param string
47075a8171a6 initial
dwinter
parents:
diff changeset
102 * @return
47075a8171a6 initial
dwinter
parents:
diff changeset
103 */
3
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
104 public Collection getAssociatedPropsForClass(String string) {
0
47075a8171a6 initial
dwinter
parents:
diff changeset
105
47075a8171a6 initial
dwinter
parents:
diff changeset
106
47075a8171a6 initial
dwinter
parents:
diff changeset
107
47075a8171a6 initial
dwinter
parents:
diff changeset
108 OWLNamedClass owlclass;
47075a8171a6 initial
dwinter
parents:
diff changeset
109 try {
47075a8171a6 initial
dwinter
parents:
diff changeset
110 owlclass = (OWLNamedClass) owlModel.getOWLNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
111 } catch (Exception e) {
47075a8171a6 initial
dwinter
parents:
diff changeset
112 logger.debug("Problem getting OWLClass, try RDFS later.");
47075a8171a6 initial
dwinter
parents:
diff changeset
113 //wenn eine Klasse sowohl eine RDFS als auch per Zuordnung in der Ontologie eine OWL classe ist, wir hier eine Fehler ausgeworfen:
47075a8171a6 initial
dwinter
parents:
diff changeset
114 //java.lang.ClassCastException: edu.stanford.smi.protegex.owl.model.impl.DefaultRDFSNamedClass cannot be cast to edu.stanford.smi.protegex.owl.model.OWLNamedClass
47075a8171a6 initial
dwinter
parents:
diff changeset
115 //at edu.stanford.smi.protegex.owl.model.impl.AbstractOWLModel.getOWLNamedClass(Unknown Source)
47075a8171a6 initial
dwinter
parents:
diff changeset
116 owlclass= null;
47075a8171a6 initial
dwinter
parents:
diff changeset
117 }
47075a8171a6 initial
dwinter
parents:
diff changeset
118
47075a8171a6 initial
dwinter
parents:
diff changeset
119 if (owlclass != null) {
3
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
120 Collection props2 = owlclass.getPossibleRDFProperties();
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
121 Collection props1 = owlclass.getAssociatedProperties();
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
122 props1.addAll(props2);
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
123 return props1;
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
124
0
47075a8171a6 initial
dwinter
parents:
diff changeset
125 } else {
47075a8171a6 initial
dwinter
parents:
diff changeset
126 logger.debug("Cannot find OWLClass:" + string);
47075a8171a6 initial
dwinter
parents:
diff changeset
127 logger.debug("Trying RDFSClass");
47075a8171a6 initial
dwinter
parents:
diff changeset
128 RDFSNamedClass rdfsclass=(RDFSNamedClass)owlModel.getRDFSNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
129 if (rdfsclass != null) {
3
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
130 Collection props2 = rdfsclass.getPossibleRDFProperties();
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
131 //System.out.println(props2);
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
132
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
133 Collection props1 = rdfsclass.getAssociatedProperties();
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
134 props1.addAll(props2);
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
135 return props1;
6c8dac2c5214 New tools export graph and generate landing page of an echo ressource
dwinter
parents: 2
diff changeset
136
0
47075a8171a6 initial
dwinter
parents:
diff changeset
137 } else {
47075a8171a6 initial
dwinter
parents:
diff changeset
138 logger.debug("Cannot find RDFSClass:" + string);
47075a8171a6 initial
dwinter
parents:
diff changeset
139 return null;
47075a8171a6 initial
dwinter
parents:
diff changeset
140 }
47075a8171a6 initial
dwinter
parents:
diff changeset
141 }
47075a8171a6 initial
dwinter
parents:
diff changeset
142
47075a8171a6 initial
dwinter
parents:
diff changeset
143
47075a8171a6 initial
dwinter
parents:
diff changeset
144
47075a8171a6 initial
dwinter
parents:
diff changeset
145 }
47075a8171a6 initial
dwinter
parents:
diff changeset
146
47075a8171a6 initial
dwinter
parents:
diff changeset
147 /**
47075a8171a6 initial
dwinter
parents:
diff changeset
148 * Gibt alle direkten Properties der angegebenen Klasse zurueck.
47075a8171a6 initial
dwinter
parents:
diff changeset
149 * @param string
47075a8171a6 initial
dwinter
parents:
diff changeset
150 * @return
47075a8171a6 initial
dwinter
parents:
diff changeset
151 */
47075a8171a6 initial
dwinter
parents:
diff changeset
152 public Collection getDirectPropsForClass(String string, Boolean transitiv) {
47075a8171a6 initial
dwinter
parents:
diff changeset
153
47075a8171a6 initial
dwinter
parents:
diff changeset
154
47075a8171a6 initial
dwinter
parents:
diff changeset
155
47075a8171a6 initial
dwinter
parents:
diff changeset
156 OWLNamedClass owlclass;
47075a8171a6 initial
dwinter
parents:
diff changeset
157 try {
47075a8171a6 initial
dwinter
parents:
diff changeset
158 owlclass = (OWLNamedClass) owlModel.getOWLNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
159 } catch (Exception e) {
47075a8171a6 initial
dwinter
parents:
diff changeset
160 logger.debug("Problem getting OWLClass, try RDFS later.");
47075a8171a6 initial
dwinter
parents:
diff changeset
161 //wenn eine Klasse sowohl eine RDFS als auch per Zuordnung in der Ontologie eine OWL classe ist, wir hier eine Fehler ausgeworfen:
47075a8171a6 initial
dwinter
parents:
diff changeset
162 //java.lang.ClassCastException: edu.stanford.smi.protegex.owl.model.impl.DefaultRDFSNamedClass cannot be cast to edu.stanford.smi.protegex.owl.model.OWLNamedClass
47075a8171a6 initial
dwinter
parents:
diff changeset
163 //at edu.stanford.smi.protegex.owl.model.impl.AbstractOWLModel.getOWLNamedClass(Unknown Source)
47075a8171a6 initial
dwinter
parents:
diff changeset
164 owlclass= null;
47075a8171a6 initial
dwinter
parents:
diff changeset
165 }
47075a8171a6 initial
dwinter
parents:
diff changeset
166
47075a8171a6 initial
dwinter
parents:
diff changeset
167 if (owlclass != null) {
47075a8171a6 initial
dwinter
parents:
diff changeset
168 return owlclass.getUnionDomainProperties(transitiv);
47075a8171a6 initial
dwinter
parents:
diff changeset
169 } else {
47075a8171a6 initial
dwinter
parents:
diff changeset
170 logger.debug("Cannot find OWLClass:" + string);
47075a8171a6 initial
dwinter
parents:
diff changeset
171 logger.debug("Trying RDFSClass");
47075a8171a6 initial
dwinter
parents:
diff changeset
172 RDFSNamedClass rdfsclass=(RDFSNamedClass)owlModel.getRDFSNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
173 if (rdfsclass != null) {
47075a8171a6 initial
dwinter
parents:
diff changeset
174
47075a8171a6 initial
dwinter
parents:
diff changeset
175 return rdfsclass.getUnionDomainProperties(transitiv);
47075a8171a6 initial
dwinter
parents:
diff changeset
176 } else {
47075a8171a6 initial
dwinter
parents:
diff changeset
177 logger.debug("Cannot find RDFSClass:" + string);
47075a8171a6 initial
dwinter
parents:
diff changeset
178 return null;
47075a8171a6 initial
dwinter
parents:
diff changeset
179 }
47075a8171a6 initial
dwinter
parents:
diff changeset
180 }
47075a8171a6 initial
dwinter
parents:
diff changeset
181
47075a8171a6 initial
dwinter
parents:
diff changeset
182
47075a8171a6 initial
dwinter
parents:
diff changeset
183
47075a8171a6 initial
dwinter
parents:
diff changeset
184 }
47075a8171a6 initial
dwinter
parents:
diff changeset
185
47075a8171a6 initial
dwinter
parents:
diff changeset
186
47075a8171a6 initial
dwinter
parents:
diff changeset
187 public List<String> getEquivalentClasses(String string) {
47075a8171a6 initial
dwinter
parents:
diff changeset
188 OWLNamedClass owlclass = (OWLNamedClass) owlModel
47075a8171a6 initial
dwinter
parents:
diff changeset
189 .getOWLNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
190
47075a8171a6 initial
dwinter
parents:
diff changeset
191 List<String> retList = new ArrayList<String>();
47075a8171a6 initial
dwinter
parents:
diff changeset
192 Collection eqClasses = owlclass.getEquivalentClasses();
47075a8171a6 initial
dwinter
parents:
diff changeset
193 Iterator it = eqClasses.iterator();
47075a8171a6 initial
dwinter
parents:
diff changeset
194 while(it.hasNext()){
47075a8171a6 initial
dwinter
parents:
diff changeset
195 Object cls = it.next();
47075a8171a6 initial
dwinter
parents:
diff changeset
196 String name = "";
47075a8171a6 initial
dwinter
parents:
diff changeset
197 if (DefaultOWLNamedClass.class.isInstance(cls)){
47075a8171a6 initial
dwinter
parents:
diff changeset
198 name=((DefaultOWLNamedClass)cls).getName();
47075a8171a6 initial
dwinter
parents:
diff changeset
199 } else if (DefaultRDFSNamedClass.class.isInstance(cls)){
47075a8171a6 initial
dwinter
parents:
diff changeset
200 name=((DefaultRDFSNamedClass)cls).getName();
47075a8171a6 initial
dwinter
parents:
diff changeset
201 }
47075a8171a6 initial
dwinter
parents:
diff changeset
202 retList.add(name);
47075a8171a6 initial
dwinter
parents:
diff changeset
203
47075a8171a6 initial
dwinter
parents:
diff changeset
204 }
47075a8171a6 initial
dwinter
parents:
diff changeset
205
47075a8171a6 initial
dwinter
parents:
diff changeset
206 return retList;
47075a8171a6 initial
dwinter
parents:
diff changeset
207 }
47075a8171a6 initial
dwinter
parents:
diff changeset
208
47075a8171a6 initial
dwinter
parents:
diff changeset
209
47075a8171a6 initial
dwinter
parents:
diff changeset
210 public static void main(String args[]) throws RepositoryException, TripleStoreHandlerException {
47075a8171a6 initial
dwinter
parents:
diff changeset
211 TripleStoreHandler th = new TripleStoreHandler("jdbc:virtuoso://virtuoso.mpiwg-berlin.mpg.de:1111", "dba", "dba");
47075a8171a6 initial
dwinter
parents:
diff changeset
212 MetaDataHandler mh = new MetaDataHandler();
47075a8171a6 initial
dwinter
parents:
diff changeset
213
47075a8171a6 initial
dwinter
parents:
diff changeset
214 //Set<DefaultRDFProperty> props= mh.getPropsForClass("http://dbpedia.org/ontology/Person");
47075a8171a6 initial
dwinter
parents:
diff changeset
215
47075a8171a6 initial
dwinter
parents:
diff changeset
216 mh.getEquivalentClasses("http://dbpedia.org/ontology/Person");
47075a8171a6 initial
dwinter
parents:
diff changeset
217
47075a8171a6 initial
dwinter
parents:
diff changeset
218 //Map<String, String> ret = th.getValues(props,"<http://dbpedia.org/resource/Abraham_Lincoln>");
47075a8171a6 initial
dwinter
parents:
diff changeset
219
47075a8171a6 initial
dwinter
parents:
diff changeset
220 //Map<String, String> ret = th.getResources("http://xmlns.com/foaf/0.1/name","Abraham Lincoln","en");
47075a8171a6 initial
dwinter
parents:
diff changeset
221 //System.out.println(ret);
47075a8171a6 initial
dwinter
parents:
diff changeset
222 }
47075a8171a6 initial
dwinter
parents:
diff changeset
223
47075a8171a6 initial
dwinter
parents:
diff changeset
224 public OWLIndividual generateEntity(String clsName, Map<String, Object> values) {
47075a8171a6 initial
dwinter
parents:
diff changeset
225 OWLNamedClass owlclass = (OWLNamedClass) owlModel
47075a8171a6 initial
dwinter
parents:
diff changeset
226 .getOWLNamedClass(clsName);
47075a8171a6 initial
dwinter
parents:
diff changeset
227
47075a8171a6 initial
dwinter
parents:
diff changeset
228 OWLIndividual inst = (OWLIndividual) owlclass.createInstance(null);
47075a8171a6 initial
dwinter
parents:
diff changeset
229 for(String key:values.keySet()){
47075a8171a6 initial
dwinter
parents:
diff changeset
230 RDFProperty property =owlModel.getRDFProperty(key);
47075a8171a6 initial
dwinter
parents:
diff changeset
231 inst.setPropertyValue(property, values.get(key));
47075a8171a6 initial
dwinter
parents:
diff changeset
232
47075a8171a6 initial
dwinter
parents:
diff changeset
233
47075a8171a6 initial
dwinter
parents:
diff changeset
234 }
47075a8171a6 initial
dwinter
parents:
diff changeset
235
47075a8171a6 initial
dwinter
parents:
diff changeset
236 return inst;
47075a8171a6 initial
dwinter
parents:
diff changeset
237 }
47075a8171a6 initial
dwinter
parents:
diff changeset
238
47075a8171a6 initial
dwinter
parents:
diff changeset
239 public OWLIndividual generateEntity(String clsName, String instanceName) {
47075a8171a6 initial
dwinter
parents:
diff changeset
240 OWLNamedClass owlclass = (OWLNamedClass) owlModel
47075a8171a6 initial
dwinter
parents:
diff changeset
241 .getOWLNamedClass(clsName);
47075a8171a6 initial
dwinter
parents:
diff changeset
242
47075a8171a6 initial
dwinter
parents:
diff changeset
243 OWLIndividual inst = (OWLIndividual) owlclass.createInstance(instanceName);
47075a8171a6 initial
dwinter
parents:
diff changeset
244
47075a8171a6 initial
dwinter
parents:
diff changeset
245
47075a8171a6 initial
dwinter
parents:
diff changeset
246 return inst;
47075a8171a6 initial
dwinter
parents:
diff changeset
247 }
47075a8171a6 initial
dwinter
parents:
diff changeset
248
47075a8171a6 initial
dwinter
parents:
diff changeset
249 public OWLIndividual generateEntity(String clsName, String instanceName, Map<String, Object> values) {
47075a8171a6 initial
dwinter
parents:
diff changeset
250 OWLNamedClass owlclass = (OWLNamedClass) owlModel
47075a8171a6 initial
dwinter
parents:
diff changeset
251 .getOWLNamedClass(clsName);
47075a8171a6 initial
dwinter
parents:
diff changeset
252
47075a8171a6 initial
dwinter
parents:
diff changeset
253 OWLIndividual inst = (OWLIndividual) owlclass.createInstance(instanceName);
47075a8171a6 initial
dwinter
parents:
diff changeset
254
47075a8171a6 initial
dwinter
parents:
diff changeset
255 for(String key:values.keySet()){
47075a8171a6 initial
dwinter
parents:
diff changeset
256 RDFProperty property =owlModel.getRDFProperty(key);
47075a8171a6 initial
dwinter
parents:
diff changeset
257 inst.setPropertyValue(property, values.get(key));
47075a8171a6 initial
dwinter
parents:
diff changeset
258
47075a8171a6 initial
dwinter
parents:
diff changeset
259
47075a8171a6 initial
dwinter
parents:
diff changeset
260 }
47075a8171a6 initial
dwinter
parents:
diff changeset
261
47075a8171a6 initial
dwinter
parents:
diff changeset
262 return inst;
47075a8171a6 initial
dwinter
parents:
diff changeset
263 }
47075a8171a6 initial
dwinter
parents:
diff changeset
264
47075a8171a6 initial
dwinter
parents:
diff changeset
265 public void printIndividual(OWLIndividual ind){
47075a8171a6 initial
dwinter
parents:
diff changeset
266 Collection<RDFProperty> props = ind.getRDFProperties();
47075a8171a6 initial
dwinter
parents:
diff changeset
267 Iterator<RDFProperty> propsIts = props.iterator();
47075a8171a6 initial
dwinter
parents:
diff changeset
268 while(propsIts.hasNext()){
47075a8171a6 initial
dwinter
parents:
diff changeset
269 RDFProperty prop = propsIts.next();
47075a8171a6 initial
dwinter
parents:
diff changeset
270 System.err.println(prop.getName()+":"+ind.getPropertyValue(prop));
47075a8171a6 initial
dwinter
parents:
diff changeset
271 }
47075a8171a6 initial
dwinter
parents:
diff changeset
272 }
47075a8171a6 initial
dwinter
parents:
diff changeset
273
47075a8171a6 initial
dwinter
parents:
diff changeset
274 public static MetaDataHandler getInstance(){
47075a8171a6 initial
dwinter
parents:
diff changeset
275
47075a8171a6 initial
dwinter
parents:
diff changeset
276 if (instance==null){
47075a8171a6 initial
dwinter
parents:
diff changeset
277 instance = new MetaDataHandler();
47075a8171a6 initial
dwinter
parents:
diff changeset
278 }
47075a8171a6 initial
dwinter
parents:
diff changeset
279 return instance;
47075a8171a6 initial
dwinter
parents:
diff changeset
280 }
47075a8171a6 initial
dwinter
parents:
diff changeset
281
47075a8171a6 initial
dwinter
parents:
diff changeset
282
47075a8171a6 initial
dwinter
parents:
diff changeset
283
47075a8171a6 initial
dwinter
parents:
diff changeset
284
47075a8171a6 initial
dwinter
parents:
diff changeset
285 }