Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
 /// <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));
 }
Ejemplo n.º 4
0
        /// <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));
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
 /// <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));
 }