// TODO: Ontology stuff
        public static void rebindFrames(KnowledgeAdapter data,
                                        KnowledgeControl control)
        {
            // LEVEL #I - FILE LEVEL
            TreeNode root = KnowledgeTreeView.makeNode("Frame", 0, null, null);

            // LEVEL #II - CATEFORY OF FRAME LEVEL
            TreeNode classes   = KnowledgeTreeView.makeNode("Class frames", 1, null, root);
            TreeNode instances = KnowledgeTreeView.makeNode("Instance frames", 1, null, root);
            TreeNode rules     = KnowledgeTreeView.makeNode("Ruleset frames", 1, null, root);

            // LEVEL #III - CONCRETE FRAME LEVEL
            TreeNode node;

            log.Debug(" data.getFrames.Count=" + data.getFrames().Values.Count);
            foreach (object obj in data.getFrames().Values)
            {
                string name = KnowledgeAdapter.getFrameName(obj);
                log.Debug(" frame - " + name);

                if (KnowledgeAdapter.isClassFrame(obj))
                {
                    node = KnowledgeTreeView.makeNode(name, 2, obj, classes);
                }
                else if (KnowledgeAdapter.isInstanceFrame(obj))
                {
                    node = KnowledgeTreeView.makeNode(name, 2, obj, instances);
                }
                else
                {
                    log.Debug(" warning - the frame is nobody's");
                    continue;
                }

                KnowledgeTreeView.rebindSlots(obj, node);
            }

            // TODO: include this cycle into previous somehow
            log.Debug(" data.getRules.Count=" + data.getRules().Values.Count);
            foreach (object obj in data.getRules().Values)
            {
                string name = KnowledgeAdapter.getFrameName(obj);
                log.Debug(" frame - " + name);

                if (KnowledgeAdapter.isRuleFrame(obj))
                {
                    node = KnowledgeTreeView.makeNode(name, 2, obj, rules);
                }
                else
                {
                    log.Debug(" warning - the frame is nobody's");
                }

                // TODO: need to implement
                // buildSlotsForFrame(frame, curNode);
            }

            // ooh!
            control.rebindFrames(root);
        }
Exemple #2
0
        private static string getRegExpr(Object tag)
        {
            string pattern;
            string spaces = "\\s+";

            if (KnowledgeAdapter.isClassFrame(tag))
            {
                string name = KnowledgeAdapter.getFrameName(tag);
                pattern = "frame" + spaces + "class" + spaces + name;
            }
            else if (KnowledgeAdapter.isInstanceFrame(tag))
            {
                string name = KnowledgeAdapter.getFrameName(tag);
                pattern = "frame" + spaces + "instance" + spaces + name;
            }
            else if (KnowledgeAdapter.isRuleFrame(tag))
            {
                string name = KnowledgeAdapter.getFrameName(tag);
                pattern = "frame" + spaces + "ruleset" + spaces + name;
            }
            else
            {
                pattern = null;
            }
            // TODO: slots

            log.Debug(" regular expression = " + pattern);

            return(pattern);
        }