مكون إضافي Jekyll لتضمين بيانات RDF في موقعك الثابت.
تتوفر وثائق API في Rubydoc.info.
Docker هناك صورة Docker تحقق من استخدام القسم Docker.
كشرط مسبق لـ Jekyll RDF أنت بالطبع تحتاج إلى تثبيت Jekyll . يرجى إلقاء نظرة على تعليمات التثبيت على https://jekyllrb.com/docs/installation/.
إذا كان لديك بالفعل تثبيت Jekyll يعمل ، فيمكنك إضافة مكون الإضافي Jekyll-RDF. ربما كنت تستخدم بالفعل Bundler وهناك Gemfile
في دليل Jekyll الخاص بك. أضف Jekyll-RDF إلى قسم الإضافات:
gem "jekyll-rdf", "~> 3.2"
استبدل سلسلة الإصدار بالإصدار المستقر المتاح حاليًا كما هو مدرج على Rubygems.org. بعد تحديث Gemfile
، ربما ترغب في تشغيل bundle install
(أو bundle install --path vendor/bundle
) أو bundle update
.
إذا كنت لا تستخدم Gemfile
لإدارة حزم Jekyll/Ruby الخاصة بك ، قم بتثبيت Jekyll-RDF باستخدام gem
:
gem install jekyll-rdf
إذا كنت ترغب في إنشاء البرنامج المساعد من المصدر ، فيرجى إلقاء نظرة على قسم التطوير الخاص بنا.
يشرح هذا القسم كيفية استخدام Jekyll-RDF في ثلاث خطوات:
يتم توثيق جميع المرشحات والطرق التي يجب استخدامها في القوالب وخيارات التكوين في القسم "المعلمات وخيارات التكوين في لمحة".
أولاً ، تحتاج إلى صفحة jekyll. من أجل إنشاء واحدة ، فقط افعل:
jekyll new my_page
cd my_page
علاوة على ذلك ، هناك بعض المعلمات المطلوبة في _config.yml
لـ jekyll-rdf
. أي يتم استخدام معلمات url
و baseurl
لتضمين صفحات الموارد في جذر الموقع ، ويجب تكوين المكون الإضافي ، ويجب أن يكون المسار إلى ملف RDF موجودًا.
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
بواسطة Jekyll RDF لتحديد نسبة عناوين URL الذي يجب عليه إنشاء صفحات موارد RDF. في المثال أعلاه ، يعني ذلك أن موردًا مع iri <http://example.org/simpsons/Bart>
يتم تقديمه إلى path /Bart.html
. أيضا الميزات الأخرى والإضافات لـ Jekyll تعتمد على هاتين المعلمتين. إذا كانت المعلمتين تختلفان عن المسار الأساسي الذي يجب أن يفترضه Jekyll RDF ، فمن الممكن تعيين المعلمة baseiri
في قسم jekyll_rdf
.
baseurl : " /simpsons "
url : " https://beispiel.com "
jekyll_rdf :
baseiri : " http://example.org/ "
من الممكن تعيين فئة محددة (rdf-type) أو الموارد الفردية إلى قالب.
class_template_mappings :
" http://xmlns.com/foaf/0.1/Person " : " person.html "
instance_template_mappings :
" http://aksw.org/Team " : " team.html "
سيتم استخدام قالب تم تعيينه إلى فئة لتقديم كل مثيل من تلك الفئة والفئات الفرعية. يتم تقديم كل مثيل مع تعين فئة أكثر تحديداً إلى قالب. إذا كان التعيين غامضًا بالنسبة لمورد ما ، فسيتم إخراج تحذير إلى نافذة الأمر ، لذا احترس!
من الممكن أيضًا تحديد قالب افتراضي ، يتم استخدامه لجميع الموارد ، والتي لا يتم تغطيتها بواسطة class_template_mappings
أو instance_template_mappings
.
default_template : " default.html "
يمكنك تقييد الموارد المحددة التي تم بناؤها عن طريق إضافة استعلام sparql كمعلمة restriction
إلى _config.yml
. الرجاء استخدام ?resourceUri
باعتباره العنصر النائب لأوريا الناتجة:
restriction : " SELECT ?resourceUri WHERE { ?resourceUri <http://www.ifi.uio.no/INF3580/family#hasFather> <http://www.ifi.uio.no/INF3580/simpsons#Homer> } "
هناك 3 كلمات رئيسية محددة مسبقًا للقيود المنفذة:
subjects
كل موضوع URISpredicates
جميع أوريس المسندobjects
سوف تحميل جميع الكائنات أوريس نظرًا لأن بعض نقاط النهاية SPARQL لها حد مضمن للاستعلامات المحددة ، يمكنك أيضًا تحديد قائمة بالموارد المراد تصميمها. ملف _data/restriction.txt
cool يحتوي على المحتوى التالي:
<http://example.org/resourceA>
<http://example.org/resourceB>
<http://example.org/resourceC>
<http://example.org/resourceD>
<http://example.org/resourceE>
في _config.yml
يمكنك تحديد الملف باستخدام مفتاح restriction_file
. إذا تم restriction_file
كلاهما ، فسيتم restriction
jekyll rdf jekyll RDF لاتحاد كليهما.
علاوة على ذلك ، يمكنك تحديد ما إذا كنت تريد تقديم عقد فارغة أم لا. تحتاج فقط إلى إضافة include_blank
إلى _config.yml
:
jekyll_rdf :
include_blank : true
أخيرًا ، من الممكن أيضًا تعيين لغة مفضلة لـ RDF-Literals مع language
الخيار:
jekyll_rdf :
language : " en "
سيؤدي تشغيل jekyll build
إلى تقديم موارد RDF إلى الدليل _site/…
سيؤدي تشغيل jekyll serve
إلى تقديم موارد RDF وتزويدك بخادم HTTP فوري يمكن الوصول إليه عادة على http://localhost:4000/
. يتم تقديم موارد RDF التي لا تبدأ قزحية IRIS بعنوان url
Jekyll الذي تم تكوينه و baseurl
(resp. baseiri
) إلى الدليل الفرعي _site/rdfsites/…
للاستفادة من بيانات RDF ، قم بإنشاء ملف واحد أو أكثر (على سبيل المثال rdf_index.html
أو person.html
) في _layouts
-directory. لكل مورد سيتم تقديم صفحة. انظر المثال أدناه:
---
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 >
قمنا بتضمين بعض أمثلة القالب في
test/source/_layouts/rdf_index.html
test/source/_layouts/person.html
{{ page.rdf }}
هو المورد الذي تم تقديمه حاليا.
{{ page.rdf.iri }}
إرجاع IRI من المورد الذي تم تقديمه حاليًا.
للوصول إلى الكائنات المتصلة بالموضوع الحالي عبر مسند ، يمكنك استخدام المرشحات السائلة المخصصة. للاطلاع على كائنات واحدة أو قوائم الكائنات ، استخدم rdf_property
-Filter (انظر 1 و 2).
للوصول إلى كائن واحد متصل بالموضوع الحالي من خلال مسند معين ، يرجى تصفية بيانات page.rdf
باستخدام rdf_property
-Filter. مثال:
Age: {{ page.rdf | rdf_property: '<http://xmlns.com/foaf/0.1/age>' }}
لتحديد لغة معينة ، يرجى إضافة معلمة ثانية إلى المرشح:
Age: {{ page.rdf | rdf_property: '<http://xmlns.com/foaf/0.1/job>','en' }}
للحصول على أكثر من كائن واحد متصل بالموضوع الحالي من خلال مسند معين ، يرجى استخدام Filter rdf_property
بالاقتران مع وسيطة ثالثة تم تعيينها على true
(يمكن حذف الوسيطة الثانية للغة عن طريق تعيينها على 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 >
لتحديد لغة معينة ، يرجى إضافة معلمة ثانية إلى المرشح:
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 >
لدعم حاويات RDF ومجموعات RDF ، نقدم مرشحات rdf_container
و rdf_collection
.
في كلتا الحالتين ، فإن مورد الحاوية المعني. يجب تحديد رأس المجموعة ثم تم تمريره عبر المرشح المعني. بالنسبة للحاويات ، ندعم حاليًا مثيلات صريحة لـ rdf:Bag
، rdf:Seq
و rdf:Alt
مع الأعضاء الذين تم تحديدهم باستخدام rdfs:ContainerMembershipProperty
S: rdf:_1
، rdf:_2
، rdf:_3
... يتم تحديد المجموعات باستخدام rdf:first
، rdf:rest
وإنهاء مع L rdf:rest rdf:nil
. نظرًا لأن رأس المجموعة يجب تحديده ، لا يمكنك استخدام عقدة فارغة هناك ، يمكنك تحديدها بشكل غير مباشر من خلال المسند الذي يحتوي على المجموعة.
مثال الرسم البياني:
@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" .
قالب لـ 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>
قمنا بتنفيذ مرشح سائل sparql_query
لتشغيل استعلامات sparql مخصصة. يتم استبدال كل حدوث ?resourceUri
مع URI الحالي. تحذير: يجب عليك فصل المتغيرات المحددة للاستعلام والنتيجة بسبب مفاهيم السوائل. مثال:
{% 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 >
من الممكن إعلان مجموعة من البادئات التي يمكن استخدامها في المرشحين السائل rdf_property
و sparql_query
. هذا يسمح بتقصير كمية النص المطلوبة لكل مرشح سائل. بناء جملة إعلانات البادئة هو نفسه بالنسبة إلى sparql 1.1. ما عليك سوى وضع البادئات الخاصة بك في ملف منفصل وقم بتضمين مفتاح rdf_prefix_path
مع مسار نسبي في المسألة الأمامية YAML لملف حيث يجب استخدام البادئات الخاصة بك.
بالنسبة للبادئات ، تنطبق نفس القواعد على المتغيرات الأخرى المحددة في المادة الأمامية YAML. ستكون هذه المتغيرات متاحة لك للوصول إلى استخدام العلامات السائلة بشكل أكبر في الملف وأيضًا في أي تخطيطات أو تتضمن أن الصفحة أو المنشور المعني تعتمد على. (المصدر: YAML الأمامي المادة). هذا مهم بشكل خاص إذا كنت تستخدم البادئات في.
إذا كان URI من المورد يحتوي على معرف جزء ( #…
) يمكن استضافة المورد مع موارد أخرى مع نفس القاعدة URI حتى معرف الجزء في صفحة واحدة. يمكن الوصول إلى الصفحة من خلال URI الأساسي ، بينما في القالب ، يمكن الوصول إلى URIS الفردي مع معرف جزء من خلال page.sub_rdf
التجميع. sub_rdf.
مثال
في _config.yml
:
' instance_template_mappings ' :
' http://www.ifi.uio.no/INF3580/simpsons ' : 'family.html'
في _layouts/family.html
:
{% for member in page.sub_rdf%}
{% include simPerson.html person = member%}
{% endfor %}
http://www.ifi.uio.no/INF3580/simpsons#
المثال family.html
http://www.ifi.uio.no/INF3580/simpsons
نفسها. تقوم Jekyll-RDF بجمع جميع الموارد من خلال معرف جزء في URI (من هنا فصاعداً من subResources
) ويمررها من خلال page.sub_rdf
إلى قوالب superResource
(الموارد التي هي URI الأساسية هي نفس subResources
باستثناء معرف الشظية ).
كل مورد يتم إرجاعه بواسطة أحد مرشحات jekyll-rdf
S هو كائن يمكنه أيضًا التعامل مع السائل مثل السلسلة. لديهم جميع الطرق التالية قابلة للاستخدام في السائل.
إرجاع قائمة بالبيانات التي يكون موضوعها هو المورد الحالي. يمكن الوصول إلى البيانات الواردة في القائمة التي تم إرجاعها عن طريق Statement.predicate
مواقفها: Statement.subject
Statement.object
إرجاع قائمة بالبيانات التي يكون مسندها هو المورد الحالي. يمكن الوصول إلى البيانات الواردة في القائمة التي تم إرجاعها عن طريق Statement.predicate
مواقفها: Statement.subject
Statement.object
إرجاع قائمة بالبيانات التي يكون كائنها هو المورد الحالي. يمكن الوصول إلى البيانات الواردة في القائمة التي تم إرجاعها عن طريق Statement.predicate
مواقفها: Statement.subject
Statement.object
إرجاع عنوان URL للصفحة التي تمثل هذا rdfresource.
أعد المسار إلى الصفحة التي تمثل هذا rdfresource. استخدمه بعناية.
هذه السمة ذات صلة بتقديم صفحات لـ IRIs التي تحتوي على معرف جزء ( http://superresource#anchor
). هذه السمة صحيحة بالنسبة للمسترجع الفائق ( http://superresource
) إذا تم وصفها فعليًا في قاعدة المعرفة المحددة.
تحدد هذه السمة ما إذا كان يتم تقديم مثيل مورد كله في سياق توليد الموقع الحالي. الاستخدام: {% if resource.rendered? %}…{% endif %}
.
إرجاع سلسلة مطول تمثل هذا المورد.
Synopsis: <resource_iri> | rdf_get
حدود:
<resource_iri>
عبارة عن سلسلة تمثل مورد RDF ، مع بادئة ( prefix:name
) أو IRI كامل ( <http://ex.org/name>
). للإشارة إلى مورد الصفحة الحالية ، استخدم page.rdf
أو page
أو nil
.الوصف: يأخذ IRI المقدم ويعيد كائن RDFresource المقابل من قاعدة المعرفة الخاصة بك. على هذا الكائن ، يمكنك استدعاء الأساليب كما هو موضح في مورد القسم.
مثال:
{{'<http://www.ifi.uio.no/INF3580/simpsons>' | rdf_get }}
نتيجة:
http://www.ifi.uio.no/INF3580/simpsons
Synopsis: <rdf_resource> OR <rdf_resource_string> | rdf_property: <property>, [<lang>] OR [<lang>, <list>] OR [nil, <list>]
حدود:
<rdf_resource>
هو rdfresource. للإشارة إلى مورد الصفحة الحالية ، استخدم page.rdf
أو page
أو nil
.<rdf_resource_string>
هي سلسلة تمثل IRI من <rdf_resource>
.<property>
عبارة عن سلسلة تمثل مسند RDF ، مع بادئة ( prefix:name
) أو IRI الكامل ( <http://ex.org/name>
).<lang>
هي علامة لغة (على سبيل de
). إذا تم حذف هذه المعلمة استبدالها بواسطة nil
.<list>
هي قيمة منطقية ( true
، false
). الوصف: إرجاع الكائن ، الكائن الثلاثي <rdf_resource> <predicate> ?object
يمكن للكائن الذي تم إرجاعه أي عقدة من النوع أو المورد أو الحرفي أو الفارغ.
مثال (افتراضي):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{{ resource | rdf_property: '<http://xmlns.com/foaf/0.1/job>' }}
نتيجة:
"unknown"
مثال (سلسلة):
{{ '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_property: '<http://xmlns.com/foaf/0.1/job>' }}
نتيجة:
"unknown"
مثال (مع اللغة):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{{ resource | rdf_property: '<http://xmlns.com/foaf/0.1/job>', 'de' }}
نتيجة:
"unbekannt"
مثال (العودة كقائمة):
{% 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 %}
نتيجة:
< li > "unknown" </ li >
< li > "unbekannt" </ li >
< li > "unbekannter Job 2" </ li >
< li > "unknown Job 2" </ li >
Synopsis: <rdf_resource> OR <rdf_resource_string>| rdf_inverse_property: <property>, [<list>]
حدود:
<rdf_resource>
هو rdfresource. للإشارة إلى مورد الصفحة الحالية ، استخدم page.rdf
أو page
أو nil
.<rdf_resource_string>
هي سلسلة تمثل IRI من <rdf_resource>
.<property>
عبارة عن سلسلة تمثل مسند RDF ، مع بادئة ( prefix:name
) أو IRI الكامل ( <http://ex.org/name>
).<list>
هي قيمة منطقية ( true
، false
). الوصف: مثل RDF_Property ، ولكن في الاتجاه العكسي. إنه يعيد الموضوع ، من Triple ?subject <predicate> <rdf_resource>
. يمكن للكائن الذي تم إرجاعه بأي نوع من النوع أو المورد أو العقدة الفارغة.
أمثلة (افتراضي):
{% 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>' }}
نتيجة:
http://www.ifi.uio.no/INF3580/simpsons#Bart
أمثلة (سلسلة):
{{ '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_inverse_property: '<http://www.ifi.uio.no/INF3580/family#hasFather>' }}
نتيجة:
http://www.ifi.uio.no/INF3580/simpsons#Bart
مثال (كقائمة):
{% 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 %}
نتيجة:
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
ملخص: <rdf_resource> | sparql_query: <query>
أو <reference_array> | sparql_query: <query>
أو <query> | sparql_query
حدود:
<rdf_resource>
هو rdfresource الذي سيحل محل ?resourceUri
في الاستعلام. لحذف هذه المعلمة أو مرجع مورد الصفحة الحالية استخدم page.rdf
أو page
أو nil
.<reference_array>
صفيف يحتوي على قزحية كقواسل أو rdf_resource
. سوف يحلون على التوالي كل ?resourceUri_<index>
في استعلامك.<query>
سلسلة تحتوي على استعلام sparql. الوصف: يقوم بتقييم query
على قاعدة المعرفة المحددة ويعيد مجموعة من النتائج (مجموعة النتائج). يحتوي كل كائن إدخال في مجموعة النتائج (النتيجة) على المتغيرات المحددة كموارد أو حرفية. يمكنك استخدام ?resourceUri
داخل الاستعلام للرجوع إلى المورد الذي يتم إعطاؤه على أنه <rdf_resource>
.
مثال (صفحة)
<!--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>
نتيجة:
< 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 >
...
مثال (صفيف)
{% 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>
نتيجة:
<table>
<tr><td>http://www.ifi.uio.no/INF3580/family#hasSpouse</td></tr>
</table>
مثال (استعلام)
{% 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>
نتيجة:
<table>
<tr><td>http://www.ifi.uio.no/INF3580/family#hasSpouse</td></tr>
</table>
Synopsis: <rdf_container_head> **OR** <rdf_container_head_string> | rdf_container
حدود:
<rdf_container_head>
هو rdfresource. للإشارة إلى مورد الصفحة الحالية ، استخدم page.rdf
أو page
أو nil
.<rdf_container_head_string>
هي سلسلة تمثل IRI من <rdf_container_head>
. الوصف: إرجاع صفيف مع موارد لكل عنصر في الحاوية التي يتم الرجوع إلى رأسها بواسطة rdf_container_head
.
أمثلة:
{% 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
أمثلة: (سلسلة)
{% 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
Synopsis: <rdf_collection_head> OR <rdf_collection_head_string> | rdf_collection
أو <rdf_resource> | rdf_collection: "<property>"
حدود:
<rdf_collection_head>
هو rdfresource. للإشارة إلى مورد الصفحة الحالية ، استخدم page.rdf
أو page
أو nil
.<rdf_collection_head_string>
هي سلسلة تمثل IRI من <rdf_collection_head>
.<rdf_resource>
هو rdfresource. للإشارة إلى مورد الصفحة الحالية ، استخدم page.rdf
أو page
أو nil
.<property>
عبارة عن سلسلة تمثل مسند RDF ، مع بادئة ( prefix:name
) أو IRI الكامل ( <http://ex.org/name>
). الوصف: إرجاع صفيف مع موارد لكل عنصر في المجموعة التي يتم الرجوع إلى رأسها بواسطة rdf_collection_head
. بدلاً من الرجوع مباشرة إلى الرأس ، من الممكن أيضًا تحديد الخاصية التي تشير إلى رأس المجموعة.
مثال (حدد مورد الرأس):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpson-collection#Collection>' | rdf_get %}
{% assign array = resource | rdf_collection %}
{% 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
مثال (حدد سلسلة الرأس):
{% assign array = '<http://www.ifi.uio.no/INF3580/simpson-collection#Collection>' | rdf_collection %}
{% 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
مثال (حدد عبر الخاصية):
{% 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 %}
نتيجة:
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
اسم | المعلمة | تقصير | وصف | مثال |
---|---|---|---|---|
طريق | المسار النسبي إلى ملف RDF | لا افتراضي | يحدد المسار إلى ملف RDF من حيث تريد تقديم الموقع الإلكتروني | path: "rdf-data/simpsons.ttl" |
بعيد | قسم لتحديد مصدر بيانات عن بُعد | لا افتراضي | يجب أن تحتوي على مفتاح endpoint . المعلمة remote تتجاوز معلمة path . | |
عن بعد> نقطة النهاية | نقطة نهاية sparql للحصول على البيانات من | لا افتراضي | يحدد عنوان URL إلى نقطة نهاية Sparql من حيث تريد تقديم الموقع الإلكتروني | remote: endpoint: "http://localhost:5000/sparql/" |
Remote> default_graph | حدد رسم بياني مسمى على نقطة النهاية لاستخدامه بدلاً من الرسم البياني الافتراضي نقطة النهاية | لا افتراضي | يحدد IRI إلى الرسم البياني المسماة للاختيار من نقطة النهاية sparql | remote: endpoint: "http://localhost:5000/sparql/" default_graph: "http://example.org/" |
لغة | لغة اللغة كسلسلة | لا افتراضي | يحدد اللغة المفضلة عند تحديد كائنات باستخدام المرشحات السائلة لدينا | language: "en" |
include_blank | المنطقية التعبير | خطأ شنيع | يحدد ما إذا كان ينبغي أيضًا تقديم العقد الفارغة أم لا | include_blank: true |
تقييد | sparql-query كسلسلة أو موضوعات/كائنات/مسببات | لا افتراضي | يقيد اختيار الموارد باستخدام query sparql معين للنتائج المرتبطة بالمتغير الخاص ?resourceUri أو subjects الكلمات الرئيسية الثلاثة (فقط موضوع URIs) ، 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: _data/restriction.txt |
default_template | اسم الملف للـ RDF-Template الافتراضي في دليل _layouts | لا افتراضي | يحدد ملف القالب الذي تريد استخدام Jekyll لتقديم جميع موارد RDF | default_template: "rdf_index.html" |
مثيل _template_mappings | الهدف URI كسلسلة: اسم ملف القالب كسلسلة | لا افتراضي | الخرائط المعطاة URIS لملفات القالب لتقديم مثيل فردي | instance_template_mappings: "http://www.ifi.uio.no/INF3580/simpsons#Abraham": "abraham.html" |
class_template_mappings | الهدف URI كسلسلة: اسم ملف القالب كسلسلة | لا افتراضي | الخرائط المعطاة URIS لملفات القالب لتقديم جميع مثيلات تلك الفئة | class_template_mappings: "http://xmlns.com/foaf/0.1/Person": "person.html" |
هناك أيضًا صورة Docker/Podman تحتوي على Jekyll و Jekyll-RDF مثبتة مسبقًا. يمكنك الحصول عليها مع:
docker pull ghcr.io/aksw/jekyll-rdf:latest
وتشغيله على سبيل المثال
docker run --rm --workdir /page -v $PWD:/page ghcr.io/aksw/jekyll-rdf:latest
أو تخصيص تنفيذ Jekyll مع
docker run --rm --workdir /page -v $PWD/sources:/page -v $PWD/build/jekyll:/build ghcr.io/aksw/jekyll-rdf:latest jekyll build -d /build
نقطة إدخال الصورة تنفيذ bundle install
أولاً ، ثم تشغيل bundle exec jekyll build
أو bundle exec <your command>
. للحفاظ على الحزم المثبتة بين عمليات التشغيل ، حدد BUNDLE_PATH
متغير البيئة إلى موقع يستمر بين التشغيل ، على سبيل المثال -e BUNDLE_PATH=.vendor
. لتعطيل الأشياء المكونة من Bundler بالكامل التي تم تعيين NO_BUNDLER
على قيمة غير فارغة ، ستقوم نقطة الإدخال بتشغيل أمرك كما هو.
اسم | تقصير | وصف |
---|---|---|
BUNDLE_PATH | unset | اضبط المسار حيث يقوم Bundler بتثبيت الحزم. انظر أيضا مستندات الحزمة. |
NO_BUNDLER | unset | ضبط على قيمة غير فارغة لتعطيل جميع أجزاء Bundler في نقطة الدخول |
لتثبيت المشروع باستخدام GIT-Repository ، ستحتاج إلى git
على نظامك. الخطوة الأولى هي مجرد استنساخ المستودع:
git clone [email protected]:AKSW/jekyll-rdf.git
سيتم إنشاء مجلد يدعى jekyll-rdf
تلقائيًا. تحتاج إلى التبديل إلى هذا المجلد وتجميع جوهرة الياقوت لإنهاء التثبيت:
cd jekyll-rdf
gem build jekyll-rdf.gemspec
gem install jekyll-rdf -*.gem
bundle exec rake test
في كل مرة يتم تنفيذ الاختبارات ، تتم معالجة صفحة Jekyll داخل test/source
. ابدأ خادم ويب نحيف لمشاهدة النتائج في متصفح الويب ، مثل Pythons SimpleHTTPServer
(Python 2 ، لـ Python 3 إنه http.server
):
cd test/source/_site
python -m SimpleHTTPServer 8000
لإنشاء مستند API ، يرجى الانتقال إلى دليل jekyll-rdf/lib
وتشغيله
gem install yard
yardoc *
يتم وضع الوثائق التي تم إنشاؤها في دليل jekyll-rdf/lib/doc
.
Jekyll-RDF مرخصة بموجب ترخيص MIT.