2013-06-13 35 views
0

在RESTful服务,您可以定义资源的链接像这样:REST/HATEOAS微格式/ FOAF /架构特定领域的混乱

<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/" 
} 

或者电子名片例如:

<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的DESCR该域内的自由提供对象的iption。说我有一个字段名和主页的用户对象,

  1. 在上面的例子,因为它是域特定用户或我应该使用这样的事情从FOAF将rel="http://mydomain.example.org/user"更合适?

    "name": "http://xmlns.com/foaf/0.1/name",@id": http://xmlns.com/foaf/0.1/homepage" 
    
  2. 我很困惑与这些RDFa的,微格式,微数据模式,电子名片,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,如rel="http://mydomain.example.org/user",定义用户对象,我该如何记录它?有我可以遵循的标准吗?有些地方建议用户可读的发现文档,或者在描述合同和版本的地方提供JSON/XML模式?

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

请帮我绘制出这样的困惑,或者条件我应该使用,关于微格式,RDF,微观数据,架构等

+0

我在这个网站找到了答案很有用http://answers.semanticweb.com/questions/2918/why-is-rdf-so-old-complicated-unpopular-and-still-not-discarded – Joshscorp

回答

1

当刚开始学习RDF /本体论,我已经同样的困惑。 有许多来自许多不同组织的词汇。关键是要用那些已经很好建立并被别人采纳的;但更重要的是,确保使用代表您意图表达的“语义”的“术语”。
回答您的具体问题: 1)您可以'创建自己的条款,但重点是当其他应用程序解析您的条款时,应用程序需要知道您的条款的真正含义。如果你使用FOAF:主页,所有的应用程序都知道它的语义和它引用的内容,也就是说,无论谁是FOAF主页的主题(主题是rdf tripple):主页是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)Myself version vocabs ..但我对最佳实践没有多少见解。

希望这个帮助!

+0

是的,我包装我的头在附近,并感谢真棒链接...我想我会有更多的阅读去做。 – Joshscorp

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”前缀是默认的,“创建者”不需要前缀。

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

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

请注意“模式”前缀,对于此处定义的词汇表: http://schema.org/ 它特别丰富且被广泛使用。 还要注意它试图定义一个微格式来与RDFa表示法竞争。放弃这一点,并使用RDFa的词汇。