Peb added a comment.
made a starting code to download as NTriples by converting from SPARQL-Result-JSON. The JSON-LD might be quite straightforward using jsonld.js <https://github.com/digitalbazaar/jsonld.js> `fromRdf` function given NT input diff --git a/wikibase/queryService/api/Sparql.js b/wikibase/queryService/api/Sparql.js index 9a4e5e1..7003587 100644 --- a/wikibase/queryService/api/Sparql.js +++ b/wikibase/queryService/api/Sparql.js @@ -422,6 +422,60 @@ wikibase.queryService.api.Sparql = ( function( $ ) { }; /** + * Get the result of the submitted query as N-Triples + * + * @return {string} + */ + SELF.prototype.getResultAsNTriples = function() { + var output = '', + data = this._rawData; + + output = this._processData( data, function( row, out ) { + var rowOut = ''; + var rowVar = 'subject'; + if ( ( row[rowVar] || {} ).type === 'uri' ) { + rowOut += '<'; + rowOut += ( row[rowVar] || {} ).value; + rowOut += '> '; + } else if ( ( row[rowVar] || {} ).type === 'bnode' ) { + rowOut += '_:'; + rowOut += ( row[rowVar] || {} ).value; + rowOut += ' '; + } + //predicate MUST be of type uri + rowVar = 'predicate'; + rowOut += '<'; + rowOut += ( row[rowVar] || {} ).value; + rowOut += '> '; + //object + rowVar = 'object'; + if ( ( row[rowVar] || {} ).type === 'uri' ) { + rowOut += '<'; + rowOut += ( row[rowVar] || {} ).value; + rowOut += '> '; + } else if ( ( row[rowVar] || {} ).type === 'literal' ) { + var obj = ( row[rowVar] || {} ); + var escapedObj = JSON.stringify( String( obj.value ) ); + escapedObj = escapedObj.substring( 1, escapedObj.length - 1 ); + rowOut += '"'; + rowOut += escapedObj; + rowOut += '"'; + if ( 'datatype' in obj ) { + rowOut += '^^<'; + rowOut += obj.datatype; + rowOut += '>'; + } else if ( 'xml:lang' in obj ) { + rowOut += '@'; + rowOut += obj['xml:lang']; + } + } + rowOut += ' .\n'; + return out + rowOut; + }, output ); + return output; + }; + + /** * Render value as per http://www.w3.org/TR/sparql11-results-csv-tsv/#tsv * * @param {Object} binding TASK DETAIL https://phabricator.wikimedia.org/T211177 EMAIL PREFERENCES https://phabricator.wikimedia.org/settings/panel/emailpreferences/ To: Peb Cc: Lucas_Werkmeister_WMDE, Peb, Smalyshev, Aklapper, VladimirAlexiev, darthmon_wmde, alaa_wmde, Ferenczy, sarhan.alaa, Samuditha24, IM3847, Dinadineke, Nandana, kostajh, tabish.shaikh91, Lahi, Gq86, GoranSMilovanovic, Soteriaspace, Jayprakash12345, Chicocvenancio, JakeTheDeveloper, QZanden, EBjune, merbst, LawExplorer, Salgo60, Jogi_don, _jensen, rosalieper, D3r1ck01, Jonas, Xmlizer, Samwilson, jkroll, Wikidata-bugs, Jdouglas, Jdlrobson, aude, Tobias1984, Manybubbles, Lydia_Pintscher, TheDJ, Mbch331, Rxy
_______________________________________________ Wikidata-bugs mailing list Wikidata-bugs@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs