NOUN = 1,
I believe this can store pretty much anything you might want to know about a piece of information at a later time. Some notes: Obviously, for names I could simply link all names to an CI labeled 'name', but that might be a bit impractical, so I think it's more efficient to store the type of common things like persons, companies etc in the m_Type field for fast lookup. Maybe it's too early for optimizations and special cases, but I couldn't resist.
Source is a string describing the source of information. This can be an IP address for merged data, a user name for locally acquired data, or a http link for online gathered info.
Here's a sketch of the Link class:
IS = 1,
BIDIRECTIONAL = 1024
The link can be made bidirectional by OR'ing in the 'BIDIRECTIONAL' flag. There will be probably more types needed, but there's always the generic relation 'IS_RELATED_TO'. The m_Description field is used for 'why' questions, but it will often be NULL. It can be filled when the user enters something like: 'The monkey eats a nut because he is hungry', 'because he is hungry' would be stored in the unidirectional 'IS_RELATED_TO' link between monkey and nut. If the user would just have said 'The monkey eats a nut', the same information could have been acquired using a 'why?' question.
I'm still brainstorming, so if you have suggestions, let me know.
O and Marco, I stole your CI thing.
[edited by - phantomus on March 13, 2004 3:56:53 AM]