静的サイトにRDFデータを含めるためのJekyllプラグイン。
APIドキュメントは、rubydoc.infoで入手できます。
Docker Docker画像があります。Dockerの使用法をチェックしてください。
Jekyll RDFの前提条件として、もちろんJekyllをインストールする必要があります。 https://jekyllrb.com/docs/installation/のインストール手順をご覧ください。
すでに動作しているJekyllインストールがある場合は、Jekyll-RDFプラグインを追加できます。おそらくあなたはすでにバンドラーを使用しており、JekyllディレクトリにGemfile
があります。 Jekyll-RDFをプラグインセクションに追加します。
gem "jekyll-rdf", "~> 3.2"
Rubygems.orgにリストされているように、バージョン文字列を現在利用可能な安定したリリースに置き換えます。 Gemfile
更新した後、おそらくbundle install
(またはbundle install --path vendor/bundle
)またはbundle update
を実行する必要があります。
Gemfile
を使用してJekyll/rubyパッケージを管理していない場合は、 gem
を使用してJekyll-rdfをインストールします。
gem install jekyll-rdf
ソースからプラグインを構築する場合は、開発セクションをご覧ください。
このセクションでは、Jekyll-RDFを3つのステップで使用する方法について説明します。
テンプレートと構成オプションで使用するすべてのフィルターと方法は、セクション「パラメーターと構成オプション」に文書化されています。
まず、Jekyllページが必要です。 1つを作成するために、実行するだけです。
jekyll new my_page
cd my_page
さらに、 jekyll-rdf
の_config.yml
に必要なパラメーターがいくつかあります。 IE 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の他の機能とプラグインは、これら2つのパラメーターに依存します。いずれかの場合、2つのパラメーターがJekyll RDFが想定するベースパスと異なる場合、 jekyll_rdf
セクションにパラメーターbaseiri
設定することができます。
baseurl : " /simpsons "
url : " https://beispiel.com "
jekyll_rdf :
baseiri : " http://example.org/ "
特定のクラス(RDFタイプ)または個々のリソースをテンプレートにマッピングすることができます。
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
結果のurisのプレースホルダーとして使用してください。
restriction : " SELECT ?resourceUri WHERE { ?resourceUri <http://www.ifi.uio.no/INF3580/family#hasFather> <http://www.ifi.uio.no/INF3580/simpsons#Homer> } "
実装された制限のための3つの事前定義されたキーワードがあります。
subjects
すべての被験者URIをロードしますpredicates
すべての述語URIをロードしますobjects
すべてのオブジェクトURIをロードします一部の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は両方の連合のページを構築します。
さらに、空白のノードをレンダリングするかどうかを判断できます。 include_blank
_config.yml
に追加する必要があります:
jekyll_rdf :
include_blank : true
最後に、RDFリテラルの優先言語をオプションlanguage
で設定することもできます。
jekyll_rdf :
language : " en "
jekyll build
実行すると、RDFリソースが_site/…
ディレクトリにレンダリングされます。 jekyll serve
実行すると、RDFリソースがレンダリングされ、通常はhttp://localhost:4000/
でアクセス可能な瞬時のhttp-serverが提供されます。 IRISが構成されたJekyll url
とbaseurl
( baseiri
)で開始しないRDFリソースは、 _site/rdfsites/…
サブディレクトリにレンダリングされます。
RDFデータを使用するには、 _layouts
-directoryで1つ以上のファイル( rdf_index.html
またはperson.html
)を作成します。各リソースについて、ページがレンダリングされます。以下の例を参照してください:
---
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を参照)。
特定の述語を介して現在の被験者に接続されている1つのオブジェクトにアクセスするには、 rdf_property
-filterでpage.rdf
データをフィルタリングしてください。例:
Age: {{ page.rdf | rdf_property: '<http://xmlns.com/foaf/0.1/age>' }}
特定の言語を選択するには、フィルターに2番目のパラメーターを追加してください。
Age: {{ page.rdf | rdf_property: '<http://xmlns.com/foaf/0.1/job>','en' }}
特定の述語を介して現在の主題に接続された複数のオブジェクトを取得するには、 true
に設定された3番目の引数と組み合わせてフィルターrdf_property
を使用してください(言語の2番目の引数は、 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 >
特定の言語を選択するには、フィルターに2番目のパラメーターを追加してください。
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
フィルターを提供します。
どちらの場合も、それぞれのコンテナリソースResp。コレクションのヘッドを識別し、それぞれのフィルターを通過する必要があります。コンテナの場合、 rdf:Bag
、 rdf:Seq
and rdf:Alt
の明示的なインスタンスをサポートしていますrdfs:ContainerMembershipProperty
s: rdf:_1
、 rdf:_2
、 rdf:_3
…。コレクションはrdf:first
、 rdf:rest
およびL rdf:rest rdf:nil
で終了したRDFを使用して特定されます。コレクションのヘッドを識別する必要があるため、そこに空白のノードを使用することはできません。コレクションを含む述語を介して間接的に識別できます。
グラフの例:
@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クエリを実行するために、液体フィルターsparql_query
実装しました。 ?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 Front Matter)。これは、includeを含むプレフィックスを使用している場合に特に関連します。
リソースのURIにフラグメント識別子( #…
)が含まれている場合、リソースは、単一ページのフラグメント識別子に同じベースURIを持つ他のリソースと一緒にホストできます。ページはベースURIからアクセス可能になりますが、テンプレートでは、フラグメント識別子を備えた個々のURIは、コレクション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 %}
この例では、Template family.html
を使用して、URIがhttp://www.ifi.uio.no/INF3580/simpsons#
で始まるすべてのリソースを含む単一ページをレンダリングしました。リソースhttp://www.ifi.uio.no/INF3580/simpsons
自体。 Jekyll-RDFは、すべてのリソースをURIのフラグメント識別子(ここからsubResources
と呼ばれる)で収集し、 page.sub_rdf
を介してsuperResource
のテンプレートに渡します(ベースURIがフラグメント識別子を除くsubResources
と同じリソースがあります。 )。
jekyll-rdf
の1つによって返されるすべてのリソースは、液体が弦のように処理できるオブジェクトです。それらはすべて、液体で使用可能な次の方法を持っています。
主題が現在のリソースであるステートメントのリストを返します。返されたリストのステートメントは、その位置に対処することでアクセスできます: Statement.subject
、 Statement.predicate
、それぞれのStatement.object
。
現在のリソースである述語があるステートメントのリストを返します。返されたリストのステートメントは、その位置に対処することでアクセスできます: Statement.subject
、 Statement.predicate
、それぞれのStatement.object
。
オブジェクトが現在のリソースであるステートメントのリストを返します。返されたリストのステートメントは、その位置に対処することでアクセスできます: Statement.subject
、 Statement.predicate
、それぞれのStatement.object
。
このrdfresourceを表すページのURLを返します。
このrdfresourceを表すページへのパスを返します。注意して使用してください。
この属性は、フラグメント識別子( http://superresource#anchor
)を含む虹彩のレンダリングページに関連しています。この属性は、指定された知識ベースで実際に説明されている場合、スーパーリソース( http://superresource
)に当てはまります。
この属性は、リソースのそれぞれのインスタンスが現在のサイト生成のコンテキスト内でレンダリングされるかどうかを示します。使用法: {% if resource.rendered? %}…{% endif %}
。
このリソースを表す冗長な文字列を返します。
概要: <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
概要: <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>
、 <rdf_resource>
のIRIを表す文字列です。<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 >
概要: <rdf_resource> OR <rdf_resource_string>| rdf_inverse_property: <property>, [<list>]
パラメーター:
<rdf_resource>
はrdfresourceです。現在のページのリソースを参照するには、 page.rdf
、 page
、またはnil
使用します。<rdf_resource_string>
、 <rdf_resource>
のIRIを表す文字列です。<property>
は、RDF述語を表す文字列で、プレフィックス( prefix:name
)または完全なIRI( <http://ex.org/name>
)を備えています。<list>
ブール値です( true
、 false
)。説明: rdf_propertyと同じですが、逆方向です。トリプルの主題を返します?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>
クエリの?resourceUri
置き換えるrdfresourceです。このパラメーターを省略するか、現在のページのリソースを参照するには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>
概要: <rdf_container_head> **OR** <rdf_container_head_string> | rdf_container
パラメーター:
<rdf_container_head>
はrdfresourceです。現在のページのリソースを参照するには、 page.rdf
、 page
、またはnil
使用します。<rdf_container_head_string>
、 <rdf_container_head>
のiriを表す文字列です。説明:頭が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
概要: <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>
、 <rdf_collection_head>
のiriを表す文字列です。<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ファイルへの相対パス | デフォルトはありません | Webサイトをレンダリングする場所からRDFファイルへのパスを指定します | path: "rdf-data/simpsons.ttl" |
リモート | リモートデータソースを指定するセクション | デフォルトはありません | endpoint キーを含める必要があります。 remote パラメーターは、 path パラメーターをオーバーライドします。 | |
リモート>エンドポイント | データを取得するためのSPARQLエンドポイント | デフォルトはありません | Webサイトをレンダリングする場所からSPARQLエンドポイントにURLを指定します | remote: endpoint: "http://localhost:5000/sparql/" |
remote> default_graph | エンドポイントの代わりに使用するエンドポイントで名前付きグラフを選択しますデフォルトグラフ | デフォルトはありません | SPARQLエンドポイントから選択するために、名前付きグラフにIRIを指定します | remote: endpoint: "http://localhost:5000/sparql/" default_graph: "http://example.org/" |
言語 | 文字列としての言語タグ | デフォルトはありません | 液体フィルターを使用してオブジェクトを選択するときに好ましい言語を指定します | language: "en" |
include_blank | ブール発現 | 間違い | 空白のノードをレンダリングするかどうかを指定します | include_blank: true |
制限 | 文字列または件名/オブジェクト/述語としてのsparql-query | デフォルトはありません | 特別な変数に縛られた結果に対して、特定のSPARQL-queryを使用してリソース選択を制限しますか?resourceUri または3つのキーワードsubjects (サブジェクトURIのみ)、 objects 、 predicates | restriction: "SELECT ?resourceUri WHERE { ?resourceUri <http://www.ifi.uio.no/INF3580/family#hasFather> <http://www.ifi.uio.no/INF3580/simpsons#Homer> }" |
制限_file | レンダリングされるリソースのファイル | デフォルトはありません | ファイル内のリソースのリストにリソース選択を制限します | restriction_file: _data/restriction.txt |
default_template | _layoutsディレクトリのデフォルトのrdf-templateのファイル名 | デフォルトはありません | JekyllにすべてのRDFリソースをレンダリングするために使用したいテンプレートファイルを指定します | default_template: "rdf_index.html" |
instance_template_mappings | ターゲットURIとして文字列:文字列としてのテンプレートのファイル名 | デフォルトはありません | 個々のインスタンスをレンダリングするためのテンプレートファイルにurisが与えられたマップ | instance_template_mappings: "http://www.ifi.uio.no/INF3580/simpsons#Abraham": "abraham.html" |
class_template_mappings | ターゲットURIとして文字列:文字列としてのテンプレートのファイル名 | デフォルトはありません | そのクラスのすべてのインスタンスをレンダリングするためのURIがテンプレートファイルに与えられたマップ | class_template_mappings: "http://xmlns.com/foaf/0.1/Person": "person.html" |
また、JekyllとJekyll-RDFがプリインストールされたDocker/Podman画像もあります。あなたはそれを取得することができます:
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 exec jekyll build
bundle install
実行しますbundle exec <your command>
実行中のパッケージを維持するには、環境変数BUNDLE_PATH
ランの間に持続する場所、たとえば-e BUNDLE_PATH=.vendor
に指定します。バンドラーのスタッフ全体を無効にするために、 NO_BUNDLER
空でない価値に設定すると、エントリポイントはそのままコマンドを実行します。
名前 | デフォルト | 説明 |
---|---|---|
BUNDLE_PATH | 解き放つ | バンドラーがパッケージをインストールするパスを設定します。バンドラードキュメントも参照してください。 |
NO_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
テストが実行されるたびに、 test/source
内のJekyllページが処理されます。スリムWebサーバーSimpleHTTPServer
起動して、 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ライセンスに基づいてライセンスされています。