/// <summary> /// Gets frame elements for a PropBank role /// </summary> /// <param name="propBankRole">PropBank role, in Verb.RoleSet.Role notation</param> /// <param name="verbNetToFrameNetExtension">Extension to use when mapping VerbNet roles to FrameNet</param> /// <returns>Frame elements</returns> public Set <string> GetFrameElementsForPropBank(string propBankRole, VerbNetExtension verbNetToFrameNetExtension) { Set <string> fes = new Set <string>(false); foreach (string verbNetRole in GetVerbNetRolesForPropBank(propBankRole.Trim())) { fes.AddRange(GetFrameElementsForVerbNet(verbNetRole, verbNetToFrameNetExtension)); } return(fes); }
/// <summary> /// Gets PropBank roles for a FrameNet frame element /// </summary> /// <param name="frameElement">Frame element, in Frame.FrameElement notation</param> /// <param name="verbNetToPropBankExtension">Extension to use when mapping VerbNet roles to PropBank</param> /// <returns>PropBank roles</returns> public Set <string> GetPropBankRolesForFrameNet(string frameElement, VerbNetExtension verbNetToPropBankExtension) { Set <string> pbRoles = new Set <string>(false); foreach (string vnRole in GetVerbNetRolesForFrameNet(frameElement.Trim())) { pbRoles.AddRange(GetPropBankRolesForVerbNet(vnRole, verbNetToPropBankExtension)); } return(pbRoles); }
/// <summary> /// Gets frame elements for a PropBank role /// </summary> /// <param name="verb">PropBank verb</param> /// <param name="roleSet">PropBank role set</param> /// <param name="role">PropBank role</param> /// <param name="verbNetToFrameNetExtension">Extension to use when mapping VerbNet roles to FrameNet</param> /// <returns>Frame elements</returns> public Set <string> GetFrameElementsForPropBank(string verb, int roleSet, int role, VerbNetExtension verbNetToFrameNetExtension) { return(GetFrameElementsForPropBank(verb.Trim() + "." + roleSet + "." + role, verbNetToFrameNetExtension)); }
/// <summary> /// Gets frame elements for a VerbNet role /// </summary> /// <param name="verbNetRole">VerbNet role, in Class.Role notation</param> /// <param name="verbNetExtension">Extension to apply</param> /// <returns>Frame elements</returns> public Set <string> GetFrameElementsForVerbNet(string verbNetRole, VerbNetExtension verbNetExtension) { int lastPeriodIndex = verbNetRole.LastIndexOf('.'); return(GetFrameElementsForVerbNet(verbNetRole.Substring(0, lastPeriodIndex), verbNetRole.Substring(lastPeriodIndex + 1), verbNetExtension)); }
/// <summary> /// Gets frame elements for a VerbNet role /// </summary> /// <param name="verbNetClass">VerbNet class to get frame elements for</param> /// <param name="verbNetRole">VerbNet role to get frame elements for</param> /// <param name="verbNetExtension">Extension to apply</param> /// <returns>Frame elements</returns> public Set <string> GetFrameElementsForVerbNet(string verbNetClass, string verbNetRole, VerbNetExtension verbNetExtension) { verbNetClass = verbNetClass.Trim(); verbNetRole = verbNetRole.Trim(); // try for exact match Set <string> fes; if (!_verbNetRoleFrameElements.TryGetValue(verbNetClass + "." + verbNetRole, out fes)) { fes = new Set <string>(); } if (fes.Count > 0) { return(fes); } fes.ThrowExceptionOnDuplicateAdd = false; // add sub-class extension if (verbNetExtension == VerbNetExtension.SubClass || verbNetExtension == VerbNetExtension.SuperAndSubClass) { // add frame elements corresponding to verbnet roles that are in sub-classes of the given class foreach (string fullVerbNetRole in _verbNetRoleFrameElements.Keys) { if (fullVerbNetRole.StartsWith(verbNetClass) && fullVerbNetRole.EndsWith(verbNetRole)) { fes.AddRange(_verbNetRoleFrameElements[fullVerbNetRole]); } } } // add super-class extension if (verbNetExtension == VerbNetExtension.SuperClass || verbNetExtension == VerbNetExtension.SuperAndSubClass) { // add frame elements corresponding to verbnet roles that are in super-classes of the given class foreach (string fullVerbNetRole in _verbNetRoleFrameElements.Keys) { int lastPeriodIndex = fullVerbNetRole.LastIndexOf('.'); if (verbNetClass.StartsWith(fullVerbNetRole.Substring(0, lastPeriodIndex)) && verbNetRole == fullVerbNetRole.Substring(lastPeriodIndex + 1)) { fes.AddRange(_verbNetRoleFrameElements[fullVerbNetRole]); } } } return(fes); }
/// <summary> /// Gets PropBank roles for a FrameNet frame element /// </summary> /// <param name="frame">FrameNet frame</param> /// <param name="frameElement">FrameNet frame element</param> /// <param name="verbNetToPropBankExtension">Extension to use when mapping VerbNet roles to PropBank</param> /// <returns>PropBank roles</returns> public Set <string> GetPropBankRolesForFrameNet(string frame, string frameElement, VerbNetExtension verbNetToPropBankExtension) { return(GetPropBankRolesForFrameNet(frame.Trim() + "." + frameElement.Trim(), verbNetToPropBankExtension)); }