分析Wikipedia的文章分类链与Apache Age
#开源 #postgres #database #graph

Wikipedia上有一种现象,称为“进入哲学”,该现象基于单击英语Wikipedia文章的主要文本中的第一个链接,并重复此过程以进行后续文章。通常,当我们进入哲学文章时,这个过程结束了。

关于这种现象的最流行理论是,维基百科页面具有向上移动“分类链”的倾向。 Wikipedia风格手册描述了如何撰写文章的铅部分,建议文章首先定义文章的主题。结果,文章的第一句话通常总是提供一个定义,直接回答“ [主题]是什么?”。

数学家 Hannah Fry 演示了Wikipedia大多数文章在‘Marmalade’, ‘socks’ and ‘One Direction’中如何获得哲学的方法。在视频中,她讲述了Wikipedia用户的 Mark J 是如何于2008年初开始的。

连接点

在汉娜(Hannah)的视频中,她展示了我们如何从“数据”文章中获得“哲学”,并在屏幕上绘制图形时与其他文章一起进行,代表了Wikipedia上的许多文章,以及它们如何与之连接。另一个。

wikipidia articles graph

我们可以用Apache Age复制此图的一部分,这是PostgreSQL的图形扩展。如果您没有Apache Age的任何经验,也没有将其安装在机器中,建议遵循以下教程之一:macOSWindows

让我们开始创建图形和一些顶点和边缘,以表示从数据到理念的路径:

-- Creating the Graph
SELECT ag_catalog.create_graph('Wikipedia');
NOTICE:  graph "Wikipedia" has been created
 create_graph 
--------------

(1 row)

-- (Data)-(...)->(Philosophy)
SELECT * FROM cypher('Wikipedia', $$
    CREATE (:Article {name: 'Data'})-[:RELATED_TO]->(:Article {name: 'Knowledge'})
    -[:RELATED_TO]->(:Article {name: 'Descriptive knowledge'})-[:RELATED_TO]->
    (:Article {name: 'Epistemology'})-[:RELATED_TO]->(:Article {name: 'Outline of philosophy'})
    -[:RELATED_TO]->(:Article {name: 'Philosophy'})
$$) as (a agtype);

 a 
---
(0 rows)

现在让我们追踪从图尔帕到知识的路径(我们要直到知识为止,因为我们知道已经有从知识到哲学的道路):

SELECT * FROM cypher('Wikipedia', $$
MATCH (k)
WHERE k.name = 'Knowledge'
CREATE (:Article {name: 'Tulpa'})-[:RELATED_TO]->
(:Article {name: 'Theosophy'})-[:RELATED_TO]->
(:Article {name: 'Religion'})-[:RELATED_TO]->
(:Article {name: 'Social system'})-[:RELATED_TO]->
(:Article {name: 'Sociology'})-[:RELATED_TO]->
(:Article {name: 'Social science'})-[:RELATED_TO]->
(:Article {name: 'Branches of science'})-[:RELATED_TO]->
(:Article {name: 'Science'})-[:RELATED_TO]->
(:Article {name: 'Scientific method'})-[:RELATED_TO]->
(:Article {name: 'Empirical evidence'})-[:RELATED_TO]->
(:Article {name: 'Proposition'})-[:RELATED_TO]->
(:Article {name: 'Philosophy of language'})-[:RELATED_TO]->
(:Article {name: 'Analytic philosophy'})-[:RELATED_TO]->
(:Article {name: 'Academic discipline'})-[:RELATED_TO]->
(k)
$$) as (k agtype);

现在与年龄观看者一起,我们可以在浏览器上可视化图:

graph on AGE Viewer

请注意,知识顶点有两个边缘,一个来自数据,另一个来自学术学科,这导致了Tulpa。

下一步

从现在开始,您可以继续使用其他文章来进行此操作,并在图表上包含它们。虽然,一种更有效的方法是使用Web爬网程序获取链接并将其内容存储在年龄中。

此外,您可以随年龄的其他事情包括创建图表来分析six degrees of separation,这是所有人彼此之间六个或更少的社交联系的想法。甚至为像Contexto这样的游戏创建数据库,这是您需要猜测一个秘密单词的游戏,并且根据您的猜测,它告诉您您的猜测与秘密单词有多远。

有关Apache年龄的更多信息

总的来说,如果要在其中添加图形,则Apache Age是PostgreSQL的绝佳图形扩展名,从而使您可以执行OpencyPher查询,这使得复杂的查询更容易编写。它还允许您执行图形查询,这些查询是许多下一级Web服务的基础,例如欺诈检测,总数据管理,产品建议,身份管理和关系管理,经验个性化,知识管理等。

如果要检查此扩展名并将其在数据库中使用,请查看链接: