Prez adalah kerangka kerja Linked Data API yang dapat dikonfigurasi data yang memberikan profil data Grafik Pengetahuan sesuai dengan standar Negosiasi Konten berdasarkan Profil.
Dimana UI-nya?
Prez hanya mengirimkan data - biasanya RDF tetapi bisa berupa GeoJSON, XML, dll. - dan memberikan bentuk khusus RDF yang menyertakan label untuk semua objek dan predikat yang dapat ditemukan Prez di databasenya.
Jika Anda menginginkan UI yang dapat merender RDF berlabel Prez sebagai HTML dan widget grafis mewah lainnya, lihat UI Prez.
Untuk mendapatkan salinan Prez di komputer Anda, jalankan:
git clone https://github.com/RDFLib/prez
Prez dikembangkan dengan Puisi, alat pengemasan dan ketergantungan Python. Puisi menyajikan semua dependensi Prez (paket Python lainnya) dalam file pyproject.toml
yang terletak di direktori root proyek.
Untuk menginstal dependensi Python, jalankan:
poetry install
Catatan: Puisi harus diinstal pada sistem. Untuk memeriksa apakah Anda telah menginstal Puisi, jalankan
poetry --version
. Untuk tips tentang cara menginstal dan mengelola grup ketergantungan tertentu, periksa dokumentasinya.
Prez memberikan titik akhir berikut:
Titik akhir | MT bawaan |
---|---|
/ | teks/anot+kura-kura |
/ dokumen | teks/html |
/catalogs/{catalogId} | teks/anot+kura-kura |
/catalogs/{catalogId}/collections | teks/anot+kura-kura |
/catalogs/{catalogId}/collections/{recordsCollectionId} | teks/anot+kura-kura |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items | teks/anot+kura-kura |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId} | teks/anot+kura-kura |
/purge-tbox-cache | aplikasi/json |
/tbox-cache | aplikasi/json |
/kesehatan | aplikasi/json |
/awalan | teks/anot+kura-kura |
/concept-hierarchy/{parent_curie}/narrowers | teks/anot+kura-kura |
/concept-hierarchy/{parent_curie}/top-concepts | teks/anot+kura-kura |
/cql | teks/anot+kura-kura |
/profil | teks/anot+kura-kura |
/mencari | teks/anot+kura-kura |
/profil/{profile_curie} | teks/anot+kura-kura |
/obyek | teks/anot+kura-kura |
/pengidentifikasi/pengalihan | T/A |
/identifier/curie/{iri} | teks/polos |
/identifier/iri/{curie} | teks/plai |
Titik Akhir API Fitur OGC didasarkan pada ROOT /catalogs/{catalogId}/collections/{recordsCollectionId}/
Titik akhir | MT bawaan |
---|---|
{ROOT}/fitur | aplikasi/json |
{ROOT}/fitur/docs | teks/html |
{ROOT}/fitur/kesesuaian | aplikasi/json |
{ROOT}/fitur/koleksi | aplikasi/json |
{ROOT}/features/collections/{collectionId} | aplikasi/json |
{ROOT}/features/collections/{collectionId}/items | aplikasi/geo+json |
{ROOT}/features/collections/{collectionId}/items/{featureId} | aplikasi/geo+jso |
Variabel Lingkungan berikut dapat digunakan untuk mengkonfigurasi Prez: Dalam kebanyakan kasus, yang diperlukan hanyalah variabel SPARQL_ENDPOINT.
Ini dapat diatur dalam file '.env' yang akan dibaca melalui python-dotenv. Alternatifnya, atur langsung di lingkungan tempat Prez dijalankan.
sparql_endpoint
: Titik akhir SPARQL hanya baca untuk Prez. Standarnya adalah None
.sparql_username
: Nama pengguna untuk titik akhir Prez SPARQL, jika diperlukan oleh RDF DB. Standarnya adalah None
.sparql_password
: Kata sandi untuk titik akhir Prez SPARQL, jika diperlukan oleh RDF DB. Standarnya adalah None
.enable_sparql_endpoint
: Apakah akan mengaktifkan titik akhir SPARQL. Yaitu apakah prez mengekspos titik akhir SPARQL repositori jarak jauh (biasanya triplestore). Standarnya adalah False
. Perhatikan titik akhir SPARQL ketika diaktifkan mendukung permintaan POST. Prez sendiri tidak melakukan pembaruan apa pun pada repositori jarak jauh (misalnya Triplestore jarak jauh), namun jika titik akhir SPARQL jarak jauh diaktifkan maka ada kemungkinan pengguna dapat melakukan pembaruan pada repositori jarak jauh menggunakan titik akhir SPARQL. protocol
: Protokol yang digunakan untuk mengirimkan Prez. Standarnya adalah "http"
.host
: nama domain host Prez. Standarnya adalah "localhost"
.port
: Port Prez dapat diakses. Standarnya adalah 8000
. system_uri
: IRI untuk sistem Prez secara keseluruhan. Nilai ini muncul di halaman arahan RDF yang dikirimkan oleh Prez ( "/"
). Standarnya adalah f"{protocol}://{host}:{port}"
. log_level
: Tingkat pencatatan. Standarnya adalah "INFO"
.log_output
: Mencatat tujuan keluaran. Standarnya adalah "stdout"
. prez_title
: Judul untuk instance Prez. Standarnya adalah "Prez"
.prez_desc
: Deskripsi instance Prez. Defaultnya adalah deskripsi API kerangka web Prez.prez_version
: Versi instance Prez. Standarnya adalah None
. curie_separator
: Pemisah yang digunakan dalam CURIE. Standarnya adalah ":"
. Pemisah ini muncul di tautan yang dihasilkan oleh Prez, dan pada gilirannya di jalur URL. order_lists_by_label
: Apakah akan mengurutkan daftar berdasarkan label. Standarnya adalah True
. Digunakan untuk menampilkan RDF dengan label yang dapat dibaca manusia.
label_predicates
: Daftar predikat yang digunakan untuk label. Standarnya meliputi:skos:prefLabel
dcterms:title
rdfs:label
sdo:name
Ketika tipe media beranotasi (
+anot
) digunakan, Prez menyertakan tiga kali lipat untuk setiap URI dalam respons awal yang memiliki salah satu properti di atas. Tiga kali lipat anotasi ini kemudian di-cache. Anotasi digunakan untuk tujuan tampilan, misalnya halaman HTML.
Mirip dengan predikat label di atas.
description_predicates
: Daftar predikat yang digunakan untuk deskripsi. Standarnya meliputi:skos:definition
dcterms:description
sdo:description
Mirip dengan predikat asal di atas.
provenance_predicates
: Daftar predikat yang digunakan untuk asal. Standarnya meliputi:dcterms:provenance
Mekanisme anotasi selanjutnya dapat digunakan untuk mengembalikan properti tertentu secara umum jika ada.
other_predicates
: Daftar predikat lainnya. Standarnya meliputi:sdo:color
reg:status
skos:narrower
skos:broader
sparql_repo_type
: Jenis repositori SPARQL. Standarnya adalah "remote"
. Pilihannya adalah "remote"
, "pyoxigraph"
, dan "oxrdflib"
sparql_timeout
: Batas waktu untuk kueri SPARQL. Standarnya adalah 30
. prez_contact
: Informasi kontak untuk Prez. Standarnya adalah None
. disable_prefix_generation
: Apakah akan menonaktifkan pembuatan awalan. Disarankan untuk menonaktifkan pembuatan awalan untuk repositori data besar , selanjutnya disarankan untuk selalu menentukan awalan di direktori prez/reference_data/prefixes/
. Standarnya adalah False
. default_language
: Bahasa default untuk Prez. Standarnya adalah "en"
.default_search_predicates
: Predikat pencarian default. Standarnya meliputi:rdfs:label
skos:prefLabel
sdo:name
dcterms:title
Digunakan bersama dengan repo Pyoxigraph. Menentukan direktori (dari akar repositori) untuk dimuat ke dalam grafik data memori Pyoxigraph. Tidak digunakan untuk tipe repositori lainnya.
local_rdf_dir
: Direktori untuk file RDF lokal. Standarnya adalah "rdf"
. endpoint_structure
: Struktur default titik akhir, digunakan untuk menghasilkan tautan. Standarnya adalah ("catalogs", "collections", "items")
. system_endpoints
: Daftar titik akhir sistem. Standarnya meliputi:ep:system/profile-listing
ep:system/profile-object
listing_count_limit
: Jumlah maksimum item yang dihitung untuk titik akhir listingan. Jumlah yang lebih besar dari batas ini akan dikembalikan sebagai ">N" dimana N adalah batasnya. Standarnya adalah 100
.search_count_limit
: Jumlah maksimum item yang akan dikembalikan dalam hasil pencarian. Standarnya adalah 10
. temporal_predicate
: Predikat yang digunakan untuk properti temporal. Standarnya adalah sdo:temporal
. endpoint_to_template_query_filename
: Kamus yang memetakan titik akhir ke nama file templat kueri. Defaultnya adalah kamus kosong. Bagian ini untuk mengembangkan Prez secara lokal. Lihat opsi Menjalankan di bawah untuk menjalankan Prez dalam produksi.
Untuk menjalankan server pengembangan (dengan memuat ulang otomatis pada perubahan kode):
poetry run python main.py
Gambar kontainer Prez dibuat menggunakan Github Action dan tersedia di sini.
Dockerfile di repositori juga dapat digunakan untuk membuat image Docker.
Nama gambarnya adalah ghcr.io/rdflib/prez
.
Tag latest
menunjuk ke rilis stabil terbaru dari Prez. Semua rilis stabil terbaru memiliki tag mayor, mayor dan minor, serta tag mayor, minor, dan patch yang menunjuk ke sana.
Misalnya, untuk rilis dengan tag git 3.2.4, tag berikut akan ada pada gambar kontainer:
3
3.2
3.2.4
latest
Komit baru ke cabang main
membuat gambar dev bergulir dengan tag dev
. Build dev juga akan menyertakan tag dalam bentuk mayor.minor.{patch+1}-dev.{commits-since-last-release}.{short-commit-sha}. Ini sesuai dengan pembuatan versi semantik dan akan dikenali oleh sistem orkestrasi untuk melakukan rilis otomatis.
Misalnya, jika rilis terbaru adalah 3.2.4 dan sudah ada 7 komit baru sejak rilis dan komit singkat SHA adalah fc82562, maka tag gambar kontainernya adalah:
3.2.5-dev.7.fc82562
Untuk menjalankan image buruh pelabuhan yang ditarik:
docker run -p 8000:8000
-e SPARQL_ENDPOINT=<your_sparql_endpoint>
<your_image_id>
Perintah di atas memulai container Docker yang menjalankan Prez pada port 8000, terhubung ke titik akhir sparql yang ditentukan.
Prez menggunakan PyTest dan Cakupan untuk pengujian dan laporan cakupan pengujian.
Untuk menjalankan semua tes yang tersedia:
poetry run pytest tests
Untuk menjalankan semua tes yang tersedia untuk analisis cakupan:
poetry run coverage run -m pytest tests
Untuk menghasilkan laporan cakupan:
poetry run coverage report
Sebagai server Data Tertaut, Prez menyediakan layanan pengalihan di /identifier/redirect
yang menerima parameter kueri iri
, mencari iri
di database untuk predikat foaf:homepage
dengan nilai, dan jika ada, kembalikan respons pengalihan ke nilainya.
Fungsionalitas ini berguna bagi institusi yang mengeluarkan pengenal persistennya sendiri dengan nama domain yang mereka kendalikan. Pemetaan dari pengidentifikasi persisten ke sumber daya web target disimpan di penyimpanan SPARQL backend.
Ini adalah solusi alternatif untuk layanan pengidentifikasi persisten seperti w3id.org. Dalam beberapa kasus, ini dapat digunakan bersama dengan layanan pengidentifikasi persisten untuk menghindari kebutuhan menyediakan pemetaan pengalihan dalam konfigurasi server web (NGINX, Apache HTTP, dll.) dan sebagai gantinya, mendefinisikan konfigurasi sebagai data RDF.
Agar Prez mengirimkan data melalui berbagai subsistemnya, data tersebut harus memenuhi beberapa persyaratan minimum: Anda tidak dapat, misalnya, menjalankan VocPrez tanpa SKOS ConceptSchemes yang ditentukan!
Semua profil yang tercantum di atas menyediakan validator yang dapat digunakan dengan data RDF untuk menguji apakah data tersebut valid. Jika ya, Prez akan baik-baik saja.
Validator profil semuanya tersedia dari profil itu sendiri (navigasi ke daftar sumber daya profil lainnya melalui tautan spesifikasi di atas) dan validator tersebut juga dimuat ke alat online RDFTools yang dapat Anda gunakan tanpa mengunduh atau menginstal apa pun:
Cari VocPrez Compounded dan validator serupa. Bit 'gabungan' berarti validator akan memvalidasi data terhadap semua VocPrez dan persyaratan yang diwarisi.
CATATAN : Alat sumber terbuka ini dikembangkan secara aktif dan didukung oleh KurrawongAI, sebuah perusahaan kecil Grafik Pengetahuan Australia, pengembang di Universitas Melbourne dan juga oleh kontributor sumber terbuka.
Untuk menandai masalah atau mengajukan pertanyaan, buatlah masalah di Issue Tracker atau Anda dapat menghubungi pengembang menggunakan detail mereka di bawah.
Berikut adalah pengembang utama:
KurrawongAI https://kurrawong.net
David Habgood [email protected]
Nicholas Mobil [email protected]
Edmond Chuc [email protected]
University of Melbourne - Prez UI terutama Jamie Feiss [email protected]
Kami menyukai kontribusi pada alat ini dan mendorong Anda untuk membuat Masalah di Pelacak Masalah repositori ini atau mengirimkan Permintaan Tarik!
Ada dokumentasi tentang kontribusi ke Prez, lihat README-Dev.md.
Versi Prez ini dan isi repositori ini juga tersedia di bawah Lisensi Klausul BSD-3. Lihat file LISENSI repositori ini untuk detailnya.