图话第一代女性开发者

写在前面的话

想问大家一个有趣的问题,大家知道我们程序员圈的第一位女性开发者是谁吗?作为开发者,以前并没有认真去想过这个问题,这两天认真的看了一下百度百科查找了一下相关的专业知识。才知道历史上第一位女性程序员是:奥古斯塔·阿达·金,勒芙蕾丝伯爵夫人(1815年12月10日-1852年11月27日)(英文:Augusta Ada King, Countess of Lovelace),原名奥古斯塔·阿达·拜伦(Augusta Ada Byron),通称阿达·洛芙莱斯(Ada Lovelace),是著名英国诗人拜伦之女,数学家。计算机程序创始人,建立了循环和子程序概念。
为计算程序拟定“算法”,写作的第一份“程序设计流程图”,被珍视为“第一位给计算机写程序的人”。为了纪念阿达·奥古斯塔对现代电脑与软件工程所产生的重大影响,美国国防部将耗费巨资、历时近20年研制成功的高级程序语言命名为Ada语言,它被公认为是第四代计算机语言的主要代表。
言归正传,今天我们用技术去致敬这位女性开发者,向她学习科学严谨的研究精神。本文通过Graph来梳理人物的生平关系和重要人物,采用Neo4j来进行关系的存储和可视化。

一、相关信息的收集

本文的目标是通过图来构建埃达.洛夫莱斯的生平,他的重要人物关系,对计算机和相关行业的重要影响等等,我们尝试通过百科来查找相关的资料,下面跟着一起来吧。

1、搜集人物信息

首先我们先在百度百科中直接搜索中心人物的主要信息。在连接中埃达.洛夫莱斯,我们可以看到以下的信息。

在1842年,人称“数字女王”的阿达·洛芙莱斯(Ada Lovelace)编写了历史上首款电脑程序。在1834年,阿达的朋友——英国数学家、发明家兼机械工程师查尔斯·巴贝其(Charles Babbage)——发明了一台分析机;阿达则致力于为该分析机编写算法,并于1843 年公布了世界上第一套算法。巴贝其分析机后来被认为是最早期的计算机雏形,而阿达的算法则被认为是最早的计算机程序和软件。1852年,阿达为了治疗子宫颈癌,却因此死于失血过多,享年36岁。无独有偶,她与她父亲拜伦死于相同年龄,一样死于治疗中的失血过多。她留下了两个儿子与一位女儿—安妮·布兰特贵女。依她的遗言,阿达葬于诺丁汉哈克诺的圣 玛丽亚·抹大拉教堂,长眠在父亲的身旁。

通过以上的信息介绍,基本上已经形成了比较清晰的人物关系脉络。我们使用思维导图的方式来展示这些信息可以如下所示:

二、Neo4j图话人物

neo4j的知识这里暂时不展开(只是简单讲解),后面可以抽一些时间来专门的谈谈图数据库,已经图数据库的简单使用。今天主要讲讲如何把这些信息以图的形式表达和呈现,怎么把数据插入到图数据中,怎么进行实体关系的建立。

1、Neo4j都有啥

打开安装好的Neo4j的浏览器控制台桌面,您可以看到如下的页面:

在上图的页面中,我们可以看到,图数据库中有三个最重要的对象:Node、Relationship、Property。通过节点、关系、属性来构建一个图,图用于表达事务、人物这些对象的关联关系的话,具有非常直观和友好的特点,而反观关系型数据库,不仅存储麻烦,可能查询维护数据也是一件令人非常痛苦的事情。

比如我们打开一个电影的相关节点信息,就直观的看到这些信息。

切换到table模式下可以看到它的原始信息是这样的

2、文本到图对象映射

这里假设您对neo4j已经有了一些基本了解,对常规操作也略知一二,对于如何创建node,生成关系,这里不一一列出,不清楚的朋友可以参考CSDN的一些入门帖子进行学习。我们基于之前百科中查找的信息,将人物的关系和相关实体转换成Neo4j中的相关对象。具体的实体创建语句如下:

CREATE (TheMatrix:girlCoder {title:'第一位女程序员', released:1999, tagline:'图致敬关于历史上第一位女程序员'})
CREATE (a:Person {name:'埃达.洛夫莱斯', born:1815,remark:'历史上第一位女程序员,数学家'})
CREATE (b:Person {name:'迈克尔.法拉第', remark:'电学之父'})
CREATE (c:Person {name:'玛丽.萨默维尔', remark:'19实际欧洲数学和科学界的杰出女性之一'})
CREATE (d:Person {name:'乔治.戈登.拜伦', remark:'英国诗人、剧作家'})
CREATE (e:Person {name:'安妮.安娜贝拉.拜伦', remark:'诗人拜伦的妻子'})
CREATE (f:Person {name:'程序员'})
CREATE (g:Person {name:'飞行学', remark:'12岁写的书'})
CREATE (h:Person {name:'数学'})
CREATE (i:Person {name:'子宫颈癌', remark:'病症'})
CREATE (j:Person {name:'尤卡里机器'})
CREATE (k:Person {name:'计算机硬件历史'})
CREATE
  (a)-[:朋友]->(b),
  (a)-[:师从]->(c),
  (a)-[:父女]->(d),
  (a)-[:母女]->(e),
  (a)-[:史上第一位]->(f),
  (a)-[:出版物]->(g),
  (a)-[:知名于]->(h),
  (a)-[:亲历]->(i),
  (a)-[:启发]->(j),
  (a)-[:影响]->(k)

复制以上的语句,到neo4j的客户端执行机器上去运行,您可以在图数据库中进行查询看到以下结果。neo4j采用Match语句进行数据的查询,类似于select,执行完成后可以看到结果:

MATCH (n:Person{name:'埃达.洛夫莱斯'}) RETURN n

到这里,有朋友一定会说,只看到了中心任务,没有看到它的关系和关联的实体信息。应该怎么办呢?其实很简单,我们可以通过客户端的关系探索功能来实现自由探索。使用鼠标点击节点,在弹出的页面中点击图即可。

这样就完整的展示了以埃达.洛夫莱斯为中心的关系探索,以及关联关系的实体信息。你甚至可以基于关系实体进行再次探索(这里没有构建其它的关系,所以暂时无法探索)。

总结

以上就是本文的全部内容,本文以埃达.洛夫莱斯为出发点,通过百度百度采集相关人物的信息,创建思维导图,然后将思维导图和文本信息转换成graph,存放在neo4j图数据库库中,通过实例讲解怎么从文本到图对象的人工构建过程,在图领域,其实有很多自动识别文本提取到图谱的项目,有兴趣的朋友可以一起去探索。行文仓促,如有不当,请各位批评指正。最后,仅以此文致敬广大的女性开发者,祝各位工作顺利,开开心心。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/3642.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker+jenkins+maven+git构建聚合项目,实现自动化部署,走了800个坑

流程 主要的逻辑就是Docker上安装jenkins&#xff0c;然后拉取git上的代码&#xff0c;把git上的代码用Maven打包成jar包&#xff0c;然后在docker运行 这个流程上的难点 一个是聚合项目有可能Maven install的时候失败。 解决办法&#xff1a;在基础模块的pom文件上添加 <…

重谈“协议” + 序列化和反序列化

目录 1、重谈 "协议" 协议的概念 结构化数据的传输 序列化和反序列化 2、网络版计算器 2.1、服务端serverTcp.cc文件 服务端serverTcp.cc总代码 2.2、客户端clientTcp.cc文件 客户端clientTcp.cc总代码 2.3、协议定制Protocol.hpp文件 服务端需要的协议 客户端需要…

惠普官网驱动程序与软件下载,如何安装打印机驱动

惠普&#xff08;HP&#xff09;是一家全球知名的计算机硬件制造商&#xff0c;其产品涵盖台式电脑、笔记本电脑、打印机、扫描仪等。为了保证产品的正常运行和最佳性能&#xff0c;惠普为其设备提供了驱动程序和软件的下载服务。本文将介绍如何在惠普官网下载所需的驱动程序和…

【Linux】 基础IO——文件(中)

文章目录1. 文件描述符为什么从3开始使用&#xff1f;2. 文件描述符本质理解3. 如何理解Linux下的一切皆文件&#xff1f;4. FILE是什么&#xff0c;谁提供&#xff1f;和内核的struct有关系么&#xff1f;证明struct FILE结构体中存在文件描述符fd5. 重定向的本质输出重定向输…

Linux基础

环境搭建&#xff1a;linux安装、远程连接常用命令&#xff1a;文件、目录、拷贝、移动、打包、压缩、文本编辑安装软件&#xff1a;文件上传、jdk、tomcat、mysql项目部署&#xff1a;Java应用、Python应用、日志查看、系统管理、用户权限Linux是一套免费使用、自由传播的操作…

ngx之日志切割

正确记日志方式是每天都进行切割重新写&#xff0c;保留固定的时间后可使用 find 删除。 用系统自带有的 logrotate /etc/logrotate.d 下面再建立一个文件&#xff0c;这里是nginx &#xff08; 中途有 ctrlZ 暂停过任务&#xff0c;后面fg恢复的 &#xff09; /usr/local/ng…

不同类型的电机的工作原理和控制方法汇总

电机控制是指对电机的启动、调速&#xff08;加速、减速&#xff09;、运转方向和停止进行的控制&#xff0c;不同类型的电机有着不同的工作原理和控制方法。 一、无刷电机 无刷电机是由电机主体和电机驱动板组成的一种没有电刷和换向器的机电一体化产品。在无刷电机中&#xf…

【leetcode】链表(2)

目录 1. 环形链表 解题思路 2. 环形链表 II 解题思路 3. 删除排序链表中的重复元素 解题思路 4. 删除排序链表中的重复元素 II 解题思路 5. 移除链表元素 解题思路 6. 链表的中间结点 解题思路 1. 环形链表 OJ&#xff1a;环形链表 给你一个链表的头节点 head &am…

第二章 作业(6789B)【编译原理】

第二章 作业【编译原理】前言推荐第二章 作业678911最后前言 以下内容源自《编译原理》 仅供学习交流使用 推荐 无 第二章 作业 6 6.令文法G6为 N→D|ND D→0|1|2|3|4|5|6|7|8|9 (1)G6的语言L(G6)是什么? (2)给出句子0127、34和568的最左推导和最右推导。 &#xff08;…

【开发】后端框架——SpringBoot

title: SpringBoot top: 56 categories: 开发后端框架 tags:开发后端框架SpringBoot abbrlink: 1864766114 date: 2022-03-15 21:49:17 前置知识&#xff1a; Spring Mybatis SpringMVC 学习视频&#xff1a;https://www.bilibili.com/video/BV1PE411i7CV?spm_id_from333.337…

【Linux】进程控制

进程创建fork/vfork1.1.fork函数初识在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。#include <unistd.h> pid_t fork(void); //返回值&#xff1a;自进程中返回0&#xff0c;父进程返回子…

前端实现一个名言生成器

The sand accumulates to form a pagoda✨ 写在前面✨ JS是什么&#xff1f;✨ 名言生成器✨ 页面搭建✨ 功能实现✨ 写在前面 在上周我们通过HTML、CSS实现了一个简单的‘我的相册‘页面的搭建&#xff0c;很多伙伴呢跟我说难道前端就只能做一些页面搭建的工作吗&#xff1f;…

Linux系统编程 - 基础IO(IO操作)

目录 预备知识 复习C文件IO相关操作 printf相关函数 fprintf snprintf 读取文件 系统文件IO操作 open函数 umask()函数 open函数返回值 预备知识 1.你真的理解文件原理和操作了吗&#xff1f;不是语言问题&#xff0c;是系统问题2.是不是只有C/C有文件操作呢&#x…

【Java开发】设计模式 08:组合模式

1 组合模式介绍组合模式是一种结构型设计模式&#xff0c;它允许将对象组合成树形结构&#xff0c;以表示部分-整体的层次结构。组合模式使得客户端可以统一处理单个对象和组合对象&#xff0c;从而简化了客户端代码。在组合模式中&#xff0c;有两种类型的对象&#xff1a;叶子…

【C语言初阶】函数

文章目录&#x1f490;专栏导读&#x1f490;文章导读&#x1f337;函数是什么&#xff1f;&#x1f337;函数的分类&#x1f33a;库函数&#x1f33a;自定义函数&#x1f337;函数的参数&#x1f337;函数的调用&#x1f337;函数的嵌套调用和链式访问&#x1f33a;嵌套调用&a…

小游戏也要讲信用

当下&#xff0c;小游戏鱼龙混杂&#xff0c;官方为能更好地保护用户、开发者以及平台的权益&#xff0c;近日宣布7月1日起试行小游戏主体信用分机制。 主体信用分是什么呢&#xff1f;简单来说&#xff0c;这是针对小游戏主体下所有小游戏帐号行为&#xff0c;对开发者进行评…

深度学习中的学习率设置技巧与实现详解

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

(五)Tomcat源码阅读:Engine组件分析

一、概述 在阅读源码之前我们需要对各个类的关系有一个清晰的了解&#xff0c;下面就是Engine各个类之间的关系&#xff0c;我们将会按照从上到下的顺序阅读源码。 二、阅读源码 1、Container &#xff08;1&#xff09;注释 Container可以处理请求并给予相应&#xff0c;并…

JavaScript-扫盲

文章目录1. 前言2. 第一个 JavaScript 程序3. javaScript 的基础语法3.1 变量3.2 数据类型3.3 运算符3.4 条件语句3.5 数组3.6 函数3.7 作用域3.8 对象4. WebAPI4.1 DOM 基本概念4.2 常用 DOM API4.3 事件4.4 操作元素4.5 网页版猜数字游戏4.6 留言版1. 前言 提问 java 和 java…

集合之CurrentHashMap 1.7总结

文章目录底层实现构造方法默认的三个参数什么是Unsafe类&#xff1f;它有什么作用&#xff1f;为什么CurrentHashMap 调用Unsafe方法不会报错&#xff1f;我们自己创建的对象调用会报错&#xff1f;CurrentHashMap的key&#xff0c;value可以为null吗&#xff1f;CurrentHashMa…