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 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>
定义为nfo:FileDataObject
, nie:InformationElement
, nmm:MusicPiece
和nfo:Audio
,但不是rdfs:Property
或 OWL 属性,跟踪器发出信号表示没有由 URI <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'}
关于rdf - SPARQL Tracker 无法运行更新,在本体中找不到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077143/