程序性知识和陈述性知识之间的区别
我们可以将知识以各种形式表达给计算机系统中的推理引擎,以解决这些问题。有两种重要的知识表现形式,即程序性知识和陈述性知识。程序性知识和陈述性知识的基本区别在于,程序性知识在提供知识的同时也提供了控制信息,而陈述性知识只提供了知识,但没有提供实现知识的控制信息。
阅读本文,了解更多关于程序性知识和陈述性知识以及它们之间的区别。
什么是程序性知识?
程序上的 阐明了如何执行某项任务。它规定了执行的步骤。因此,程序性知识提供了实施知识所需的基本控制信息。
示例
下面的例子显示了如何用程序化的方式用JavaScript复制一个数组-
var a = [1, 2, 3, 4, 5];
var b = [];
for(var i=0; i < a.length; i++) {
b.push(a[i]);
}
console.log(b);
输出
[ 1, 2, 3, 4, 5 ]
什么是陈述性知识
声明性 阐明了为执行某项任务应该做什么。它规定了要执行的功能。因此,在陈述性知识中,只提供了知识,但没有提供实现知识的控制信息。因此,为了使用陈述性知识,我们必须在陈述性知识中加入一个提供控制信息的程序。
示例
var a = [1, 2, 3, 4, 5];
var b = a.map(function(number){
return number*1
});
console.log(b);
输出
它将产生以下输出
[1, 2, 3, 4, 5]
程序性知识与陈述性知识的区别
下表突出了程序性知识和陈述性知识之间的重要区别 −
Key | 程序性知识 | 陈述性知识 |
---|---|---|
Meaning | 程序性知识提供了如何完成特定任务的知识。 | 陈述性知识提供了关于某事的基本知识。 |
Alternate name | 程序性知识也称为命令性知识。 | 陈述性知识也称为功能性知识 |
Basis | 程序性知识围绕着概念的“如何”展开。 | 陈述性知识围绕着概念的“什么”展开。 |
Communication | 程序性知识很难沟通。 | 陈述性知识很容易传播。 |
Orientation | 程序性知识是以过程为导向的。 | 陈述性知识是面向数据的。 |
Validation | 程序知识的验证不是很容易。 | 在陈述性知识中,验证是非常容易的。 |
Debugging | 在过程知识中,调试不是很容易。 | 在声明性知识中,调试是非常容易的。 |
Use | 程序性知识不太常用。 | 陈述性知识更一般。 |
Representation | 程序性知识由一组规则表示。 | 陈述性知识用产生式系统表示。 |
Source | 程序性知识是从行动、经验、主观见解等中获得的。 | 陈述性知识是从原则、过程、概念、过程等方面获得的。 |
总结
由上述讨论,我们可以得出结论,程序性知识中包含有意识的知觉和有意识的规划,而陈述性知识不包含有意识的知觉和规划。