Преобразование или перевод большого файла RDF / XML в формат JSON-LD-как?

Мне нужно преобразовать это 40 МБ файл RDF / XML в формат JSON-LD, и я нашел только этот веб-инструмент, это вообще не работает. Когда вы вставляете 40 МБ текста, он аварийно завершает работу, и когда вы даете ему URL-адрес файла, он говорит, что служба недоступна.

теоретически API Jena, или, может быть, Sesame должен быть в состоянии сделать это, но мне не хватает отправной точки и знаний об этих системах. Может кто-нибудь дать мне маршрут, пример или ссылка на полезную документацию для перевода большого RDF / XML в JSON-LD?

(Я был бы доволен Java, C# или рабочим решением, где мне не нужно слишком много знаний программирования на другом языке / фреймворке).

3 ответов


вы можете просто использовать RDFLib для чтения в RDF в формате RDF / XML и сериализации его обратно в JSON-LD с помощью json-ld сериализатор

graph.parse(my_url, format='application/rdf+xml')


graph.serialize(my_url, format='application/json-ld')

Я сделал это с помощью этого инструмента: http://rdf-translator.appspot.com/

к сожалению, размеры загрузки / загрузки были слишком большими, поэтому я получил код от здесь и запустил его на локальном Google App Engine от здесь порт 8999. Затем я пошел в каталог с файлом owl ' ds.сова " и использовал следующую команду, чтобы получить его в ds.файл json:

curl --data-urlencode content@eclass_514en.owl http://localhost:8999/convert/detect/json-ld/content > ds.json

Это было единственное, что работало, и я попробовал его с 4 больше файлы онтологии.


Я не знаю, что Jena API поддерживает JSON-LD, но это поддержка RDF / JSON, прямое кодирование троек RDF. Вы можете использовать API Jena, но более удобный способ сделать это с Jena - использовать командную строку Jena . Меню справки, созданное --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...