16

この40MB の RDF/XML ファイルをJSON-LD 形式に変換する必要がありますが、まったく機能しないこの Web ツールしか見つかりませんでした。40MB のテキストを貼り付けるとクラッシュし、ファイルの URL を指定するとサービスが利用できないと表示されます。

理論的には、Jena API、またはおそらく Sesame でこれを実行できるはずですが、これらのシステムに関する出発点と知識が不足しています。大きなRDF/XMLをJSON-LDに変換するためのルート、例、または役立つドキュメントへのリンクを教えてもらえますか?

(Java、C#、または別の言語/フレームワークでのプログラミング知識があまり必要ない実用的なソリューションに満足しています)。

4

3 に答える 3

14

RDFLibを使用して RDF/XML 形式の RDF を読み込み、json-ldシリアライザーを使用してそれを JSON-LD にシリアライズすることができます。

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


graph.serialize(my_url, format='application/json-ld')
于 2013-09-13T21:21:28.303 に答える
5

私はこのツールを使用してそれを行いました: http://rdf-translator.appspot.com/

悲しいことに、アップロード/ダウンロードのサイズが大きすぎたので、ここからコードを取得し、ポート8999でここからローカルの Google App Engine で実行しました。次に、フクロウ ファイル「ds.owl」のあるディレクトリに移動し、使用しました次のコマンドを使用して、ds.json ファイルに取得します。

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

これが機能する唯一のものであり、約 4 つの大きなオントロジー ファイルで試しました。

于 2013-12-18T09:58:56.307 に答える
3

Jena API が JSON-LD をサポートしていることはわかりませんが、RDF トリプルの直接エンコードであるRDF/JSON をサポートしています。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。たとえば、よく知られている Pizza オントロジーを使用すると、次のようになります。

$ 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...
于 2013-09-05T12:05:50.213 に答える