jade.content.schema
Class PredicateSchema

java.lang.Object
  |
  +--jade.content.schema.ObjectSchema
        |
        +--jade.content.schema.ObjectSchemaImpl
              |
              +--jade.content.schema.ContentElementSchema
                    |
                    +--jade.content.schema.PredicateSchema
All Implemented Interfaces:
java.io.Serializable, Serializable

public class PredicateSchema
extends ContentElementSchema

The class to be used to define schemas of predicates in an ontology.

Author:
Federico Bergenti - Universita` di Parma
See Also:
Serialized Form

Field Summary
static java.lang.String BASE_NAME
           
 
Fields inherited from class jade.content.schema.ObjectSchema
baseSchema, encodingByOrder, MANDATORY, OPTIONAL, UNLIMITED
 
Constructor Summary
PredicateSchema(java.lang.String typeName)
          Creates a PredicateSchema with a given type-name, e.g.
 
Method Summary
 void add(java.lang.String name, ObjectSchema slotSchema)
          Add a mandatory slot to this schema.
 void add(java.lang.String name, ObjectSchema slotSchema, int optionality)
          Add a slot to this schema.
 void add(java.lang.String name, TermSchema elementsSchema, int cardMin, int cardMax)
          Add a slot with cardinality between cardMin and cardMax to this schema.
 void add(java.lang.String name, TermSchema elementsSchema, int cardMin, int cardMax, java.lang.String aggType)
          Add a slot with cardinality between cardMin and cardMax to this schema and allow specifying the type of Aggregate to be used for this slot.
 void addFacet(java.lang.String slotName, Facet f)
          Add a Facet on a slot of this schema
 void addSuperSchema(PredicateSchema superClassSchema)
          Adds a super-schema to this schema.
protected  boolean descendsFrom(ObjectSchema s)
          Return true if - s is the base schema for the XXXSchema class this schema is an instance of (e.g. s is ConceptSchema.getBaseSchema() and this schema is an instance of ConceptSchema) - s is the base schema for a super-class of the XXXSchema class this schema is an instance of (e.g. s is TermSchema.getBaseSchema() and this schema is an instance of ConceptSchema)
static ObjectSchema getBaseSchema()
          Retrieve the generic base schema for all predicates.
 AbsObject newInstance()
          Creates an Abstract descriptor to hold a predicate of the proper type.
 void validate(AbsObject abs, Ontology onto)
          Check whether a given abstract descriptor complies with this schema.
 
Methods inherited from class jade.content.schema.ContentElementSchema
add, add, addSuperSchema, containsSlot, equals, getFacets, getNames, getSchema, getTypeName, isCompatibleWith, isMandatory, toString, validateSlots
 
Methods inherited from class jade.content.schema.ObjectSchema
getEncodingByOrder, setEncodingByOrder
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

BASE_NAME

public static final java.lang.String BASE_NAME
See Also:
Constant Field Values
Constructor Detail

PredicateSchema

public PredicateSchema(java.lang.String typeName)
Creates a PredicateSchema with a given type-name, e.g. FATHER_OF, WORKS_FOR...

Parameters:
typeName - The name of this PredicateSchema.
Method Detail

getBaseSchema

public static ObjectSchema getBaseSchema()
Retrieve the generic base schema for all predicates.

Returns:
the generic base schema for all predicates.

add

public void add(java.lang.String name,
                ObjectSchema slotSchema)
Add a mandatory slot to this schema.

Overrides:
add in class jade.content.schema.ObjectSchemaImpl
Parameters:
name - The name of the slot.
slotSchema - The schema of the slot.

add

public void add(java.lang.String name,
                ObjectSchema slotSchema,
                int optionality)
Add a slot to this schema.

Overrides:
add in class jade.content.schema.ObjectSchemaImpl
Parameters:
name - The name of the slot.
slotSchema - The schema of the slot.
optionality - The optionality, i.e. OPTIONAL or MANDATORY

add

public void add(java.lang.String name,
                TermSchema elementsSchema,
                int cardMin,
                int cardMax)
Add a slot with cardinality between cardMin and cardMax to this schema. Adding such a slot corresponds to add a slot of type Aggregate and then to add proper facets (constraints) to check that the type of the elements in the aggregate are compatible with elementsSchema and that the aggregate contains at least cardMin elements and at most cardMax elements. By default the Aggregate is of type BasicOntology.SEQUENCE.

Parameters:
name - The name of the slot.
elementsSchema - The schema for the elements of this slot.
cardMin - This slot must get at least cardMin values
cardMax - This slot can get at most cardMax values

add

public void add(java.lang.String name,
                TermSchema elementsSchema,
                int cardMin,
                int cardMax,
                java.lang.String aggType)
Add a slot with cardinality between cardMin and cardMax to this schema and allow specifying the type of Aggregate to be used for this slot.

Parameters:
name - The name of the slot.
elementsSchema - The schema for the elements of this slot.
cardMin - This slot must get at least cardMin values
cardMax - This slot can get at most cardMax values
aggType - The type of Aggregate to be used
See Also:
add(String, TermSchema, int, int)

addSuperSchema

public void addSuperSchema(PredicateSchema superClassSchema)
Adds a super-schema to this schema. This allows defining inheritance relationships between ontological predicates. It must be noted that a predicate always inherits from another predicate --> A super-schema of a PredicateSchema must be a PredicateSchema too.

Parameters:
superClassSchema - The super-schema to be added.

addFacet

public void addFacet(java.lang.String slotName,
                     Facet f)
              throws OntologyException
Add a Facet on a slot of this schema

Overrides:
addFacet in class jade.content.schema.ObjectSchemaImpl
Parameters:
slotName - the name of the slot the Facet must be added to.
f - the Facet to be added.
Throws:
OntologyException - if slotName does not identify a valid slot in this schema

newInstance

public AbsObject newInstance()
                      throws OntologyException
Creates an Abstract descriptor to hold a predicate of the proper type.

Overrides:
newInstance in class ContentElementSchema
OntologyException

validate

public void validate(AbsObject abs,
                     Ontology onto)
              throws OntologyException
Check whether a given abstract descriptor complies with this schema.

Overrides:
validate in class jade.content.schema.ObjectSchemaImpl
Parameters:
abs - The abstract descriptor to be checked
Throws:
OntologyException - If the abstract descriptor does not complies with this schema

descendsFrom

protected boolean descendsFrom(ObjectSchema s)
Return true if - s is the base schema for the XXXSchema class this schema is an instance of (e.g. s is ConceptSchema.getBaseSchema() and this schema is an instance of ConceptSchema) - s is the base schema for a super-class of the XXXSchema class this schema is an instance of (e.g. s is TermSchema.getBaseSchema() and this schema is an instance of ConceptSchema)

Overrides:
descendsFrom in class ContentElementSchema


JADE