2016-04-15 6 views
0

rdflib-jsonldを使用してNoSQLのデータを解析し、S​​esameに挿入します。これは、コードの問題の一部である:rdflib-jsonldは '@'で '<'が使用された場合に偽のURLを生成します

context = { 
    "@context": { 
    "isGiven": URIRef('<'+'http://purl.org/net/something#isGiven'+rdfLizerItem['FooByBar']+'>'), 
    "administeredAs": URIRef('<'+'http://purl.org/net/something#administeredAs'+'>'), 
    "type":URIRef('<'+'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'+'>'), 
    } 
    } 
    recipient=URIRef('<'+someUrl+rdfLizerItem['FooRecipient']+'>') 
    jsonldOutputIsAdmin = {"@id": recipient,"isGiven": URIRef('<'+someUrl+ rdfLizerItem['Quantity']+'>')} 
    print jsonldOutputIsAdmin 
    g = Graph() 
    g.parse(data=json.dumps(jsonldOutputIsAdmin), format='json-ld', context=context) 
    g.close() 
    for s,p,o in g: 
     pprint.pprint ((s,p,o)) 

問題が@idのURLへ<>の添加時であり、被験者のURLはそれに完全なパスとなります。例:

(rdflib.term.URIRef(u'file:///C:/path/to/the/url/<http:/purl.org/net/ontologyName#subject>'), 
rdflib.term.URIRef(u'<http://purl.org/net/ontologyName#predicate>'), 
rdflib.term.Literal(u'<http://purl.org/net/ontologyName#object>')) 

ファイルパスではなく、件名のURLのみを入力します。問題の原因とその解決方法を教えてください。

トリプルをセサミにエクスポートするには、<>が必要です。

答えて

1

接頭語として適用されるファイルシステムのパスを回避するには、JSON-LDは、虹彩に対して 解決される相対形式で指定することを可能にするbase IRI

の値でコンテキストを提供するために必要セクション5.1に従って文書ベースは ベースURI [RFC3986]を確立する。ベースIRIは、@ baseキーワードを使用して コンテキストで明示的に設定できます。例えば

、あなたはこのようなあなたのコンテキストを変更した場合:

context['@context']['@base'] = '.'

あなたは@id値をプレフィックスパスが表示されません。

関連する問題