Ejemplo n.º 1
0
        string applyDefaultPfx(string nm)
        {
            var parst = new DlName()
            {
                id = nm
            }.Split();
            var trm = string.IsNullOrEmpty(parst.term) ? defaultPfx : parst.term;

            return(new DlName.Parts()
            {
                name = parst.name, local = parst.local, quoted = parst.quoted, term = trm
            }.Combine().id);
        }
Ejemplo n.º 2
0
        string removeDefaultPfx(string nm)
        {
            var parst = new DlName()
            {
                id = nm
            }.Split();

            var trm = (parst.term == defaultPfx) ? null : parst.term;

            return(new DlName.Parts()
            {
                name = parst.name, local = parst.local, quoted = parst.quoted, term = trm
            }.Combine().id);
        }
Ejemplo n.º 3
0
        //SwrlNodes

        public override object Visit(SwrlIVal e)
        {
            DlName dl = new DlName()
            {
                id = e.I
            };
            var dlp = dl.Split();

            if (char.IsLower(dlp.name[0]))
            {
                return("<" + owlNC.getIRIFromId(e.I, EntityKind.Role) + ">");
            }
            else
            {
                return("<" + owlNC.getIRIFromId(e.I, EntityKind.Instance) + ">");
            }
        }
Ejemplo n.º 4
0
 public OwlName FromDL(CogniPy.CNL.DL.DlName dl, CNL.EN.endict lex, Func <string, string> pfx2ns, EntityKind madeFor)
 {
     Debugger.Break();
     throw new NotImplementedException();
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Translate a CNL(DL) name to a OWL name
        /// </summary>
        /// <param name="dl">the CNL name</param>
        /// <param name="lex"></param>
        /// <param name="pfx2ns"></param>
        /// <param name="madeFor">the type of this entity (Concept, Instance, Role,...)</param>
        /// <returns></returns>
        public OwlName FromDL(CogniPy.CNL.DL.DlName dl, CNL.EN.endict lex, Func <string, string> pfx2ns, EntityKind madeFor)
        {
            var owlParts = new OwlName.Parts();
            var dlParts  = dl.Split();

            if (dlParts.term == null)
            {
                owlParts.ns = pfx2ns(null);// OWLOntologyXMLNamespaceManager namespaceManager namespaceManager.getDefaultNamespace();
            }
            else
            {
                owlParts.ns = pfx2ns(dlParts.term);//namespaceManager.getNamespaceForPrefix(dlParts.term);
                if (owlParts.ns == null)
                {
                    owlParts.ns = "http://ontorion.com/unknown.owl/" + dlParts.term + "#";
                }
            }
            if (!dlParts.quoted)
            {
                var    name_part = dlParts.name;
                string sufix     = "";
                if (madeFor == EntityKind.SWRLVariable)
                {
                    var a = name_part.Split('_');
                    if (a.Length == 2)
                    {
                        name_part = a.First();
                        sufix     = a.Last();
                    }
                }

                var           pp         = name_part.Split(new char[] { '-' });
                StringBuilder sb         = new StringBuilder();
                bool          first      = true;
                string        oldpp      = "";
                bool          wereDigits = false;
                foreach (var p in pp)
                {
                    if (first)
                    {
                        first = false;
                        if (madeFor == EntityKind.Role || madeFor == EntityKind.DataRole)
                        {
                            var nn = lex.toN_Simple(p, CNL.EN.endict.WordKind.PastParticiple);
                            sb.Append(nn);
                        }
                        else
                        {
                            sb.Append((madeFor == EntityKind.Instance || (madeFor == EntityKind.SWRLVariable /* && p.Length==1 */)) ?
                                      char.ToUpper(p[0]) : char.ToLower(p[0]));
                            sb.Append(p.Substring(1));
                        }
                    }
                    else
                    {
                        if (oldpp.Length > 1 && char.IsLetter(oldpp[0]) && char.ToUpper(oldpp.Last()) == oldpp.Last() && char.IsLetter(p[0]))
                        {
                            sb.Append(exoticUTFForUnderscore);
                        }
                        if (char.IsDigit(p[0]))
                        {
                            if (wereDigits)
                            {
                                sb.Append("-");
                            }
                            sb.Append(p);
                            wereDigits = true;
                        }
                        else
                        {
                            sb.Append(char.ToUpper(p[0]));
                            sb.Append(p.Substring(1));
                            wereDigits = false;
                        }
                    }
                    oldpp = p;
                }
                owlParts.name = sb.ToString() + (string.IsNullOrEmpty(sufix) ? "" : "_" + sufix);
            }
            else
            {
                owlParts.name = dlParts.name;
            }

            owlParts.global = (madeFor == EntityKind.Instance && !dlParts.local);

            return(owlParts.Combine());
        }