{"title":"链接:知识有什么用?","authors":"Syed S. Ali","doi":"10.1145/309697.309701","DOIUrl":null,"url":null,"abstract":"15 What Use Is Knowledge? Intelligence requires knowledge. Knowledge is used to determine behavior and to derive new knowledge from old. In software systems, we can code knowledge implicitly or explicitly. Implicit coding (called procedural knowledge) is knowledge about how to do things. Implicit encodings are typically coded as a set of instructions for performing a task (also known as a software program). Explicit codings (called declarative knowledge) use (usually taskspecific) computerized knowledge with a single program (called a knowledge representation system) that manipulates knowledge to perform services such as deriving new knowledge (called reasoning), planning, and acting. Programmers have been writing code that, quite successfully, automates a wide range of tasks. So, why should software developers consider using declarative knowledge representation in their intelligent software? One important answer lies in the high cost of updating software. When you need to change the behavior of your software, you must change its code. The Year 2000 (Y2K) problem is a clear example of this. By contrast, for software that makes use of a knowledge representation system, changing behavior can be as easy as changing the knowledge (in the case of the Y2K problem, the meaning of the date concept) in the knowledge representation system. Software that uses procedural knowledge is often brittle; that is, it will break if any of the assumptions made when coding the software change. (In the case of Y2K, the assumption was that the software would have long since been replaced by Y2K!) Another advantage of knowledge representation is in knowledge discovery, the discovery of new information from old. For example, you may have a large quantity of data (say a corpus or transaction log) and want to find useful correlations (a simple example of this is Amazon.com’s incitement to spend more money by pointing out that people that bought a book also bought other books). Writing special-purpose software for each type of discovery problem is inefficient and can be avoided by the use of knowledge representation software. Not all tasks require a full knowledge representation system; for those that do, the advantages are significant. Problems wherein the task knowledge of the domain does not change (or changes little) are more efficiently solved with procedural encoding (for example, a payroll system). Problems wherein the task knowledge changes (or is unknown) are candidates for the use of knowledge representation systems. For lots of examples of such problems (and knowledge representation systems) see Peter Clark’s list of knowledge-based projects and groups at http://www.cs.utexas.edu/users/mfkb/ related.html.","PeriodicalId":8272,"journal":{"name":"Appl. Intell.","volume":"8 1","pages":"15-16"},"PeriodicalIF":0.0000,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Links: What use is knowledge?\",\"authors\":\"Syed S. Ali\",\"doi\":\"10.1145/309697.309701\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"15 What Use Is Knowledge? Intelligence requires knowledge. Knowledge is used to determine behavior and to derive new knowledge from old. In software systems, we can code knowledge implicitly or explicitly. Implicit coding (called procedural knowledge) is knowledge about how to do things. Implicit encodings are typically coded as a set of instructions for performing a task (also known as a software program). Explicit codings (called declarative knowledge) use (usually taskspecific) computerized knowledge with a single program (called a knowledge representation system) that manipulates knowledge to perform services such as deriving new knowledge (called reasoning), planning, and acting. Programmers have been writing code that, quite successfully, automates a wide range of tasks. So, why should software developers consider using declarative knowledge representation in their intelligent software? One important answer lies in the high cost of updating software. When you need to change the behavior of your software, you must change its code. The Year 2000 (Y2K) problem is a clear example of this. By contrast, for software that makes use of a knowledge representation system, changing behavior can be as easy as changing the knowledge (in the case of the Y2K problem, the meaning of the date concept) in the knowledge representation system. Software that uses procedural knowledge is often brittle; that is, it will break if any of the assumptions made when coding the software change. (In the case of Y2K, the assumption was that the software would have long since been replaced by Y2K!) Another advantage of knowledge representation is in knowledge discovery, the discovery of new information from old. For example, you may have a large quantity of data (say a corpus or transaction log) and want to find useful correlations (a simple example of this is Amazon.com’s incitement to spend more money by pointing out that people that bought a book also bought other books). Writing special-purpose software for each type of discovery problem is inefficient and can be avoided by the use of knowledge representation software. Not all tasks require a full knowledge representation system; for those that do, the advantages are significant. Problems wherein the task knowledge of the domain does not change (or changes little) are more efficiently solved with procedural encoding (for example, a payroll system). Problems wherein the task knowledge changes (or is unknown) are candidates for the use of knowledge representation systems. For lots of examples of such problems (and knowledge representation systems) see Peter Clark’s list of knowledge-based projects and groups at http://www.cs.utexas.edu/users/mfkb/ related.html.\",\"PeriodicalId\":8272,\"journal\":{\"name\":\"Appl. Intell.\",\"volume\":\"8 1\",\"pages\":\"15-16\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1999-07-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Appl. Intell.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/309697.309701\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Appl. Intell.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/309697.309701","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
15 What Use Is Knowledge? Intelligence requires knowledge. Knowledge is used to determine behavior and to derive new knowledge from old. In software systems, we can code knowledge implicitly or explicitly. Implicit coding (called procedural knowledge) is knowledge about how to do things. Implicit encodings are typically coded as a set of instructions for performing a task (also known as a software program). Explicit codings (called declarative knowledge) use (usually taskspecific) computerized knowledge with a single program (called a knowledge representation system) that manipulates knowledge to perform services such as deriving new knowledge (called reasoning), planning, and acting. Programmers have been writing code that, quite successfully, automates a wide range of tasks. So, why should software developers consider using declarative knowledge representation in their intelligent software? One important answer lies in the high cost of updating software. When you need to change the behavior of your software, you must change its code. The Year 2000 (Y2K) problem is a clear example of this. By contrast, for software that makes use of a knowledge representation system, changing behavior can be as easy as changing the knowledge (in the case of the Y2K problem, the meaning of the date concept) in the knowledge representation system. Software that uses procedural knowledge is often brittle; that is, it will break if any of the assumptions made when coding the software change. (In the case of Y2K, the assumption was that the software would have long since been replaced by Y2K!) Another advantage of knowledge representation is in knowledge discovery, the discovery of new information from old. For example, you may have a large quantity of data (say a corpus or transaction log) and want to find useful correlations (a simple example of this is Amazon.com’s incitement to spend more money by pointing out that people that bought a book also bought other books). Writing special-purpose software for each type of discovery problem is inefficient and can be avoided by the use of knowledge representation software. Not all tasks require a full knowledge representation system; for those that do, the advantages are significant. Problems wherein the task knowledge of the domain does not change (or changes little) are more efficiently solved with procedural encoding (for example, a payroll system). Problems wherein the task knowledge changes (or is unknown) are candidates for the use of knowledge representation systems. For lots of examples of such problems (and knowledge representation systems) see Peter Clark’s list of knowledge-based projects and groups at http://www.cs.utexas.edu/users/mfkb/ related.html.