Les opérations de création, de lecture, de mise à jour et de suppression (Créer/Lire/Mettre à jour/Supprimer, CRUD) sont les opérations de base de données les plus élémentaires, mais ce sont également les opérations les plus importantes. Les opérations CRUD sont généralement effectuées à l'aide du langage de requête structuré (SQL) dans les systèmes de bases de données relationnelles. À mesure que le Web devient de plus en plus orienté vers les données, il devient nécessaire de passer des opérations CRUD basées sur SQL aux opérations CRUD basées sur le Web sémantique. Apprenez à utiliser PHP pour effectuer des opérations CRUD avec le Web sémantique. Abréviations couramment utilisées
API - Application Programming Interface
CRUD - Créer/Lire/Mettre à jour/Supprimer
HTTP - Protocole de transfert hypertexte
MVC - Modèle - Vue - Modèle de contrôle-Vue-Contrôleur
OOP - Programmation orientée objet
RDF - Cadre de description des ressources
SPARQL - Protocole simple et RDF Query Language
SQL - Structured Structured Query Language
UI - Interface utilisateur
W3C - World Wide Web Consortium
Lors du développement d'applications Web, il est courant de créer une structure de base de données qui héberge le code côté serveur pour la couche logique et la couche d'interface utilisateur. . Pour se connecter à une base de données, le code côté serveur doit effectuer certaines opérations de base telles que la création, la mise à jour, la suppression et, surtout, la lecture d'enregistrements. Étant donné que la base de données backend des applications Web est généralement une base de données relationnelle, ces opérations CRUD sont effectuées à l'aide du langage SQL bien connu. Cependant, à mesure que le développement Web adopte de plus en plus la programmation orientée objet (POO), le modèle a changé.
Resource Description Framework (RDF) est un moyen idéal pour décrire des objets tout en préservant la signification des données. Simple Protocol and RDF Query Language (SPARQL – prononcé « sparkle ») est le langage généralement utilisé pour interroger ces données, car sa structure d'instruction correspond à la structure de RDF lui-même. RDF et SPARQL sont tous deux des technologies de la pile Web sémantique.
Pour appliquer pleinement les concepts du Web sémantique, vous pouvez utiliser SPARQL pour appliquer les techniques de développement Web traditionnelles aux données RDF. Cet article vous montrera comment vous connecter à RDF à l'aide d'un modèle de conception simplifié Model-View-Controller (MVC), du langage de script PHP côté serveur et de SPARQL, par opposition à l'utilisation de SQL dans un système de base de données relationnelle.
Conditions préalablesaux opérations SQL et SPARQL CRUD
Cet article suppose une compréhension de base du développement d'applications SQL, PHP et Web. Comprendre le Web sémantique est également bénéfique. Pour exécuter des commandes de création, de mise à jour et de suppression sur des données basées sur le Web sémantique, vous avez besoin d'une base de données du Web sémantique prenant en charge la spécification SPARQL/Update.
Lors du développement avec SQL et SPARQL, vous devez examiner les similitudes et les différences entre les opérations CRUD. Le listing 1 montre le code SQL pour l'opération de lecture.
SELECT realname, dob, locationFROM UserTable WHERE realname = "John Smith" ;
Comparez ce code basé sur SQL avec le code basé sur SPARQL présenté dans le listing 2. La raison pour laquelle nous utilisons ces deux opérations de lecture est qu’elles sont les plus simples à comprendre, à mettre en œuvre et à illustrer. C'est la même chose pour SQL et 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 .} ;
En regardant les deux listes, votre première pensée est probablement que la version SPARQL est nettement plus longue que la version SQL. C'est vrai, mais ne vous laissez pas tromper en pensant que SQL est nécessairement plus simple et plus propre. En fonction du moteur sur lequel il fonctionne, SPARQL peut être fourni via ce qu'on appelle un effet de données liées. De plus, il permet d'avoir des schémas dynamiques car il a une perspective orientée objet qui est liée les uns aux autres, contrairement à la perspective relationnelle stricte SQL. Si vous vouliez séparer une table de base de données relationnelle en plusieurs silos de données, vous utiliseriez en réalité beaucoup plus de lignes de code SQL que SPARQL, sans parler de nombreux descripteurs JOIN ennuyeux dans SQL.
Les deux premières lignes de SPARQL sont des instructions PREFIX. Selon la théorie du Web sémantique, tout contenu, qu'il s'agisse d'un objet ou d'une source de graphique de données (également un objet), possède un identifiant de ressource uniforme (URI). La ligne PREFIX applique simplement une balise temporaire à un URI – dans ce cas, Friend of a Friend et le schéma RDF. L'avantage est que vous pouvez utiliser ultérieurement l'instruction PREFIX dans les requêtes sans avoir à utiliser l'URI complet.
La ligne suivante du code SPARQL décrit la requête de requête. Cette instruction est essentiellement la même que l'instruction SQL, à l'exception de la demande supplémentaire d'URI. Notez l'utilisation du point d'interrogation (?) pour indiquer que le terme est une variable.
L'instruction FROM décrit où obtenir les données. C'est la même chose dans SQL et SPARQL, sauf que dans SPARQL, le nom de la source de données est un URI plutôt qu'une chaîne représentant un emplacement physique sur un ordinateur ou un réseau.
Les instructions WHERE des deux sont complètement différentes, car avec SPARQL, vous devez spécifier le schéma utilisé pour obtenir les données. Encore une fois, si vous avez essayé de le faire en utilisant l'approche relationnelle, cela coûte beaucoup plus cher que le simple SQL : vous devez utiliser PHP, le langage de programmation Java ou un autre langage côté serveur pour effectuer les vérifications entre les sources de données. Ce que la ligne de code SPARQL accomplit est relativement simple, notamment en garantissant que les données récupérées sont uniquement de type Personne. SPARQL obtiendra le nom et l'emplacement et effectuera une correspondance de modèles pour trouver le bon John Smith.
La création
d'opérations CRUD dans SPARQL est généralement plus obscure que les opérations de lecture. Cependant, ces opérations peuvent être complétées. Tout d’abord, l’opération de création insère un nouvel enregistrement ou objet dans le tableau ou le graphique.
INSERT INTO UserTable (realname, dob, location) VALUES ("John Smith", "1985-01-01", "Bristol, UK");
Maintenant, comparez le code basé sur SQL dans le listing 3 avec le code basé sur SPARQL dans Listing 4 : créer une opération dans .
PRÉFIXE foaf :< http://xmlns.com/foaf/0.1/ > PRÉFIXE rdf : < http://www.w3.org/1999/02/22-rdf-syntax-ns#>INSÉRER DANS LE GRAPHE < http : //www.example.com/graph > (?realname, ?dob, ?location) {< http://www.example.org/graph/johnsmith#me > rdf:Type foaf:Person foaf:name "John ; Smith" ; foaf:anniversaire <1985-01-01T00:00:00> ; foaf:emplacement "Bristol, Royaume-Uni" }