为JSON-LD创建上下文

时间:2015-10-16 10:41:21

标签: json-ld linked-data

作为一个简单的练习,我想从一个小应用程序中获取一些测试数据,这些应用程序用JSON生成用户记录并将其转换为JSON-LD,在JSON-LD.org的操场上进行测试可以提供一些帮助,但是我不知道我做得对不对。

原文是:

{  
  "@context": {    
    "name": "http://schema.org/name",
    "Colour": {
      "@id": "http://dbpedia.org/ontology/Colour",
      "@type": "http://schema.org/Text",
      "@language": "en"
    }
  },
  "@type": "http://schema.org/Person",     
  "@Id": "http://example.com/player/1",
  "sameAs" : "https://www.facebook.com/DaveAlger",
  "Id": 1,
  "name": "David Alger",
  "Username": "Dave",  
  "Colour": "green" 
}

所以我有一个人,他有一个用户名,一个ID和一个相关的颜色。

到目前为止我得到的是:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include "newfile.h"


int main (int argc, const char* argv[])
{

scktfd = socket(AF_INET, SOCK_DGRAM, 0); 
char *opt;
opt = "eth0";

struct ifreq Interface; 
memset(&Interface, 0, sizeof(Interface));
strncpy(Interface.ifr_ifrn.ifrn_name, "eth0", IFNAMSIZ); 

int rtrn;
rtrn = setsockopt(scktfd, SOL_SOCKET, SO_BINDTODEVICE,&Interface, sizeof(Interface));

  return 0;
}

所以我宣布它是@type of person,并给出了一个URI @id。

我也在使用“sameAs”这个想法,我曾在博客文章中看过一次,但我不清楚它是否会立即得到支持。

然后我尝试创建一个@context。在这里,我添加了一个名称并给出了参考。我也试图为“颜色”创造一些东西。我不确定是否指向DBpedia关于“color”的引用并且指定@type和@language是好还是不好。

我认为最后一件事是“用户名”,但这对网站来说非常内在,根本就没有意义“链接”它。

我知道这些数据甚至可能不值得链接,这对我来说是一次学习练习。

1 个答案:

答案 0 :(得分:1)

我不认为http://dbpedia.org/ontology/Colour应该像这样使用。这是一个阶级,而不是财产。 http://dbpedia.org/ontology/Colour作为范围的属性为http://dbpedia.org/ontology/colour。 (那就是说,我不确定你是否真的打算让这个人有颜色,而不是与这个人有关的东西。)

如果要提供颜色字符串的语言,则不应指定数据类型,@language就足够了(如果键入值,则不能再使用语言;使用{{1 ,暗示该值是一个字符串)。

您正在使用@language来指定节点的URI,但它必须是@Id

@id中未定义属性sameAsIdUsername

  • 如果您打算使用Schema.org’s sameAs property,则可以将其定义为与@context类似的内容,但您应指定该值为URI:

    name
  • 对于"sameAs": { "@id": "http://schema.org/sameAs", "@type": "@id" }, ,您可以使用FOAF’s nick property,也可以使用Schema.org’s alternateName property

  • 不知道您可以为Username使用哪个属性(取决于您的情况,如果这对其他人有用,或者这只与您的内部系统相关)。

    < / LI>