- 摘要
- 论文总结了为自动驾驶领域大型企业的数据湖构建语义数据管理平台的研究和开发
- 搜索能力是对基于Hadoop大数据的分析和机器学习的一个重要的支持
- 背景
- 博世底盘系统控制(Bosch Chassis Systems Control ,CC)
- 为了处理大量数据,采用大数据存储,连接预置的Hadoop集群以提高计算效率
- 这种存储方式造成了复杂性和多样性
- 不同的格式和内容
- 不同的项目
- 数据湖
- 数据湖采用自底向上的构建并以使用迭代的方法
- 数据湖部件以具体的案例和项目进行开发
- 团队将每个集成部件整合成一个统一的架构
- 这种方法能够快速为高需求的项目交付结果,还可以得到一个长期收益的统一数据管理策略
- 数据湖采用自底向上的构建并以使用迭代的方法
- 统一的语义模型
- 在数据集成和不见从开发的生产的平稳过渡中扮演重要角色
- 允许跨案例重用信息
- 在互联的多个数据源上的数据进行语义搜索
- 本文总结了使用语义技术实现数据湖搜索的方法
- 方法
- 总体架构
- 总体架构如图1所示
- 总体架构
图1. 左手边:带有数据访问层和语义知识层的CC数据湖的概述;右手边:用于跨数据湖表示和链接数据的本体
- 主要目标
- 为将不同数据源的数据集成为知识提供一个集中的解决方案
- 提供一个统一的访问接口
- 为数据湖添加两个层
- 语义知识层
- 存储数据相关知识
- 以可操作的方式从数据中提取知识
- 例如,为分析和机器学习提供数据(重reuse)应用
- 数据访问层
- 为引用程序提供基于公共REST端点和API的数据湖数据统一的访问和查询
- REST即表述性状态传递,是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
- Data Access Engine (DAE)使用数据目录(Data Catalog)知识图谱对单独的数据资源进行访问控制
- DAE支持Kerberos,因此可以轻松地与企业IT系统(Enterprise IT systems)集成
- Kerberos
- 一种计算机网络授权协议
- 用于身份验证
- Kerberos
- 为引用程序提供基于公共REST端点和API的数据湖数据统一的访问和查询
- 语义知识层
- 这个架构可以实现数据湖数据的语义搜索
- 例如,工程师需要分析具有某个特定特征的所有测试驾驶,或者训练给定驾驶环境的机器学习模型
- 语义知识层可以跨越存储在数据湖的所有资源进行表达式搜索,来找到相关的数据集
- 数据访问层通过直接连接数据在数据湖中的存储为工程师提供统一的访问
- 例如,工程师需要分析具有某个特定特征的所有测试驾驶,或者训练给定驾驶环境的机器学习模型
- CC本体和知识图谱
- 使用迭代的方式构建本体模型,以一些核心使用案例开始
- 目的是开发一个用于为汽车领域的一般数据进行建模的基础本体,被叫做汽车传感本体(Automotive Sensing Ontology,ASO)
- 这个基础本体通过特定本体进行扩展已涵盖各个项目的需求
- 每个案例以competency questions的形式提供一系列的需求,这些需求与领域专家一起开发、讨论
- 基于这些需求,对特定于用例的本体进行建模,并开发流程来构建各自的知识图,每个知识图存储在Stardog[2]集群上的独立数据库中
- 每个知识图谱都依赖于基础汽车本体和使用案例的具体本体
- 当需要在多个知识图谱上查询时,
- 在数据访问层定义了SPAQRL查询
- 通过数据访问引擎(Data Access Engine,DAE)执行查询
- 汽车传感本体(ASO)
- 对CC数据湖中的传感器观测数据进行标注和链接
- 本体使非领域专家也能理解和搜索数据,以支持CC相关的广泛应用程序和用例
- ASO借用了一些标准本体和词汇中的概念(图1所示)
- 通过一组三个不同的模块为汽车传感领域建模
- 场景&动作(Scenes & Maneuvers)
- 定义这个概念来表示车辆可能参与的活动及其周围环境
- 动作( Maneuvers)包括刹车、在高速公路变道或根据交通灯停车等
- 传感器观测数据(Sensor observations)
- 定义这个概念来表示车辆及其周围环境的传感器和观测结果
- 重用来自W3C语义传感器网络本体( W3C Semantic Sensor Network Ontology)[1]的几个概念
- 数据来源(Data Provenance)
- 定义这个概念来对存储在数据湖中的数据进行描述、引用和跟踪
- 根据W3C的建议去重用PROV-O本体[3]的概念
- 场景&动作(Scenes & Maneuvers)
- 表1列举了一些核心概念
表1. 列举了ASO中场景&动作(Scenes & Maneuvers)的classes and properties
概念 | 描述 | 引用 |
Classes | ||
Drive | drive使车辆在一些特定地理空间区域(位置/地点)和时间间隔内的使用。部署在车辆上的传感器可以观察使用过程中车辆和/或环境的属性 | aso:Drive |
EgoVehicle | 交通工具是一种设计或用于在陆地、水、空气或太空中运送人或货物的设备 | aso:EgoVehicle |
Maneuver | Maneuver是一种场景,车辆参与一些目的性的活动(刹车,加速) | aso:Maneuver |
Scene | scene是drive中发生的一个活动,以及围绕该活动的上下文。scene的知识(或检测)通常是通过对drive过程中的观察结果进行分析得出的 | aso:Scene |
Properties | ||
agent | 动作的直接执行者或驱动者(有生命的或无生命的) drive/maneuver的agent是一个EgoVehicle | schema:agent |
occursDuringDrive | Scene和发生在其中的Drive之间的关系(与hasScene相反) | aso:occursDuringDrive |
occursDuringScene | 检测结果和发生在其中的Scene直接按的关系 | aso:occursDuringScene |
participant | Scene与FeatureOfInterest的关系;将场景与间接参与场景的特征联系起来 | schema:participant |
- 为了通过语义搜索访问CC数据湖中的数据集,我们采用知识图谱格式的数据目录(Data Catalog)来从语义数据中推理数据来源[4]
- 一种引用数据目录中的数据集的机制
- 为数据湖中的每个文件、表格或图分配一个全局标识(Global Identifier ,GID),用于链接知识图谱中的知识存储的数据的参考
- 一种引用数据目录中的数据集的机制
- 使用案例
- 基于上下文的动作搜索( context-based maneuver search)
- 通用数据目录知识图谱
- 使用案例特定的知识图谱
- 捕获一组被记录动作(maneuvers)的所有fact
- 使工程师能够找到所有感兴趣的数据集去完成特定的分析和执行高度情景化的机器学习训练
- 对于每一个动作(maneuvers)我们添加了其全部的相关知识
- 元数据(如时间、地点、汽车平台和子系统)
- 动作类型(如刹车、转变)
- 动作环境(如告诉、桥梁、傍晚、雨天)
- 从传感器数据得来的相关特征(汽车速度,加速度)
- 对于每一个动作(maneuvers)我们添加了其全部的相关知识
- 基于上下文的动作搜索( context-based maneuver search)
- 结论
- 使用语义搜索技术提升对存储在CC数据湖中汽车数据的检索能力
- 文中架构将元数据管理的语义技术(依赖于Stardog)与Hadoop技术相结合
- 开发了ASO来对汽车领域数据进行描述和标注
- 下一步将我们的概念验证(proof-of-concept)发展成一个生产级别(production-grade)的系统