protected KifRelationalSentence createDocumentation(string docString, string docOwner)
        {
            KifSequence <KifTerm> terms = new KifSequence <KifTerm>(new KifConstant(docOwner));

            terms.addItem(new KifString(docString));
            return(new KifRelationalSentence(new KifConstant(DOCUMENTATION), terms));
        }
        protected KifConjunction processingParentsXXX(DataFrame frame)
        {
            KifSequence <KifSentence> conjs = new KifSequence <KifSentence>();
            IList isA = frame.isA;

            if (isA.Count == 0)
            {
                isA = new ArrayList();
                isA.Add("Thing"); //TODO:
            }
            foreach (string parentName in isA)
            {
                conjs.addItem(
                    new KifRelationalSentence(new KifConstant(parentName),
                                              new KifConcreteTerm <KifIndividualVariable>(new KifIndividualVariable("X"))));
            }
            foreach (Slot slot in frame.ownSlots.Values)
            {
                if (!"".Equals(slot.slotValue))
                {
                    conjs.addItem(
                        new KifRelationalSentence(new KifConstant(slot.iden),
                                                  new KifConcreteTerm <KifConstant>(new KifConstant(slot.slotValue))));
                }
            }
            return(new KifConjunction(conjs));
        }
        protected KifRelationalSentence createBinRelation(string relName, string firstArg, string secondArg)  //TODO
        {
            KifSequence <KifTerm> terms = new KifSequence <KifTerm>(new KifConstant(firstArg));

            terms.addItem(new KifConstant(secondArg));
            return(new KifRelationalSentence(new KifConstant(relName), terms));
        }
Example #4
0
 private static KifSequence <KifIndividualVariable> checkArg(KifSequence <KifIndividualVariable> argList)
 {
     if (argList == null || argList.isEmpty())
     {
         throw new ArgumentNullException("class argument cann't be null or empty");//TODO:
     }
     return(new KifSequence <KifIndividualVariable>(argList));
 }
        public override IList <IModelItem> getChildren()
        {
            KifSequence <KifObject> sequence = new KifSequence <KifObject>(new KifConstant(Name));

            sequence.addItem(DELIMITER);
            sequence.addItem(Sentence);
            return(sequence.getChildren());
        }
Example #6
0
        //TODO: argument string

        public OntolinguaDefinition(string name, Comment comment, KifSequence <KifIndividualVariable> argList)
        {
            if (StringUtils.isEmpty(name))
            {
                throw new ArgumentException("name cann't be null or empty");
            }
            _name      = name;
            _docString = comment;
            _argList   = argList == null ? argList : new KifSequence <KifIndividualVariable>(argList);
        }
        protected IList <KifObject> createSlots(DataFrame frame, KifSequence <KifSentence> slotsValues)
        {
            List <KifObject> result = new List <KifObject>(createOwnSlots(frame, slotsValues));

            foreach (Slot slot in frame.instanceSlots.Values)
            {
                result.Add(createSlot(frame.iden, slot, slotsValues));
            }
            return(result);
        }
        /*       protected IList<KifObject> createSlotsOfInstance(DataFrame frame, KifSequence<KifSentence> slotsValues) {
         *         List<KifObject> result = new List<KifObject>(createOwnSlotsOfInstance(frame, slotsValues));
         *         foreach (Slot slot in frame.ownSlots.Values) {
         *             result.Add(createSlotOfInstance(frame.iden, slot, slotsValues));
         *         }
         *         return result;
         *     }     */

        public void createInstanceFrame(DataFrame frame)
        {
            string frameName = frame.iden;
            KifSequence <KifSentence> sequence = new KifSequence <KifSentence>(createDocumentation(generateFrameComment(false, frameName), frameName));

            sequence.addRange(processingParentsOfInstance(frame));
            IList <KifObject>   slots    = createOwnSlotsOfInstance(frame, sequence);
            KifObjectDefinition relation = new KifObjectDefinition(frame.iden, sequence);

            _model.addObject(relation);
            _model.addRange(slots);
        }
Example #9
0
 public OntolinguaNamedSequenceOfSentences(string name, KifSequence <KifSentence> sentences)
 {
     if (StringUtils.isEmpty(name))
     {
         throw new ArgumentException("name cann't be null or empty");
     }
     if (sentences == null || sentences.getSize() == 0)
     {
         throw new ArgumentNullException("sentences cann't be null or empty");
     }
     _name      = name;
     _sentences = new KifSequence <KifSentence>(sentences);
 }
        protected KifObject createSlotOfInstance(string frameName, Slot slot, KifSequence <KifSentence> slotsValues)
        {
            string slotIden = generateSlotIdentifier(frameName, slot.iden);
            KifSequence <KifSentence> sequence = new KifSequence <KifSentence>(createDocumentation(generateSlotComment(isOwnSlot(slot), slot.iden, frameName), frameName));

            sequence.addItem(createBinRelation(RANGE, slotIden, _resolver.resolveType(slot.slotType)));
            sequence.addItem(createBinRelation(DOMAIN, slotIden, frameName));
            sequence.addItem(createArity(slotIden, 2));
            sequence.addItem(createUnRelation(RELATION, slotIden));
            sequence.addItem(createUnRelation(BINARY_RELATION, slotIden));

            return(new KifRelationDefinition(slotIden, sequence));
        }
        public void createClassFrame(DataFrame frame)  //TODO: order
        {
            string frameName = frame.iden;
            KifSequence <KifSentence> sequence = new KifSequence <KifSentence>(createDocumentation(generateFrameComment(true, frameName), frameName));

            sequence.addRange(processingParentsXXX(frame));
            sequence.addItem(createArity(frameName, 1));
            sequence.addItem(createUnRelation(CLASS, frameName));
            IList <KifObject>     slots    = createSlots(frame, sequence);
            KifRelationDefinition relation = new KifRelationDefinition(frame.iden, sequence);

            _model.addObject(relation);
            _model.addRange(slots);
        }
        protected IList <KifObject> createOwnSlotsOfInstance(DataFrame frame, KifSequence <KifSentence> slotsValues)
        {
            List <KifObject> result = new List <KifObject>(frame.ownSlots.Count);

            foreach (Slot slot in frame.ownSlots.Values)
            {
                string owner = _director.getSlotOwner(slot.iden, frame);
                if (frame.iden.Equals(owner))
                {
                    result.Add(createSlotOfInstance(frame.iden, slot, slotsValues));
                }
                if (!StringUtils.isEmpty(slot.slotValue))
                {
                    slotsValues.addItem(createBinRelation(generateSlotIdentifier(owner, slot.iden), frame.iden, slot.slotValue));
                }
            }
            return(result);
        }
        protected KifSequence <KifSentence> processingParentsOfInstance(DataFrame frame)
        {
            KifSequence <KifSentence> parents = new KifSequence <KifSentence>();
            string frameName = frame.iden;
            IList  isA       = frame.isA;

            if (isA.Count == 0)
            {
                parents.addItem(createUnRelation(THING, frameName));
            }
            else
            {
                foreach (string parentName in isA)
                {
                    parents.addItem(createUnRelation(parentName, frameName));
                }
            }
            return(parents);
        }
        protected KifSequence <KifSentence> processingParentsXXX(DataFrame frame)
        {
            KifSequence <KifSentence> parents = new KifSequence <KifSentence>();
            string frameName = frame.iden;
            IList  isA       = frame.isA;

            if (isA.Count == 0)
            {
                parents.addItem(createSubclassOf(frameName, THING));
            }
            else
            {
                foreach (string parentName in isA)
                {
                    parents.addItem(createSubclassOf(frameName, parentName));
                }
            }
            return(parents);
        }
        protected IList <KifObject> createOwnSlots(DataFrame frame, KifSequence <KifSentence> slotsValues)
        {
            List <KifObject> result = new List <KifObject>(frame.ownSlots.Count);

            foreach (Slot slot in frame.ownSlots.Values)
            {
                string owner = _director.getSlotOwner(slot.iden, frame);
                if (frame.iden.Equals(owner))
                {
                    result.Add(createSlot(frame.iden, slot, slotsValues));
                }
                else
                {
                    if (slot.slotValue != null)
                    {
                        slotsValues.addItem(createTrRelation(TEMPLATE_SLOT_VALUE, generateSlotIdentifier(owner, slot.iden), frame.iden, slot.slotValue));
                    }
                }
            }
            return(result);
        }
        protected KifObject createSlot(string frameName, Slot slot, KifSequence <KifSentence> slotsValues)
        {
            string slotIden = generateSlotIdentifier(frameName, slot.iden);
            KifSequence <KifSentence> sequence = new KifSequence <KifSentence>(createDocumentation(generateSlotComment(isOwnSlot(slot), slot.iden, frameName), frameName));

            sequence.addItem(createBinRelation(RANGE, slotIden, _resolver.resolveType(slot.slotType)));
            sequence.addItem(createBinRelation(DOMAIN, slotIden, frameName));
            sequence.addItem(createArity(slotIden, 2));
            sequence.addItem(createUnRelation(RELATION, slotIden));
            sequence.addItem(createUnRelation(BINARY_RELATION, slotIden));

//            bool isString = StringUtils.equalsIgnoreCase(slot.slotType, "string");
//            if (slot.slotValue != null && (!"".Equals(slot.slotValue) && isString))
//                slotsValues.addItem(createTrRelation(TEMPLATE_SLOT_VALUE, slotIden, frameName, slot.slotValue));
            if (!StringUtils.isEmpty(slot.slotValue))
            {
                slotsValues.addItem(createTrRelation(TEMPLATE_SLOT_VALUE, slotIden, frameName, slot.slotValue));
            }

            return(new KifRelationDefinition(slotIden, sequence));
        }
        protected void createSlot(string frameName, Slot slot)
        {
            KifIndividualVariable frameVar = new KifIndividualVariable("Frame");
            KifIndividualVariable valueVar = new KifIndividualVariable("Value");

            KifSequence <KifIndividualVariable> args = new KifSequence <KifIndividualVariable>(frameVar);

            args.addItem(valueVar);
            OntolinguaDefineRelation  relation = new OntolinguaDefineRelation(slot.iden, null, args);
            KifSequence <KifSentence> conjs    = new KifSequence <KifSentence>();

            conjs.addItem(
                new KifRelationalSentence(new KifConstant(frameName),
                                          new KifConcreteTerm <KifIndividualVariable>(frameVar)));
            conjs.addItem(
                new KifRelationalSentence(new KifConstant(slot.slotType),
                                          new KifConcreteTerm <KifIndividualVariable>(valueVar)));


            relation.DefSentence = new KifConjunction(conjs);
            _model.addObject(relation);
        }
Example #18
0
 public ClassAndRelationBase(string name, Comment comment, KifSequence <KifIndividualVariable> argList)
     : base(name, comment, checkArg(argList))
 {
 }
Example #19
0
 public KifRelationDefinition(string name, KifSequence <KifSentence> sentences) : base(name, sentences)
 {
 }
 public OntolinguaDefineRelation(string name, Comment comment, KifSequence <KifIndividualVariable> argList)
     : base(name, comment, argList)
 {
 }
Example #21
0
 public KifConjunction(KifSequence <KifSentence> sentSeq)
 {
     _params = sentSeq;
 }
 protected KifQuantifiedSentence(KifSequence <KifVariableSpecification> varspec, KifSentence sentence)
 {
     _varspec  = varspec;
     _sentence = sentence;
 }
Example #23
0
 public KifExistentiallyQuantifiedSentence(KifSequence <KifVariableSpecification> varspec, KifSentence sentence)
     : base(varspec, sentence)
 {
 }
Example #24
0
 public KifFunction(string name, string str, KifSequence <KifSentence> sentences) : base(name, str, sentences)
 {
 }
Example #25
0
 public KifReverseImplication(KifSentence consequent, KifSequence <KifSentence> antecedents) : base(consequent, antecedents)
 {
 }
 public IfDef_DefSentenceOwner(string name, Comment comment, KifSequence <KifIndividualVariable> argList)
     : base(name, comment, argList)
 {
 }
 public KifObjectDefinition(string name, KifSequence <KifSentence> sentences)
     : base(name, sentences)
 {
 }