================================================================================ = Graph Elements = ================================================================================ |--------------------------------------| | Nodes | |--------------------------------------| | integer | ID | |--------------------------------------| | sequence NodeID | |--------------------------------------| |--------------------------------------| | Links | |--------------------------------------| | integer | ID | | integer | Source | <- Nodes::ID | integer | Target | <- Nodes::ID |--------------------------------------| | sequence LinkID | |--------------------------------------| ================================================================================ = Properties = ================================================================================ |--------------------------------------| | PropertyDataTypes | |--------------------------------------| | integer | ID | | varchar(255) | Name | |--------------------------------------| | sequence PropertyDataTypeID | |--------------------------------------| |--------------------------------------| | PropertyNamespaces | |--------------------------------------| | integer | ID | | varchar(255) | Name | | integer | Parent | |--------------------------------------| | sequence PropertyNamespaceID | |--------------------------------------| |--------------------------------------| | NodeProperties | |--------------------------------------| | integer | ID | | integer | DataType | <- PropertyDataTypes::ID | varchar(255) | Name | | integer | Namespace | <- PropertyNamespaces::ID |--------------------------------------| | sequence NodePropertyID | |--------------------------------------| \ \ |--------------------------------------| | NodeIntegerProperties | |--------------------------------------| | integer | Node | <- Nodes::ID | integer | Property | <- NodeProperties::ID | integer | Value | |--------------------------------------| |--------------------------------------| | NodeStringProperties | |--------------------------------------| | integer | Node | <- Nodes::ID | integer | Property | <- NodeProperties::ID | varchar(255) | Value | |--------------------------------------| |--------------------------------------| | NodeByteArrayProperties | |--------------------------------------| | integer | Node | <- Nodes::ID | integer | Property | <- NodeProperties::ID | bytea | Value | |--------------------------------------| [ other types as appropriate ] |--------------------------------------| | PropertyDataTypes | |--------------------------------------| | serial | ID | | varchar(255) | Name | |--------------------------------------| |--------------------------------------| | LinkProperties | |--------------------------------------| | integer | ID | | integer | DataType | <- PropertyDataTypes::ID | varchar(255) | Name | | integer | Namespace | <- PropertyNamespaces::ID |--------------------------------------| | sequence LinkPropertyID | |--------------------------------------| \ \ |--------------------------------------| | LinkIntegerProperties | |--------------------------------------| | integer | Link | <- Links::ID | integer | Property | <- LinkProperties::ID | integer | Value | |--------------------------------------| |--------------------------------------| | LinkStringProperties | |--------------------------------------| | integer | Link | <- Links::ID | integer | Property | <- LinkProperties::ID | varchar(255) | Value | |--------------------------------------| |--------------------------------------| | LinkByteArrayProperties | |--------------------------------------| | integer | Link | <- Links::ID | integer | Property | <- LinkProperties::ID | bytea | Value | |--------------------------------------| [ other types as appropriate ]