As operações de criação, leitura, atualização e exclusão (Criar/Leitura/Atualizar/Excluir, CRUD) são as operações de banco de dados mais básicas, mas também são as operações mais importantes. As operações CRUD geralmente são executadas usando Structured Query Language (SQL) em sistemas de banco de dados relacionais. À medida que a Web se torna mais orientada a dados, há uma necessidade de passar das operações CRUD baseadas em SQL para operações CRUD baseadas na Web Semântica. Aprenda como usar PHP para realizar operações CRUD com a web baseada em semântica. Abreviações comumente usadas
API - Interface de programação de aplicativos
CRUD - Criar/ler/atualizar/excluir
HTTP - Protocolo de transferência de hipertexto
MVC - Padrão - Visualização - Modelo de controle-Visualização-controlador
OOP - Programação orientada a objetos
RDF - Estrutura de descrição de recursos
SPARQL - Protocolo simples e Linguagem de consulta RDF
SQL - Linguagem de consulta estruturada
UI - Interface do usuário
W3C - World Wide Web Consortium
Ao desenvolver aplicativos da web, é um padrão criar uma estrutura de banco de dados que abrigue o código do lado do servidor para a camada lógica e a prática da camada de UI. . Para se conectar a um banco de dados, o código do lado do servidor precisa realizar algumas operações básicas, como criar, atualizar, excluir e, o mais importante, ler registros. Como o banco de dados backend de aplicações Web geralmente é um banco de dados relacional, essas operações CRUD são executadas usando a conhecida linguagem SQL. No entanto, à medida que o desenvolvimento Web adota cada vez mais a programação orientada a objetos (OOP), o modelo mudou.
Resource Description Framework (RDF) é uma maneira ideal de descrever objetos enquanto preserva o significado dos dados. Simple Protocol and RDF Query Language (SPARQL - pronuncia-se "sparkle") é a linguagem normalmente usada para consultar esses dados porque sua estrutura de instrução corresponde à estrutura do próprio RDF. RDF e SPARQL são tecnologias da chamada pilha da Web semântica.
Para aplicar totalmente os conceitos da Web Semântica, você pode usar SPARQL para aplicar técnicas tradicionais de desenvolvimento da Web a dados RDF. Este artigo mostrará como se conectar ao RDF usando um modelo de design simplificado Model-View-Controller (MVC), a linguagem de script do lado do servidor PHP e SPARQL — em vez de usar SQL em um sistema de banco de dados relacional.
Pré-requisitosde operações SQL e SPARQL CRUD
Este artigo pressupõe um conhecimento básico de SQL, PHP e desenvolvimento de aplicativos da Web. Compreender a Web Semântica também é benéfico. Para executar comandos de criação, atualização e exclusão em dados baseados na Web Semântica, você precisa de um banco de dados da Web Semântica que suporte a especificação SPARQL/Update.
Ao desenvolver com SQL e SPARQL, você precisa observar as semelhanças e diferenças entre as operações CRUD. A Listagem 1 mostra o código SQL para a operação de leitura.
SELECT realname, dob, locationFROM UserTable WHERE realname = "John Smith";
Compare esse código baseado em SQL com o código baseado em SPARQL mostrado na Listagem 2. A razão para usar essas duas operações de leitura é que elas são as mais fáceis de entender, implementar e ilustrar. Isso é o mesmo para SQL e SPARQL.
PREFIXO foaf:< http://xmlns.com/foaf/0.1/ > PREFIXO rdf: < http://www.w3.org/1999/02/22-rdf-syntax-ns#>SELECIONE ?uri ?name ?
dob ?locationFROM<http://www.example.org/graph>WHERE
{ ?urirdf:type foaf:Person ;foaf:name "John Smith" ;foaf:birthday?dob ;foaf:location ?location .} ;
Ao observar as duas listas, seu primeiro pensamento é provavelmente que a versão SPARQL é significativamente mais longa que a versão SQL. Isso é verdade, mas não se engane pensando que SQL é necessariamente mais simples e limpo. Dependendo do mecanismo em que está sendo executado, o SPARQL pode ser entregue por meio do que é chamado de efeito de dados vinculados. Além disso, permite ter esquemas dinâmicos porque possui uma perspectiva orientada a objetos interligados, em contraste com a perspectiva relacional SQL estrita. Se você quisesse separar uma tabela de banco de dados relacional em muitos silos de dados, você usaria muito mais linhas de código SQL do que SPARQL – sem mencionar muitos descritores JOIN irritantes em SQL.
As duas primeiras linhas do SPARQL são instruções PREFIX. De acordo com a teoria da Web Semântica, todo conteúdo – seja um objeto ou uma fonte de gráfico de dados (também um objeto) – possui um URI (Uniform Resource Identifier). A linha PREFIX simplesmente aplica uma tag temporária a algum URI – neste caso, Amigo de um amigo e o esquema RDF. A vantagem é que você poderá usar posteriormente a instrução PREFIX em consultas sem precisar usar o URI completo.
A próxima linha do código SPARQL descreve a solicitação de consulta. Esta instrução é essencialmente igual à instrução SQL, exceto pela solicitação adicional do URI. Observe o uso do ponto de interrogação (?) para indicar que o termo é uma variável.
A instrução FROM descreve onde obter os dados. É o mesmo em SQL e SPARQL, exceto que em SPARQL o nome da fonte de dados é um URI em vez de uma string que representa um local físico em um computador ou rede.
As instruções WHERE dos dois são completamente diferentes, pois com SPARQL é necessário especificar o esquema utilizado para obter os dados. Novamente, se você tentou fazer isso usando a abordagem relacional, é muito mais caro que o SQL simples: você precisa usar PHP, a linguagem de programação Java ou alguma outra linguagem do lado do servidor para realizar as verificações entre as fontes de dados. O que a linha de código SPARQL realiza é relativamente simples, inclusive garantindo que os dados que estão sendo recuperados sejam apenas do tipo Pessoa. SPARQL obterá o nome e a localização e realizará algumas correspondências de padrões para encontrar o John Smith correto.
Criar
operações CRUD no SPARQL geralmente é mais misterioso do que operações de leitura. No entanto, essas operações podem ser concluídas. Primeiro, a operação de criação insere um novo registro ou objeto na tabela ou gráfico.
INSERT INTO UserTable (nome real, dob, local) VALUES ("John Smith", "1985-01-01", "Bristol, UK");
Agora, compare o código baseado em SQL na Listagem 3 com o código baseado em SPARQL em Listagem 4 operação de criação em .
PREFIXO foaf:< http://xmlns.com/foaf/0.1/ > PREFIXO rdf: < http://www.w3.org/1999/02/22-rdf-syntax-ns#>INSERIR NO GRÁFICO < http: //www.example.com/graph > (?nome real, ?dob, ?location) {< http://www.example.org/graph/johnsmith#me > rdf:Type foaf:Person foaf:name "John; Smith" ; foaf:aniversário <1985-01-01T00:00:00> ; foaf:local "Bristol, Reino Unido" }