Petunjuk kueri SPARQL yang digunakan dengan DESCRIBE - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Petunjuk kueri SPARQL yang digunakan dengan DESCRIBE

DESCRIBEKueri SPARQL menyediakan mekanisme yang fleksibel untuk meminta deskripsi sumber daya. Namun, spesifikasi SPARQL tidak menentukan semantik yang tepat dari. DESCRIBE

Dimulai dengan rilis mesin 1.2.0.2, Neptunus mendukung beberapa DESCRIBE mode dan algoritma berbeda yang cocok untuk situasi yang berbeda.

Dataset sampel ini dapat membantu mengilustrasikan mode yang berbeda:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix : <https://example.com/> . :JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JohnDoe :firstName "John" . :JaneDoe :knows _:b1 . _:b1 :knows :RichardRoe . :RichardRoe :knows :JaneDoe . :RichardRoe :firstName "Richard" . _:s1 rdf:type rdf:Statement . _:s1 rdf:subject :JaneDoe . _:s1 rdf:predicate :knows . _:s1 rdf:object :JohnDoe . _:s1 :knowsFrom "Berlin" . :ref_s2 rdf:type rdf:Statement . :ref_s2 rdf:subject :JaneDoe . :ref_s2 rdf:predicate :knows . :ref_s2 rdf:object :JohnDoe . :ref_s2 :knowsSince 1988 .

Contoh di bawah ini mengasumsikan bahwa deskripsi sumber daya :JaneDoe diminta menggunakan kueri SPARQL seperti ini:

DESCRIBE <https://example.com/JaneDoe>

Petunjuk kueri SPARQL describeMode

Petunjuk kueri hint:describeMode SPARQL digunakan untuk memilih salah satu mode DESCRIBE SPARQL berikut yang didukung oleh Neptunus:

Mode ForwardOneStep DESCRIPTE

Anda menjalankan ForwardOneStep mode dengan petunjuk describeMode kueri seperti ini:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "ForwardOneStep" }

ForwardOneStepMode hanya mengembalikan atribut dan tautan penerusan sumber daya yang akan dijelaskan. Dalam kasus contoh, ini berarti mengembalikan tiga kali lipat yang memiliki:JaneDoe, sumber daya yang akan dijelaskan, sebagai subjek:

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b301990159 .

Perhatikan bahwa kueri DESCRIBE dapat mengembalikan tiga kali lipat dengan node kosong, seperti_:b301990159, yang berbeda IDs setiap kali, dibandingkan dengan kumpulan data input.

Mode SymmetricOneStep DESCRIPTE

SymmetricOneStepadalah mode DESCRIBE default jika Anda tidak memberikan petunjuk kueri. Anda juga dapat memanggilnya secara eksplisit dengan petunjuk describeMode kueri seperti ini:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SymmetricOneStep" }

Di bawah SymmetricOneStep semantik, DESCRIBE mengembalikan atribut, tautan maju, dan tautan balik sumber daya yang akan dijelaskan:

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b318767375 . _:b318767631 rdf:subject :JaneDoe . :RichardRoe :knows :JaneDoe . :ref_s2 rdf:subject :JaneDoe .

Mode Deskripsi Terbatas Ringkas (CBD) DESCRIBE

Mode Concise Bounded Description (CBD) dipanggil menggunakan petunjuk describeMode kueri seperti ini:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "CBD" }

Di bawah CBD semantik, DESCRIBE mengembalikan Deskripsi Terbatas Ringkas (seperti yang didefinisikan oleh W3C) dari sumber daya yang akan dijelaskan:

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b285212943 . _:b285212943 :knows :RichardRoe . _:b285213199 rdf:subject :JaneDoe . _:b285213199 rdf:type rdf:Statement . _:b285213199 rdf:predicate :knows . _:b285213199 rdf:object :JohnDoe . _:b285213199 :knowsFrom "Berlin" . :ref_s2 rdf:subject :JaneDoe .

Deskripsi Terbatas Ringkas dari sumber daya RDF (yaitu, simpul dalam grafik RDF) adalah subgraf terkecil yang berpusat di sekitar node yang dapat berdiri sendiri. Dalam praktiknya ini berarti bahwa jika Anda menganggap grafik ini sebagai pohon, dengan simpul yang ditunjuk sebagai akar, tidak ada simpul kosong (bnode) sebagai daun pohon itu. Karena bnodes tidak dapat ditangani secara eksternal atau digunakan dalam kueri berikutnya, itu tidak cukup untuk menelusuri grafik hanya untuk menemukan hop tunggal berikutnya dari node saat ini. Anda juga harus pergi cukup jauh untuk menemukan sesuatu yang dapat digunakan dalam kueri berikutnya (yaitu, sesuatu selain bnode).

Menghitung CBD

Diberikan node tertentu (node awal atau root) dalam grafik RDF sumber, CBD dari node tersebut dihitung sebagai berikut:

  1. Sertakan dalam subgraf semua pernyataan dalam grafik sumber di mana subjek pernyataan adalah simpul awal.

  2. Secara rekursif, untuk semua pernyataan dalam subgraf sejauh ini yang memiliki objek simpul kosong, sertakan dalam subgraf semua pernyataan dalam grafik sumber di mana subjek pernyataan adalah simpul kosong, dan yang belum termasuk dalam subgraf.

  3. Secara rekursif, untuk semua pernyataan yang termasuk dalam subgraf sejauh ini, untuk semua reifikasi pernyataan ini dalam grafik sumber, sertakan CBD yang dimulai dari simpul setiap reifikasi. rdf:Statement

Ini menghasilkan subgraf di mana node objek adalah referensi IRI atau literal, atau node kosong yang tidak berfungsi sebagai subjek dari pernyataan apa pun dalam grafik. Perhatikan bahwa CBD tidak dapat dihitung menggunakan kueri SPARQL SELECT atau CONSTRUCT tunggal.

Deskripsi Terbatas Ringkas Simetris () mode DESCRIBE SCBD

Mode Symmetric Concise Bounded Description (SCBD) dipanggil menggunakan petunjuk describeMode kueri seperti ini:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SCBD" }

Di bawah SCBD semantik, DESCRIBE mengembalikan Symmetric Concise Bounded Description dari sumber daya (seperti yang didefinisikan oleh W3C dalam Menjelaskan Kumpulan Data Tertaut dengan Kosakata VoID:

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b335544591 . _:b335544591 :knows :RichardRoe . :RichardRoe :knows :JaneDoe . _:b335544847 rdf:subject :JaneDoe . _:b335544847 rdf:type rdf:Statement . _:b335544847 rdf:predicate :knows . _:b335544847 rdf:object :JohnDoe . _:b335544847 :knowsFrom "Berlin" . :ref_s2 rdf:subject :JaneDoe .

Keuntungan CBD dan SCBD dibandingkan SymmetricOneStep mode ForwardOneStep dan adalah bahwa node kosong selalu diperluas untuk memasukkan representasi mereka. Ini mungkin merupakan keuntungan penting karena Anda tidak dapat menanyakan node kosong menggunakan SPARQL. Selain itu, mode CBD dan SCBD juga mempertimbangkan reifikasi.

Perhatikan bahwa petunjuk describeMode kueri juga dapat menjadi bagian dari WHERE klausa:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE ?s WHERE { hint:Query hint:describeMode "CBD" . ?s rdf:type <https://example.com/Person> }

Petunjuk kueri SPARQL describeIterationLimit

Petunjuk kueri hint:describeIterationLimit SPARQL memberikan batasan opsional pada jumlah maksimum ekspansi berulang yang akan dilakukan untuk algoritme DESCRIBE berulang seperti CBD dan SCBD.

Batas DESKRIPSIKAN adalah ANDed bersama-sama. Oleh karena itu, jika batas iterasi dan batas pernyataan ditentukan, maka kedua batas harus dipenuhi sebelum kueri DESCRIBE terputus.

Default untuk nilai ini adalah 5. Anda dapat mengaturnya ke NOL (0) untuk menentukan NO limit pada jumlah ekspansi iteratif.

Petunjuk kueri SPARQL describeStatementLimit

Petunjuk kueri hint:describeStatementLimit SPARQL memberikan batasan opsional pada jumlah maksimum pernyataan yang mungkin ada dalam respons kueri DESCRIBE. Ini hanya diterapkan untuk algoritma DESCRIBE berulang seperti CBD dan SCBD.

Batas DESKRIPSIKAN adalah ANDed bersama-sama. Oleh karena itu, jika batas iterasi dan batas pernyataan ditentukan, maka kedua batas harus dipenuhi sebelum kueri DESCRIBE terputus.

Default untuk nilai ini adalah 5000. Anda dapat mengaturnya ke NOL (0) untuk menentukan NO limit pada jumlah pernyataan yang dikembalikan.