引言:知识工程的演变与重要性
知识工程(Knowledge Engineering,KE)是一个涉及激发、捕获、概念化和形式化知识以用于信息系统的过程。自计算机科学和人工智能(AI)历史以来,知识工程的工作流程因其在构建可靠智能代理中的重要性而被广泛使用。确实,开发适用于从常识到交通、犯罪和天气等应用的可信模型,需要对知识过程有深入的理解。同样,在这些领域内的任务解决方案,包括问答、摘要和预测,都预期将纳入标准化的KE程序,以便它们能够有意义地适用并与人类兼容。
随着时间的推移,知识工程的范围和目标任务正在发生变化,其范式也在转变,从早期的专家系统、语义网到语言建模。这些范式之间的用例和用户需求尚未全球性地分析,因为新范式通常满足先前的痛点,同时可能引入新的问题。最近,将系统模式抽象成框架学(boxology)为将知识工程的需求和用例与能够最好满足它们的系统、组件和软件对齐提供了契机。本文提出了一个愿景,即通过利用创建参考架构的软件工程方法来协调知识工程领域的最佳实践。我们描述了如何迭代设计和实施参考架构,以将用户需求与反复出现的系统模式联系起来,构建在现有知识工程工作流程和框架学之上。我们提供了一个六步路线图,可以实现这样的架构,包括范围定义、信息源选择、架构分析、基于信息源分析的架构综合、通过实例化评估,最终将其实例化为具体的软件架构。
论文标题、机构、论文链接
论文标题:Standardizing Knowledge Engineering Practices with a Reference Architecture
作者:Bradley P. Allen, Filip Ilievski
机构:University of Amsterdam, Amsterdam, The Netherlands; Vrije Universiteit, Amsterdam, The Netherlands
论文链接:https://arxiv.org/pdf/2404.03624.pdf
知识工程的定义与关键任务
1. 知识工程的历史回顾
知识工程(Knowledge Engineering,KE)是指为信息系统创建和维护知识的活动。自计算机科学和人工智能(AI)历史以来,知识工程的工作流程在构建跨领域和任务的可靠智能代理时一直是关键组成部分。例如,从常识到交通、犯罪和天气的应用程序的可信模型的开发,都需要经过良好理解的知识过程。同样,在这些领域内的任务解决方案,包括问答、摘要和预测,都预期将纳入标准化的知识工程程序,以便它们具有意义并与人类兼容。
2. 知识图谱与大语言模型在知识工程中的作用
知识图谱(Knowledge Graph,KG)工程作为知识工程的一个变体,旨在捕获、表示和利用有关实体、它们之间的关系及其底层语义的复杂信息。研究人员和领域专家设计了针对不同领域需求的知识图谱工程工作流程,如生物医学、图书馆和信息科学、网络民主、常识知识和出版物等。同时,大型语言模型(Large Language Models,LLMs)作为知识工件在知识工程工作流程中的角色也在积极研究中,以理解LLMs增强、替代或添加知识工程组件的潜力。
知识工程范式的演变
1. 专家系统时代
在20世纪60年代,研究人员对目标导向搜索和启发式算法进行实用的通用问题解决持乐观态度。然而,到了70年代,这些系统难以扩展到复杂应用成为显而易见。20世纪70年代中期,Feigenbaum受到Newell和Simon工作的影响,认为专注于特定领域对于成功的知识工程至关重要。
2. 语义网时代
在语义网时代,Tim Berners-Lee提倡使用特定的开放标准(如RDF和SPARQL)来编码Web内容中的知识,以改善Web内容的访问和可发现性,并实现自动化推理。然而,语义网技术的采用速度缓慢,最终导致研究人员寻求方法将这些标准和原则与一般软件行业规范更紧密地对齐,并使其更加开发者友好。
3. 知识图谱工程
近期的努力,特别是像谷歌和亚马逊这样的公司开发的商业知识图谱,表明了向基于属性图的自定义架构的转变。这种转变虽然创新,但通常绕过了Feigenbaum和Berners-Lee等早期愿景家所倡导的互操作性和联合理念。
4. 大语言模型与神经符号系统
2010年代,连接主义方法和图形处理硬件的兴起为使用大型语言模型进行知识生产带来了新的可能性。关于LLMs与知识库之间关系的两种主要观点已经出现。第一种观点将LLMs视为可查询的独立知识库,可以通过最小的人为干预从非结构化文本中学习。这种方法挑战了传统的、劳动密集型的知识工程过程,但对准确性、道德使用、互操作性和可策展性提出了担忧。第二种更谨慎的观点将语言模型视为知识工程工作流程中的组件,结合新旧方法。这种方法强调可访问性、手动编辑提取的知识以及推理方法的解释,解决了早期技术的局限性。
知识工程的挑战与需求
1. 用户需求与用例的多样性
知识工程(KE)的发展历程表明,随着人工智能(AI)的演进,KE的范式也在不断变化。从专家系统、语义网到最近的大型语言模型(LLMs),每个时期的KE都试图解决前一时期的痛点,但往往会引入新的挑战。用户的需求和用例多样性是KE面临的一大挑战。例如,早期的KE可能由计算机科学家执行,而现在则涉及直接与知识交互的领域专家、构建本体的知识工程师、修复过时信息的知识编辑、开发知识完善系统的数据科学家,以及测试可用知识的商业和组织利益相关者。这些不同的用户和任务要求KE系统能够灵活地定义和支持各种利益相关者的需求和优先级。
2. 系统设计模式的框架化(Boxology)
近期,将系统设计模式抽象为框架化的“盒子学”(Boxology)为将KE的需求和用例与最能满足这些需求的系统、组件和软件对齐提供了契机。然而,当前的盒子学模式尚未包含用户需求、任务和应用需求的信息,也缺乏将来可能包含这些信息的机制。此外,盒子学模式和流行的NeSy(神经符号系统)流程(例如微调)和工件(例如知识图谱)之间的对齐规范尚不明确,这表明KE系统需要一种原则性的方式来考虑不同用户需求、范式和用例。
3. 面向未来的知识工程需求
随着KE的范式和技术的不断演进,未来的KE需求将需要更加灵活和适应性强的系统。这些系统应该能够随着时间的推移和应用的变化而适应不断演变的需求,并提供一种规范性框架,标准化最佳实践,同时允许针对特定情况进行定制。
提出参考架构的概念与方法论
1. 参考架构的定义与用途
参考架构(RA)是一种框架,它通过最终架构和相应的软件系统将利益相关者的需求与设计模式对齐。RA作为一个通用架构,为特定信息系统类别内的软件工程实践社区提供标准化。RA的特点包括提供最高级别的抽象,强调架构质量,考虑但不包括利益相关者,并促进遵循共同标准,有效支持系统开发和沟通。
2. 六步法设计与实施参考架构
RA的设计和实施可以通过以下六步法进行:范围定义、信息源选择、架构分析、基于信息源分析的架构合成、通过实例化进行评估,最终将架构实例化为具体的软件架构。这一过程是人为中心和迭代的,特别适合于动态和频繁变化的学科,如KE。
3. 从信息源选择到架构评估的过程
选择信息源的过程可以通过系统地分析NeSy领域的文献来实现。例如,通过SPARQL查询针对KE任务的文献集,可以识别出与KE相关的系统。然后,可以通过对这些系统的分析来确定它们如何支持KE的质量属性。这种分析可以帮助确定候选的RA合成模式,并在实例化和使用中对合成的架构进行评估。
参考架构在知识工程中的应用示例
1. 内容发现与推荐系统的参考架构设计
在知识工程的实践中,参考架构(RA)的设计可以显著提高内容发现与推荐系统的效率和准确性。例如,企业可能希望改善其网站上内容的可发现性,以提升用户体验和商业成果。通过利用RA,企业可以构建一个系统,该系统使用特定领域本体进行内容标记,以支持用户寻找相关内容的任务。
在这个场景中,RA的设计需要考虑多个质量属性(QAs),例如领域特异性和可扩展性。领域特异性确保系统能够从特定领域的术语和定义中提供主题标签,而可扩展性则允许系统随着新内容和主题的出现而扩展。架构师可以通过查询知识图谱来识别符合这些QAs和需求的设计模式,例如F2设计模式,它描述了一个系统,该系统将输入的符号表示(企业知识图谱)和数据(网站内容)结合起来,通过模型(M)生成输出的符号表示,以将网站内容与领域特定主题分类联系起来。
2. 评估与实例化参考架构的方法
在RA设计完成后,需要通过实例化和使用来评估其效果。这可以通过轻量级的架构权衡分析方法(ATAM)来实现。在ATAM会议中,利益相关者和架构师聚集在一起,通过讨论用户场景来识别可能影响QAs实现的架构风险。这些场景可能包括数据集成、数据质量检查、实体解析、本体合并和对齐、查询优化以及自然语言处理等任务。
一旦RA通过评估,就可以进入具体的软件架构实例化阶段。在这个阶段,每个组件的实现选项将被确定,可能包括现有软件包的使用或定制开发。例如,可以为知识图谱完成提供Pytorch-Biggraph的接口,为使用约束评估质量提供Shape expressions (Shex)工具的接口,以及为跨知识工件的记录链接提供RLTK的接口。
讨论与未来方向
1. 参考架构对知识工程实践的影响
参考架构在知识工程中的应用可以带来多方面的影响。首先,它为分散的系统模式提供了组织原则,有助于系统化知识工程领域的实践。其次,RA通过考虑其范围、用例和相应需求,将模式整合在一起,同时考虑质量属性和功能需求。此外,RA的迭代开发过程确保了架构能够适应技术趋势的变化,并随着时间的推移和应用的变化而适应。
2. 面临的挑战与未来研究方向
尽管RA提供了一种有前景的方法来标准化知识工程实践,但在实际应用中仍面临挑战。例如,如何确保RA能够灵活地适应不断变化的技术和用户需求,以及如何有效地将RA与现有的知识工程工作流程和系统模式相结合。未来的研究方向可能包括进一步精细化RA的设计和评估过程,以及探索如何自动从系统化的论文集合中提取功能需求和质量属性。此外,随着知识工程领域的不断发展,RA的实例化和评估过程也需要不断迭代和完善。
总结:参考架构在标准化知识工程实践中的作用与前景
1. 参考架构的定义与应用
参考架构(RA)是一种软件工程方法论,它通过将用户需求与系统模式相结合,创建出一种通用的框架。这种框架不仅为特定类别的信息系统提供了一个高度抽象的通用架构,而且还强调了架构质量,并促进了对共同标准的遵循。RA的开发是以人为中心的,迭代式的,这使其特别适用于动态和频繁变化的学科,如知识工程(KE)。RA的主要优点在于它提供了一个共同的框架,同时允许用户为其狭窄的用例设计特定的RA。
2. 参考架构的六步发展路线图
在知识工程领域,RA的发展遵循了一个六步路线图,包括范围定义、信息源选择、架构分析、基于信息源分析的架构合成、通过实例化进行评估,最终将其实例化为具体的软件架构。这个过程旨在将用户需求与重复出现的系统模式相结合,建立在现有的知识工程工作流程和系统模式之上。
3. 参考架构在知识工程中的作用
RA在知识工程中的作用是将分散的系统模式组织起来,为知识工程领域的系统化提供了一个关键贡献。RA通过考虑其范围、定义的用例及其相应的需求,将模式整合在一起,这些需求被提炼为质量属性和功能需求。架构的合成是一个迭代过程,受到服务导向设计、电子政务和汽车行业参考架构成功案例的启发。架构的发展的一个关键方面是通过实例化和使用与代表性用户进行评估。最后,需要将参考架构组件实例化为软件,从而完成用户需求与现有技术能力之间的循环。
4. 参考架构的前景
随着知识工程领域的持续发展,RA提供了一种机制,将架构模式与用户需求相关联,并识别潜在的差距。RA的实现在实践中目前尚处于部分阶段。本文提出了一个通过定义代表性任务和提炼23个质量属性及8个功能需求来界定范围的路线图,并采用了最近识别出的神经符号知识工程系统模式作为信息源,提供了初始组件,可以用来构建RA。文章还展示了如何将QAs与识别出的架构模式直接映射,检测到各种程度的支持需求。对于从模式合成RA、通过实例化和使用评估RA以及将RA实例化为软件的步骤,文章提出了一个规范的、整合软件工程最佳实践和方法论的逐步过程,因为这些步骤高度依赖于特定用例。每个步骤都需要迭代设计、开发、实施和评估RA的专门努力,这是我们计划追求的下一步,以代表性的任务和领域的代表性子集为例。我们相信,为KE设计RA的提出的方法为系统化KE方法的新兴工作提供了重要的扩展,提供了一种机制,将架构模式与用户需求相关联,并识别潜在差距。