OSEE Custom Data Model

The data model in OSEE is extensible and user configurable. Users can define new artifact, attribute, and relation types and their constraints such as multiplicity and applicability. Type inheritance allows similar types to be defined and modified without tedious redundancy because similar types inherit what is common from their super type.

The OSEE data model is defined using a tabular format involving 5 tables. See the following xml spreadsheet ProgramAndCommon.xml for an example. The full data model can be defined using a single spreadsheet or be divided among multiple spreadsheets that can reference types defined in any spreadsheet.

Artifact Type Table
Column Name Description
Factory Class The factory that is responsible for constructing instances of this artifact type at runtime. Fully qualified java class name of a class that extends org.eclipse.osee.framework.skynet.core.artifact.ArtifactFactory. The standard and simplest case is to specify org.eclipse.osee.framework.skynet.core.artifact.factory.BasicArtifactFactory which will cause the java type org.eclipse.osee.framework.skynet.core.artifact.Artifact to be instantiated at runtime. If a custom java type that extends Artifact is needed, then the corresponding custom artifact factory should be specified here.
Artifact Type Name any valid UTF-8 characters with a max length of 75 bytes
Super Type Name The super artifact type from which this type will inherit associated attributes and relations. Another concrete artifact type or an abstract one that exists only in data model definition.
Attribute Type Table
Column Name Description
Attribute Base Type Fully qualified java class name of a class that extends org.eclipse.osee.framework.skynet.core.attribute.
The typical and simplest case is to specify one of the built-in types:
  • org.eclipse.osee.framework.skynet.core.BooleanAttribute
  • org.eclipse.osee.framework.skynet.core.CompressedContentAttribute
  • org.eclipse.osee.framework.skynet.core.JavaObjectAttribute
  • org.eclipse.osee.framework.skynet.core.DateAttribute
  • org.eclipse.osee.framework.skynet.core.FloatingPointAttribute
  • org.eclipse.osee.framework.skynet.core.IntegerAttribute
  • org.eclipse.osee.framework.skynet.core.StringAttribute
  • org.eclipse.osee.framework.skynet.core.EnumeratedAttribute
  • org.eclipse.osee.framework.skynet.core.WordTemplateAttribute
  • org.eclipse.osee.framework.skynet.core.WordWholeDocumentAttribute
If a custom java type that extends Attribute is needed, then that type should be specified here.
Attribute Data Provider The attribute data provider is responsible for storing and retrieving attribute data. Fully qualified java class name of a class that implements org.eclipse.osee.framework.skynet.core.attribute.providers.IAttributeDataProvider. org.eclipse.osee.framework.skynet.core.DefaultAttributeDataProvider may be used when the data to be stored does not exceeded 4000 bytes, otherwise org.eclipse.osee.framework.skynet.core.UriAttributeDataProvider may be used.
Attribute Type Name Any valid UTF-8 characters with a max length of 500 bytes
File Extension Any valid UTF-8 characters with a max length of 50 bytes; only applies when using the org.eclipse.osee.framework.skynet.core.UriAttributeDataProvider
Tagger ID If the attrbiute’s content is to be included in the search index for the quick search, use DefaultAttributeTaggerProvider, otherwise leave blank.
Default Value The initial value given an attribute upon initialization, this may be left blank
Validity Xml For the attribute base type org.eclipse.osee.framework.skynet.core.EnumeratedAttribute, specifies the valid enumerations. For example, <Page_Type><Enum>Portrait</Enum><Enum>Landscape</Enum></Page_Type>
Min Occurrence The framework with prevent having lest than this number of this attribute type on a single artifact
Max Occurrence The framework with prevent adding more than this number of this attribute type to a single artifact
Tip Text Text to describe an attribute. Any valid UTF-8 characters with a max length of 4000 bytes
Artifact Type / Attribute Type Mapping Table
Column Name Description
Artifact Type Name Exact name of an artifact type defined above (or previously)
Attribute Type Name Exact name of an attribute type defined above (or previously) to be associated with the corresponding artifact type
Relation Type Table
Column Name Description
Relation Type Name Any valid UTF-8 characters with a max length of 50 bytes
Side A Name Descriptive name for the A side of the relation. Any valid UTF-8 characters with a max length of 50 bytes
A to B Phrase An optional phrase that describe the relation between the artifacts from the side A perspective. Any valid UTF-8 characters with a max length of 50 bytes
Side B Name Descriptive name for the B side of the relation. Any valid UTF-8 characters with a max length of 50 bytes
B to A Phrase An optional phrase that describe the relation between the artifacts from the side B perspective. Any valid UTF-8 characters with a max length of 50 bytes
Short Name Five or less characters is typical. This abbreviated name is used in the user interface when space is at a premium
Ordered Yes to have artifacts on the same side of this relation type use a user defined ordered, otherwise No
Artifact Type / Relation Type Mapping Table
Column Name Description
Artifact Type Exact name of an artifact type defined above (or previously)
Relation Type Exact name of an relation type defined above (or previously)
Side A Max An artifact of type "Artifact Type" can be on side "A", "Side A Max" number of times for relation links of type "Relation Type"
Side B Max An artifact of type "Artifact Type" can be on side "B", "Side B Max" number of times for relation links of type "Relation Type"

Import OSEE Data Model

To import changes to the data model for an existing OSEE database:
  1. Navigate to the Project Explorer (Resource Perspective) or the Package Explorer (Java Perspective)
  2. Select a file or folder containing the OSEE data model
  3. Right click and select Import...
  4. Under the OSEE category, select OSEE Types
To automatically import the data model during database initialization use the extension point org.eclipse.osee.framework.skynet.core.OseeTypes