iitb.con.ds
Class RelationTable

java.lang.Object
  extended by iitb.con.ds.RelationTable

public class RelationTable
extends java.lang.Object

Relation Table hold the relation information of the concept-net as . The table can be searched using left-entity id as it is maintained in the sorted order. Similarly the search can made against the relation id and it is searched using the instance ids index. The tuples are maintained in blocks (4KB) and brought to the main memory on demand. On commit at concept-net level, the added information are committed to the disk.


Field Summary
static int LEFT_ENTITY_IDX
          Left entity index
static int RELATION_IDX
          Relation index
static int RIGHT_ENTITY_IDX
          Right entity index
 
Constructor Summary
RelationTable(java.lang.String dirName, long cacheSize)
          Concept net directory name is provided to locate the necessary files.
 
Method Summary
 void close()
          Closes the relation table associated files
 void commit()
          Commits the relation table changes
 int[] getAllRelationIds()
          Returns all the relation ids of the current array grid
 int getLeftEntityId(int relationId)
          Returns the left entity id for the given relation id
 Unbound2DIntArray getRelationTupleByRelationId(int relationId)
          Returns the relation tuple based on the realtion id.
 Unbound2DIntArray getRelationTuplesByEntityId(int leftEntityId)
          Returns the relation tuples based on the left entity id.
 int getRightEntityId(int relationId)
          Returns the right entity id for the given relation id
 boolean insert(int leftId, int relationId, int rightId)
          Inserts the relation tuple into the relation table
 boolean removeInstance(int leftId)
          Removes the relation tuples based on the left entity id.
 boolean removeRelation(int relationId)
          Removes the relation tuple based on the relation id
 boolean update(int leftId, int relationId, int rightId)
          Updates the relation tuple in the relation table.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LEFT_ENTITY_IDX

public static final int LEFT_ENTITY_IDX
Left entity index

See Also:
Constant Field Values

RELATION_IDX

public static final int RELATION_IDX
Relation index

See Also:
Constant Field Values

RIGHT_ENTITY_IDX

public static final int RIGHT_ENTITY_IDX
Right entity index

See Also:
Constant Field Values
Constructor Detail

RelationTable

public RelationTable(java.lang.String dirName,
                     long cacheSize)
              throws java.io.FileNotFoundException,
                     java.io.IOException
Concept net directory name is provided to locate the necessary files. Also initialzed with cache size

Parameters:
dirName - concept-net directory name
cacheSize - cache size
Throws:
java.io.FileNotFoundException
java.io.IOException
Method Detail

close

public void close()
Closes the relation table associated files


commit

public void commit()
Commits the relation table changes


getAllRelationIds

public int[] getAllRelationIds()
Returns all the relation ids of the current array grid

Returns:
relation ids as integer array

getLeftEntityId

public int getLeftEntityId(int relationId)
Returns the left entity id for the given relation id

Parameters:
relationId - relation id
Returns:
left entity id of the relation

getRelationTupleByRelationId

public Unbound2DIntArray getRelationTupleByRelationId(int relationId)
Returns the relation tuple based on the realtion id.

Parameters:
relationId - relation id
Returns:
true on success

getRelationTuplesByEntityId

public Unbound2DIntArray getRelationTuplesByEntityId(int leftEntityId)
Returns the relation tuples based on the left entity id.

Parameters:
leftEntityId - left entity id
Returns:
true on success

getRightEntityId

public int getRightEntityId(int relationId)
Returns the right entity id for the given relation id

Parameters:
relationId - relation id
Returns:
left entity id of the relation

insert

public boolean insert(int leftId,
                      int relationId,
                      int rightId)
Inserts the relation tuple into the relation table

Parameters:
leftId - left entity id
relationId - relation id
rightId - right entity id
Returns:
true on success

removeInstance

public boolean removeInstance(int leftId)
Removes the relation tuples based on the left entity id.

Parameters:
leftId - left entity id
Returns:
true on success

removeRelation

public boolean removeRelation(int relationId)
Removes the relation tuple based on the relation id

Parameters:
relationId - relation id
Returns:
true on success

update

public boolean update(int leftId,
                      int relationId,
                      int rightId)
Updates the relation tuple in the relation table. Relation id is used as key to update the tuple.

Parameters:
leftId - left entity id
relationId - relation id
rightId - right entity id
Returns:
true on success