View Javadoc

1   /*
2    wsmo4j - a WSMO API and Reference Implementation
3   
4    Copyright (c) 2004-2005, OntoText Lab. / SIRMA
5   
6    This library is free software; you can redistribute it and/or modify it under
7    the terms of the GNU Lesser General Public License as published by the Free
8    Software Foundation; either version 2.1 of the License, or (at your option)
9    any later version.
10   This library is distributed in the hope that it will be useful, but WITHOUT
11   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12   FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13   details.
14   You should have received a copy of the GNU Lesser General Public License along
15   with this library; if not, write to the Free Software Foundation, Inc.,
16   59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17   */
18  
19  /**
20   * <p>Title: WSMO4J</p>
21   * <p>Description: WSMO API and a Reference Implementation</p>
22   * <p>Copyright:  Copyright (c) 2004-2005</p>
23   * <p>Company: OntoText Lab. / SIRMA </p>
24   */
25  
26  package org.omwg.ontology;
27  
28  
29  import java.util.*;
30  
31  import org.wsmo.common.*;
32  import org.wsmo.common.exception.*;
33  
34  
35  /**
36   * This interface represents a WSMO ontology.
37   *
38   * @author not attributable
39   * @version $Revision: 1946 $ $Date: 2007-04-02 15:13:28 +0300 (Mon, 02 Apr 2007) $
40   */
41  public interface Ontology
42      extends TopEntity {
43  
44      /**
45       * Adds a new concept to this ontology.
46       * Note that a call to addXXX() i.e. adding an element to an ontology, should also
47       * invoke the respective element's setOntology() method
48       * @param concept The new concept to be added.
49       * @throws org.wsmo.common.exception.SynchronisationException
50       * @throws org.wsmo.common.exception.InvalidModelException
51       * @see #removeConcept(Concept concept)
52       * @see #removeConcept(Identifier id)
53       * @see OntologyElement#setOntology(Ontology ontology)
54       */
55      void addConcept(Concept concept)
56          throws SynchronisationException, InvalidModelException;
57  
58      /**
59       * Removes a particular concept from this ontology.
60       * @param concept The concept to be removed.
61       * @throws org.wsmo.common.exception.SynchronisationException
62       * @throws org.wsmo.common.exception.InvalidModelException
63       * @see #removeConcept(Identifier id)
64       */
65      void removeConcept(Concept concept)
66          throws SynchronisationException, InvalidModelException;
67  
68      /**
69       * Removes a particular concept from this ontology.
70       * @param concept The concept to be removed.
71       * @throws org.wsmo.common.exception.SynchronisationException
72       * @throws org.wsmo.common.exception.InvalidModelException
73       * @see #removeConcept(Concept)
74       */
75      void removeConcept(Identifier id)
76          throws SynchronisationException, InvalidModelException;
77  
78      /**
79       * Lists the concepts defined by this ontology.
80       * @return A set of concepts that this ontology contains.
81       * @throws org.wsmo.common.exception.SynchronisationException
82       * @see org.omwg.ontology.Concept
83       */
84      Set <Concept> listConcepts()
85          throws SynchronisationException;
86  
87      /**
88       * Finds a concept in the set of concepts defined by this ontology (returns <i>null</i> if none found).
89       * @param id The Identifier of the requested concept.
90       * @throws org.wsmo.common.exception.SynchronisationException
91       */
92      Concept findConcept(Identifier id)
93          throws SynchronisationException;
94  
95      /**
96       * Adds a new relation to the list of relations defined by this ontology.
97       * Note that a call to addXXX() i.e. adding an element to an ontology, should also
98       * invoke the respective element's setOntology() method
99       * @param relation The relatino ot be added.
100      * @throws org.wsmo.common.exception.SynchronisationException
101      * @throws org.wsmo.common.exception.InvalidModelException
102      * @see #removeRelation(Relation relation)
103      * @see #removeRelation(Identifier id)
104      * @see OntologyElement#setOntology(Ontology ontology)
105      */
106 
107     void addRelation(Relation relation)
108         throws SynchronisationException, InvalidModelException;
109 
110     /**
111      * Removes a relation from the list of relations defined by this ontology.
112      * @param relation The relation to be removed.
113      * @throws org.wsmo.common.exception.SynchronisationException
114      * @throws org.wsmo.common.exception.InvalidModelException
115      * @see #removeRelation(Identifier id)
116      */
117     void removeRelation(Relation relation)
118         throws SynchronisationException, InvalidModelException;
119 
120     /**
121      * Removes a relation from the list of relations defined by this ontology.
122      * @param relation The relation to be removed.
123      * @throws org.wsmo.common.exception.SynchronisationException
124      * @throws org.wsmo.common.exception.InvalidModelException
125      * @see #removeRelation(Relation)
126      */
127     void removeRelation(Identifier id)
128         throws SynchronisationException, InvalidModelException;
129 
130     /**
131      * Lists the relations defined by this ontology.
132      * @return A set of relations defined in this ontology.
133      * @throws org.wsmo.common.exception.SynchronisationException
134      * @see Relation
135      */
136     Set <Relation> listRelations()
137         throws SynchronisationException;
138 
139     /**
140      * Finds a relation in the set of relations defined by this ontology (returns NULL if none found).
141      * @param id The Identifier of the requested relation.
142      * @throws org.wsmo.common.exception.SynchronisationException
143      */
144     Relation findRelation(Identifier id)
145         throws SynchronisationException;
146 
147     /**
148      * Adds a new instance to the list of instances defined by this ontology.
149      * Note that a call to addXXX() i.e. adding an element to an ontology, should also
150      * invoke the respective element's setOntology() method
151      * @param instance The new instance to be added.
152      * @throws org.wsmo.common.exception.SynchronisationException
153      * @throws org.wsmo.common.exception.InvalidModelException
154      * @see #removeInstance(Instance instance)
155      * @see #removeInstance(Identifier id)
156      * @see OntologyElement#setOntology(Ontology ontology)
157      */
158     void addInstance(Instance instance)
159         throws SynchronisationException, InvalidModelException;
160 
161     /**
162      * Removes an instance from the list of instances defined by this ontology.
163      * @param instance The instance to be removed.
164      * @throws org.wsmo.common.exception.SynchronisationException
165      * @throws org.wsmo.common.exception.InvalidModelException
166      * @see #removeInstance(Identifier id)
167      */
168     void removeInstance(Instance instance)
169         throws SynchronisationException, InvalidModelException;
170 
171     /**
172      * Removes an instance from the list of instances defined by this ontology.
173      * @param instance The instance to be removed.
174      * @throws org.wsmo.common.exception.SynchronisationException
175      * @throws org.wsmo.common.exception.InvalidModelException
176      * @see #removeInstance(Instance)
177      */
178     void removeInstance(Identifier id)
179         throws SynchronisationException, InvalidModelException;
180 
181     /**
182      * Lists the instances defined by this ontology.
183      * @return The list of instances defined by this ontology.
184      * @throws org.wsmo.common.exception.SynchronisationException
185      * @see Instance
186      */
187     Set <Instance> listInstances()
188         throws SynchronisationException;
189 
190     /**
191      * Finds an instance in the set of instances defined by this ontology (returns NULL if none found).
192      * @param id The Identifier of the requested instance.
193      * @throws org.wsmo.common.exception.SynchronisationException
194      */
195     Instance findInstance(Identifier id)
196         throws SynchronisationException;
197 
198     /**
199      * Adds a new axiom to the set of axioms defined by this ontology.
200      * Note that a call to addXXX() i.e. adding an element to an ontology, should also
201      * invoke the respective element's setOntology() method
202      * @param axiom The new axioms to be added.
203      * @throws org.wsmo.common.exception.SynchronisationException
204      * @throws org.wsmo.common.exception.InvalidModelException
205      * @see #removeAxiom(Axiom axiom)
206      * @see #removeAxiom(Identifier id)
207      * @see OntologyElement#setOntology(Ontology ontology)
208      */
209     void addAxiom(Axiom axiom)
210         throws SynchronisationException, InvalidModelException;
211 
212     /**
213      * Removes an axiom from the set of axioms defined by this ontology.
214      * @param axiom The axiom to be removed.
215      * @throws org.wsmo.common.exception.SynchronisationException
216      * @throws org.wsmo.common.exception.InvalidModelException
217      * @see #removeAxiom(Identifier id)
218      */
219     void removeAxiom(Axiom axiom)
220         throws SynchronisationException, InvalidModelException;
221 
222     /**
223      * Removes an axiom from the set of axioms defined by this ontology.
224      * @param id The ID of the axiom to be removed.
225      * @throws org.wsmo.common.exception.SynchronisationException
226      * @throws org.wsmo.common.exception.InvalidModelException
227      * @see #removeAxiom(Axiom axiom)
228      */
229     void removeAxiom(Identifier id)
230         throws SynchronisationException, InvalidModelException;
231 
232     /**
233      * Lists the axioms defined by this ontology.
234      * @return The set of axioms defined by this ontology.
235      * @throws org.wsmo.common.exception.SynchronisationException
236      * @see Axiom
237      */
238     Set <Axiom> listAxioms()
239         throws SynchronisationException;
240 
241     /**
242      * Finds an axiom in the set of axioms defined by this ontology (returns NULL if none found).
243      * @param id The Identifier of the requested axiom.
244      * @throws org.wsmo.common.exception.SynchronisationException
245      */
246     Axiom findAxiom(Identifier id)
247         throws SynchronisationException;
248 
249     /**
250      * Lists the relationInstances defined by this ontology.
251      * @return The list of relationInstances defined by this ontology.
252      * @throws org.wsmo.common.exception.SynchronisationException
253      * @see RelationInstance
254      */
255     Set <RelationInstance> listRelationInstances()
256         throws SynchronisationException;
257 
258     /**
259      * Adds a new relationInstance to the list of relationInstances defined by this ontology.
260      * Note that a call to addXXX() i.e. adding an element to an ontology, should also
261      * invoke the respective element's setOntology() method
262      * @param instance The new relationInstance to be added.
263      * @throws org.wsmo.common.exception.SynchronisationException
264      * @throws org.wsmo.common.exception.InvalidModelException
265      * @see #removeRelationInstance(RelationInstance instance)
266      * @see #removeRelationInstance(Identifier id)
267      * @see OntologyElement#setOntology(Ontology ontology)
268      */
269     void addRelationInstance(RelationInstance instance)
270         throws SynchronisationException, InvalidModelException;
271 
272     /**
273      * Removes a relationInstance from the list of relationInstances defined by this ontology.
274      * @param instance The relationInstance to be removed.
275      * @throws org.wsmo.common.exception.SynchronisationException
276      * @throws org.wsmo.common.exception.InvalidModelException
277      * @see #removeRelationInstance(Identifier id)
278      */
279     void removeRelationInstance(RelationInstance instance)
280         throws SynchronisationException, InvalidModelException;
281 
282     /**
283      * Removes a relationInstance from the list of relationInstances defined by this ontology.
284      * @param id The ID of the relationInstance to be removed.
285      * @throws org.wsmo.common.exception.SynchronisationException
286      * @throws org.wsmo.common.exception.InvalidModelException
287      * @see #removeRelationInstance(RelationInstance instance)
288      */
289     void removeRelationInstance(Identifier id)
290         throws SynchronisationException, InvalidModelException;
291 
292     /**
293      * Finds a relation instance in the set of relation instances defined by this ontology (returns NULL if none found).
294      * @param id The Identifier of the requested relation instance.
295      * @throws org.wsmo.common.exception.SynchronisationException
296      */
297     RelationInstance findRelationInstance(Identifier id)
298         throws SynchronisationException;
299 
300     /**
301      * Finds an object (axiom, concept, function, instance, relation, etc), returns NULL if none found.
302      * Note that if metamodelling is used (e.g. the WSMl variant is more powerful than WSML-Core) then more
303      * than one entity may correspond to a given ID.
304      * @param id The Identifier of the requested object.
305      * @throws org.wsmo.common.exception.SynchronisationException
306      * @see Entity
307      */
308     Set <Entity> findEntity(Identifier id)
309         throws SynchronisationException;
310 
311 //DO NOT EDIT below this line
312 
313     /**
314      * @link aggregationByValue
315      * @supplierCardinality 0..*
316      * @supplierRole contains
317      * @clientCardinality 1
318      * @clientRole defined-in
319      */
320     /*# Axiom lnkAxiom; */
321 
322     /**
323      * @link aggregationByValue
324      * @supplierCardinality 0..*
325      * @supplierRole contains
326      * @clientCardinality 1
327      * @clientRole defined-in
328      */
329     /*# Relation lnkRelation; */
330 
331     /**
332      * @link aggregationByValue
333      * @supplierCardinality 0..*
334      * @supplierRole contains
335      * @clientCardinality 1
336      * @clientRole defined-in
337      */
338     /*# RelationInstance lnkRelationInstance; */
339 
340     /**
341      * @link aggregationByValue
342      * @supplierCardinality 0..*
343      * @supplierRole contains
344      * @clientCardinality 1
345      * @clientRole defined-in
346      */
347     /*# Instance lnkInstance; */
348 
349     /**
350      * @link aggregationByValue
351      * @supplierCardinality 0..*
352      * @supplierRole contains
353      * @clientCardinality 1
354      * @clientRole defined-in
355      */
356     /*# Concept lnkConcept; */
357 }
358 
359 /*
360  * $Log$
361  * Revision 1.22  2007/04/02 12:13:14  morcen
362  * Generics support added to wsmo-api, wsmo4j and wsmo-test
363  *
364  * Revision 1.21  2005/10/18 09:08:04  marin_dimitrov
365  * findEntity resturns Set (was Entity[])
366  *
367  * Revision 1.20  2005/10/17 13:17:21  marin_dimitrov
368  * metamodeliing extensions
369  *
370  * Revision 1.19  2005/09/21 08:15:39  holgerlausen
371  * fixing java doc, removing asString()
372  *
373  * Revision 1.18  2005/06/01 10:13:40  marin_dimitrov
374  * v0.4.0
375  *
376  * Revision 1.7  2005/05/13 15:38:26  marin
377  * fixed javadoc errors
378  *
379  * Revision 1.6  2005/05/13 13:29:12  marin
380  * more comments
381  *
382  * Revision 1.5  2005/05/13 13:17:38  marin
383  * javadoc, header, footer, etc
384  *
385  */