如何使用 Jekyll-RDF 访问链接资源的 属性

How to Access a Property of a Linked Resource with Jekyll-RDF

我使用带有 Jekyll-RDF 扩展的 Jekyll 为 RDF 资源呈现一些页面。 我知道如何访问模板中当前渲染资源的属性。 但是现在我想访问链接到当前呈现资源的资源的 属性 。所以说我想做一个双跳。但它是如何工作的?

这是我的 MWE

图表:

@prefix ex: <http://example.org/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

ex:nabatz a foaf:Person ;
          foaf:nick "Nabatz" ;
          foaf:currentProject ex:project .
ex:project a foaf:Project ;
           foaf:name "A Project" .

模板:

---
---
<html>
 <body>
  <h1>{{page.rdf | rdf_property: "<http://xmlns.com/foaf/0.1/nick>"}}</h1>
  <dl>
   <dt>Current Project</dt>
   <dd>{{page.rdf | rdf_property: "<http://xmlns.com/foaf/0.1/currentProject>"}}</dd>
  </dl>
 </body>
</html>

输出:

<html>
 <body>
  <h1>Nabatz</h1>
  <dl>
   <dt>Current Project</dt>
   <dd>http://example.org/project</dd>
  </dl>
 </body>
</html>

我想要的:

<html>
 <body>
  <h1>Nabatz</h1>
  <dl>
   <dt>Current Project</dt>
   <dd>A Project</dd>
  </dl>
 </body>
</html>

有两种选择可以实现这一点,具体取决于您还想对链接的资源做什么。

选项 1

只需链接 rdf_property 过滤器:

{{page.rdf | rdf_property: "<http://xmlns.com/foaf/0.1/currentProject>" | rdf_property: "<http://xmlns.com/foaf/0.1/name>"}}

选项 2

为链接的资源节点分配一个变量:

{% assign node = pade.rdf | rdf_property: "<http://xmlns.com/foaf/0.1/currentProject>" %}
{{ node | rdf_property: "<http://xmlns.com/foaf/0.1/name>" }}

如果要输出链接资源的多个属性,最好使用选项 2,而选项 1 更紧凑。