我需要将此40MB file of RDF/XML转换为JSON-LD格式,而我只找到this web tool,这根本不起作用。当您粘贴40MB的文本时,它会崩溃,当您为其提供文件的URL时,它会说该服务不可用。
理论上,Jena API或芝麻应该能够做到这一点,但我错过了一个起点和关于这些系统的知识。有人可以给我一个路径,一个示例或链接到有用的文档,以便将大型RDF / XML转换为JSON-LD吗?
(我很高兴使用Java,C#或一个工作解决方案,我不需要在另一种语言/框架中有太多的编程知识)。
答案 0 :(得分:11)
您可以使用RDFLib以RDF / XML格式读取RDF,并使用json-ld序列化程序将其序列化为JSON-LD
graph.parse(my_url, format='application/rdf+xml')
graph.serialize(my_url, format='application/json-ld')
答案 1 :(得分:5)
我是使用此工具完成的:http://rdf-translator.appspot.com/
可悲的是,上传/下载尺寸过大,因此我从here获取了代码,并在here端口8999上从本地Google App Engine上运行。然后我转到目录使用owl文件'ds.owl'并使用以下命令将其放入ds.json文件中:
curl --data-urlencode content@eclass_514en.owl http://localhost:8999/convert/detect/json-ld/content > ds.json
这是唯一有效的方法,我尝试了大约4个更大的本体文件。
答案 2 :(得分:2)
我不知道Jena API支持JSON-LD,但supports RDF/JSON是RDF三元组的直接编码。您可以使用Jena API,但使用Jena更方便的方法是使用Jena命令行rdfcat
工具。 --help
选项生成的帮助菜单有点过时,但看起来像这样:
$ rdfcat --help
Usage: java jena.rdfcat (option|input)*
Concatenates the contents of zero or more input RDF documents.
Options: -out N3 | N-TRIPLE | RDF/XML | RDF/XML-ABBREV
-n expect subsequent inputs in N3 syntax
-x expect subsequent inputs in RDF/XML syntax
-t expect subsequent inputs in N-TRIPLE syntax
-[no]include include rdfs:seeAlso and owl:imports
input can be filename, URL, or - for stdin
Recognised aliases for -n are: -n3 -ttl or -N3
Recognised aliases for -x are: -xml -rdf or -rdfxml
Recognised aliases for -t are: -ntriple
Output format aliases: x, xml or rdf for RDF/XML, n, n3 or ttl for N3, t or ntriple for N-TRIPLE
See the Javadoc for jena.rdfcat for additional details.
除此之外,您还想知道的是您可以传递输出格式RDF/JSON
。例如,使用众所周知的比萨本体,我们得到:
$ rdfcat -out RDF/JSON ../sparql-pizza2/pizza.owl | head -25
{
"_:-b8ef06:140ee02a0b1:-7ff7" : {
"http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" : [ {
"type" : "uri" ,
"value" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"
}
] ,
"http://www.w3.org/1999/02/22-rdf-syntax-ns#first" : [ {
"type" : "uri" ,
"value" : "http://www.co-ode.org/ontologies/pizza/pizza.owl#TomatoTopping"
}
]
}
,
"http://www.co-ode.org/ontologies/pizza/pizza.owl#Food" : {
"http://www.w3.org/2000/01/rdf-schema#subClassOf" : [ {
"type" : "uri" ,
"value" : "http://www.co-ode.org/ontologies/pizza/pizza.owl#DomainConcept"
}
] ,
"http://www.w3.org/1999/02/22-rdf-syntax-ns#type" : [ {
"type" : "uri" ,
"value" : "http://www.w3.org/2002/07/owl#Class"
}
]
...and so on...