worked example: finding-a-path-between-early-us-presidents

    description:
        a fun little application of find-path-between applied to early US presidents

    code:
        see find-path-between usage information
      
    examples:      
        -- load the knowledge:
        load early-us-presidents.sw
      
        -- switch off info statements:
        info off
      
        -- learn some relevant inverses:
        find-inverse[president-number, president-era, party, full-name]

        -- find the operator path between George Washington and John Adams:
        find-path-between(|person: George Washington>, |person: John Adams>)
            |op: inverse-full-name> . |op: president-era> . |op: inverse-president-era> . |op: full-name>
    
        -- now let's step through this operator sequence:
        inverse-full-name |person: George Washington>
            |Washington>
              
        president-era inverse-full-name |person: George Washington>
            |year: 1789> + |year: 1790> + |year: 1791> + |year: 1792> + |year: 1793> + |year: 1794> + |year: 1795> + |year: 1796> + |year: 1797>
      
        inverse-president-era president-era inverse-full-name |person: George Washington>
            9|Washington> + |Adams>
              
        full-name inverse-president-era president-era inverse-full-name |person: George Washington>
            9|person: George Washington> + |person: John Adams>      

      
      
        -- next example, find the operator path between George Washington and James Monroe:
        find-path-between(|person: George Washington>, |person: James Monroe>)
            |op: inverse-full-name> . |op: president-era> . |op: inverse-president-era> . |op: president-era> . |op: inverse-president-era> . |op: party> . |op: inverse-party> . |op: full-name>

        -- now let's step through this operator sequence:
        inverse-full-name |person: George Washington>
            |Washington>

        president-era inverse-full-name |person: George Washington>
            |year: 1789> + |year: 1790> + |year: 1791> + |year: 1792> + |year: 1793> + |year: 1794> + |year: 1795> + |year: 1796> + |year: 1797>

        inverse-president-era president-era inverse-full-name |person: George Washington>
            9|Washington> + |Adams>

        president-era inverse-president-era president-era inverse-full-name |person: George Washington>
            9|year: 1789> + 9|year: 1790> + 9|year: 1791> + 9|year: 1792> + 9|year: 1793> + 9|year: 1794> + 9|year: 1795> + 9|year: 1796> + 10|year: 1797> + |year: 1798> + |year: 1799> + |year: 1800> + |year: 1801>

        inverse-president-era president-era inverse-president-era president-era inverse-full-name |person: George Washington>
            82|Washington> + 14|Adams> + |Jefferson>

        party inverse-president-era president-era inverse-president-era president-era inverse-full-name |person: George Washington>
            82|party: Independent> + 14|party: Federalist> + |party: Democratic-Republican>

        inverse-party party inverse-president-era president-era inverse-president-era president-era inverse-full-name |person: George Washington>
            82|Washington> + 14|Adams> + |Jefferson> + |Madison> + |Monroe> + |Q Adams>

        full-name inverse-party party inverse-president-era president-era inverse-president-era president-era inverse-full-name |person: George Washington>
            82|person: George Washington> + 14|person: John Adams> + |person: Thomas Jefferson> + |person: James Madison> + |person: James Monroe> + |person: John Quincy Adams>


        -- next example, find the operator path between George Washington and number 6:
        find-path-between(|person: George Washington>, |number: 6>)
            |op: inverse-full-name> . |op: president-era> . |op: inverse-president-era> . |op: president-era> . |op: inverse-president-era> . |op: party> . |op: inverse-party> . |op: president-number>

        -- this is almost identical to the example above, so we only need to change the last step 'president-number':
        president-number inverse-party party inverse-president-era president-era inverse-president-era president-era inverse-full-name |person: George Washington>
            82|number: 1> + 14|number: 2> + |number: 3> + |number: 4> + |number: 5> + |number: 6>


    source code:
        load early-us-presidents.sw
    
    see also:
        find-path-between

Home