首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REST/HATEOAS微格式/FOAF/Schema域特定混淆

REST/HATEOAS微格式/FOAF/Schema域特定混淆
EN

Stack Overflow用户
提问于 2013-06-13 01:58:20
回答 2查看 405关注 0票数 0

在RESTful服务中,可以按如下方式定义指向资源的链接:

代码语言:javascript
复制
<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示例:

代码语言:javascript
复制
{
  "@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示例:

代码语言:javascript
复制
<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属性指向一个模式/microformat/microdata/RDFa,对域中的免费提供对象进行描述。假设我有一个具有字段名和主页的用户对象,

  1. 在上面的示例中,rel="http://mydomain.example.org/user"是否更合适,因为它是特定于域的用户,还是应该使用foaf中的类似内容? “名称”:"http://xmlns.com/foaf/0.1/name",@id"http://xmlns.com/foaf/0.1/homepage
  2. 我对这些RDFa、微格式、微数据、模式、vcards、hcards、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="http://mydomain.example.org/user"一样创建自己的rel,定义用户对象,我应该如何记录它?有我能遵循的标准吗?有些地方建议使用人类可读的发现文档,或者在描述契约和版本的位置使用JSON/XML模式?
  4. 一种建议是使用不同版本的服务规范与不同版本的http://mydomain.example.com/v1/user/1234对话,这样现有客户端就不会中断版本更改。

请帮助我指出这种混淆,或我应该使用的术语,有关Microformat,RDF,Microdata,Schema等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-13 22:47:56

刚开始学习RDF/本体时,我也有同样的困惑。有很多来自不同组织的声音。关键是要使用其他人已经确定并采用的术语;但更重要的是,要确保使用“术语”来表示你想表达的“语义意义”。

要回答您的具体问题: 1)您可以创建您自己的术语,但关键是,当其他应用程序解析您的术语时,应用程序将需要知道您的术语的真正含义。如果您使用FOAF:homepage,所有应用程序都知道它的语义含义以及它所指的是什么,这也意味着无论谁是FOAF:FOAF的主题( 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)我自己说我的声音。但我对最佳实践没有太多的洞察力。

希望能帮上忙!!

票数 1
EN

Stack Overflow用户

发布于 2015-03-11 07:38:36

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

代码语言:javascript
复制
<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>

RDFa默认使用"foaf“前缀。没有需要定义的上下文。"dc“前缀是默认的,”创建者“不需要前缀。

这是标准,忘了其他的一切。

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

请注意"schema“前缀,用于在这里定义的词汇表:http://schema.org/它特别丰富,并且广泛使用。还请注意,它试图定义一种与RDFa符号竞争的微格式。放弃它,与RDFa一起使用词汇表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17078066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档