Tim Berners-Lee重新分散的新Web SOLID简介
by Arnav Bansal
通过Arnav Bansal
Tim Berners-Lee重新分散的新Web SOLID简介 (An introduction to SOLID, Tim Berners-Lee’s new, re-decentralized Web)
Recently, Prof. Tim Berners-Lee lifted the veil off a project called Solid. I decided to check it out. In this article, I describe what Solid aims to do, and also how you can get started with it.
最近, Tim Berners-Lee教授揭开了一个名为Solid的项目的面纱。 我决定去看看。 在本文中,我描述了Solid的目标,以及您如何开始使用它。
什么是固体? (What is Solid?)
Solid is an attempt to re-decentralize the web.
Solid尝试重新分散Web的权限。
Re-decentralize?
重-下放权力?
Back in the day, the vision for the web was a decentralized, collaborative read-write space. The first browser (called WorldWideWeb) was also an editor.
过去,网络的愿景是去中心化的协作式读写空间。 第一个浏览器(称为WorldWideWeb) 也是编辑器 。
However, as it progressed, the design of web applications began to centralize for a variety of reasons. User data became the source of power and income for Internet companies.
但是,随着它的发展,由于各种原因,Web应用程序的设计开始集中。 用户数据成为互联网公司权力和收入的来源。
Solid is a solution to this.
固态解决方案。
Solid is a new paradigm for web applications, one that is backwards compatible with the existing web.
Solid是Web应用程序的一种新范例,它与现有Web向后兼容。
Solid is a tech stack, a group of related protocols, implementations, and a growing community. Much like the web.
Solid是一个技术堆栈,一组相关协议,实现和一个不断发展的社区。 很像网络。
应用程序和数据的分离 (The separation of app and data)
In pre-internet computing, your personal computer stored your data.
在预互联网计算中,您的个人计算机存储了您的数据。
As people began using multiple computers, and added smartphones to their lives, the “your data stays with you” model was replaced by “Your data is in one or more massive data centers around the world, managed by the app developer”.
当人们开始使用多台计算机并将智能手机添加到生活中时,“您的数据随身携带”模型被“您的数据位于应用程序开发人员管理的全球一个或多个大型数据中心”所取代。
And so, applications were deeply coupled with their data. Creating an application on the web entails managing people’s data at scale.
因此,应用程序与数据紧密耦合。 在Web上创建应用程序需要大规模管理人员数据。
Apps and their ability to make money are measured by their data silo. Your data is difficult to migrate, since different apps store your data very differently.
应用及其赚钱的能力由其数据孤岛来衡量。 您的数据难以迁移,因为不同的应用程序存储数据的方式非常不同。
The result? Almost every app has walled garden characteristics. This reduces incentives for developers to innovate at the app level. Existing platforms are secured against disruption, since the data lockdown makes it hard for users to move.
结果? 几乎每个应用程序都具有围墙花园的特色。 这减少了开发人员在应用程序级别进行创新的动机。 由于数据锁定使用户难以移动,因此确保了现有平台不会受到破坏。
数据保护法规 (Data protection regulations)
Some countries have enacted data protection laws. Companies must make your data available, and you can chose to download or delete it.
一些国家颁布了数据保护法。 公司必须提供您的数据,您可以选择下载或删除它。
This attempts to return control over data back to users. But it’s a legal prescription, and not the technical reality. User data still lies with app developers, and the ability to download your data isn’t very useful if you can’t migrate to an alternative.
这试图将对数据的控制权返回给用户。 但这是法律规定,而不是技术现实。 用户数据仍然由应用程序开发人员掌握,如果您不能迁移到其他版本,则下载数据的能力不是很有用。
吊舱:携带自己的数据 (Pods: Bring your own data)
Solid remedies this on the technical side. It allows applications to be built in a way where they read and write data stored on your pod.
Solid在技术方面对此进行了补救。 它允许以读写存储在pod上的数据的方式构建应用程序。
You have a pod. Your friends have a pod. Pods store your data. You allow apps to access your pod.
你有一个豆荚。 您的朋友有一个豆荚。 Pod存储您的数据。 您允许应用访问您的广告连播。
Maybe you have multiple pods. Perhaps separate ones for home and work. Your pod can live on your computer, or be distributed across your devices. Or it could be hosted for you.
也许您有多个豆荚。 也许是分开的家庭和工作场所。 您的广告连播可以驻留在您的计算机上,也可以分布在各个设备上。 或者可以为您托管。
And pods store linked data. Your pod can link to something on my pod, or anywhere on the web.
Pod存储链接的数据 。 您的广告连播可以链接到我的广告连播或网络上的任何内容。
We want applications that run across our devices. But we also want autonomy of our data. And we want the ability for different apps to use the same data and write to it.
我们希望在设备上运行的应用程序。 但是我们也想要数据的自治。 我们希望不同的应用程序能够使用相同的数据并写入数据。
Solid背后的想法 (The ideas behind Solid)
Getting into Solid reminded me of starting out with web development. I remember learning HTML, CSS, JavaScript, and the frameworks of the day, all at the same time.
进入Solid使我想起了Web开发的开始。 我记得同时学习HTML,CSS,JavaScript和当天的框架。
The only difference: Solid is new, and help is harder to find.
唯一的区别:Solid是新的,很难找到帮助。
Here’s a collection of day-one concepts you’ll want to know to get started developing for Solid:
这是您要开始为Solid开发所需的第一天概念的集合:
(PS: if you just wanna jump in, skip ahead to ‘First steps’)
(PS:如果您只是想加入,请跳至“第一步”)
关联数据 (Linked data)
The power of the Solid, and the web generally, is from the way data is hyperlinked together.
Solid和整个Web的力量来自于数据超链接在一起的方式。
In Solid, you store the data you produce wherever you want. Your personal data likely resides on your pod. To refer to this data, you use URLs, like on the web.
在Solid中,您可以将所需的数据存储在任何地方。 您的个人数据可能驻留在您的pod上。 要引用此数据,您可以像在网络上一样使用URL。
This is also a good time to introduce the full-form of Solid: SOcial LInked Data.
这也是引进的固体满形式的好时机:SO官方李 nked d ATA。
Read about Linked Data in the context of Solid
阅读有关Solid上下文中的链接数据的信息
资源描述框架 (Resource Description Framework)
RDF is a way to represent linked data with statements of the form subject-predicate-object
. These are also called triples.
RDF是一种表示形式为subject-predicate-object
语句的链接数据的方法。 这些也称为三元组。
RDF is an abstract model. You could even represent RDF in English sentences. Here’s a task on a Todo list:
RDF是一个抽象模型。 您甚至可以用英语句子代表RDF。 这是待办事项列表上的任务:
T1 is a taskT1 is labelled "Write an article about Solid"T1 is due October 5rd 2018T1 is assigned to @itsarnavbT1 is incomplete
龟 (Turtle)
Turtle is a compact way of representing RDF data, using URLs to represent subject
, predicate
and object
.
Turtle是一种表示RDF数据的紧凑方式,它使用URL表示subject
, predicate
和object
。
That’s repetitive and hard to read, so turtle has a prefix and shorthand system. This gets especially important with longer documents.
这是重复的且难以阅读,因此turtle具有前缀和速记系统。 这对于较长的文档尤为重要。
You can read more about turtle. Or you could check out a full turtle document here. It’s a detailed public profile of Prof. Ruben Verborgh, who’s a part of the Solid team.
您可以阅读有关乌龟的更多信息。 或者,您可以在此处查看完整的乌龟文档。 这是Solid团队成员Ruben Verborgh教授的详细公开资料。
语义网 (Semantic web)
Tim Berners-Lee best explains this:
蒂姆·伯纳斯·李(Tim Berners-Lee)对此做了最好的解释:
I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web - the content, links, and transactions between people and computers. A “Semantic Web”, which makes this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The “intelligent agents” people have touted for ages will finally materialize
我对Web(在其中的计算机)能够分析Web上的所有数据(人与计算机之间的内容,链接和事务)具有梦想。 使得这成为可能的“语义网”尚未出现,但是当它实现时,将通过与机器对话的机器来处理日常的贸易,官僚主义和我们的日常生活机制。 人们吹捧了很久的“ 聪明人”最终将实现
第一步 (First steps)
Do these, in any order that works for you.
按照适合您的顺序进行操作。
Get a pod: Signup with any free pod provider, or run your own server (if that’s your thing).
获取Pod :使用任何免费的Pod提供程序进行注册,或运行自己的服务器(如果那是您的事)。
Make a Solid app with this tutorial
通过本教程制作Solid应用
Read about these hacks made with Solid
了解有关Solid的这些技巧
Read the Solid docs
阅读Solid文档
坚如磐石 (Go Solid)
You can help out the Solid ecosystem by
您可以通过以下方式为Solid生态系统提供帮助
- contributing to the development of Solid itself, and related infrastructure.为Solid本身以及相关基础设施的发展做出了贡献。
- developing apps using Solid.使用Solid开发应用程序。
But beware, at the moment, learning and developing for Solid requires a lot of trial and error, and asking potentially silly questions. There’s no Stack Overflow to refer to. Debugging some errors might require you to dig into the source.
但是请注意,目前,为Solid学习和开发需要大量的试验和错误,并提出潜在的愚蠢问题。 没有要引用的堆栈溢出。 调试一些错误可能需要您深入研究源代码。
Here are the communities where you can get help:
以下是您可以获得帮助的社区:
r/solid (I’m one of the mods)
r / solid (我是mod之一)
gitter.im/solid
gitter.im/固体
And finally, my DMs are open: @itsarnavb. I’ll try to answer every question I get, or find someone who can.
最后,我的DM已打开: @itsarnavb 。 我将尽力回答我遇到的每个问题,或者找到可以回答的人。
And I’ll keep this article up to date with the best resources to learn about Solid.
而且,我将为本文提供最新的最佳资源,以了解有关Solid的知识。
进一步阅读 (Further Reading)
Solid website - solid.mit.edu
实体网站-solid.mit.edu
Paradigm shifts for the decentralized web - Ruben Verborgh
分散式网络的范式转变-Ruben Verborgh
One Small Step for the Web - Tim Berners-Lee
互联网的一小步-Tim Berners-Lee
翻译自: https://www.freecodecamp.org/news/an-introduction-to-solid-tim-berners-lees-new-re-decentralized-web-25d6b78c523b/
相关文章:

AngularJS2.0 教程系列(一)
Why Angular2 Angular1.x显然非常成功,那么,为什么要剧烈地转向Angular2? 性能的限制 AngularJS当初是提供给设计人员用来快速构建HTML表单的一个内部工具。随着时间的推移,各种特性 被加入进去以适应不同场景下的应用开发。然而由…

Vue组件绑定自定义事件
Vue组件使用v-on绑定自定义事件: 可以分为3步理解: 1.在组件模板中按照正常事件机制绑定事件: template: <button v-on:click"increment">{{ counter }}</button>, 如上ÿ…

phpstudy本地调试运行TP5的后台源码
本地访问后台步骤: 1.打开 phpstudy 2.点击其它选项菜单 3.点击软件设置 4.点击端口常规设置 5.修改网站根目录为: C:\phpStudy\PHPTutorial\WWW\wxpet_2019\public phpstudy 切换php版本:5.6.27 public目录下的 .htacc…

如何使用TensorFlow Eager执行训练自己的FaceID ConvNet
by Thalles Silva由Thalles Silva Faces are everywhere — from photos and videos on social media websites, to consumer security applications like the iPhone Xs FaceID.人脸无处不在-从社交媒体网站上的照片和视频到iPhone Xs FaceID等消费者安全应用程序。 In this…

jquery判断一个元素是否为某元素的子元素
$(node).click(function(){if($(this).parents(.aa).length > 0){//是aa类下的子节点}else{//不是aa类下的子节点} });在判断点击body空白处隐藏弹出框时用到转载于:https://www.cnblogs.com/qdog/p/7067909.html

Sublime Text 3 (含:配置 C# 编译环境)
Sublime Text 3http://www.sublimetext.com/3http://www.sublimetext.com/3dev1. 关闭自动更新 菜单:Preferences->Settings User,打开User配置文档,在大括号内加入(或更改): "update_check&q…

小程序仿安卓动画滑动效果滑动动画效果实现
微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 效果图: 源码 var start_clientY; //记录当前滑动开始的值 var end_clientY; //记录当前滑动结束的值 var animation wx.createAnimation({duration: 400 }); //初始化动画var history_dis…

react中使用scss_我如何将CSS模块和SCSS集成到我的React应用程序中
react中使用scssby Max Goh由Max Goh 我如何将CSS模块和SCSS集成到我的React应用程序中 (How I integrated CSS Modules with SCSS into my React application) I recently started on an Isomorphic React project. I wanted to use this opportunity to utilize tools that …

-bash:syntax error near unexpected token '('
在Xshell5中编写int main(int argc,char** argv)时, 出现-bash:syntax error near unexpected token ( ; 可是我是按照Linux语句编写的,其他代码没有出错; 检查发现, Xshell5对应的Linux版本是Linux5,在Li…

iOS手机 相册 相机(Picker Write)
把图片写到相册UIImageWriteToSavedPhotosAlbum(<#UIImage *image#>, nil, nil, nil); ————————————————————————————从相册,相机获取图像设置代理《UINavigationControllerDelegate, UIImagePickerControllerDelegate》 #pragm…

php删除指定对象的属性及属性值
微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 unset($address[/Api/User/addAddress]); 删除了 address 对象的 /Api/User/addAddress 属性

前端分离的前端开发工具_使我成为前端开发人员工作的工具和资源
前端分离的前端开发工具Learning front-end development can be a bit overwhelming at times. There are so many resources and tools, and so little time. What should you pick? And what should you focus on?有时,学习前端开发可能会有些困难。 资源和工具…

C# 开启及停止进程
1.本篇内容转发自http://www.cnblogs.com/gaoyuchuanIT/articles/2946314.html 2. 首先在程序中引用: System.Diagnostics; 3. 开启进程: /// <summary> /// 开启进程 /// </summary> /// <param name"aProPath&quo…

COJN 0575 800601滑雪
800601滑雪难度级别:B; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B 试题描述Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度…

JS删除数组指定下标并添加到数组开头
微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 代码 let id e.currentTarget.dataset.idlet arrays ;let items this.data.itemsfor (let i 0; i < this.data.items.length; i) {if (id this.data.items[i].id) {arrays items.splice(i, 1)i…

scala akka_如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法
scala akkaby Miguel Lopez由Miguel Lopez 如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法 (How to Dockerise a Scala and Akka HTTP Application — the easy way) Using Docker is a given nowadays. In this tutorial we will how to learn to dockerise our Sca…

Freemarker详细解释
A概念 最经常使用的概念1、 scalars:存储单值字符串:简单文本由单或双引號括起来。数字:直接使用数值。日期:通常从数据模型获得布尔值:true或false,通常在<#if …>标记中使用2、 hashes:…

洛谷P1057 传球游戏(记忆化搜索)
点我进入题目题目大意:n个小孩围一圈传球,每个人可以给左边的人或右边的人传球,1号小孩开始,一共传m次,请问有多少种可能的路径使球回到1号小孩。 输入输出:输入n,m,输出路径的数量。…

微信小程序 自定义导航栏,只保留右上角胶囊按钮
微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 navigationStyle 导航栏样式,仅支持以下值:default 默认样式custom 自定义导航栏,只保留右上角胶囊按钮 在 app.json 的 window 加上 "navigationStyle":…

azure多功能成像好用吗_如何使用Azure功能处理高吞吐量消息
azure多功能成像好用吗Authored with Steef-Jan Wiggers, Azure MVP.由Azure MVP Steef-Jan Wiggers撰写。 With Microsoft Azure, customers will push all types of workloads to its services. Workloads are ranging from datasets for Machine Learning purposes to a la…

document.all使用
document.all 一个. document.all它是在页面中的所有元素的集合。例如: document.all(0)一个元素 二. document.all能够推断浏览器是否是IE if(document.all) { alert("is IE!"); } 三. 也能够通过给某个元素设置id属性(id…

微信小程序动画无限循环 掉花
微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 动画效果 源码 <!-- 动画 --><block wx:if"{{donghua}}"><view classdonghua><image bindtaphua styleleft:{{left1}}px animation"{{animationData1}}" clas…

程序员远程办公_如何从办公室变成远程程序员
程序员远程办公by James Quinlan詹姆斯昆兰(James Quinlan) My name is James, and I’m a Software Engineer at a company called Yesware, based in Boston. Yesware is the fourth job I’ve had in which I’m paid to write code, but it’s the third time now that I’…
从头学起androidlt;AutoCompleteTextView文章提示文本框.十九.gt;
文章提示可以很好的帮助用户输入信息,以方便。在Android它也设置有类似特征,而要实现这个功能需要依靠android.widget.AutoCompleteTextView完毕,此类的继承结构例如以下: java.lang.Object↳ android.view.View↳ android.widget…

微信小程序动态设置 tabBar
微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 使用微信提供的API wx.setTabBarItem(Object object) 动态设置 tabBar 某一项的内容 参数 Object object 属性类型默认值必填说明indexnumber 是tabBar 的哪一项,从左边算起textstring 否…
NodeJS入门--环境搭建 IntelliJ IDEA
NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见。 1、首先 下载安装NodeJS,下载安装IntelliJ IDEA2、接下来我们详细介绍在IDEA中配置NodeJS 默认安装好了IDEA,在IDEA的file ->…

如何使用React.js和Heroku快速实现从想法到URL的转变
by Tom Schweers由汤姆史威士(Tom Schweers) 如何使用React.js和Heroku快速实现从想法到URL的转变 (How to go from idea to URL quickly with React.js and Heroku) When I was first starting out as a developer, the one thing that I wanted to do was get a web applica…

F - Count the Colors - zoj 1610(区间覆盖)
有一块很长的画布,现在想在这块画布上画一些颜色,不过后面画的颜色会把前面画的颜色覆盖掉,现在想知道画完后这块画布的颜色分布,比如 1号颜色有几块,2号颜色有几块。。。。*****************************************…

小程序弹窗并移动放大图片的动画效果
微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 效果图 触发条件 <block wx:if{{bg_hui_show}}> <view classbg_hui catchtaphide_bg_hui></view> <image classanimation animationData1 bindtapto_hed mode"widthFix&quo…

代码片段管理工具_VS代码片段:提高编码效率的最强大工具
代码片段管理工具by Sam Williams通过山姆威廉姆斯 VS代码片段:提高编码效率的最强大工具 (VS Code snippets: the most powerful tool to boost your coding productivity) 用更少的按键编写更多的代码 (Write more code with fewer keystrokes) Everyone wants t…