静的サイトに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.htmltest/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ライセンスに基づいてライセンスされています。