Merge pull request #453 from aurimasv/rdflib-rdf-value
Correctly handle literals with attributes in RDF
This commit is contained in:
commit
015b37a85e
2 changed files with 10 additions and 0 deletions
|
@ -337,6 +337,11 @@ $rdf.RDFParser = function (store) {
|
||||||
if(dom['nodeType'] == RDFParser['nodeType']['TEXT']
|
if(dom['nodeType'] == RDFParser['nodeType']['TEXT']
|
||||||
|| dom['nodeType'] == RDFParser['nodeType']['CDATA_SECTION']) {
|
|| dom['nodeType'] == RDFParser['nodeType']['CDATA_SECTION']) {
|
||||||
//we have a literal
|
//we have a literal
|
||||||
|
if(frame['parent']['nodeType'] == frame['NODE']) {
|
||||||
|
//must have had attributes, store as rdf:value
|
||||||
|
frame['addArc'](RDFParser['ns']['RDF'] + 'value');
|
||||||
|
frame = this['buildFrame'](frame);
|
||||||
|
}
|
||||||
frame['addLiteral'](dom['nodeValue'])
|
frame['addLiteral'](dom['nodeValue'])
|
||||||
} else if(elementURI(dom) != RDFParser['ns']['RDF'] + "RDF") {
|
} else if(elementURI(dom) != RDFParser['ns']['RDF'] + "RDF") {
|
||||||
// not root
|
// not root
|
||||||
|
|
|
@ -2639,6 +2639,11 @@ Zotero.Translate.IO._RDFSandbox.prototype = {
|
||||||
*/
|
*/
|
||||||
"getResourceURI":function(resource) {
|
"getResourceURI":function(resource) {
|
||||||
if(typeof(resource) == "string") return resource;
|
if(typeof(resource) == "string") return resource;
|
||||||
|
|
||||||
|
const rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
|
||||||
|
var values = this.getTargets(resource, rdf + 'value');
|
||||||
|
if(values && values.length) return this.getResourceURI(values[0]);
|
||||||
|
|
||||||
if(resource.uri) return resource.uri;
|
if(resource.uri) return resource.uri;
|
||||||
if(resource.toNT == undefined) throw new Error("Zotero.RDF: getResourceURI called on invalid resource");
|
if(resource.toNT == undefined) throw new Error("Zotero.RDF: getResourceURI called on invalid resource");
|
||||||
return resource.toNT();
|
return resource.toNT();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue