Las operaciones de creación, lectura, actualización y eliminación (Crear/Leer/Actualizar/Eliminar, CRUD) son las operaciones de base de datos más básicas, pero también son las operaciones más importantes. Las operaciones CRUD generalmente se realizan utilizando lenguaje de consulta estructurado (SQL) en sistemas de bases de datos relacionales. A medida que la Web se vuelve más orientada a los datos, existe la necesidad de pasar de las operaciones CRUD basadas en SQL a las operaciones CRUD basadas en la Web Semántica. Aprenda a utilizar PHP para realizar operaciones CRUD con la web semántica. Abreviaturas de uso común
API - Interfaz de programación de aplicaciones
CRUD - Crear/Leer/Actualizar/Eliminar
HTTP - Protocolo de transferencia de hipertexto
MVC - Patrón - Vista - Modelo de control-Vista-Controlador
OOP - Programación orientada a objetos
RDF - Marco de descripción de recursos
SPARQL - Protocolo simple y Lenguaje de consulta RDF
SQL - Lenguaje de consulta estructurado
UI - Interfaz de usuario
W3C - Consorcio World Wide Web
Al desarrollar aplicaciones web, es un estándar crear una estructura de base de datos que albergue el código del lado del servidor para la capa lógica y la capa de interfaz de usuario. . Para conectarse a una base de datos, el código del lado del servidor debe realizar algunas operaciones básicas como crear, actualizar, eliminar y, lo más importante, leer registros. Dado que la base de datos backend de las aplicaciones web suele ser una base de datos relacional, estas operaciones CRUD se realizan utilizando el conocido lenguaje SQL. Sin embargo, a medida que el desarrollo web adopta cada vez más la programación orientada a objetos (POO), el modelo ha cambiado.
El Marco de descripción de recursos (RDF) es una forma ideal de describir objetos preservando el significado de los datos. El protocolo simple y el lenguaje de consulta RDF (SPARQL, que se pronuncia "sparkle") es el lenguaje que normalmente se utiliza para consultar estos datos porque su estructura de declaración coincide con la estructura del propio RDF. RDF y SPARQL son tecnologías de la denominada pila de Web semántica.
Para aplicar completamente los conceptos de la Web Semántica, puede utilizar SPARQL para aplicar técnicas de desarrollo Web tradicionales a datos RDF. Este artículo le mostrará cómo conectarse a RDF usando un modelo de diseño simplificado Modelo-Vista-Controlador (MVC), el lenguaje de programación del lado del servidor PHP y SPARQL, en lugar de usar SQL en un sistema de base de datos relacional.
Requisitos previosde operaciones CRUD de SQL y SPARQL
Este artículo supone un conocimiento básico de SQL, PHP y desarrollo de aplicaciones web. Comprender la Web Semántica también es beneficioso. Para ejecutar comandos de creación, actualización y eliminación en datos basados en Web Semántica, necesita una base de datos de Web Semántica que admita la especificación SPARQL/Update.
Al desarrollar con SQL y SPARQL, es necesario observar las similitudes y diferencias entre las operaciones CRUD. El Listado 1 muestra el código SQL para la operación de lectura.
SELECCIONE nombre real, fecha de nacimiento, ubicación DESDE UserTable WHERE nombre real = "John Smith";
compare este código basado en SQL con el código basado en SPARQL que se muestra en el Listado 2. La razón para utilizar estas dos operaciones de lectura es que son las más fáciles de entender, implementar e ilustrar. Esto es lo mismo tanto para SQL como para SPARQL.
PREFIJO foaf:< http://xmlns.com/foaf/0.1/ > PREFIJO rdf: < http://www.w3.org/1999/02/22-rdf-syntax-ns#>SELECCIONAR ?uri ?nombre ?
dob ?ubicaciónDESDE<http://www.example.org/graph>DONDE
{ ?urirdf:tipo foaf:Persona ;foaf:nombre "John Smith" ;foaf:cumpleaños?dob ;foaf:ubicación ?ubicación .} ;
Al observar las dos listas, lo primero que pensará probablemente sea que la versión SPARQL es significativamente más larga que la versión SQL. Esto es cierto, pero no se deje engañar pensando que SQL es necesariamente más simple y limpio. Dependiendo del motor en el que se esté ejecutando, SPARQL se puede entregar a través de lo que se llama un efecto de datos vinculados. Además, permite tener esquemas dinámicos porque tiene una perspectiva orientada a objetos que están vinculados entre sí, en contraste con la perspectiva relacional estricta de SQL. Si quisiera separar una tabla de base de datos relacional en muchos silos de datos, en realidad usaría muchas más líneas de código SQL que SPARQL, sin mencionar muchos descriptores JOIN molestos en SQL.
Las dos primeras líneas de SPARQL son declaraciones PREFIX. Según la teoría de la Web Semántica, todo contenido, ya sea un objeto o una fuente de gráfico de datos (también un objeto), tiene un Identificador Uniforme de Recursos (URI). La línea PREFIX simplemente aplica una etiqueta temporal a algún URI (en este caso, Amigo de un amigo y el esquema RDF). El beneficio es que luego puede usar la declaración PREFIX en consultas sin tener que usar el URI completo.
La siguiente línea de código SPARQL describe la solicitud de consulta. Esta declaración es esencialmente la misma que la declaración SQL, excepto por la solicitud adicional del URI. Tenga en cuenta el uso del signo de interrogación (?) para indicar que el término es una variable.
La declaración FROM describe dónde obtener los datos. Esto es lo mismo en SQL y SPARQL, excepto que en SPARQL el nombre de la fuente de datos es un URI en lugar de una cadena que representa una ubicación física en una computadora o red.
Las declaraciones WHERE de los dos son completamente diferentes, porque con SPARQL, debes especificar el esquema utilizado para obtener los datos. Nuevamente, si ha intentado hacer esto usando el enfoque relacional, es mucho más costoso que SQL simple: necesita usar PHP, el lenguaje de programación Java o algún otro lenguaje del lado del servidor para realizar las comprobaciones entre fuentes de datos. Lo que logra la línea de código SPARQL es relativamente sencillo, incluido garantizar que los datos que se recuperan sean solo del tipo Persona. SPARQL obtendrá el nombre y la ubicación y realizará algunas coincidencias de patrones para encontrar el John Smith correcto.
Crear
operaciones CRUD en SPARQL es generalmente más arcano que las operaciones de lectura. Sin embargo, estas operaciones se pueden completar. Primero, la operación de creación inserta un nuevo registro u objeto en la tabla o gráfico.
INSERT INTO UserTable (nombre real, fecha de nacimiento, ubicación) VALUES ("John Smith", "1985-01-01", "Bristol, Reino Unido");
ahora, compare el código basado en SQL en el Listado 3 con el código basado en SPARQL en Listado 4 crear operación en .
PREFIJO foaf:< http://xmlns.com/foaf/0.1/ > PREFIJO rdf: < http://www.w3.org/1999/02/22-rdf-syntax-ns#>INSERTAR EN EL GRÁFICO < http: //www.example.com/graph > (?nombre real, ?dob, ?ubicación) {< http://www.example.org/graph/johnsmith#me > rdf:Tipo foaf:Persona ; Smith" ; foaf:cumpleaños <1985-01-01T00:00:00> ; foaf:ubicación "Bristol, Reino Unido" }