[om-list] Data Model
    Luke Call 
    lacall at onemodel.org
       
    Wed Apr 18 09:47:28 EDT 2001
    
    
  
Sorry for the delay; responses below. -Luke
Mark Butler wrote:
> ....
> I have had second thoughts about this - for query purposes we want all
> relationship attribute values to be in the same table.  So I propose that we
> move ATTRIBUTE_VERSION to be a new table called REL_VALUE (short for
> relationship value).
Thanks for the work. I think we'll continue to learn more about what we 
want in the data model over time & w/ experience.
 
> ...
> This table would be the most critical data table in the whole system.  I
> propose that we use a structure like the following:
> 
> -- THIS_ID 		Primary Key (inherited - aka ATTRIBUTE_VALUE_ID)
> -- STANDARD_NAME       	Standard name (inherited)
When we develop contexts so that anything can have 0-n names, we will 
probably want to move this; it's probably a good place for now.
> -- RELATIONSHIP_ID	Relationship this value is for
> -- PARENT_ID		Entity / relationship this attribute applies to
> --			(Same as ATTRIBUTE.PARENT_ID)
> --
> -- SOURCE_ID 		Source Entity ID - Origin for relationship
> --			Null allowed here - means "empty space"
> --
> -- DEST_ID  		Destination Entity ID - Destination for relationship
> --
> -- DOMAIN_ID		Domain for this relationship value
> --                      A domain is a combination of unit and basis
> --
> -- SCHEMA_ID		Schema for this relationship value
> --			A schema is an entity or a work thereof that
> --			asserts a particular world view
> --
> -- CLAIM_YEAR		Year schema first asserted this value (fractional)
> -- VALUE_YEAR      	Value asserted to be valid for this year (fractional)
> --			Null if claim is for all time
Wouldn't a value be good for a span of time?
> -- STRING_VALUE		String value
> -- SCALAR_VALUE		Scalar value
> -- VECTOR_VALUE		Vector value
> -- MATRIX_VALUE		Matrix value
Would it be more efficient use of space to break these four value fields 
into related tables, since 3 out of four of these will be blank on any 
given record?
Also, how do we distinguish between a relationship and an actual value? 
Some values aren't relationships, right? (Unless I've just forgotten 
something.)
 
> Now I completely skipped the relationship and relationship attribute tables
> because I do not think we need to instantiate those objects unless we are
> going to use them as one of the terminal entities in a relationship. Any
> objections?
No objections from me.
 
> Finally, I propose that we treat NULL as the entity id for "nothing", i.e. the
> entity that does not exist.  This is useful for a class of relationships, like
> mass / energy that do not relate to any convenient real entity.  In such cases
> SOURCE_ID would be null, and dest_id would be the entity id of the entity we
> are describing.
What about the use of NULL as "no information known"? What would we use 
to indicate "no information"?
Luke
    
    
More information about the om-list
mailing list