Initial Design
- Basic Table
- Name: Name of keyspace / database: Provided
- Description: Description of the keyspace.
- URL: ? Part of description?
- ID: 1st Row. Unique ID in this keyspace
- Item Name: Displayable name for item
- Item Description: Displayable description for item
- First three items in separate table? How connect?
- Link Table: One for each basic table, or one for each BT :: BT we track: Provided
- ID: From Basic Table
- Target Keyspace: Keyspace this link is to (only needed if 1 LT per BT)
- Target: ID from Target Keyspace
- Multiplicity: 1-to-1, many-to-1, 1-to-many, many-to-many
- Direction: unidirectional (left to right, default), bidirectional
- Allows 1-1, 1-Many and Many-Many
- Connection Efficiency: Calculated
- Start Keyspace
- End Keyspace
- Percent "hits": Percent of items in A that have matches in B
- Length: Length of path
- Quality: ? Measure of 1-1 v. 1-Many ?
- ConnID? : Jump Table unique identifier.
- Given starting and ending keyspaces, find out which path is likely to provide the best mapping in terms of:
- least number of unmapped keys (false-negatives)
- least number of ambiguous matches (false-positives). probably won't use this as an optimization score but rather as a filter. E.g. consider all paths that don't increase ambiguity above 2 matches.
- Jump Table: One per Jump Level > 1. How to get from A to B: Calculated
- Unique ID
- Intermediate Keyspace
- Order: 1 .. N, where N is Jump Level
- This table defines the path you will follow to get from one keyspace to another.
- If Start::End is a 1-Many relationship, may have multiple records for each Start ID.
- Operation:
- Do direct lookup (using link table).
- If get hit, report it
- Allow user to ask for more hits
- If user wants more, or there wasn't a match, start using the Jump Tables
- Indirect lookups
- User sets a max jump count
- We can set one, too (at worse, max jumps == count of Basic Tables)
- First check any "pure" (all 1-1) paths, in decreasing percentage order
- If no hit, then iterate over other paths.
- Let user choose quality v length?
-- Main.gregd - 21 Jun 2007