public object Visit(ComplexRoleInclusion e) { if (e.modality != Statement.Modality.IS) { return(CreateNull()); } return(COMPLEXROLINC(e.RoleChain, e.R)); }
public override object Visit(ComplexRoleInclusion e) { var id = "prp-spo2-" + Interlocked.Increment(ref prp_spo2_cnt).ToString(); id2stmt.Add(id, e); sb.Append("[" + id + ": "); int varid = 0; foreach (var r in e.RoleChain) { if (varid > 0) { sb.Append(", "); } if (r is CNL.DL.Atomic) { var q = owlNC.getIRIFromId((r as CNL.DL.Atomic).id, EntityKind.Role); sb.Append("(?X" + varid.ToString() + " <" + q + "> " + "?X" + (varid + 1).ToString() + ")"); } else if (r is CNL.DL.RoleInversion) { var rr = (r as CNL.DL.RoleInversion).R; if (rr is CNL.DL.Atomic) { var q = owlNC.getIRIFromId((rr as CNL.DL.Atomic).id, EntityKind.Role); sb.Append("(?X" + (varid + 1).ToString() + " <" + q + "> " + "?X" + varid.ToString() + ")"); } } varid++; } sb.Append(" -> "); { var r = e.R; if (r is CNL.DL.Atomic) { var q = owlNC.getIRIFromId((r as CNL.DL.Atomic).id, EntityKind.Role); sb.Append("(?X0 <" + q + "> ?X" + varid.ToString() + ")"); } else if (r is CNL.DL.RoleInversion) { var rr = (r as CNL.DL.RoleInversion).R; if (rr is CNL.DL.Atomic) { var q = owlNC.getIRIFromId((rr as CNL.DL.Atomic).id, EntityKind.Role); sb.Append("(?X" + varid.ToString() + " <" + q + "> " + "?X0)"); } } } appendDebugString(sb, e); sb.AppendLine("]"); return(null); }