Plugin Jekyll untuk memasukkan data RDF di situs statis Anda.
Dokumentasi API tersedia di rubydoc.info.
Docker Ada gambar Docker, lihat Penggunaan Bagian Docker.
Sebagai prasyarat untuk jekyll rdf Anda tentu saja perlu menginstal jekyll . Silakan lihat instruksi instalasi di https://jekyllrb.com/docs/installation/.
Jika Anda sudah memiliki instalasi Jekyll yang berfungsi, Anda dapat menambahkan plugin Jekyll-RDF. Mungkin Anda sudah menggunakan Bundler dan ada Gemfile
di direktori Jekyll Anda. Tambahkan Jekyll-RDF ke bagian plugin:
gem "jekyll-rdf", "~> 3.2"
Ganti string versi dengan rilis stabil yang tersedia saat ini seperti yang tercantum di rubygems.org. Setelah memperbarui Gemfile
Anda, Anda mungkin ingin menjalankan bundle install
(atau bundle install --path vendor/bundle
) atau bundle update
.
Jika Anda tidak menggunakan Gemfile
untuk mengelola paket Jekyll/Ruby Anda Instal Jekyll-RDF menggunakan gem
:
gem install jekyll-rdf
Jika Anda ingin membangun plugin dari sumber, silakan lihat bagian pengembangan kami.
Bagian ini menjelaskan cara menggunakan jekyll-rdf dalam tiga langkah:
Semua filter dan metode untuk digunakan dalam templat dan opsi konfigurasi didokumentasikan di bagian “Parameter dan opsi konfigurasi sekilas”.
Pertama, Anda memerlukan halaman Jekyll. Untuk membuatnya, lakukan saja:
jekyll new my_page
cd my_page
Lebih lanjut, ada beberapa parameter yang diperlukan dalam _config.yml
Anda untuk jekyll-rdf
. Yaitu parameter url
dan baseurl
digunakan untuk memasukkan halaman sumber daya ke dalam root situs, plug-in harus dikonfigurasi, dan jalur ke file RDF harus ada.
baseurl : " /simpsons "
url : " http://example.org "
plugins :
- jekyll-rdf
jekyll_rdf :
path : " _data/data.ttl "
default_template : " default.html "
restriction : " SELECT ?resourceUri WHERE { ?resourceUri ?p ?o . FILTER regex(str(?resourceUri), 'http://example.org/simpsons') } "
class_template_mappings :
" http://xmlns.com/foaf/0.1/Person " : " person.html "
instance_template_mappings :
" http://example.org/simpsons/Abraham " : " abraham.html "
url
+ baseurl
digunakan oleh Jekyll RDF untuk mengidentifikasi relatif URL yang harus membangun halaman sumber daya RDF. Dalam contoh di atas ini berarti bahwa sumber daya dengan IRI <http://example.org/simpsons/Bart>
diterjemahkan ke path /Bart.html
. Juga fitur dan plugin lain untuk Jekyll tergantung pada dua parameter ini. Jika untuk kasus apa pun, dua parameter berbeda dari jalur dasar yang harus diasumsikan oleh Jekyll RDF, dimungkinkan untuk mengatur parameter baseiri
di bagian jekyll_rdf
.
baseurl : " /simpsons "
url : " https://beispiel.com "
jekyll_rdf :
baseiri : " http://example.org/ "
Dimungkinkan untuk memetakan kelas tertentu (resp. Tipe RDF) atau sumber daya individu ke templat.
class_template_mappings :
" http://xmlns.com/foaf/0.1/Person " : " person.html "
instance_template_mappings :
" http://aksw.org/Team " : " team.html "
Template yang dipetakan ke kelas akan digunakan untuk membuat setiap contoh kelas itu dan subkelasnya. Setiap instance diberikan dengan kelas yang paling spesifik dipetakan ke templat. Jika pemetaan ambigu untuk sumber daya, peringatan akan menjadi output ke jendela perintah Anda, jadi waspadalah!
Dimungkinkan juga untuk menentukan templat default, yang digunakan untuk semua sumber daya, yang tidak dicakup oleh class_template_mappings
atau instance_template_mappings
.
default_template : " default.html "
Anda dapat membatasi sumber daya yang dipilih untuk dibangun dengan menambahkan kueri SPARQL sebagai parameter restriction
ke _config.yml
. Harap gunakan ?resourceUri
sebagai placeholder untuk URI yang dihasilkan:
restriction : " SELECT ?resourceUri WHERE { ?resourceUri <http://www.ifi.uio.no/INF3580/family#hasFather> <http://www.ifi.uio.no/INF3580/simpsons#Homer> } "
Ada 3 kata kunci yang telah ditentukan untuk pembatasan yang diterapkan:
subjects
akan memuat semua subjek urispredicates
akan memuat semua predikat urisobjects
akan memuat semua objek uris Karena beberapa titik akhir SPARQL memiliki batas bawaan untuk kueri tertentu, Anda juga dapat menentukan daftar sumber daya yang akan dibangun. File _data/restriction.txt
cool memiliki konten berikut:
<http://example.org/resourceA>
<http://example.org/resourceB>
<http://example.org/resourceC>
<http://example.org/resourceD>
<http://example.org/resourceE>
Di _config.yml
Anda menentukan file dengan Key restriction_file
. Jika keduanya, restriction_file
dan restriction
, ditentukan Jekyll RDF akan membangun halaman untuk penyatuan keduanya.
Selanjutnya Anda dapat memutuskan apakah Anda ingin membuat node kosong atau tidak. Anda hanya perlu menambahkan include_blank
ke _config.yml
:
jekyll_rdf :
include_blank : true
Akhirnya juga dimungkinkan untuk mengatur bahasa yang disukai untuk RDF-literals dengan language
opsi:
jekyll_rdf :
language : " en "
Menjalankan jekyll build
akan membuat sumber daya RDF ke direktori _site/…
. Menjalankan jekyll serve
akan membuat sumber daya RDF dan memberi Anda http-server instan yang biasanya dapat diakses di http://localhost:4000/
. Sumber Daya RDF yang irisnya tidak dimulai dengan url
Jekyll dan baseurl
(resp. baseiri
) yang dikonfigurasi diterjemahkan ke sub direktori _site/rdfsites/…
Untuk memanfaatkan data RDF, buat satu atau lebih file (misalnya rdf_index.html
atau person.html
) di _layouts
-directory. Untuk setiap sumber daya, sebuah halaman akan diterjemahkan. Lihat contoh di bawah ini:
---
layout: default
---
< div class =" home " >
< h1 class =" page-heading " > < b > {{ page.rdf.iri }} </ b > </ h1 >
< p >
< h3 > Statements in which {{ page.rdf.iri }} occurs as subject: </ h3 >
{% include statements_table.html collection=page.rdf.statements_as_subject %}
</ p >
< p >
< h3 > Statements in which {{ page.rdf.iri }} occurs as predicate: </ h3 >
{% include statements_table.html collection=page.rdf.statements_as_predicate %}
</ p >
< p >
< h3 > Statements in which {{ page.rdf.iri }} occurs as object: </ h3 >
{% include statements_table.html collection=page.rdf.statements_as_object %}
</ p >
</ div >
Kami menyertakan beberapa contoh templat di
test/source/_layouts/rdf_index.html
test/source/_layouts/person.html
{{ page.rdf }}
Adalah sumber daya yang saat ini diberikan.
{{ page.rdf.iri }}
Mengembalikan IRI dari sumber daya yang saat ini diberikan.
Untuk mengakses objek yang terhubung ke subjek saat ini melalui predikat Anda dapat menggunakan filter cair khusus kami. Untuk objek tunggal atau daftar objek menggunakan rdf_property
-filter (lihat 1 dan 2).
Untuk mengakses satu objek yang terhubung ke subjek saat ini melalui predikat yang diberikan Harap filter page.rdf
data dengan rdf_property
-filter. Contoh:
Age: {{ page.rdf | rdf_property: '<http://xmlns.com/foaf/0.1/age>' }}
Untuk memilih bahasa tertentu, tambahkan parameter kedua ke filter:
Age: {{ page.rdf | rdf_property: '<http://xmlns.com/foaf/0.1/job>','en' }}
Untuk mendapatkan lebih dari satu objek yang terhubung ke subjek saat ini melalui predikat yang diberikan, gunakan filter rdf_property
bersamaan dengan argumen ketiga yang diatur ke true
(argumen kedua untuk bahasa dapat dihilangkan dengan mengaturnya ke nil
):
Sisters: < br />
{% assign resultset = page.rdf | rdf_property: ' < http: //www.ifi.uio.no/INF3580/family#hasSister > ', nil, true %}
< ul >
{% for result in resultset %}
< li > {{ result }} </ li >
{% endfor %}
</ ul >
Untuk memilih bahasa tertentu, tambahkan parameter kedua ke filter:
Book titles: < br />
{% assign resultset = page.rdf | rdf_property: ' < http: //xmlns.com/foaf/0.1/currentProject > ','de' %}
< ul >
{% for result in resultset %}
< li > {{ result }} </ li >
{% endfor %}
</ ul >
Untuk mendukung wadah RDF dan koleksi RDF, kami menyediakan filter rdf_container
dan rdf_collection
.
Dalam kedua kasus masing -masing resp sumber daya wadah. Kepala koleksi perlu diidentifikasi dan kemudian melewati filter masing -masing. Untuk kontainer kami saat ini mendukung contoh eksplisit rdf:Bag
, rdf:Seq
dan rdf:Alt
dengan anggota yang diidentifikasi menggunakan rdfs:ContainerMembershipProperty
S: rdf:_1
, rdf:_2
, rdf:_3
…. Koleksi diidentifikasi menggunakan rdf:first
, rdf:rest
dan diakhiri dengan L rdf:rest rdf:nil
. Karena kepala koleksi perlu diidentifikasi, Anda tidak dapat menggunakan simpul kosong di sana, Anda dapat mengidentifikasinya secara tidak langsung melalui predikat yang berisi koleksi.
Contoh grafik:
@prefix ex: <http://example.org/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
ex:Resource ex:lists ex:List ;
ex:directList ("hello" "from" "turtle") .
ex:hasContainer ex:Container .
ex:List rdf:first "hello" ;
rdf:rest ("rdf" "list") .
ex:Container a rdf:Bag ;
rdf:_1 "hello" ;
rdf:_2 "rdf" ;
rdf:_3 "container" .
Template untuk ex:Resource
:
{% assign list = page.rdf | rdf_collection: '<http://example.org/directList>' %}
<ol>
{% for item in list %}
<li>{{ item }}</li>
{% endfor %}
</ol>
{% assign container = page.rdf | rdf_property: '<http://example.org/hasContainer>' | rdf_container %}
<ul>
{% for item in container %}
<li>{{ item }}</li>
{% endfor %}
</ul>
Kami menerapkan filter cair sparql_query
untuk menjalankan kueri sparql khusus. Setiap terjadinya ?resourceUri
diganti dengan URI saat ini. Perhatian: Anda harus memisahkan kueri dan hasil yang ditetapkan variabel karena konsep cairan. Contoh:
{% assign query = 'SELECT ?sub ?pre WHERE { ?sub ?pre ?resourceUri }' %}
{% assign resultset = page.rdf | sparql_query: query %}
< table >
{% for result in resultset %}
< tr >
< td > {{ result.sub }} </ td >
< td > {{ result.pre }} </ td >
</ tr >
{% endfor %}
</ table >
Dimungkinkan untuk mendeklarasikan satu set awalan yang dapat digunakan dalam filter cair rdf_property
dan sparql_query
. Ini memungkinkan untuk memperpendek jumlah teks yang diperlukan untuk setiap filter cair. Sintaks deklarasi awalan sama dengan untuk SPARQL 1.1. Cukup letakkan awalan Anda di file terpisah dan sertakan kunci rdf_prefix_path
bersama dengan jalur relatif di bagian depan YAML dari file di mana awalan Anda harus digunakan.
Untuk awalan, aturan yang sama berlaku untuk variabel lain yang ditentukan dalam materi depan YAML. Variabel -variabel ini kemudian akan tersedia bagi Anda untuk mengakses menggunakan tag cair baik lebih jauh dalam file dan juga dalam tata letak apa pun atau termasuk bahwa halaman atau posting yang dimaksud bergantung pada. (Sumber: materi depan YAML). Ini sangat relevan jika Anda menggunakan awalan termasuk.
Jika URI dari suatu sumber daya berisi pengidentifikasi fragmen ( #…
) Sumber daya dapat di -host dengan sumber daya lain dengan pangkalan yang sama dengan pengidentifikasi fragmen pada satu halaman. Halaman akan dengan dapat diakses melalui pangkalan URI, sedangkan dalam templat URI individu dengan pengidentifikasi fragmen dapat diakses melalui page.sub_rdf
koleksi.sub_rdf.
Contoh
Di _config.yml
:
' instance_template_mappings ' :
' http://www.ifi.uio.no/INF3580/simpsons ' : 'family.html'
Di _layouts/family.html
:
{% for member in page.sub_rdf%}
{% include simPerson.html person = member%}
{% endfor %}
Contohnya menggunakan Template family.html
untuk membuat satu halaman yang berisi setiap sumber daya yang URI dimulai dengan http://www.ifi.uio.no/INF3580/simpsons#
, serta sumber daya http://www.ifi.uio.no/INF3580/simpsons
sendiri. Jekyll-RDF mengumpulkan semua sumber daya dengan pengidentifikasi fragmen di URI mereka (dari sini yang disebut subResources
) dan melewati mereka melalui page.sub_rdf
ke dalam templat superResource
-nya (sumber daya yang basis URI sama dengan subResources
kecuali untuk pengidentifikasi fragmen dari fragmennya ).
Setiap sumber daya yang dikembalikan oleh salah satu filter jekyll-rdf
adalah objek yang juga dapat ditangani oleh cairan seperti string. Mereka semua memiliki metode berikut yang dapat digunakan dalam cairan.
Mengembalikan daftar pernyataan yang subjeknya adalah sumber daya saat ini. Pernyataan dalam daftar yang dikembalikan dapat diakses dengan membahas posisi mereka: Statement.subject
, Statement.predicate
, masing -masing Statement.object
.
Kembalikan daftar pernyataan yang predikatnya adalah sumber daya saat ini. Pernyataan dalam daftar yang dikembalikan dapat diakses dengan membahas posisi mereka: Statement.subject
, Statement.predicate
, masing -masing Statement.object
.
Kembalikan daftar pernyataan yang objeknya adalah sumber daya saat ini. Pernyataan dalam daftar yang dikembalikan dapat diakses dengan membahas posisi mereka: Statement.subject
, Statement.predicate
, masing -masing Statement.object
.
Kembalikan URL halaman yang mewakili RDFResource ini.
Kembalikan jalur ke halaman yang mewakili RDFResource ini. Gunakan dengan hati -hati.
Atribut ini relevan untuk rendering halaman untuk iris yang berisi pengidentifikasi fragmen ( http://superresource#anchor
). Atribut ini berlaku untuk super-sumber daya ( http://superresource
) jika benar-benar dijelaskan dalam basis pengetahuan yang diberikan.
Atribut ini memberi tahu jika contoh sumber daya masing -masing diberikan dalam konteks pembuatan situs saat ini. Penggunaan: {% if resource.rendered? %}…{% endif %}
.
Mengembalikan string verbose yang mewakili sumber ini.
Sinopsis: <resource_iri> | rdf_get
Parameter:
<resource_iri>
adalah string yang mewakili sumber daya RDF, dengan awalan ( prefix:name
) atau IRI lengkap ( <http://ex.org/name>
). Untuk merujuk sumber daya halaman saat ini, gunakan page.rdf
, page
, atau nil
.Deskripsi: Mengambil IRI yang disediakan dan mengembalikan objek RDFResource yang sesuai dari basis pengetahuan Anda. Pada objek ini Anda dapat memanggil metode seperti yang dijelaskan dalam sumber daya bagian.
Contoh:
{{'<http://www.ifi.uio.no/INF3580/simpsons>' | rdf_get }}
Hasil:
http://www.ifi.uio.no/INF3580/simpsons
Sinopsis: <rdf_resource> OR <rdf_resource_string> | rdf_property: <property>, [<lang>] OR [<lang>, <list>] OR [nil, <list>]
Parameter:
<rdf_resource>
adalah RDFresource. Untuk merujuk sumber daya halaman saat ini, gunakan page.rdf
, page
, atau nil
.<rdf_resource_string>
adalah string yang mewakili IRI dari <rdf_resource>
.<property>
adalah string yang mewakili predikat RDF, dengan awalan ( prefix:name
) atau IRI lengkap ( <http://ex.org/name>
).<lang>
adalah tag bahasa (misalnya de
). Jika parameter ini dihilangkan, ganti dengan nil
.<list>
adalah nilai boolean ( true
, false
). Deskripsi: Mengembalikan objek, dari triple <rdf_resource> <predicate> ?object
. Objek yang dikembalikan dapat dilakukan oleh salah satu dari jenis, sumber daya, literal, atau node kosong.
Contoh (default):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{{ resource | rdf_property: '<http://xmlns.com/foaf/0.1/job>' }}
Hasil:
"unknown"
Contoh (string):
{{ '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_property: '<http://xmlns.com/foaf/0.1/job>' }}
Hasil:
"unknown"
Contoh (dengan bahasa):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{{ resource | rdf_property: '<http://xmlns.com/foaf/0.1/job>', 'de' }}
Hasil:
"unbekannt"
Contoh (return as list):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{% assign resultset = resource | rdf_property: '<http://xmlns.com/foaf/0.1/job>', nil, true %}
{% for result in resultset %}
<li>{{ result }}</li>
{% endfor %}
Hasil:
< li > "unknown" </ li >
< li > "unbekannt" </ li >
< li > "unbekannter Job 2" </ li >
< li > "unknown Job 2" </ li >
Sinopsis: <rdf_resource> OR <rdf_resource_string>| rdf_inverse_property: <property>, [<list>]
Parameter:
<rdf_resource>
adalah RDFresource. Untuk merujuk sumber daya halaman saat ini, gunakan page.rdf
, page
, atau nil
.<rdf_resource_string>
adalah string yang mewakili IRI dari <rdf_resource>
.<property>
adalah string yang mewakili predikat RDF, dengan awalan ( prefix:name
) atau IRI lengkap ( <http://ex.org/name>
).<list>
adalah nilai boolean ( true
, false
). Deskripsi: Sama seperti rdf_property, tetapi dalam arah terbalik. Ini mengembalikan subjek, dari triple ?subject <predicate> <rdf_resource>
. Objek yang dikembalikan dapat dilakukan oleh salah satu dari jenis, sumber daya, atau simpul kosong.
Contoh (default):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{{ page.rdf | rdf_inverse_property: '<http://www.ifi.uio.no/INF3580/family#hasFather>' }}
Hasil:
http://www.ifi.uio.no/INF3580/simpsons#Bart
Contoh (String):
{{ '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_inverse_property: '<http://www.ifi.uio.no/INF3580/family#hasFather>' }}
Hasil:
http://www.ifi.uio.no/INF3580/simpsons#Bart
Contoh (sebagai daftar):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{% assign resultset = resource | rdf_property: '<http://www.ifi.uio.no/INF3580/family#hasFather>', true %}
{% for result in resultset %}
<li>{{ result }}</li>
{% endfor %}
Hasil:
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
Sinopsis: <rdf_resource> | sparql_query: <query>
atau <reference_array> | sparql_query: <query>
atau <query> | sparql_query
Parameter:
<rdf_resource>
adalah rdFresource yang akan menggantikan ?resourceUri
dalam kueri. Untuk menghilangkan parameter ini atau referensi sumber daya halaman saat ini menggunakan page.rdf
, page
, atau nil
.<reference_array>
Array yang berisi iris sebagai string atau rdf_resource
. Mereka akan secara berurutan mengganti masing -masing ?resourceUri_<index>
dalam kueri Anda.<query>
Sebuah string yang berisi kueri SPARQL. Deskripsi: Mengevaluasi query
pada basis pengetahuan yang diberikan dan mengembalikan serangkaian hasil (set hasil). Setiap objek entri dalam set hasil (hasil) berisi variabel yang dipilih sebagai sumber daya atau literal. Anda dapat menggunakan ?resourceUri
di dalam kueri untuk merujuk sumber daya yang diberikan sebagai <rdf_resource>
.
Contoh (halaman)
<!--Rendering the page of resource Lisa -->
{% assign query = 'SELECT ?sub ?pre WHERE { ?sub ?pre ?resourceUri }' %}
{% assign resultset = page.rdf | sparql_query: query %}
<table>
{% for result in resultset %}
<tr><td>{{ result.sub }}</td><td>{{ result.pre }}</td></tr>
{% endfor %}
</table>
Hasil:
< table >
< tr > < td > http://www.ifi.uio.no/INF3580/simpsons#TheSimpsons </ td > < td > http://www.ifi.uio.no/INF3580/family#hasFamilyMember </ td > </ tr >
< tr > < td > http://www.ifi.uio.no/INF3580/simpsons#Bart </ td > < td > http://www.ifi.uio.no/INF3580/family#hasSister </ td > </ tr >
< tr > < td > http://www.ifi.uio.no/INF3580/simpsons#Maggie </ td > < td > http://www.ifi.uio.no/INF3580/family#hasSister </ td > </ tr >
...
Contoh (array)
{% assign query = 'SELECT ?x WHERE {?resourceUri_0 ?x ?resourceUri_1}' %}
{% assign array = "<http://www.ifi.uio.no/INF3580/simpsons#Homer>,<http://www.ifi.uio.no/INF3580/simpsons#Marge>" | split: %}
{% assign resultset = array | sparql_query: query %}
<table>
{% for result in resultset %}
<tr><td>{{ result.x }}</td></tr>
{% endfor %}
</table>
Hasil:
<table>
<tr><td>http://www.ifi.uio.no/INF3580/family#hasSpouse</td></tr>
</table>
Contoh (kueri)
{% assign query = 'SELECT ?x WHERE {<http://www.ifi.uio.no/INF3580/simpsons#Homer> ?x <http://www.ifi.uio.no/INF3580/simpsons#Marge>}' %}
{% assign resultset = query | sparql_query %}
<table>
{% for result in resultset %}
<tr><td>{{ result.x }}</td></tr>
{% endfor %}
</table>
Hasil:
<table>
<tr><td>http://www.ifi.uio.no/INF3580/family#hasSpouse</td></tr>
</table>
Sinopsis: <rdf_container_head> **OR** <rdf_container_head_string> | rdf_container
Parameter:
<rdf_container_head>
adalah RDFresource. Untuk merujuk sumber daya halaman saat ini, gunakan page.rdf
, page
, atau nil
.<rdf_container_head_string>
adalah string yang mewakili IRI dari <rdf_container_head>
. Deskripsi: Mengembalikan array dengan sumber daya untuk setiap elemen dalam wadah yang kepalanya dirujuk oleh rdf_container_head
.
Contoh:
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpson-container#Container>' | rdf_get %}
{% assign array = resource | rdf_container %}
{% for item in array %}
{{ item }}
{% endfor %}
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
Contoh: (string)
{% assign array = '<http://www.ifi.uio.no/INF3580/simpson-container#Container>' | rdf_container %}
{% for item in array %}
{{ item }}
{% endfor %}
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
Sinopsis: <rdf_collection_head> OR <rdf_collection_head_string> | rdf_collection
atau <rdf_resource> | rdf_collection: "<property>"
Parameter:
<rdf_collection_head>
adalah RDFresource. Untuk merujuk sumber daya halaman saat ini, gunakan page.rdf
, page
, atau nil
.<rdf_collection_head_string>
adalah string yang mewakili IRI dari <rdf_collection_head>
.<rdf_resource>
adalah RDFresource. Untuk merujuk sumber daya halaman saat ini, gunakan page.rdf
, page
, atau nil
.<property>
adalah string yang mewakili predikat RDF, dengan awalan ( prefix:name
) atau IRI lengkap ( <http://ex.org/name>
). Deskripsi: Mengembalikan array dengan sumber daya untuk setiap elemen dalam koleksi yang kepalanya dirujuk oleh rdf_collection_head
. Alih -alih secara langsung merujuk kepala juga dimungkinkan untuk menentukan properti yang merujuk pada kepala koleksi.
Contoh (Tentukan Sumber Daya Kepala):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpson-collection#Collection>' | rdf_get %}
{% assign array = resource | rdf_collection %}
{% for item in array %}
{{ item }}
{% endfor %}
Hasil:
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
Contoh (tentukan head string):
{% assign array = '<http://www.ifi.uio.no/INF3580/simpson-collection#Collection>' | rdf_collection %}
{% for item in array %}
{{ item }}
{% endfor %}
Hasil:
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
Contoh (tentukan melalui properti):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons>' | rdf_get %}
{% assign array = resource | rdf_collection: "<http://www.ifi.uio.no/INF3580/simpsons#familycollection>" %}
{% for item in array %}
{{ item }}
{% endfor %}
Hasil:
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
Nama | Parameter | Bawaan | Keterangan | Contoh |
---|---|---|---|---|
jalur | Jalur relatif ke file RDF | tidak ada default | Menentukan jalur ke file RDF dari tempat Anda ingin membuat situs web | path: "rdf-data/simpsons.ttl" |
terpencil | Bagian untuk menentukan sumber data jarak jauh | tidak ada default | Harus berisi kunci endpoint . Parameter remote menimpa parameter path . | |
remote> titik akhir | Titik akhir sparql untuk mendapatkan data dari | tidak ada default | Menentukan URL ke titik akhir SPARQL dari tempat Anda ingin membuat situs web | remote: endpoint: "http://localhost:5000/sparql/" |
remote> default_graph | Pilih grafik bernama pada titik akhir yang akan digunakan sebagai pengganti grafik default titik akhir | tidak ada default | Menentukan IRI ke grafik yang disebutkan untuk dipilih dari titik akhir SPARQL | remote: endpoint: "http://localhost:5000/sparql/" default_graph: "http://example.org/" |
bahasa | Tag bahasa sebagai string | tidak ada default | Menentukan bahasa yang disukai saat Anda memilih objek menggunakan filter cair kami | language: "en" |
termasuk_blank | Ekspresi Boolean | PALSU | Menentukan apakah node kosong juga harus diberikan atau tidak | include_blank: true |
pembatasan | Sparql-query sebagai string atau subjek/objek/predikat | tidak ada default | Membatasi pemilihan sumber daya dengan sparql-query yang diberikan pada hasil yang terikat pada variabel khusus ?resourceUri atau tiga kata kunci subjects (hanya subjek URI), objects , predicates | restriction: "SELECT ?resourceUri WHERE { ?resourceUri <http://www.ifi.uio.no/INF3580/family#hasFather> <http://www.ifi.uio.no/INF3580/simpsons#Homer> }" |
restriction_file | Arsip sumber daya yang akan diterjemahkan | tidak ada default | Membatasi pemilihan sumber daya ke daftar sumber daya dalam file | restriction_file: _data/restriction.txt |
default_template | Nama file dari RDF-template default di _layouts direktori | tidak ada default | Menentukan file template yang Anda ingin jekyll gunakan untuk membuat semua sumber daya RDF | default_template: "rdf_index.html" |
instance_template_mappings | Target uri sebagai string: nama file dari templat sebagai string | tidak ada default | Peta yang diberikan URI untuk templat-file untuk membuat contoh individu | instance_template_mappings: "http://www.ifi.uio.no/INF3580/simpsons#Abraham": "abraham.html" |
class_template_mappings | Target uri sebagai string: nama file dari templat sebagai string | tidak ada default | Peta yang diberikan URI untuk templat-file untuk membuat semua contoh kelas itu | class_template_mappings: "http://xmlns.com/foaf/0.1/Person": "person.html" |
Ada juga gambar Docker/Podman yang memiliki Jekyll dan Jekyll-RDF yang sudah diinstal sebelumnya. Anda bisa mendapatkannya dengan:
docker pull ghcr.io/aksw/jekyll-rdf:latest
dan jalankan misalnya
docker run --rm --workdir /page -v $PWD:/page ghcr.io/aksw/jekyll-rdf:latest
atau sesuaikan eksekusi jekyll dengan
docker run --rm --workdir /page -v $PWD/sources:/page -v $PWD/build/jekyll:/build ghcr.io/aksw/jekyll-rdf:latest jekyll build -d /build
Titik entri gambar mengeksekusi bundle install
pertama kali lalu menjalankan bundle exec jekyll build
atau bundle exec <your command>
. Untuk menjaga paket yang diinstal di antara berjalan, tentukan variabel lingkungan BUNDLE_PATH
ke lokasi yang berlanjut di antara berjalan, misalnya -e BUNDLE_PATH=.vendor
. Untuk menonaktifkan seluruh hal Bundler, setel NO_BUNDLER
ke nilai yang tidak kosong, titik masuk akan menjalankan perintah Anda sebagaimana adanya.
Nama | Bawaan | Keterangan |
---|---|---|
BUNDLE_PATH | tidak ada | Atur jalur tempat Bundler memasang paket. Lihat juga Dokumen Bundler. |
NO_BUNDLER | tidak ada | Diatur ke nilai yang tidak kosong untuk menonaktifkan semua bagian Bundler di titik masuk |
Untuk menginstal proyek dengan Git-Repository Anda akan membutuhkan git
pada sistem Anda. Langkah pertama adalah mengkloning repositori:
git clone [email protected]:AKSW/jekyll-rdf.git
Folder bernama jekyll-rdf
akan secara otomatis dihasilkan. Anda perlu beralih ke folder ini dan menyusun permata ruby untuk menyelesaikan instalasi:
cd jekyll-rdf
gem build jekyll-rdf.gemspec
gem install jekyll-rdf -*.gem
bundle exec rake test
Setiap kali tes dieksekusi, halaman Jekyll di dalam test/source
diproses. Mulai server web ramping untuk menonton hasil di browser web, misalnya Pythons SimpleHTTPServer
(Python 2, untuk Python 3 ini http.server
):
cd test/source/_site
python -m SimpleHTTPServer 8000
Untuk menghasilkan dokumen API, silakan navigasi ke direktori jekyll-rdf/lib
dan jalankan
gem install yard
yardoc *
Dokumentasi yang dihasilkan ditempatkan ke direktori jekyll-rdf/lib/doc
.
Jekyll-RDF dilisensikan di bawah lisensi MIT.