OResource.java
001 /*
002  *  OResource.java
003  *
004  *  Niraj Aswani, 09/March/07
005  *
006  *  $Id: OResource.html,v 1.0 2007/03/09 16:13:01 niraj Exp $
007  */
008 package gate.creole.ontology;
009 
010 import java.util.List;
011 import java.util.Locale;
012 import java.util.Set;
013 
014 /**
015  * This is the top level interface for all ontology resources such as
016  * classes, instances and properties.
017  *
018  @author Niraj Aswani
019  @author Johann Petrak
020  
021  */
022 public interface OResource  {
023   /**
024    * Gets the URI of the resource.
025    
026    @return the URI.
027    @deprecated 
028    */
029   @Deprecated
030   public URI getURI();
031 
032   public ONodeID getONodeID();
033 
034   /**
035    * Sets the URI of the resource
036    
037    @param uri
038    @deprecated
039    */
040   @Deprecated
041   public void setURI(URI uri);
042 
043   /**
044    * This method returns a set of labels specified on this resource.
045    */
046   public Set<Literal> getLabels();
047 
048   /**
049    * This method returns a set of comments specified on this resource.
050    @deprecated
051    */
052   @Deprecated
053   public Set<Literal> getComments();
054 
055   /**
056    * Gets the comment set on the resource in the specified language.
057    * Returns null if no comment found for the specified language.
058    
059    @param language (@see OConstants for available locales)
060    @return the comment of the resource
061    @deprecated
062    */
063   @Deprecated
064   public String getComment(Locale language);
065 
066   /**
067    * Sets the comment for the resource with the specified language.
068    
069    @param aComment the comment to be set.
070    @param Locale
071    @deprecated
072    */
073   @Deprecated
074   public void setComment(String aComment, Locale Locale);
075 
076   /**
077    * Gets the comment set on the resource in the specified language.
078    * Returns null if no comment found for the specified language.
079    
080    @param language
081    @return the label of the resource
082    @deprecated
083    */
084   @Deprecated
085   public String getLabel(Locale language);
086 
087   /**
088    * Sets the label for the resource with the specified language.
089    
090    @param aLabel the label to be set.
091    @param language the anguage of the label. (@see OConstants for
092    *          available locales)
093    */
094   public void setLabel(String aLabel, Locale language);
095 
096   /**
097    * Gets resource name. Typically a string after the last '#' or '/'
098    
099    @return the name of the resource.
100    */
101   public String getName();
102 
103   /**
104    * Gets the ontology to which the resource belongs.
105    
106    @return the {@link Ontology} to which the resource belongs
107    */
108   public Ontology getOntology();
109 
110   /**
111    * Adds a new annotation property value and specifies the language.
112    
113    @param theAnnotationProperty the annotation property
114    @param literal the Literal containing some value
115    */
116   public void addAnnotationPropertyValue(
117           AnnotationProperty theAnnotationProperty, Literal literal);
118 
119   /**
120    * Gets the list of values for a given property name. Values that are not
121    * literals are ignored. 
122    
123    @param theAnnotationProperty
124    @return a List of {@link Literal}.
125    */
126   public List<Literal> getAnnotationPropertyValues(
127           AnnotationProperty theAnnotationProperty);
128 
129   /**
130    * This method returns the annotation properties set on this resource.
131    */
132   public Set<AnnotationProperty> getSetAnnotationProperties();
133 
134   /**
135    * This method returns all the set properties set on this resource.
136    */
137   public Set<RDFProperty> getAllSetProperties();
138 
139   /**
140    * This method returns a set of all properties where the current
141    * resource has been specified as one of the domain resources.
142    */
143   public Set<RDFProperty> getPropertiesWithResourceAsDomain();
144 
145   /**
146    * This method returns a set of all properties where the current
147    * resource has been specified as one of the range resources.
148    */
149   public Set<RDFProperty> getPropertiesWithResourceAsRange();
150 
151   /**
152    * Checks if the resource has the provided annotation property set on
153    * it with the specified value.
154    */
155   public boolean hasAnnotationPropertyWithValue(AnnotationProperty aProperty,
156           Literal aValue);
157 
158   /**
159    * For the current resource, the method removes the given literal for
160    * the given property.
161    */
162   public void removeAnnotationPropertyValue(
163           AnnotationProperty theAnnotationProperty, Literal literal);
164 
165   /**
166    * Removes all values for a named property.
167    
168    @param theProperty the property
169    */
170   public void removeAnnotationPropertyValues(AnnotationProperty theProperty);
171 
172 }