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); }
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); }
//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) + ">"); } }
public OwlName FromDL(CogniPy.CNL.DL.DlName dl, CNL.EN.endict lex, Func <string, string> pfx2ns, EntityKind madeFor) { Debugger.Break(); throw new NotImplementedException(); }
/// <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()); }