PHP 构建语义 Web CRUD 操作

   创建、读、更新和删除(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:

  在比较两张清单时,您的第一个想法很可能是 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:

  同样,注意 PREFIX 行与用 SPARQL 在 read 操作中执行的操作完全相同。INSERT INTO 的工作原理类似于 SQL,但是同样,这是基于 URI 的,而非基于字符串、基于表和基于名称的,这允许使用 HTTP 完成操作。您必须再次指定模式。在这里,比在 read 操作中了解起来略微简单一些,因为您几乎可以拥有任何属性,只要它与模式兼容。这就是 RDF 所提供的分布式动态可扩展对象的优点。

  删除

  从某一程度来说,如果要创建,那很可能需要进行删除。例如,用户可能想要删除他们在您站点中的帐户(这显然是件遗憾的事情,他们想要离开,但是他们可能有正当的理由)。清单 5 提供了典型 delete 操作的 SQL 代码。

  DELETE FROM UserTable WHERE realname = "John Smith"

  现在,比较清单 5 中基于 SQL 的代码与清单 6 中基于 SPARQL 的代码。

时间: 2024-11-05 19:05:40

PHP 构建语义 Web CRUD 操作的相关文章

PHP 构建语义Web CRUD 操作

创建.读.更新和删除(Create/Read/Update/Delete,CRUD)操作是最基本的数据库操作,但是它们也是最重要的操作.CRUD 操作通常是使用关系数据库系统中的结构化查询语言(Structured Query Language,SQL)完成的.随着 Web 变得更加具有面向数据特性,因此需要从基于 SQL 的 CRUD 操作转移到基于语义 Web 的 CRUD 操作.了解如何使用 PHP 通过基于语义的 Web 执行 CRUD 操作. 常用缩写词 API - 应用程序编程接口(

PHP构建语义Web CRUD操作

创建.读.更新和删除(Create/Read/Update/Delete,CRUD)操作是最基本的数据库操作,但是它们也是最重要的操作.CRUD操作通常是使用关系数据库系统中的结构化查询语言(Structured Query Language,SQL)完成的.随着Web 变得更加具有面向数据特性,因此需要从基于SQL的CRUD操作转移到基于语义 Web的CRUD操作.了解如何使用PHP 通过基于语义的Web 执行 CRUD操作. 常用缩写词 API - 应用程序编程接口(Application

【ASP.NET Web API教程】2.1 创建支持CRUD操作的Web API

原文 [ASP.NET Web API教程]2.1 创建支持CRUD操作的Web API 2.1 Creating a Web API that Supports CRUD Operations2.1 创建支持CRUD操作的Web API By Mike Wasson | January 28, 2012作者:Mike Wasson | 日期:2012-1-28 本文引自:http://www.asp.net/web-api/overview/creating-web-apis/creating

Asp.Net Web API 2第二课——CRUD操作

原文:Asp.Net Web API 2第二课--CRUD操作 Asp.Net Web API 导航   Asp.Net Web API第一课--入门http://www.cnblogs.com/aehyok/p/3432158.html 前言 CRUD代表着 Create.Read.Update.Delete,这是四个基本的数据库操作.许多HTTP服务模型也通过Rest或者Rest-like APIs实现CRUD操作.       在本教程中,我将建立一个非常简单的Web API来管理一个产品

Contact Manager Web API 示例[1]CRUD 操作

联系人管理器web API是一个Asp.net web api示例程序,演示了通过ASP.NET Web API 公开联系信息,并允许您添加和删除联系人,示例地址http://code.msdn.microsoft.com/Contact-Manager-Web-API-0e8e373d . 下面的文章以这个示例讲解ASP.NET Web API的各方面知识: 1.CRUD操作: CURD 是 "Create, Read, Update, Delete" (新增.读取.更新.删除) 的

用 Jersey 2 和 Spring 4 构建 RESTful web service

本文介绍了如何通过 Jersey 框架优美的在 Java 实现了 REST 的 API.CRUD 的 操作存储在 MySQL 中 1. 示例 1.1 为什么 Spring 可以对于 REST 有自己的实现(见 https://spring.io/guides/tutorials/rest/). 但本文展示的是用 "官方" 的 方法来实现 REST ,即使用 Jersey. 1.2 它是做什么的? 管理 资源. REST API 将允许创建.检索.更新和删除这样的资源. 1.3 架构及技

使用Jersey和Apache Tomcat构建RESTful Web服务

RESTful Web 服务简介 REST 在 2000 年由 Roy Fielding 在博士论 文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一. REST 中最 重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识.客户端 应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集. RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务.通常,RESTful Web 服务应该定义

EF Code-First CRUD操作

网上很多的教程都是跟MVC3绑在一起来讲解的,如果我们抛开MVC3,该如何使用呢? 首先新建一个控制台应用程序,我们把它命名为:EFCodeFirst-Books 第二步,添加EntityFramework的引用. 不要说你还不回使用NuGet,如果真的不会就去问度娘.在NuGet 控制台输入Install-Package EntityFramework,NuGet会为我们引用最新发布的EF版本,目前的版本是4.3. 第三步,添加实体类. 我新建了一个Models文件夹,在里面添加了Book类,

《HBase权威指南》一3.2 CRUD操作

3.2 CRUD操作 数据库的初始基本操作通常被称为CRUD(Create,Read,Update,Delete),具体指增.查.改.删.HBase中有与之相对应的一组操作,随后我们会依次介绍.这些方法都由HTable类提供,本章后面将直接引用这个类的方法,不再特别提到这个包含类. 接下来介绍的操作大多都能不言自明,但本书有一些细节需要大家注意.这意味着,对于书中出现的一些重复的模式,我们不会多次赘述. 文字你所看到的示例源代码都可以从GitHub的公用源中下载,具体地址为https://git