我有点困惑如何使用RDFa (Lite)、schema.org和FOAF来建模作者-代理关系。我甚至不确定我是否需要FOAF。
假设我出版了一本书,我是作家,由一位代理人代理。所以我们有两个人,一个是我,一个是经纪人。为了澄清,我的意图是将代理人作为作者的联络点联系,同时表明作者是我,这一页的主题是:
<!-- the agent representing me -->
<div resource="/Writecorp/Michael Stern" vocab="http://schema.org/" typeof="Person">
<span property="name">Michael Stern</span>
<div property="memberOf">
<div typeof="Organization">
<span property="name">Writecorp Inc. agency</span>
</div>
</div>
</div>
<!-- the writer, me -->
<div rel="me" vocab="http://schema.org/" typeof="Person">
<link rel="agent" property="contactPoint" href="/Writecorp/Michael Stern" />
<span property="name">H. P. Lovecraft</span>
</div>我从https://stackoverflow.com/a/19389163/441662收集到的https://stackoverflow.com/a/19389163/441662解决方案。
当我将它提供给RDFa 1.1蒸馏器和分析器时,它显示了以下输出:
@prefix ns1: <http://www.w3.org/ns/rdfa#> .
@prefix ns2: <http://schema.org/> .
<> ns2:me [ a ns2:Person;
ns2:contactPoint </Writecorp/Michael Stern>;
ns2:name "H. P. Lovecraft" ];
ns1:usesVocabulary ns2: .
</Writecorp/Michael Stern> a ns2:Person;
ns2:memberOf """
Writecorp Inc. agency
""";
ns2:name "Michael Stern" .
[] a ns2:Organization;
ns2:name "Writecorp Inc. agency" .rel="me"吗?它显示的是ns1:me,但是在引用的命名空间词汇表schema.org中找不到任何关于它的信息。我应该使用FOAF前缀然后使用foaf:me吗?在这方面我也找不到多少例子。Person不允许成为contactPoint。解决办法?
进一步提出的解决方案之一是拥有一个同时具有ContactPoint和Person的实体,但是谷歌的验证器似乎不太喜欢它。
另一种可能的解决方案是让代理和写入器都指向相同的ContactPoint资源(参见https://stackoverflow.com/a/30055747/441662)。
关于rel="me",它来自一个微格式示例,不可能使用schema.org (在他的回答中作为@unor状态)或foaf。
/edit 7-5-2015: I提出了一个GitHub问题对于这个问题。我会更新这篇文章等我学到更多..。
发布于 2015-05-05 14:26:16
一种选择是让代理和写入器都指向相同的ContactPoint资源。
这似乎有点奏效。这允许适当的标记来格式化代理及其联系人详细信息,同时让作者指向代理的联系人详细信息。然而,这仍然没有恰当地将代理人作为作者的代表(即不与我打交道,而是与我的代理人)。我不知道机器读取器将如何处理这种情况。
<!-- the agent representing me -->
<div resource="/Writecorp/MichaelStern" vocab="http://schema.org/" typeof="Person">
<span property="name">Michael Stern</span>
<link property="contactPoint" href="/Writecorp/MichaelStern#contact" />
<div resource="/Writecorp/MichaelStern#contact" vocab="http://schema.org/" typeof="ContactPoint">
<meta property="name" content="Michael Stern" />
<div>Phone:
<span property="telephone">(540) 961-4469</span>
</div>
<div>
<a property="email" href="mailto:michael.stern@writecorp.inc.agency.com">michael.stern@writecorp.inc.agency.com</a>
</div>
</div>
<div property="memberOf">
<div typeof="Organization">
<span property="name">Writecorp Inc. agency</span>
</div>
</div>
</div>
<!-- the writer, me -->
<div vocab="http://schema.org/" typeof="Person">
<link property="contactPoint" href="/Writecorp/MichaelStern#contact" />
<span property="name">H. P. Lovecraft</span>
</div>注意,name属性在ContactPoint上是一个元标记,而不是普通的span元素。这是为了防止双名输出,同时给机器读取器一种仍然用接触点名填充数据模型的方法。
海龟的RDFa 1.1蒸馏器和分析器输出
@prefix ns1: <http://www.w3.org/ns/rdfa#> .
@prefix ns2: <http://schema.org/> .
<> ns1:usesVocabulary ns2: .
</Writecorp/MichaelStern> a ns2:Person;
ns2:contactPoint </Writecorp/MichaelStern#contact>;
ns2:memberOf """
Writecorp Inc. agency
""";
ns2:name "Michael Stern" .
</Writecorp/MichaelStern#contact> a ns2:ContactPoint;
ns2:email <mailto:michael.stern@writecorp.inc.agency.com>;
ns2:name "Michael Stern";
ns2:telephone "(540) 961-4469" .
[] a ns2:Person;
ns2:contactPoint </Writecorp/MichaelStern#contact>;
ns2:name "H. P. Lovecraft" .
[] a ns2:Organization;
ns2:name "Writecorp Inc. agency" ./edit 7-5-2015: I提出了一个GitHub问题对于这个问题。我会更新这篇文章等我学到更多..。
https://stackoverflow.com/questions/30051287
复制相似问题