2013-04-18 3 views
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'}" 

첫 번째 삽입은 완료를 반환합니다. 두 번째 삽입 반환 값 업데이트를 실행할 수 없습니다. 'urn : uuid : 38f'속성이 온톨로지에 없습니다.SPARQL 트래커 업데이트를 실행할 수 없습니다. 온톨로지에서 속성을 찾을 수 없습니다.

새로운 아티스트를 기존 뮤직 조각에 연결하는 방법을 실제로 이해할 수 없습니다.

+0

것입니까? MySQL은? 요즘에는 SPARQL을 사용합니까? 첫번째 쿼리에서'SILENT INTO '를 제거하면 어떻게됩니까? 나는 두 번째 쿼리에서와 마찬가지로 기본 그래프에 트리플을 삽입한다고 생각합니다. –

+0

그놈에서 추적기를 사용하고 있습니다. 추적기는 SPARQL을 사용합니다. SILENT INTO 를 제거했으며 동작은 동일합니다. – Cumatru

답변

3

은 당신이 두 번째 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'} 

.가 트리플을 닫고 ?f을 의미하는 새로운 트리플은 트리플의 술어의 위치를 ​​가지고 시작하는해야 ;있다 . <urn:uuid:38f>이 , nie:InformationElement, nmm:MusicPiecenfo:Audio으로 정의되었지만 rdfs:Property 또는 OWL 속성이 아닌 것으로 정의 된 경우 Tracker는 <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'} 
관련 문제