Promnesia | beepb00p
舞会[见博客图中]
Promnesia 是一款浏览器扩展(Chrome/Firefox/Firefox 移动),通过增强浏览历史记录、改善您的 Web 探索体验以及与知识库集成,充当网络冲浪副驾驶。
存储库包含更多有关项目和设置指南的信息,此帖子更多的是关于是什么让我在它工作的动机和故事。
此外,如果您愿意,您可以在阅读前先快速浏览演示!
Table of Contents
1.我想要我的奇点!
2.好吧,也许至少是网络助理?
3. 浏览器历史记录已损坏
它不只是关于网络浏览器
它的分散和孤立
它有不同的意义
4. 网址已损坏
5. 先前的艺术
原型和模型
谷歌活动/外卖
"无限历史"扩展
史特雷
维瓦尔迪浏览器
梅马克斯
安德鲁 · 路易斯的《记忆》
世界脑膜
6. 你好, 普罗姆内西亚!
目标
元目标
它是如何工作的?
7. 如何使用普罗姆内西亚?
8. 普罗姆内西亚的未来
9. ---
¶1我想要我的奇点!
我是在科幻小说中长大的,从小就梦想着科技彻底改变我们的生活。人工智能,通过数学协理处理器、抬头显示器、神经界面、完美反应和记忆来增强大脑——你们中的许多人都在同一页上,知道演习。
几年过去了,我成为了一名软件工程师,并意识到我们离我想要的这些花哨的技术有多远。因此,我的愿望变得更加谦虚,我选择了一个更现实和合理的目标:使用我的数字跟踪(如浏览器历史记录,网页注释和我的个人维基)来弥补我有限的记忆。
我在互联网上探索大量的信息, 使用我的肉类资源来跟踪它感到浪费。同时,Web 浏览器会自动保存记录,无需任何手动和有意识的努力。当然,我们可以从计算机巨大的计算能力和内存能力中获益吗?
所以我想我想要:
¶2好吧,也许至少是网络助理?
随便叫它什么,我希望它是一个概念,一个广泛接受的名字。将坐在我的浏览器和:
帮助我处理信息
跟踪我所读的内容、时间、设备以及读时间。
在原始页面中向我展示我的注释和亮点
我不想一直想知道我是否有我的笔记和想法藏在一些应用程序,我希望计算机让我知道,而不是。
统一我分散和孤立的书签
火狐书签;雷迪特/哈克新闻保存;"稍后观看"在Youtube上,保存在我的即时通讯链接。
这些都是一回事, 但没有办法通过一个接口来监督和处理它们。
"入站数字内容的队列管理":关于这一想法的进一步扩大的帖子。
与我的在线存在连接:聊天和社交网络
如果我在推特上发布了一个页面,这肯定应该以某种方式记录在浏览历史记录中吗?
事实上,我费心发推的页面比我刚刚在浏览器中访问的页面重要得多。
帮助我探索新信息并确定其优先级
有这么多真棒东西在互联网上!我最大的问题是选择下一个很酷的链接来挖掘。
想象一下,如果在一次点击,我可以看到我的朋友,或我跟随的人已经阅读了一定的链接。他们怎么想的?他们有没有发布过关于它,注释,或其他什么?他们跟着作者吗, 也许我也应该?
弥合浏览器和我个人维基之间的差距
无论我选择什么产品来管理我的笔记:谷歌保持,Evernote,漫游研究,甚至组织模式文件在我的磁盘上,他们总是最终孤立和断开从我的网页浏览。
在找到现有解决方案的努力失败后,我想这将是我必须实现自己的另一件事。
建设的旅程比我预想的要长,带领我走过了数据解放的兔子洞,大量的牛剃须,让我意识到:浏览器的历史是非常,非常破碎。
注意:接下来的两节是(有点技术性的)咆哮。如果你喜欢一个更积极/不那么无聊的议程,请随时直接跳过他们到"现有的解决方案",你可以稍后回来,如果你喜欢它。
¶3浏览器历史记录已中断
在很大程度上,网址表示信息位之间的关系和层次结构。例如:。blog <-> post <-> comment
person <-> tweet
playlist <-> video
有了这些信息,您应该能够轻松找到与当前页面相关的一切,并通过过去的网站跟踪您的跳跃。只需查看网址,没有"AI"或一些可疑的机器学习算法!看起来像是低挂水果要收获,对吧?
Web 浏览器历史记录是潜在有用信息的丰富来源。想想看:这是零努力的生活记录。它包含确切的时间戳和链接,基本上解决信息。
现在想想你实际拥有的经验。除了重新打开意外关闭的选项卡之外,您最后一次以任何非实际方式使用浏览器历史记录是什么?
此外:
¶它不只是关于网络浏览器
/data/data/app.name
作为一个特定的例子,雷迪特幻灯片应用程序保持您的视图历史记录。好吧,说你根你的手机和访问数据库。事实证明,应用程序并没有永远持续的数据,它只是保持几个星期的缓存。我很难责怪开发人员:由于数据模型,没有人期望普通用户访问此数据库。/data/data/me.ccrama.redditslide/SEEN
因此,如果您想要完整的历史记录,您必须定期备份此数据库,保留快照并以某种方式重建它。
你可能会认为这是我数据的每一点挑剔和痴迷。但是,当您所有的手机应用程序都这样做,你错过了相当多的有用的信息。
¶它的分散和孤立
基于上一点:
在大多数情况下,您无法访问手机应用中的历史记录
大量的数据,应该算作网络历史分散在筒仓
- 云中:在 API(最佳案例)、GDPR 和手动出口(最坏情况下)的背后,即使您是经验丰富的软件工程师,也绝非易事。
在文件系统上,例如在减价/组织模式文件中
情况稍好一些,但就网络浏览器而言,这没有任何区别。
即使是常规浏览器历史记录也不容易获得:
¶它有不同的意义
并非历史上的所有链接都同样重要:
有些是偶然点击的
一些你刚刚掠过
有些在你的阅读清单上
一些你已经阅读了几个小时,并充满了你的亮点和注释
一些你在你的知识库/个人维基中引用
其中一些你已经与其他人在社交媒体上分享
当前浏览器历史记录体验不区分这些场景。
¶4个网址已损坏
这个主题可能值得一个单独的职位,但我会保持它的部分大小现在。
网址可能看起来很棒,因为它们主要处理内容,并且具有半描述性:人们试图保持网址的合理性、整洁性和工作性。但在现实世界中:
链接腐烂
许多网址实际上已经损坏。我们很幸运有,所以你至少可以访问死页。
但是,无法迁移浏览器历史记录,例如将旧 URL 指向各自的 条目或新域。类似地,如果您的页面有注释,则您的注释将成为孤儿,而无需简单的方法重新链接他们。
链接被缩短和重定向混淆
当 Twitter 作为服务死亡时, 所有t.co
链接会发生什么?链接被遮盖
没有简单的方法来了解背后是什么不查询Instapa纸API。
https://www.instapaper.com/read/1265139707
数据之间的关系也经常被掩盖。例如:
这些链接显然是相关的,但没有办法告诉它只是从。id
将此与雷迪特链接进行比较:
ID是模糊的,但至少我们可以清楚地看到的关系,只需看看网址。唉,浏览器只是忽略了这个有用的信息。
post <-> comment
https://reddit.com/r/orgmode/comments/g6ejwe/is_there_an_orgmode_workbook_tutorial_that_is
是一个帖子链接https://reddit.com/r/orgmode/comments/g6ejwe/is_there_an_orgmode_workbook_tutorial_that_is/fo9qnen
是该职位的评论https://news.ycombinator.com/item?id=22918980
是提交链接https://news.ycombinator.com/item?id=22919718
是该提交的评论链接未标定
例如,查询
最糟糕的是,这些使用案例重叠。例如,请查看:
youtube.com/watch?v=wHrCkyoe72U&feature=share&time_continue=6
类似的故事也适用于片段:
在 Google 群组中,它们是有意义的,并处理特定的讨论和消息:
https://groups.google.com/a/list.hypothes.is/forum/#!topic/dev/kcmS7H8ssis
在大多数网站上,它们都是指页面内的内容:
https://github.com/lipoja/URLExtract/issues/13#issuecomment-467635302
v=wHrCkyoe72U
是这个链接最重要的部分feature=share
只是垃圾time_continue=6
可以被视为有用的信息通常不指向任何持久性的东西,用于查询(duh)
但其他时候,他们被用来解决信息:或
http://wiki.c2.com/?LispLanguage
https://www.scottaaronson.com/blog/?p=2694
在许多情况下,是完全垃圾用于跟踪
链接不规范
往往它不存在
当前出现时,经常使用不当,
你需要先获取页面才能获得规范链接
只有一种方法工作:你不能轻易地检索所有链接,有相同的规范页面作为当前
想想所有的垃圾www.amp.mobile.m.
youtu.be/1TKSfAkWWN0
,并参考完全相同的内容,但您的浏览器不知道。youtube.com/embed/1TKSfAkWWN0
https://www.youtube.com/watch?v=1TKSfAkWWN0&list=WL&index=11
<link rel="canonical" ...>
元素
我希望网址能够处理信息并代表关系。当前的网址体验远非理想之选。
¶5先前的艺术
可悲的是,我很少看到类似的项目。请让我知道,如果我错过了什么!
¶原型和模型
-
2000年论文(!):
保证金注释是一个系统,它会自动注释您访问的每个网页,并链接到其他可能有用的文档。
此页面有更多的信息,这似乎更像是一个推荐系统,我还没有找到任何源代码来检查它。
-
目标:使用铬扩展来通过引入卓越的浏览历史记录数据结构来补充您的浏览体验:
可悲的是,这只是一个概念。
保留来源。保持浏览历史记录的详细信息
跟踪动态内容的交互
¶谷歌活动/外卖
虽然我已经覆盖了它,它值得再次提尽可能多的人使用它。我觉得这有问题,因为:
这是一个谷歌特定的孤岛,谷歌提供的功能是唯一有用的故意搜索
它没有API,并且无法集成到浏览器中
¶"无限历史"扩展
有一个类似于历史趋势无限的Chrome扩展系列,试图通过将历史记录保留在 IndexDB 中来弥补 Chrome 的 90 天保留时间。不幸的是,保留是唯一的问题,这解决了,然后它最终作为一个另一个孤岛。
但是,成千上万的用户表示,至少对此类功能有需求。
¶史特雷
Histre 是一个开源浏览器扩展,将历史作为一棵树呈现,以便于探索。我真的很喜欢这个想法,很遗憾,这不是我们浏览器中的默认代表。
Histre 的缺点是,它无法与您现有的其他服务页面知识集成,因此它本身就是一个孤岛。
¶维瓦尔迪浏览器
Vivaldi 有一些新的想法,特别是浏览器历史记录和日历视图的统计数据。您还可以在设置中为历史记录实现无限保留。
但是,您只能访问 Vivaldi 中的历史记录,并且您的所有其他数据都被排除在外。
¶梅马克斯
卡尔·沃伊特的Memacs是一个memex软件,它将您的数据统一为组织模式,允许您从 Emacs 内部查询它。
它作为个人时间线/信息搜索系统非常出色。但是,这意味着您必须主动在 Emacs 中查询信息,而不是被动助手为您执行这些信息。
将您的完整详细历史记录作为纯文本是一种没有额外界面的嘈杂,并且对于有数十万条条目的长浏览历史记录效率低下。
¶安德鲁 · 路易斯的《记忆》
这是 Memex 的工作原型(但至少现在尚未开源),统一个人数据并为此暴露 API。
我几个月前才碰到它!因为它不是公开的,我不知道它在多大程度上可以具体解决浏览器历史问题。跳得比自己早一点,我期望它能很好地与普罗姆内西亚融合在一起,这样我们就有可能从彼此的工作中获益。
¶世界脑膜
Worldbrain Memex是一个浏览器扩展,以注释、搜索和组织您在网上看到的内容,并很快成为移动应用程序。
这是一个惊人的产品:开源,本地第一,支持标记,亮点,注释,甚至全文历史搜索。无论如何,试试吧!
如果不是因为一个问题,那将非常接近我对个人网络助理的愿景:它也是一种孤岛。您可以将其他服务的数据导入 Memex,但必须符合其数据模型。如果由于某种原因,您无法使用 Memex 来注释和记录您的历史记录(例如在某些设备上)——您最终使用多种服务,或者将分散在数字空间的数据副本中冗余(且可能不一致)。
拥有注重隐私和开源工具是迈向更美好未来的非常重要的一步。但是,我想要一种与现有数据交互的不同模型,它不需要在孤岛之间移动数据。(请参阅"它不只是关于浏览器")
再次向前跳跃,普罗姆内西亚可以与 Memex 数据集成。总的来说,我们的愿景似乎非常相似,我期望这两个项目都能从彼此的工作中受益,以至于普罗姆内西亚扩展正在与世界脑膜 memex 共享扩展/后端。
¶6你好,普罗姆内西亚!
我已经提到了我想要的,但我会回顾一下:
¶目标
使历史变得有用:在单一界面下统一分散和孤立的历史
你昨天在 Instapaper 手机应用程序中打开的链接和十年前在 Firefox 访问的链接之间绝对没有区别。
使网址变得有用:利用它们的层次结构和它们之间的关系
协助我探索新信息
使它能够轻松地追踪我的历史
让我回答什么时候,如何,为什么我访问/书签页面?
集成元数据:注释、高音、笔记、聊天消息、推文等。
从围墙花园中释放它,并在适用时在页面中显示(例如高光)
使其灵活
只要它是你可以提取网址的东西,你应该能够在普罗姆内西亚喂它。
一件很酷的事情是,其中一些目标从一开始就不清楚——我在开发过程中发现了它们,而且我认为还有很多我还没有发现!
¶元目标
还有一些元目标和原则,我坚持:
使其开源
不用说:我为这个项目所做的一切都是共享和开源的。坦率地说,我甚至不确定这样的项目是否能以任何其他方式持续下去。
本地第一
您的过去是敏感数据,您应该能够控制保留它的位置以及访问它的情况。在最简单的设置中,舞会通过本地端口与浏览器进行通信。
此外,您有您的所有数据可用#offline。现代浏览器提供了一个相当可悲的离线体验,但如果你使用类似于存档框的工具,这对你很有用。
使其模块化
确保组件可以重复使用。
在过去的几个月里,我主要从 Promnesia 中删除/移除代码,以确保其中的数据处理和规范化代码可用于其他人的其他目的。
我将进一步探讨与其他开源工具互操作和集成的潜力,稍后我会写它。
不要再建一个孤岛,使用现有的信息
这种补充了前一点。
已经有许多体面的服务和工具。他们都有自己的利弊。不同的人更喜欢不同的工具。有时因为他们被锁在里面, 没有太多的选择, 但有时, 因为他们真的有微妙的偏好和意见。
无论在时间还是在认知努力方面,切换的成本都太高了。总是有遇到一件小事的风险,这将使工具不走。
我们应该投资寻找更好的方法来整合现有的工具,而不是重新编写。
¶它是如何工作的?
舞会由三部分组成:
浏览器扩展
但是,浏览器插件无法读取访问您的文件系统,因此要加载数据,我们需要一个帮助组件:
整齐地在侧边栏中显示历史和其他信息
处理亮点
提供搜索界面
服务器/后端:命令promnesia serve
它被称为"服务器",但实际上它只是一个常规程序,其唯一目的是将数据提供给浏览器。它运行本地,你不必暴露在外面。
索引器:命令promensia index
索引器会通过源(配置中指定),处理原始数据并提取 URL 以及其他有用的信息。
它正在做的另一件重要的事情是使网址正常化, 以建立等价物, 并从垃圾中取出。我写的动机,它在"URL被打破"。
如果您想更深入地了解 Promnesia 正在提取哪些信息,您可能还想浏览词汇表。
¶数据来源
¶数据流
这里有一个图表,有望帮助了解数据如何流经普罗姆内西亚。
有关 HPI 模块和数据流的更多信息,请参阅有关数据流的 HPI 部分。
也看看我的基础设施地图,这是更详细的!
┌─────────────────────────────────┐ ┌────────────────────────────┐ ┌─────────────────┐ │ 💾 HPI sources │ │ 💾 plaintext files │ │ other sources │ │ (twitter, reddit, pocket, etc.) │ │ (org-mode, markdown, etc.) │ │ (user-defined) │ └─────────────────────────────────┘ └────────────────────────────┘ └─────────────────┘ ⇘⇘ ⇓⇓ ⇙⇙ ⇘⇘ ⇓⇓ ⇙⇙ ┌──────────────────────────────┐ │ 🔄 promnesia indexer │ | (runs regularly) │ └──────────────────────────────┘ ⇓⇓ ┌──────────────────────────────┐ │ 💾 visits database │ │ (promnesia.sqlite) │ └──────────────────────────────┘ ⇓⇓ ┌──────────────────────────────┐ │ 🔗 promnesia server │ | (always running) | └──────────────────────────────┘ ⇣⇣ ┌─────────────────────────────────┐ ┌───────────────────────┤ 🌐 web browser ├────────────────────┐ │ 💾 browser bookmarks ⇒ (promnesia extension) ⇐ 💾 browser history | └───────────────────────┴─────────────────────────────────┴────────────────────┘
¶7如何使用普罗姆内西亚?
在这里,我会描述一些特定的场景,我觉得普罗姆内西亚非常有用。README也有截图和简短的屏幕广播,详细阐述了这些功能。
查找新信息
示例:我在推特上遇到一篇文章。我喜欢它,网站看起来有点熟悉。
当我跳上https://nautil.us,普罗姆内西亚侧边栏告诉我,我已经访问过,甚至注释了这个网站上的其他文章之前!
我反复绊倒在这个网站上,它有高质量的内容,所以我通过我的RSS读者订阅它。
探索人与社区
我过去多久接触一次某个博客?
哪些帖子我已经看到或阅读?我喜欢吗?我应该深入潜水吗?
同样的问题,但叽叽喳喳的帐户,子记录,YouTube频道或类似的东西
处理大量信息
例如:
在网页内显示任何服务(如 Instapaper/Pocket)的注释和高光
个人数字考古学和外部记忆
为什么我要给这个YouTube视频添加书签?谁寄给我的?
我是如何进入这个被遗忘的标签的?
我有时会被推特惹恼。我应该取消关注他们吗?
@<account>
我为什么一开始就跟着他们?它们值得整体关注吗?我是否经常喜欢他们的推文或书签他们的链接?
与知识库集成
Promnesia 可以处理您的私人维基,无论是纯文本,还是 Web 服务,这将有助于您立即找到并跳转到相关信息。
与他人知识库相结合
我觉得有趣的是,认为这是利用对方的大脑!
参见:演示将普罗姆内西亚与漫游研究数据库集成。
统一浏览器历史记录
我将其列在最后,因为只有当您开始使用数据时,才会显示此优势,而不是仅位于磁盘上时。
随着您收集越来越详细的历史,整个系统变得越来越有用。
¶8普罗姆内西亚的未来
舞会是很多工作,特别是在与他人分享和记录方面。如果事实是,大多数写在我的博客已经慢慢建立到这篇文章。在我的基础设施地图上,普罗姆内西亚是一个叶节点!
尽管我为我的工作感到骄傲, 当别人发现它有用时, 它是多么的有回报...我已经在想如何打破普罗姆内西亚分开,甚至日落。如果:
我可以提高对数据解放和互操作性的需求和意识
我可以激励其他人实施类似的东西(和更好!
正如我前面提到的,元目标之一是模块化,因此Promnesia的某些部分可以插入其他工具。与其他开源项目集成仍有一些未使用的潜力,因此我想更进一步,更极端地考虑这一点:
网址索引器/数据源
在 URL 提取方面,Promnesia 模块非常纤细,其中许多只是 30 行代码。大多数无聊乏味的东西(如数据正常化)都封装在HPI封装中,可用于其他工具。
看看这些数据源是否可以与世界脑 Memex 集成会很有趣。之前我提到,目前Memex是一个孤岛,但他们也意识到这一点!最近,世界大脑宣布商店中心,这似乎是一个潜在的整合手段。
很可能普罗姆内西亚后端可以重新基于它。
网址规范化算法
目前,Promnesia 使用一套黑客规则,它为我使用的大多数网站做了正确的事。然而,一个人维护是不可持续的,它感觉值得提取到一个单独的项目/公共数据库。我想这是类似的东西,想想我们使用同一个库的时区信息节省了多少挫折感。tzdata
这将是许多项目可以受益于:极地书架,假说,世界脑Memex,我敢肯定,还有更多我甚至不知道!
突出显示和锚定注释
一方面,即使是非常原始的算法,以匹配注释与页面在90%的情况下工作得很好。另一方面,剩下的10%是很难得到正确的位,而不是一个简单的任务。
通过假设重复使用模糊锚定,将其与任何 Worldbrain 正在使用的东西进行比较,并找出其中有多少值得分享,这很酷。我宁愿帮助这些项目维护他们的代码, 也不愿重塑我自己的车轮。
其他功能
再次, 它觉得大多数普罗姆内西亚现有的 (和未来!
正如你可以看到有一些显着的重叠与世界脑Memex,他们已经有一个成熟和令人印象深刻的产品。所以我可以看到它上面的插件,甚至作为它的一部分!这种合作是我在不久的将来要研究的问题。
同时,普罗姆内西亚是完全可用的自己,只要我使用它,我会支持它!