การดำเนินการสร้าง อ่าน อัปเดต และลบ (สร้าง/อ่าน/อัปเดต/ลบ, CRUD) เป็นการดำเนินการฐานข้อมูลขั้นพื้นฐานที่สุด แต่ก็เป็นการดำเนินการที่สำคัญที่สุดเช่นกัน โดยปกติการดำเนินการ CRUD จะดำเนินการโดยใช้ Structured Query Language (SQL) ในระบบฐานข้อมูลเชิงสัมพันธ์ เมื่อเว็บกลายเป็นที่มุ่งเน้นข้อมูลมากขึ้น จึงมีความจำเป็นต้องย้ายจากการดำเนินการ CRUD ที่ใช้ SQL ไปเป็นการดำเนินการ CRUD บนเว็บแบบ Semantic เรียนรู้วิธีใช้ PHP เพื่อดำเนินการ CRUD กับเว็บที่ใช้ความหมาย ตัวย่อที่ใช้กันทั่วไป
API - Application Programming Interface
CRUD - สร้าง/อ่าน/อัปเดต/ลบ
HTTP - Hypertext Transfer Protocol
MVC - รูปแบบ - มุมมอง - Control Model-View-Controller
OOP - Object-Oriented Programming
RDF - Resource Description Framework
SPARQL - Simple Protocol และ ภาษาคิวรี RDF
SQL -UI
ภาษาคิวรีที่มีโครงสร้าง
- ส่วนต่อประสานกับผู้ใช้W3C - World Wide Web Consortium
เมื่อพัฒนาแอปพลิเคชันเว็บ มันเป็นมาตรฐานในการสร้างโครงสร้างฐานข้อมูลที่เก็บโค้ดฝั่งเซิร์ฟเวอร์สำหรับเลเยอร์ลอจิกและเลเยอร์ UI . หากต้องการเชื่อมต่อกับฐานข้อมูล โค้ดฝั่งเซิร์ฟเวอร์จำเป็นต้องดำเนินการพื้นฐานบางอย่าง เช่น การสร้าง การอัปเดต การลบ และที่สำคัญที่สุดคือการอ่านบันทึก เนื่องจากฐานข้อมูลส่วนหลังของเว็บแอปพลิเคชันมักจะเป็นฐานข้อมูลเชิงสัมพันธ์ การดำเนินการ CRUD เหล่านี้จึงดำเนินการโดยใช้ภาษา SQL ที่รู้จักกันดี อย่างไรก็ตาม เนื่องจากการพัฒนาเว็บใช้การเขียนโปรแกรมเชิงวัตถุ (OOP) มากขึ้น โมเดลจึงเปลี่ยนไป
Resource Description Framework (RDF) เป็นวิธีที่เหมาะที่สุดในการอธิบายออบเจ็กต์โดยยังคงรักษาความหมายของข้อมูลไว้ Simple Protocol และ RDF Query Language (SPARQL—ออกเสียงว่า "sparkle") คือภาษาที่โดยทั่วไปใช้ในการสืบค้นข้อมูลนี้ เนื่องจากโครงสร้างคำสั่งตรงกับโครงสร้างของ RDF เอง RDF และ SPARQL เป็นทั้งเทคโนโลยีในสิ่งที่เรียกว่า semantic Web stack
หากต้องการนำแนวคิด Semantic Web ไปใช้อย่างเต็มที่ คุณสามารถใช้ SPARQL เพื่อนำเทคนิคการพัฒนาเว็บแบบดั้งเดิมไปใช้กับข้อมูล RDF ได้ บทความนี้จะแสดงวิธีเชื่อมต่อกับ RDF โดยใช้โมเดลการออกแบบ Model-View-Controller (MVC) แบบง่าย ภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ PHP และ SPARQL แทนที่จะใช้ SQL ในระบบฐานข้อมูลเชิงสัมพันธ์
ข้อกำหนดเบื้องต้นการดำเนินงาน SQL และ SPARQL CRUD
บทความนี้ถือว่าความเข้าใจพื้นฐานเกี่ยวกับการพัฒนาแอปพลิเคชัน SQL, PHP และเว็บ การทำความเข้าใจ Semantic Web ก็มีประโยชน์เช่นกัน หากต้องการเรียกใช้คำสั่งสร้าง อัปเดต และลบคำสั่งบนข้อมูล Semantic Web คุณต้องมีฐานข้อมูล Semantic Web ที่รองรับข้อกำหนด SPARQL/Update
เมื่อพัฒนาด้วย SQL และ SPARQL คุณต้องดูความเหมือนและความแตกต่างระหว่างการดำเนินการ CRUD รายการ 1 แสดงรหัส SQL สำหรับการดำเนินการอ่าน
เลือกชื่อจริง, dob, locationFROM UserTable WHERE realname = "John Smith";
เปรียบเทียบโค้ดที่ใช้ SQL นี้กับโค้ดที่ใช้ SPARQL ที่แสดงในรายการ 2 เหตุผลในการใช้การดำเนินการอ่านทั้งสองนี้ก็คือ เป็นวิธีที่ง่ายที่สุดในการทำความเข้าใจ นำไปใช้ และอธิบาย สิ่งนี้จะเหมือนกันสำหรับทั้ง SQL และ SPARQL
คำนำหน้า foaf:< http://xmlns.com/foaf/0.1/ > คำนำหน้า 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 .} ;
เมื่อดูทั้งสองรายการ ความคิดแรกของคุณน่าจะเป็นว่าเวอร์ชัน SPARQL นั้นยาวกว่าเวอร์ชัน SQL อย่างมาก นี่เป็นเรื่องจริง แต่อย่าหลงคิดว่า SQL จำเป็นต้องเรียบง่ายกว่าและสะอาดกว่า SPARQL ทั้งหมดสามารถส่งผ่านสิ่งที่เรียกว่าเอฟเฟกต์ข้อมูลที่เชื่อมโยง ทั้งนี้ขึ้นอยู่กับเครื่องยนต์ที่ทำงานอยู่ นอกจากนี้ ยังอนุญาตให้มีไดนามิกสคีมาเนื่องจากมีเปอร์สเปคทีฟเชิงวัตถุที่เชื่อมโยงถึงกัน ตรงกันข้ามกับเปอร์สเปคทีฟเชิงสัมพันธ์ SQL ที่เข้มงวด หากคุณต้องการแยกตารางฐานข้อมูลเชิงสัมพันธ์ออกเป็นไซโลข้อมูลจำนวนมาก คุณจะต้องใช้โค้ด SQL หลายบรรทัดมากกว่า SPARQL ไม่ต้องพูดถึงตัวอธิบาย JOIN ที่น่ารำคาญมากมายใน SQL
สองบรรทัดแรกของ SPARQL คือคำสั่ง PREFIX ตามทฤษฎี Semantic Web เนื้อหาทั้งหมด ไม่ว่าจะเป็นออบเจ็กต์หรือแหล่งข้อมูลกราฟ (รวมถึงออบเจ็กต์ด้วย) ก็มี Uniform Resource Identifier (URI) บรรทัด PREFIX ใช้แท็กชั่วคราวกับ URI บางส่วน ในกรณีนี้คือ Friend of a Friend และ RDF schema ข้อดีคือคุณสามารถใช้คำสั่ง PREFIX ในการสืบค้นได้ในภายหลังโดยไม่ต้องใช้ URI แบบเต็ม
บรรทัดถัดไปของโค้ด SPARQL อธิบายคำขอแบบสอบถาม คำสั่งนี้โดยพื้นฐานแล้วเหมือนกับคำสั่ง SQL ยกเว้นคำขอเพิ่มเติมสำหรับ URI สังเกตการใช้เครื่องหมายคำถาม (?) เพื่อระบุว่าคำนั้นเป็นตัวแปร
คำสั่ง FROM อธิบายตำแหน่งที่จะรับข้อมูล สิ่งนี้จะเหมือนกันใน SQL และ SPARQL ยกเว้นใน SPARQL ชื่อแหล่งข้อมูลจะเป็น URI แทนที่จะเป็นสตริงที่แสดงถึงตำแหน่งทางกายภาพบนคอมพิวเตอร์หรือเครือข่าย
คำสั่ง WHERE ของทั้งสองมีความแตกต่างกันโดยสิ้นเชิง เนื่องจากด้วย SPARQL คุณต้องระบุสคีมาที่ใช้ในการรับข้อมูล ขอย้ำอีกครั้ง หากคุณพยายามทำเช่นนี้โดยใช้แนวทางเชิงสัมพันธ์ ก็จะมีราคาแพงกว่า SQL ธรรมดามาก คุณต้องใช้ PHP, ภาษาโปรแกรม Java หรือภาษาฝั่งเซิร์ฟเวอร์อื่นๆ เพื่อทำการตรวจสอบระหว่างแหล่งข้อมูล สิ่งที่บรรทัดโค้ด SPARQL สำเร็จนั้นค่อนข้างตรงไปตรงมา รวมถึงการทำให้มั่นใจว่าข้อมูลที่ดึงมานั้นเป็นประเภทบุคคลเท่านั้น SPARQL จะได้รับชื่อและตำแหน่ง และดำเนินการจับคู่รูปแบบเพื่อค้นหา John Smith ที่ถูกต้อง
โดยทั่วไปแล้วการสร้าง
การดำเนินการ CRUD ใน SPARQL นั้นเป็นความลับมากกว่าการดำเนินการอ่าน อย่างไรก็ตาม การดำเนินการเหล่านี้สามารถเสร็จสมบูรณ์ได้ ขั้นแรก การดำเนินการสร้างจะแทรกเรกคอร์ดหรือออบเจ็กต์ใหม่ลงในตารางหรือแผนภูมิ
INSERT INTO UserTable (realname, dob, location) VALUES ("John Smith", "1985-01-01", "Bristol, UK");
ตอนนี้ ให้เปรียบเทียบโค้ดที่ใช้ SQL ใน Listing 3 กับโค้ดที่ใช้ SPARQL รายการ 4 สร้างการดำเนินการใน.
คำนำหน้า foaf:< http://xmlns.com/foaf/0.1/ > คำนำหน้า rdf: < http://www.w3.org/1999/02/22-rdf-syntax-ns#> แทรกลงในกราฟ < http: //www.example.com/graph > (?realname, ?dob, ?location) {< http://www.example.org/graph/johnsmith#me > rdf:Type foaf:Person ; Smith" ; foaf:birthday <1985-01-01T00:00:00> ; foaf:location "Bristol, UK" }