首页 > 语言 > 关键词  > php最新资讯  > 正文

PHP构建语义Web CRUD操作

2009-03-13 17:03 · 稿源:互联网

创建、读、更新和删除(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:<https://xmlns.com/foaf/0.1/> PREFIX rdf: <https://www.w3.org/1999/02/22-rdf-syntax-ns#>SELECT ?uri ?name ?dob ?locationFROM<https://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:<https://xmlns.com/foaf/0.1/> PREFIX rdf: <https://www.w3.org/1999/02/22-rdf-syntax-ns#>INSERT INTO GRAPH <https://www.example.com/graph> (?realname, ?dob, ?location) {<https://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" }

举报

  • 相关推荐
  • 网友住酒店光脚洗澡感染HPV 医生回应:需注意防护

    ​近日,“酒店光脚洗澡可能感染HPV”这一话题在网络上迅速发酵,引发了公众对公共场所卫生安全问题的广泛关注和热烈讨论。据媒体报道以及医学专家分析,在酒店等公共浴室光脚洗澡,确实存在感染跖疣病毒的风险,而该病毒正是一种低危型HPV病毒。 跖疣,这一由人乳头瘤病毒(HPV)引发的足部良性增生物,其感染多发生在温暖潮湿的环境中。医学专家指出,当足部皮

  • 酒店光脚洗澡可能感染HPV?医生回应:需注意防护

    近日,“酒店光脚洗澡可能感染HPV”的话题引发广泛关注和热议。据媒体报道及医学专家指出,在酒店等公共场所光脚洗澡,确实存在感染跖疣病毒(一种低危型HPV病毒)的可能性,引发公众对公共场所卫生安全的担忧。 ​跖疣是由人乳头瘤病毒(HPV)引起的足部良性增生物,属于低危型HPV感染。在温暖潮湿的环境中,如酒店浴室,如果足部皮肤有微小破损或伤口,且与病毒

  • BW2025狂欢盛典,技嘉AORUS展台玩法终极揭秘

    技嘉AORUS将在2025年7月11-13日上海BW展会打造电竞盛宴,展区位于国家会展中心3H馆3A08。活动亮点包括:1)七大嘉宾助阵,包括青鸢Cyan、前TEC.B1ackovo等电竞红人及音乐人;2)五大互动体验区,可畅玩《鸣潮》《漫威争锋》等热门游戏;3)限定Coser形象展示,涵盖多种风格角色;4)集章打卡活动,每日有机会赢取AORUS周边及主机大奖;5)现场暗号"雕门永存"可领取限定福利。活动融合二次元文化与电竞基因,打造今夏最炸裂科技派对。

  • 医生回应酒店光脚洗澡或感染HPV:尽量避免在公共场所光脚

    近日,网络上关于在酒店光脚洗澡可能感染病毒的讨论持续升温。 6月30日,医生指出,光脚在酒店等公共场所洗澡确实存在感染跖疣病毒的风险。 跖疣,这一由人乳头瘤病毒引起的足部良性增生物,属于低危型HPV病毒。医生解释说,在足部环境潮湿的情况下,病毒更容易滋生和传播

  • OPPO K13 Turbo系列真机亮相:自带风扇+RGB

    OPPO K13 Turbo系列真机已经现身在bilibili world《胜利女神:NIKKE》展区。 从图片来看,OPPO K13 Turbo系列系列后摄区域有点类似一加13T,采用了矩形金属方案,主摄下方就是散热风扇,同时外圈还自带RGB等效。 这个设计方案可以明显看出,该机是主打电竞体验。 风扇模组采用电镀镍工艺,放弃普通喷涂,带来更好的防水、防锈效果,并且号称风力提升120%,从而实现更强、更持久�

  • 医生回应酒店光脚洗澡或感染HPV:尽量避免在公共场所光脚行走

    近日,酒店光脚洗澡可能感染跖疣病毒的话题引发广泛讨论。 医学专家指出,跖疣是由HPV病毒(人乳头瘤病毒)引起的足部良性增生,主要与HPV-1、2、4、27、57等亚型相关。这种疾病在潮湿环境中更易传播,足部外伤、摩擦或多汗者风险较高。 临床表现显示,跖疣会导致足跖部角质增生,可见疏松角质软芯及毛细血管出血形成的特征性黑点。多数患者行走时会出现明显疼痛�

  • LiblibAI 重磅发布「星流 Agent」:中文语义 + 图片视频3D全能生成,中国最强设计 Agent

    LiblibAI推出Lovart中文版"星流Agent",这是一款专为中国市场深度优化的AI设计工具。该产品在保留Lovart全球版"生成-编辑-排版-交付"全链路能力基础上,针对中文语义、国风审美和本土使用场景进行了全面重构。星流Agent支持从创意构思到设计交付的全流程自动化,可处理平面设计、视频生成和3D建模等跨模态创作,内置符合中国文化的视觉风格库。该产品的推出标�

  • 苹果用户最好购车选择!小米YU7深度兼容:iPhone、Apple Watch都能控车

    小米YU7已开启交付,首批车主都已经提车回家了。 今天小米汽车官方介绍,YU7延续了SU7的设计理念,充分针对苹果用户优化用车体验,打造让苹果用户也能轻松上手的车型。 首先是iPhone控车更加便捷高效: 支持UWB近场控车与iOS小组件远程控车,比如携带激活了UWB钥匙的苹果手机站在车前3秒,就能打开前备箱; 也可以通过iPhone上的Action Button自定义车控功能,比如一键控车�

  • 国内MCP资源平台有哪些?MCP工具网站推荐

    在人工智能技术飞速发展的今天,Model Context Protocol(MCP,模型上下文协议)作为一种创新的开放标准协议,正在为AI模型与外部工具和服务的交互带来前所未有的便利。今天,我们有幸深入报道一个专注于MCP服务器和相关服务的集合平台——AIbase(https://mcp.aibase.cn/)。这个平台不仅为全球的AI开发者提供了一个强大的资源库,还通过一站式整合、安全实践和开发效率工具,极大地

  • 国内MCP服务器搜索引擎有哪些?MCP导航站平台推荐

    在人工智能技术蓬勃发展的今天,AI模型与外部工具和服务的交互能力正成为推动技术进步的关键。AIbase(<https://mcp.aibase.cn/>)作为一个专注于MCP(Model Context Protocol,模型上下文协议)服务器的集合平台,为全球的AI开发者和研究人员提供了一个前所未有的资源库,助力AI技术的进一步发展。 AIbase平台的核心在于其对MCP协议的深度整合。MCP协议是一种开放标准协议,允许AI模�