An electronic apparatus, comprising: a communicator; a memory configured to store knowledge information (601, 602, 603) regarding at least one function of each of at least one external apparatus and a plurality of action templates defining an operation of the at least one external apparatus to perform the at least one function; and a controller configured to: control the communicator to receive identification information of the at least one external apparatus, acquire knowledge information corresponding to the at least one external apparatus based on the identification information of the respective at least one external apparatus from the memory, wherein the knowledge information includes at least one function of the respective at least one external apparatus and a data type and a data value corresponding to each of the at least one function, based on receiving a user command, identify a plurality of external apparatuses having at least one function related to the user command based on the knowledge information corresponding to each of the plurality of external apparatuses, compare the efficiency of the at least one function related to the user command for each of the plurality of external apparatuses based on the knowledge information corresponding to each of the plurality of external apparatuses and identify the most efficient external apparatus based on the result of the comparison; acquire an action template corresponding to an operation of the identified external apparatus for performing the at least one function of the identified external apparatus from the memory, generate a command to operate the identified external apparatus based on the knowledge information and the action template, and control the communicator to transmit the command to the identified external apparatus. a communicator; a memory configured to store knowledge information (601, 602, 603) regarding at least one function of each of at least one external apparatus and a plurality of action templates defining an operation of the at least one external apparatus to perform the at least one function; and a controller configured to: control the communicator to receive identification information of the at least one external apparatus, acquire knowledge information corresponding to the at least one external apparatus based on the identification information of the respective at least one external apparatus from the memory, wherein the knowledge information includes at least one function of the respective at least one external apparatus and a data type and a data value corresponding to each of the at least one function, based on receiving a user command, identify a plurality of external apparatuses having at least one function related to the user command based on the knowledge information corresponding to each of the plurality of external apparatuses, compare the efficiency of the at least one function related to the user command for each of the plurality of external apparatuses based on the knowledge information corresponding to each of the plurality of external apparatuses and identify the most efficient external apparatus based on the result of the comparison; acquire an action template corresponding to an operation of the identified external apparatus for performing the at least one function of the identified external apparatus from the memory, generate a command to operate the identified external apparatus based on the knowledge information and the action template, and control the communicator to transmit the command to the identified external apparatus. control the communicator to receive identification information of the at least one external apparatus, acquire knowledge information corresponding to the at least one external apparatus based on the identification information of the respective at least one external apparatus from the memory, wherein the knowledge information includes at least one function of the respective at least one external apparatus and a data type and a data value corresponding to each of the at least one function, based on receiving a user command, identify a plurality of external apparatuses having at least one function related to the user command based on the knowledge information corresponding to each of the plurality of external apparatuses, compare the efficiency of the at least one function related to the user command for each of the plurality of external apparatuses based on the knowledge information corresponding to each of the plurality of external apparatuses and identify the most efficient external apparatus based on the result of the comparison; acquire an action template corresponding to an operation of the identified external apparatus for performing the at least one function of the identified external apparatus from the memory, generate a command to operate the identified external apparatus based on the knowledge information and the action template, and control the communicator to transmit the command to the identified external apparatus.