A data model is defined using one or more properties files in an Oracle Policy Modeling project. These properties files contain the attributes, entities and relationships for the project. Having this information contained in a properties file for the project, rather than in individual Word and Excel documents, eliminates the need to re-add the same attributes, entities and relationships in each rule file.
An entity can represent a thing such as a person, a child or a corporation, about which attributes can be collected. An entity can have multiple instances. For example, data can be collected and inferred about more than one child in the same session.
Relationships are the connectors between instances of an entity. By specifying the relationship you are specifying whether an instance of an entity is related to one or more of the instances of another (or even the same) entity group.
An attribute is a single unit of data or fact. An attribute is of a particular data type: boolean, text, number, currency, date, time of day or date and time, and the value of an attribute can be 'known' or 'unknown'. An attribute always belongs to a particular entity even if it is the global entity.
Let's say we want to capture the entity relationships for a family who may have children. There may be twins amongst the children. The children may go to school and the siblings may go to the same school or different schools. Each child has friends which may be the same friends as their siblings but they each have a single best friend who they do not share with other siblings.
We can capture this example using three entities:
We do not need to create a separate entity for the twin, as we know the twin is one of the children. Similarly, we do not need to create a separate entity for the best friend as we know that the best friend will be one of the child's friends. We do not need to create an entity for the family as we do not need to enter multiple families, so information about the family can be represented in the global entity.
Containment relationships must be defined for each entity. Additional reference relationships are also defined where required for the data model logic. In our case, we know that:
We don't know:
We can either model these last two relationships 'just in case' or not capture these relationships. We have left these relationships out of this example for simplicity.
Now we need to decide what type of relationship there is between each of the entities. There are two questions you can ask yourself to help identify the type of relationship. (NOTE: The text in parentheses is the relationship text.) This will also help you see which relationships can be containment relationships (which must be "to-one" relationships to the containing entity).
The relationships about which we wish to reason therefore look like:
See also: