0

在 RESTful 服务中,您可以这样定义资源链接:

<next xmlns="http://example.org/state-machine"
  rel="http://mydomain.example.org/user"
  url="http://mydomain.example.com/user/1234"
  type="application/xml"/>

或 JSON-LD 示例:

{
  "@context": {
    "name": "http://xmlns.com/foaf/0.1/name",
    "homepage": {
      "@id": "http://xmlns.com/foaf/0.1/homepage",
      "@type": "@id"
    }
  },
  "name": "Manu Sporny",
  "homepage": "http://manu.sporny.org/"
}

或 vCard 示例:

<address id="hcard" class="vcard">
<p class="fn n">
<span class="given-name">First</span>
<span class="additional-name">M</span>.
<span class="family-name">Last</span>

rel属性指向域内免费提供对象的模式/微格式/微数据/RDFa 描述。假设我有一个带有字段名称和主页的用户对象,

  1. 在上面的示例中,会rel="http://mydomain.example.org/user"更合适,因为它是特定于域的用户,还是我应该从 foaf 使用类似的东西?

    "name": "http://xmlns.com/foaf/0.1/name",@id": http://xmlns.com/foaf/0.1/homepage"
    
  2. 我对这些 RDFa、微格式、微数据、模式、vcard、hcard、foaf、http : //www.productontology.org/id/、www.schema.org/name、http://rdf.data-vocabulary感到非常困惑.org/#name、json 架构等。何时创建自己的微格式/架构,何时使用在这些不同区域(vCards、hcards、foaf、productontology、schema.org)中定义的公共微格式/架构?我知道 RDFa、微格式等确实是关于数据的公共元数据,但是我在哪里可以找到它们的完整列表以供使用?

  3. 如果我要创建自己的 rel like rel="http://mydomain.example.org/user",定义用户对象,我应该如何记录它?有我可以遵循的标准吗?有些地方建议人类可读的发现文档,或者可能是描述合同和版本的那个位置的 JSON/XML 模式?

  4. 一个建议是使用不同版本的http://mydomain.example.com/v1/user/1234与不同版本的服务规范进行对话,以便现有客户端不会因版本更改而中断。

请帮我找出这种混淆,或者我应该使用的术语,关于微格式、RDF、微数据、模式等。

4

2 回答 2

1

刚开始学习 RDF/Ontology 时,我也有同样的困惑。有很多来自许多不同组织的词汇。关键是要使用那些已经建立并被其他人采用的方法;但更重要的是,请确保使用代表您打算表示的“语义”的“术语”。
要回答您的具体问题: 1)您“可以”创建自己的术语,但关键是当其他应用程序解析您的术语时,应用程序将需要知道您的术语的真正含义。如果你使用 FOAF:homepage,所有的应用程序都知道它的语义和它所指的内容,并且由此,它暗示了 FOAF:homepage 的主语(rdf 三元组中的主语)就是一个 FOAF:Person。有开放的链接数据进来。 http://linkeddata.org/

2)我自己对RDFa/Microfromat没有太多经验,我的理解是这些技术希望在HTML层提供机器可理解的语义术语。我认为如果有现有的,您可能不想创建自己的术语,但除了现有的术语之外,您还可以定义自己的术语。

3)您可以使用 OWL 或 RDFS 定义术语刚刚看到这个,它可能很有用.. https://code.google.com/p/tdwg-rdf/wiki/Beginners7OWL

但在我的轻量级项目中,我们只是通过指定命名空间、术语名称及其含义来创建术语。您可以按照以下内容定义您的术语: http ://dublincore.org/documents/dcmi-terms/

JSON/XML/N3……只是不同的序列化格式,同一个词可以使用多种不同的格式进行序列化。要记住的重要一点是,您定义了术语的语义含义,它们将被序列化为不同的格式。并不是格式不重要,而是所有格式都指向相同的术语和相同的含义。

4)我自己版本我的词汇..但我对最佳实践没有太多见解。

希望这有帮助!!

于 2013-06-13T22:47:56.423 回答
0

在 RDFa 中有一个众所周知的表达方式:

<html><body vocab="http://purl.org/dc/terms/">
<div typeof="foaf:Person">
<span property="creator">manu sporny</span>
<span property="foaf:age" content="66"/>
<span property="foaf:homepage" resource="http://x.com"/>
</div>
</body></html>

“foaf”前缀是 RDFa 默认的。没有要定义的上下文。“dc”前缀是默认的,“creator”不需要前缀。

这是标准,其他的都忘了。

可直接使用的前缀列表由 http://www.w3.org/2011/rdfa-context/rdfa-1.1提供, 您可能会在这里找到很多可用的概念,实际上是所有公共模式。

注意这里定义的词汇表的“schema”前缀:http: //schema.org/ 它特别丰富,并且被广泛使用。另请注意,它试图定义一种微格式来与 RDFa 表示法竞争。放弃它并使用带有 RDFa 的词汇表。

于 2015-03-11T07:38:36.563 回答