DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦c0203bef0⟧ TextFile

    Length: 3196 (0xc7c)
    Types: TextFile
    Names: »V«

Derivation

└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─ ⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦e24fb53b7⟧ 
            └─⟦this⟧ 

TextFile

with Output_Stream;
generic

    Max_Rules                      : in Positive := 50;  
    Max_Condition_Elements_By_Rule : in Positive := 10;
    Max_Condition_Elements         : in Positive := 200;

    type Rule_Bundles is (<>);

    type Fact_Name       is private;
    type Fact_Collection is array (Positive range <>) of Fact_Name;
    Empty_Fact_Collection : Fact_Collection;
    with procedure Fact_Put (The_Collection : Fact_Collection;
                             Where          : Output_Stream.Object);

    type Fact_Query is private;
    Null_Fact_Query : Fact_Query;
    type Fact_Queries is array (Positive range <>) of Fact_Query;
    Null_Premiss : Fact_Queries;

    with function Retrieve (Filter : Fact_Queries) return Fact_Collection is <>;
    with procedure Queries_Put (The_Queries : Fact_Queries;
                                Where       : Output_Stream.Object);

package Generic_Rule_Base is

    subtype Rule_Id is Natural;
    No_Rule : constant Rule_Id := 0;

    function  Count             return Natural;
    function  Get (R : Rule_Id) return Rule_Bundles;
    procedure Put (R : Rule_Id; Where : Output_Stream.Object);

    procedure Null_Action (On : Fact_Collection);
    generic
        with procedure Do_Action (For_Rule : Rule_Id;
                                  On_Facts : Fact_Collection);
    procedure Infere;

    function Inference_Count    return Natural;
    function Elapsed_Time       return Duration;
    function Firings_Per_Second return Natural;


    Illegal_Bundle  : exception;
    Illegal_Rule_Id : exception;
    Overflow        : exception;

    generic
        The_Bundle : Rule_Bundles;
        type Rule_Names is (<>);
        Nothing : Rule_Names := Rule_Names'Last;

        Rule_1    : Rule_Names   := Nothing;
        Name_1    : String       := Rule_Names'Image (Rule_1);
        Premiss_1 : Fact_Queries := Null_Premiss;
        with procedure Action_1 (On : Fact_Collection) is
           Generic_Rule_Base.Null_Action;

        Rule_2    : Rule_Names   := Nothing;
        Name_2    : String       := Rule_Names'Image (Rule_2);
        Premiss_2 : Fact_Queries := Null_Premiss;
        with procedure Action_2 (On : Fact_Collection) is
           Generic_Rule_Base.Null_Action;

        Rule_3    : Rule_Names   := Nothing;
        Name_3    : String       := Rule_Names'Image (Rule_3);
        Premiss_3 : Fact_Queries := Null_Premiss;
        with procedure Action_3 (On : Fact_Collection) is
           Generic_Rule_Base.Null_Action;

        Rule_4    : Rule_Names   := Nothing;
        Name_4    : String       := Rule_Names'Image (Rule_4);
        Premiss_4 : Fact_Queries := Null_Premiss;
        with procedure Action_4 (On : Fact_Collection) is
           Generic_Rule_Base.Null_Action;

        Rule_5    : Rule_Names   := Nothing;
        Name_5    : String       := Rule_Names'Image (Rule_5);
        Premiss_5 : Fact_Queries := Null_Premiss;
        with procedure Action_5 (On : Fact_Collection) is
           Generic_Rule_Base.Null_Action;

    package Generic_Rule_Bundle is
        procedure Do_Action (For_Rule : Rule_Id; On_Facts : Fact_Collection);
    end Generic_Rule_Bundle;
end Generic_Rule_Base;