The ORM Foundation

Get the facts!


Last post Mon, May 30 2016 15:19 by Ken Evans. 1 replies.
Page 1 of 1 (2 items)
Sort Posts: Previous Next
  • Mon, May 30 2016 13:45

    • sswelm
    • Top 500 Contributor
    • Joined on Fri, May 27 2016
    • Posts 1


     Question, how to make subtypes in NORMA?

  • Mon, May 30 2016 15:19 In reply to

    • Ken Evans
    • Top 10 Contributor
    • Joined on Sun, Nov 18 2007
    • Stickford, UK
    • Posts 799

    Re: Subtypes

    There are two stages in making subtypes in NORMA.

    The first stage is to make sure that you are using the ORM subtype paradigm to think about your Universe of Discourse(UoD). The ORM subtype paradigm is based on sets and membership of sets. Terry's 2008 book discusses this and this website has an introduction.   

    The second stage is to use NORMA to model your sets & subsets (aka Object Types and their subtypes).
    As an example, suppose you want to create subtypes of the Object Type "Person" to use in a business related UoD.
    So you start with the Fact Type:  Person(.nr) has Name()

    Now it is the case that "natural persons" are not the same as "legal persons" so you would need two new Object Types called "NaturalPerson" and "LegalPerson" that are subtypes of Person(.nr )

    Here is one way to do this:
    1: Use the Fact Editor to enter the Fact Type:  Person(.nr) has Name()
    2: Drag two new Object Types from the Toolbox onto the  Drawing Surface.
    3: Change the names of the two new Object Types to "NaturalPerson" and "LegalPerson"
    4: Drag two subtype icons from the Toolbox onto the Drawing Surface.
    5: Click on a subtype icon to link Person(.nr) with NaturalPerson() and repeat for Person(.nr) and  LegalPerson()

    Then you can use the Verbalisation Browser to check that you have created a model that says what you want it to say.
    For example, you might want to add an exclusion constraint between the two subtypes.

    There is more information in the NORMA Tutorials
    You can read previous posts on subtyping by typing "subtyping" into the search box at the top right of your screen.

    Hope this helps.


    Filed under:
Page 1 of 1 (2 items)
© 2008-2020 The ORM Foundation: A UK not-for-profit organisation -------------- Terms of Service