Sparql memiliki gagasan tentang "grafik default" yang ditanyakan ketika tidak ada konteks grafik yang ditentukan, dan yang (tergantung pada tiga toko) mungkin merupakan gabungan dari grafik yang tepat yang tersedia di repositori, atau mungkin terpisah, "null grafik"; sejauh ini bagus.

Tetapi sparql juga memiliki kata kunci DEFAULT yang dapat ditentukan alih-alih nama grafik, seperti pada

SELECT *
FROM DEFAULT
WHERE { ... }

Apa yang dilakukan perintah ini? Saya hanya bisa menafsirkannya sebagai cara eksplisit untuk meminta hal yang sama yang akan terjadi ketika tidak ada klausa FROM sama sekali. Tapi apakah ini benar? Saya tidak dapat menemukan dokumentasi tentang itu. Dan bagaimana dengan menggunakannya dalam kueri pembaruan, atau dengan CLEAR, COPY, dll.? Adakah yang bisa menunjukkan dokumentasi makna dan tujuan penggunaan kata kunci ini, atau setidaknya menjelaskan mengapa itu ada?

3
alexis 10 Mei 2021, 13:00

2 jawaban

Jawaban Terbaik

Bila Anda memiliki satu atau lebih pernyataan FROM atau FROM NAMED dalam kueri, maka kumpulan data untuk kueri tersebut hanya terdiri dari grafik tersebut. Per SPARQL 1.1 Spesifikasi Kueri Bagian 13.2:

Kata kunci FROM dan FROM NAMED memungkinkan kueri untuk menentukan kumpulan data RDF dengan referensi; mereka menunjukkan bahwa kumpulan data harus menyertakan grafik yang diperoleh dari representasi sumber daya yang diidentifikasi oleh IRI yang diberikan (yaitu, bentuk absolut dari referensi IRI yang diberikan). Dataset yang dihasilkan dari sejumlah klausa FROM dan FROM NAMED adalah:

  • grafik default yang terdiri dari gabungan RDF dari grafik yang dirujuk dalam klausa FROM, dan
  • satu set pasangan (IRI, grafik), satu dari setiap klausa FROM NAMED.

Jika tidak ada klausa FROM, tetapi ada satu atau lebih klausa FROM NAMED, maka dataset menyertakan grafik kosong untuk grafik default.

Jadi pada dasarnya keberadaan klausa tersebut menciptakan kumpulan data kueri yang berpotensi menyembunyikan beberapa/semua grafik dalam kumpulan data yang mendasarinya. Kueri Anda beroperasi pada kumpulan data kueri ini.

Sebagaimana dicatat dalam Jawaban Andy FROM DEFAULT adalah usulan perpanjangan masa depan untuk bahasa SPARQL yang akan memungkinkan secara eksplisit merujuk ke grafik default set data (apa pun itu). Saat ini tidak ada cara standar untuk melakukan ini, jadi hanya kueri yang menghilangkan klausa FROM yang dapat mengakses grafik default kecuali jika layanan Anda menyediakan cara non-standar untuk merujuknya, mis. URI khusus untuk mereferensikan grafik default.

Untuk kueri contoh spesifik Anda:

SELECT *
FROM DEFAULT
WHERE { ... }

Ini akan memiliki efek membentuk kumpulan data kueri dengan grafik default menggunakan default layanan dan tidak ada grafik bernama yang terlihat yaitu klausa GRAPH ?g { } apa pun tidak akan cocok dengan kueri ini

2
RobV 10 Mei 2021, 13:43

FROM DEFAULT adalah fitur yang telah diusulkan untuk pekerjaan mendatang sparql-1.2/issues /43.

Tata bahasa mencakup SPARQL Query dan SPARQL Update karena keduanya berbagi banyak tentang tata bahasa. Mereka memiliki titik masuk yang berbeda (QueryUnit dan UpdateUnit).

Kata kunci DEFAULT muncul di GraphOrDefault dan GraphRefAll. Keduanya hanya digunakan di SPARQL Update.

ADD, MOVE, CODE gunakan GraphOrDefault; CLEAR dan DROP gunakan GraphRefAll.

FROM diikuti oleh iri , atau NAMED iri.

Menghilangkan FROM berarti grafik default implisit.

2
AndyS 10 Mei 2021, 11:34