作为一个简单的练习,我想从一个小应用程序中获取一些测试数据,这些应用程序用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是好还是不好。
我认为最后一件事是“用户名”,但这对网站来说非常内在,根本就没有意义“链接”它。
我知道这些数据甚至可能不值得链接,这对我来说是一次学习练习。
答案 0 :(得分:1)
我不认为http://dbpedia.org/ontology/Colour
应该像这样使用。这是一个阶级,而不是财产。 http://dbpedia.org/ontology/Colour
作为范围的属性为http://dbpedia.org/ontology/colour
。 (那就是说,我不确定你是否真的打算让这个人有颜色,而不是与这个人有关的东西。)
如果要提供颜色字符串的语言,则不应指定数据类型,@language
就足够了(如果键入值,则不能再使用语言;使用{{1 ,暗示该值是一个字符串)。
您正在使用@language
来指定节点的URI,但它必须是@Id
。
@id
中未定义属性sameAs
,Id
和Username
。
如果您打算使用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
使用哪个属性(取决于您的情况,如果这对其他人有用,或者这只与您的内部系统相关)。