|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
理解动态语言的概念,运做机制,熟悉PHP语法 创立、读、更新和删除(Create/Read/Update/Delete,CRUD)操作是最根基的数据库操作,然而它们也是最主要的操作。CRUD 操作凡是是利用关系数据库体系中的布局化查询言语(Structured Query Language,SQL)完成的。跟着 Web 变得加倍具有面向数据特征,因而需求从基于 SQL 的 CRUD 操作转移到基于语义 Web 的 CRUD 操作。懂得若何利用 PHP 经由过程基于语义的 Web 履行 CRUD 操作。 经常使用缩写词
API ― 使用法式编程接口(Application Programming Interface)
CRUD ― 创立/读/更新/删除(Create/Read/Update/Delete)
HTTP ― 超文本传输协定(Hypertext Transfer Protocol)
MVC ― 形式―视图―掌握器(Model-View-Controller)
OOP ― 面向对象的编程(Object-Oriented Programming)
RDF ― 资本描写框架(Resource Description Framework)
SPARQL ― 复杂协定和 RDF 查询言语(Simple Protocol and RDF Query Language)
SQL ― 布局化查询言语(Structured Query Language)
UI ― 用户界面(User interface)
W3C ― 万维网同盟(World Wide Web Consortium)
在开辟 Web 使用法式时,为逻辑层和 UI 层创立放置办事器端代码的数据库布局是一种尺度理论。要毗连到数据库,办事器端代码需求履行一些根基的创立、更新、删除和 ― 最主要的 ― 读取纪录等操作。因为 Web 使用法式的后台数据库凡是都是关系数据库,因而这些 CRUD 操作都是利用尽人皆知的 SQL 言语履行的。然而,跟着 Web 开辟愈来愈多地采取面向对象的编程(OOP),模子也随之产生改动。
资本描写框架(Resource Description Framework,RDF)是描写对象同时保存数据寄义的幻想办法。复杂协定和 RDF 查询言语(Simple Protocol and RDF Query Language,SPARQL ― 发音为 “sparkle”)是凡是用于针对该数据停止查询的言语,由于它在语句组成上婚配 RDF 自己的布局。RDF 和 SPARQL 都是所谓 语义 Web 栈(semantic Web stack)中的手艺。
要完全地使用语义 Web 理念,您可使用 SPARQL 将传统的 Web 开辟手艺使用到 RDF 数据中。本文将展现若何利用简化的形式―视图―掌握器(Model-View-Controller,MVC)设计模子、PHP 办事器端剧本言语和 SPARQL 毗连到 RDF ― 与利用关系数据库体系中的 SQL 相反。
SQL 和 SPARQL CRUD 操作
先决前提 本文假定您根基懂得 SQL、PHP 和 Web 使用法式开辟。懂得语义 Web 也非常有益。要对基于语义 Web 的数据运转 create、update 和 delete 号令,需求具有撑持 SPARQL/Update 标准的语义 Web 数据库。
在利用 SQL 和 SPARQL 停止开辟时,需求检查一下 CRUD 操作之间的异同。清单 1 显示了 read 操作的 SQL 代码。
SELECT realname, dob, locationFROM UserTable WHERE realname = "John Smith";
将这段基于 SQL 的代码与清单 2 中所示的基于 SPARQL 的代码比拟较。采取这两个 read 操作的缘由在于它们最易于了解、完成和申明。这关于 SQL 和 SPARQL 来讲都是一样的。
PREFIX foaf:<http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>SELECT ?uri ?name ?dob ?locationFROM<http://www.example.org/graph>WHERE{ ?urirdf:type foaf:Person ;foaf:name "John Smith" ;foaf:birthday?dob ;foaf:location ?location .} ;
在对照两张清单时,您的第一个设法极可能是 SPARQL 版本分明比 SQL 版本长良多。这是现实,然而请不要误觉得 SQL 必定更复杂并且更洁净。依据所运转引擎的分歧,SPARQL 可以全体经由过程称为链接数据了局(linked data effect)的内容停止分发。另外,它答应具有静态形式,由于它具有相互链接的面向对象的透视图,与严厉的 SQL 关系透视图构成对比。假如您想要把关系数据库表分隔为很多数据孤岛,则实践上利用的 SQL 代码即将比 SPARQL 多良多 ― 更不用说 SQL 中会呈现大批使人厌恶的 JOIN 描写符。
SPARQL 的前两行是 PREFIX 声明。依据语义 Web 实际,一切内容 ― 不管是对象仍是数据图来历(也是一个对象)― 都有一致资本标识符(Uniform Resource Identifier,URI)。PREFIX 行只是将一时标签使用到一些 URI 中 ― 在本例中为 Friend of a Friend 和 RDF 形式。个中的优点是您今后可以在查询中利用 PREFIX 声明而不用利用完全的 URI。
SPARQL 代码的下一行描写了查询恳求。这条语句在实质上与 SQL 语句不异,分歧的地方是对 URI 的附加恳求。注重问号的利用(?)是为了暗示术语是变量。
FROM 语句描写了获得数据的地位。这在 SQL 和 SPARQL 中是不异的,只是在 SPARQL 中,数据源称号是 URI,而非暗示盘算机或收集中某个物理地位的字符串。
二者的 WHERE 语句完整分歧,由于利用 SPARQL,必需指定用于获得数据的形式。一样,假如测验考试过利用关系办法履行此操作,则需求消费的价值比通俗 SQL 多很多:需求利用 PHP、Java? 编程言语或一些其他办事器端言语才干履行数据源之间的反省。SPARQL 代码行完成的操作对照了然,这包含确保正在检索的数据只属于 Person 类型。SPARQL 将获得称号和地位,同时履行一些形式婚配以查找准确的 John Smith。
创立
SPARQL 中的 CRUD 操作凡是比 read 操作更奥秘。然而,可以完成这些操作。起首,create 操作将把新纪录或对象拔出到表或图表中。
INSERT INTO UserTable (realname, dob, location) VALUES ("John Smith", "1985-01-01", "Bristol, UK");
如今,对照清单 3 中基于 SQL 的代码与清单 4 中基于 SPARQL 的代码中的 create 操作。
PREFIX foaf:<http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>INSERT INTO GRAPH <http://www.example.com/graph> (?realname, ?dob, ?location) {<http://www.example.org/graph/johnsmith#me> rdf:Type foaf:Person ; foaf:name "John Smith" ; foaf:birthday <1985-01-01T00:00:00> ; foaf:location "Bristol, UK" }
给你的建议是,有些最常用的语句是需要记住的 比如if for while这些、其他的一般语句你只要知道有这个函数或者有这个功能就可以了,当你用的时候你可以凭借记忆搜索就可以了。 |
|