2
 tracker-sparql -qu "INSERT SILENT INTO <urn:uuid:38f> {  <urn:uuid:38f> a nfo:FileDataObject , nie:InformationElement ;nie:isStoredAs <urn:uuid:38f> ; nie:url 'file.mp3' ; nie:dataSource <urn:nepomuk:datasource:840494F4EDG> ;nie:deviceId '840494F4EDG';nmm:audioType 128 ; tracker:available true; a nmm:MusicPiece , nfo:Audio; nie:title 'Abandoner' .}"

  tracker-sparql -qu "INSERT {<urn:artist:38caadd1f13bf78a26aca0e7d42a8f58> a nmm:Artist ;nmm:artistName 'Aesop'; ?f nmm:performer <urn:artist:38caadd1f13bf78a26aca0e7d42a8f58>;  nmm:extEnsemble <urn:artist:38caadd1f13bf78a26aca0e7d42a8f58>  } WHERE { ?f nie:url 'file.mp3'}"

最初の挿入は Done を返します。2 番目の挿入は、更新を実行できませんでした。プロパティ 'urn:uuid:38f' がオントロジーに見つかりませんでした。

新しいアーティストを既存の音楽作品にリンクする方法がよくわかりません。

4

1 に答える 1

3

2 番目の SPARQL INSERT ステートメントの形式が正しくありません。

INSERT {
    <urn:artist:38caadd1f13bf78a26aca0e7d42a8f58> 
        a nmm:Artist ;
        nmm:artistName 'Aesop'; 
        ?f nmm:performer <urn:artist:38caadd1f13bf78a26aca0e7d42a8f58>;  
        nmm:extEnsemble <urn:artist:38caadd1f13bf78a26aca0e7d42a8f58>  
} WHERE { ?f nie:url 'file.mp3'}

トリプルを閉じて新しいトリプルを開始するには、a;があるべき場所があります。これは、トリプル内で述語の位置を持っていることを意味します。、、およびとして定義されているが、OWL プロパティとして定義されていないため、トラッカーは URI によって識別されるプロパティがないことを通知します。.?f<urn:uuid:38f>nfo:FileDataObjectnie:InformationElementnmm:MusicPiecenfo:Audiordfs:Property<urn:uuid38f>

正しいステートメントは

INSERT {
    <urn:artist:38caadd1f13bf78a26aca0e7d42a8f58> 
        a nmm:Artist ;
        nmm:artistName 'Aesop' . 

    ?f nmm:performer <urn:artist:38caadd1f13bf78a26aca0e7d42a8f58>;  
        nmm:extEnsemble <urn:artist:38caadd1f13bf78a26aca0e7d42a8f58>  
} WHERE { ?f nie:url 'file.mp3'}
于 2013-04-18T13:09:09.407 に答える