Ejemplo n.º 1
0
 public virtual object Visit(SwrlBuiltIn e)
 {
     foreach (var v in e.Values)
     {
         v.accept(this);
     }
     return(e);
 }
Ejemplo n.º 2
0
        public object Visit(SwrlBuiltIn e)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("° ");
            sb.Append(":");
            sb.Append(e.builtInName);
            sb.Append(" ");
            sb.Append("(");
            for (int i = 0; i < e.Values.Count; i++)
            {
                if (i > 0)
                {
                    sb.Append(" , ");
                }
                sb.Append(e.Values[i].accept(this));
            }
            sb.Append(")");
            return(sb.ToString());
        }
Ejemplo n.º 3
0
 public override object Visit(SwrlBuiltIn e)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 4
0
 public override object Visit(SwrlBuiltIn e)
 {
     return(e);
 }
Ejemplo n.º 5
0
 public override object Visit(SwrlBuiltIn e)
 {
     builtinFound = true;
     return(null);
 }
Ejemplo n.º 6
0
        public override object Visit(SwrlBuiltIn e)
        {
            if (model == null)
            {
                return(null);
            }
            var builtInName = e.builtInName;
            var btag        = KeyWords.Me.GetTag(mapCode(builtInName));

            if (btag == "CMP" || btag == "EQ")
            {
                var A = e.Values[1];
                var B = e.Values[0];
                AppendComparator(sb, e.builtInName, A.accept(this).ToString(), B.accept(this).ToString());
            }
            else
            {
                var lst = e.Values[e.Values.Count - 1].accept(this).ToString();;

                for (int i = 0; i < e.Values.Count - 1; i++)
                {
                    var dn = e.Values[i].accept(this).ToString();
                    lst += ", ";
                    lst += dn;
                }

                if (builtInName == "plus" || builtInName == "times" || builtInName == "followed-by")
                {
                    if (builtInName == "followed-by")
                    {
                        sb.Append("concatenateStrings(" + lst + ")");
                    }
                    else if (builtInName == "plus")
                    {
                        sb.Append("sumNumbers(" + lst + ")");
                    }
                    else if (builtInName == "times")
                    {
                        sb.Append("multiplyNumbers(" + lst + ")");
                    }
                    else
                    {
                        SwrlBuiltInNoImpl(e);
                    }
                }
                else if (builtInName == "datetime" || builtInName == "duration")
                {
                    if (builtInName == "datetime")
                    {
                        sb.Append("createDatetime(" + lst + ")");
                    }
                    else if (builtInName == "duration")
                    {
                        sb.Append("createDuration(" + lst + ")");
                    }
                }
                else if (e.builtInName == "alpha-representation-of")
                {
                    sb.Append("alpha(" + lst + ")");
                }
                else if (e.builtInName == "annotation")
                {
                    sb.Append("annotation(" + lst + ")");
                }
                else if (e.builtInName == "execute")
                {
                    sb.Append("executeExternalFunction(" + lst + ")");
                }
                else if (builtInName == "translated" || builtInName == "replaced")
                {
                    if (builtInName == "translated")
                    {
                        sb.Append("complexStringOperation('translate'," + lst + ")");
                    }
                    else if (builtInName == "replaced")
                    {
                        sb.Append("complexStringOperation('replace'," + lst + ")");
                    }
                }
                else if (builtInName == "from" || builtInName == "before" || builtInName == "after")
                {
                    if (e.builtInName == "from")
                    {
                        sb.Append("simpleStringOperation('substring'," + lst + ")");
                    }
                    else if (e.builtInName == "before")
                    {
                        sb.Append("simpleStringOperation('substring-before'," + lst + ")");
                    }
                    else if (e.builtInName == "after")
                    {
                        sb.Append("simpleStringOperation('substring-after'," + lst + ")");
                    }
                    else
                    {
                        SwrlBuiltInNoImpl(e);
                    }
                }
                else if (e.Values.Count == 3)
                {
                    if (e.builtInName == "minus")
                    {
                        sb.Append("mathBinary('subtract'," + lst + ")");
                    }
                    else if (e.builtInName == "divided-by")
                    {
                        sb.Append("mathBinary('divide'," + lst + ")");
                    }
                    else if (e.builtInName == "integer-divided-by")
                    {
                        sb.Append("mathBinary('int-divide'," + lst + ")");
                    }
                    else if (e.builtInName == "modulo")
                    {
                        sb.Append("mathBinary('modulo'," + lst + ")");
                    }
                    else if (e.builtInName == "raised-to-the-power-of")
                    {
                        sb.Append("mathBinary('power'," + lst + ")");
                    }
                    else if (e.builtInName == "rounded-with-the-precision-of")
                    {
                        sb.Append("mathBinary('round-half-to-even'," + lst + ")");
                    }
                    else
                    {
                        SwrlBuiltInNoImpl(e);
                    }
                }
                else if (e.Values.Count == 2)
                {
                    if (e.builtInName == "not")
                    {
                        sb.Append("booleanUnary('not'," + lst + ")");
                    }
                    else if (e.builtInName == "minus")
                    {
                        sb.Append("mathUnary('minus'," + lst + ")");
                    }
                    else if (e.builtInName == "absolute-value-of")
                    {
                        sb.Append("mathUnary('absolute'," + lst + ")");
                    }
                    else if (e.builtInName == "ceiling-of")
                    {
                        sb.Append("mathUnary('ceiling'," + lst + ")");
                    }
                    else if (e.builtInName == "floor-of")
                    {
                        sb.Append("mathUnary('floor'," + lst + ")");
                    }
                    else if (e.builtInName == "round-of")
                    {
                        sb.Append("mathUnary('round'," + lst + ")");
                    }
                    else if (e.builtInName == "sine-of")
                    {
                        sb.Append("mathUnary('sine'," + lst + ")");
                    }
                    else if (e.builtInName == "cosine-of")
                    {
                        sb.Append("mathUnary('cosine'," + lst + ")");
                    }
                    else if (e.builtInName == "tangent-of")
                    {
                        sb.Append("mathUnary('tangent'," + lst + ")");
                    }
                    else if (e.builtInName == "case-ignored")
                    {
                        sb.Append("stringUnary('case-ignore'," + lst + ")");
                    }
                    else if (e.builtInName == "length-of")
                    {
                        sb.Append("stringUnary('length'," + lst + ")");
                    }
                    else if (e.builtInName == "space-normalized")
                    {
                        sb.Append("stringUnary('space-normalize'," + lst + ")");
                    }
                    else if (e.builtInName == "upper-cased")
                    {
                        sb.Append("stringUnary('upper-case'," + lst + ")");
                    }
                    else if (e.builtInName == "lower-cased")
                    {
                        sb.Append("stringUnary('lower-case'," + lst + ")");
                    }
                    else if (e.builtInName == "contains-string")
                    {
                        sb.Append("stringUnary('contains'," + lst + ")");
                    }
                    else if (e.builtInName == "starts-with-string")
                    {
                        sb.Append("stringUnary('starts-with'," + lst + ")");
                    }
                    else if (e.builtInName == "ends-with-string")
                    {
                        sb.Append("stringUnary('ends-with'," + lst + ")");
                    }
                    else if (e.builtInName == "matches-string")
                    {
                        sb.Append("stringUnary('matches'," + lst + ")");
                    }
                    else if (e.builtInName == "contains-case-ignored-string")
                    {
                        sb.Append("stringUnary('contains-case-ignore'," + lst + ")");
                    }
                    else if (e.builtInName == "sounds-like-string")
                    {
                        sb.Append("stringUnary('sounds-like'," + lst + ")");
                    }
                    else
                    {
                        SwrlBuiltInNoImpl(e);
                    }
                }
                else
                {
                    SwrlBuiltInNoImpl(e);
                }
            }
            return(null);
        }
Ejemplo n.º 7
0
 void SwrlBuiltInNoImpl(SwrlBuiltIn e)
 {
     throw new NotImplementedException("Builtin :" + e.builtInName + " is not supported yet.");
 }
Ejemplo n.º 8
0
 public object Visit(SwrlBuiltIn e)
 {
     return(CreateNull());
 }