var showOkkam=false; function printMessageWindow(selector,msg,msgType){ var icon ="ui-icon-alert"; var state ="ui-state-highlight"; var issueType="Warning"; if(msgType=="error"){ icon ="ui-icon-circle-close"; state ="ui-state-error"; issueType="Error"; } var html=[]; html.push('
'); html.push('
'); html.push('

'); html.push(''+issueType+'! '+msg+'

'); html.push('
'); html.push('
'); jQuery(selector).empty().append(html.join('')).show(); } function getHtml(xmlString,selector){ jQuery.ajax({ type: "POST", url: "proxy/redefer/rdf2html?"+randomString(), cache:false, dataType:"text", data:{ rdf:xmlString, mode:"snippet", namespaces:false, language:"en" }, contentType:"application/x-www-form-urlencoded", success: function(data){ jQuery("#tabs-HTML div."+selector).html(data); jQuery("img[src='http://rhizomik.net/images/rhizomer.small.png']").attr('src','img/rhizomer.small.png'); }, error:function (XMLHttpRequest, textStatus, errorThrown){ var msg = "ajax error function getHtml ["+XMLHttpRequest.status+"] ["+textStatus+"] ["+ errorThrown+"]"; printMessageWindow("#tabs-HTML div.msg",msg,"error"); } }); } function getSvg(xmlString,selector){ jQuery.ajax({ type: "POST", url: "proxy/redefer/render?"+randomString(), cache:false, dataType:"xml", data:{ rdf:xmlString, rules:"http://inspector.sindice.com/proxy/redefer/rules/showgraph.jrule", format:"RDF/XML", mode:'snippet' }, contentType:"application/x-www-form-urlencoded", success: function(svgData){ var embedSvgElement = svgData.getElementsByTagName( 'svg' )[0]; var clonedNode = embedSvgElement.cloneNode(true); //get the main SVG element jQuery("#svg"+selector).html('
'); var mainSvgElement = document.getElementById ( 'svg'+selector+'_x' ); //append embed SVG to main SVG mainSvgElement.appendChild ( clonedNode ); if(selector.indexOf("explicit")!=-1 ){ jQuery("#graph1 polygon:first",jQuery("div.rhizonik_svg.explicit")).css({"fill":"none",stroke:"none"}); var svgHeight = jQuery("div.rhizonik_svg.explicit svg").get(0).height.baseVal.value; var svgWidth = jQuery("div.rhizonik_svg.explicit svg").get(0).width.baseVal.value; db.explicit.oWidth = svgWidth; db.explicit.oHeight = svgHeight; addSlider("explicit"); SindiceInspector.addNamespacesLegend("#svgexplicit",xmlString); } if(selector.indexOf("implicit")!=-1 ){ jQuery("#graph1 polygon:first",jQuery("div.rhizonik_svg.implicit")).css({"fill":"none",stroke:"none"}); var svgHeight = jQuery("div.rhizonik_svg.implicit svg").get(0).height.baseVal.value; var svgWidth = jQuery("div.rhizonik_svg.implicit svg").get(0).width.baseVal.value; db.implicit.oWidth = svgWidth; db.implicit.oHeight = svgHeight; addSlider("implicit"); SindiceInspector.addNamespacesLegend("#svgimplicit",xmlString); } svgLoadedFlag=true; }, error:function (XMLHttpRequest, textStatus, errorThrown){ var msg = "ajax error function getSvg ["+XMLHttpRequest.status+"] ["+textStatus+"] ["+ errorThrown+"]"; printMessageWindow("#tabs-GRAPH div.msg",msg,"error"); } }); } function XML2String(elem){ var serialized; try { // XMLSerializer exists in current Mozilla browsers serializer = new XMLSerializer(); serialized = serializer.serializeToString(elem); } catch (e) { // Internet Explorer has a different approach to serializing XML serialized = elem.xml; } return serialized; } function initSigma(url){ var sigmaUrl = "http://sig.ma/"; if(url){ if(jQuery("#tabs-SIGMA object").size()!=0){ jQuery("#tabs-SIGMA object").attr("data",sigmaUrl+"search?raw=1&q=&singlesource="+encodeURIComponent(url)); }else{ jQuery("#tabs-SIGMA iframe").attr("src",sigmaUrl+"search?raw=1&q=&singlesource="+encodeURIComponent(url)); } }else{ //TODO: cant make sigma no keyword no url } } function cleanInspectionLog(){ jQuery("#inspectionLog").empty(); } function updateStatus(){ jQuery("#inspectionProgressbar").progressbar(); jQuery.ajax({ type: "GET", url: serviceURL, cache:false, dataType: 'json', data: { action:"getStatus", format:"json" }, error: function(){ }, success: function(json){ var status = json.status; var progress = json.progress; var statusMsg = json.statusMsg; var count = json.count; var id = json.id; jQuery("#inspectionProgressbar").progressbar( "option", "value",progress); if(progress>=0 && progress <100){ jQuery("#inspectionProgressbar").show(); }else{ jQuery("#inspectionProgressbar").hide(); } var html = ""; var error = false; for(var i=0;i
'; }else{ html+=''+o.m+'
'; } } jQuery("#inspectionLog").html(html); if(status!="done"){ setTimeout(updateStatus,1000); }else if(!error){ // hide only if no errors !!! hideDialog(); } } }); } function hideDialog(){ jQuery('#dialog div.loader').hide(); var t = jQuery("#openDialog").offset().top+10; var l = jQuery("#openDialog").offset().left+10; jQuery(".ui-dialog").animate({ width: 0, height: 0, left:l, top:t, opacity: 0.4, },1000,function(){ jQuery('#dialog').dialog('close'); }); } function testCookie(){ var n = "wedspector-test"; createCookie(n,n,1); var res = readCookie(n)==n?true:false; eraseCookie(n); return res; } function isTextNode(){ // If this is a text node, return true. return( this.nodeType === 3 ); } function runRDFExtractor(parameters){ cleanInspectionLog(); cleanPreviousResults(); jQuery('#dialog div.loader').show(); jQuery('#dialog').dialog('open'); // check that cookies are enabled if(testCookie()){ setTimeout(updateStatus,10); }else{ jQuery("#inspectionLog").val("Inspection log needs cookies in order to operate.\n" + "It seems cookies are disabled in your browser.\n"+ "Please enable cookies to use Inspection log.\n"); } if(parameters.url=="" && parameters.content==""){ alert("Uri and Content were empty. Please provide at least one of these two."); document.location.href = "/inspector"; return; } //console.log(parameters); jQuery("#inspector-results").show(); ontologies = {}; destroyOntologyTree(); jQuery("#RDFExtractorResults tbody").html(''); //jQuery('#indicator').attr("src","img/ajax-loader.gif"); jQuery.ajax( { type: "POST", url: serviceURL, dataType: 'json', traditional:true, data:parameters, error: function(){ //jQuery('#indicator').attr("src","img/ajax-blank-loader.gif"); //TODO: display error message in progress report window //alert("Server error "); }, success: function(json){ //jQuery('#indicator').attr("src","img/ajax-blank-loader.gif"); if(json.status==="error"){ alert( "error: " + json.error +"\n" +json.errorDetail ); }else if(json.status==="ok"){ jQuery("#tabs-ORIGINAL-CONTENT textarea.requestHeaders").text(json.rawContentRequestHeaders); jQuery("#tabs-ORIGINAL-CONTENT textarea.headers").text(json.rawContentHeaders); jQuery("#tabs-ORIGINAL-CONTENT textarea.content").text(json.rawContent); var usedExtractors = ''; jQuery(".usedExtractors").html(usedExtractors); jQuery('#RDFExtractor textarea').animate({ height:"24px" } , 200 ); var a=[];b=0; var nTStrExplicit=[]; var nTStrImplicit=[]; var explicit =json.extractorResults.metadata.explicit; var explicitNo = explicit.bindings.length; var explicitLeft = explicit.left; var implicitNo =0,implicitLeft=0; for(var i=0;it<"F"ip>' "sDom": '"H"ft', "fnInitComplete": function(oSettings, json) { // here call this because after choosing custom extractors and hit refresh // table width was for some reason set to 100px jQuery("table.display").css({width:"100%"}); } }); var textNode = jQuery(".dataTables_filter label" ).contents().filter( isTextNode ); textNode.last().replaceWith(document.createTextNode( "Filter: " )); printTriplesWarningIfNotAllPrinted(explicitNo,implicitNo,explicitLeft,implicitLeft); printTriplesInfo(explicitNo,implicitNo,explicitLeft,implicitLeft); if(explicitNo==0){ printMessageWindow("#tabs-TRIPLES div.msg","No triples have been found in the document","warning"); }else{ showTriplesTab(); printNTriples("explicit",nTStrExplicitS); var xmlString = json.extractorResults.metadata.explicit.bindingsRDFXML; getSvg( xmlString,"explicit"); getHtml(xmlString,"explicit"); //SindiceInspector.addNamespacesLegend("#ntriples pre.explicit",xmlString); jQuery("#rdfxml pre.explicit").text(xmlString); } if(parameters.doReasoning && implicitNo>0){ printNTriples("implicit",nTStrImplicitS); xmlString = json.extractorResults.metadata.inferred.bindingsRDFXML; getSvg( xmlString,"implicit"); getHtml(xmlString,"implicit"); //SindiceInspector.addNamespacesLegend("#ntriples pre.implicit",xmlString); jQuery("#rdfxml pre.implicit").text(xmlString); } // these two making preblems when page is served as xhtml if(explicitNo==0){ printMessageWindow("#tabs-ONTOLOGIES div.msg","No ontologies have been found in the document","warning"); printMessageWindow("#tabs-GRAPH div.msg","No triples have been found in the document","warning"); printMessageWindow("#tabs-HTML div.msg","No triples have been found in the document","warning"); printMessageWindow("#tabs-SIGMA div.msg","No triples have been found in the document","warning"); jQuery("#tabs-SIGMA iframe").hide(); }else{ showOntologiesTab(); if(parameters.doReasoning && json.extractorResults.metadata.ontologies){ jsonTreeData = buildJsonTreeData(parameters.url,json.extractorResults.metadata.ontologies) initOntologyTree(parameters.url); ontologyList = getOntologiesList(parameters.url,json.extractorResults.metadata.ontologies); printOntologyList(ontologyList); }else{ printOntologyLink(parameters); // takes parameters from global scope } } // here dispaly the validation result jQuery(".validation-results").empty(); if(parameters.doTriplesValidation=="1" || parameters.doSyntaxValidation=="1"){ jQuery("a[href='#tabs-VALIDATION']").parent().show(); jQuery("#tabs-VALIDATION").show(); if(showOkkam===true){ showOkkamDemoTab(json.extractorResults.metadata.explicit.bindings); } if(json.contentType=="application/rdf+xml"){ printW3cRdfValidationResult(json.w3cRdfValidationRes); selectValidationTab("#tabs-RDF-SYNTAX-VALIDATION"); }else if(json.contentType.indexOf("html")!=-1){ printW3cMarkupValidationResult(json.w3cMarkupValidationRes); printCommonMistakesValidationResult(json.commonMistakesValidationRes); selectValidationTab("#tabs-SYNTAX-VALIDATION"); } if(json.rdfValidationRes && json.rdfValidationRes.results &&json.rdfValidationRes.results){ printRdfValidationResult(json.rdfValidationRes); selectValidationTab("#tabs-PEDANTIC-VALIDATION"); } //make first validation tab active } jQuery(".ajaxLoader").hide(); return false; } } } ); return false; } function showTriplesTab(){ jQuery("#tabs-TRIPLES div.legendBox").show(); jQuery("#tabs-TRIPLES div#sortableTriples").show(); } function showOntologiesTab(){ jQuery("#tabs-ONTOLOGIES div.ontologiesBox").show(); } function printTriplesWarningIfNotAllPrinted(explicitNo,implicitNo,explicitLeft,implicitLeft){ var msg =""; if(explicitLeft>0){ msg += formatMsgABoutToManyTriples("explicit",explicitNo,explicitLeft); } if(implicitLeft>0){ msg += formatMsgABoutToManyTriples("inferred",implicitNo,implicitLeft); } if(explicitLeft>0 || implicitLeft>0){ printMessageWindow("#tabs-GRAPH div.msg",msg,"warning"); printMessageWindow("#tabs-HTML div.msg",msg,"warning"); printMessageWindow("#tabs-TRIPLES div.msg",msg,"warning"); } } function formatMsgABoutToManyTriples(name,printedNo,leftNo){ return "The total number of "+name+" triples is "+(printedNo+leftNo)+" Sorry but due to usability reasons only first "+printedNo+" were printed."; } function printTriplesInfo(explicitNo,implicitNo,explicitLeft,implicitLeft){ var infoStr = "Triples "+(explicitNo+explicitLeft)+' expl./'+(implicitNo+implicitLeft)+' impl.'; jQuery("#triplesTab").html(infoStr); jQuery("#explicitNo").text(explicitNo+explicitLeft); jQuery("#implicitNo").text(implicitNo+implicitLeft); } function printNTriples(selector,triplesStr){ jQuery("#ntriples pre."+selector).text(triplesStr); } function cleanPreviousResults(){ printTriplesInfo(0,0,0,0); jQuery("#ntriples pre").empty(); jQuery("#rdfxml pre").empty(); jQuery("div.result").empty(); jQuery("#svgexplicit").empty(); jQuery("#svgimplicit").empty(); jQuery("#tabs-TRIPLES div.explicit").empty(); jQuery("#tabs-TRIPLES div.implicit").empty(); jQuery("#tabs-TRIPLES .msg").hide(); jQuery("#tabs-ONTOLOGIES .msg").hide(); jQuery("#tabs-SIGMA .msg").hide(); jQuery("#tabs-GRAPH .msg").hide(); jQuery("#tabs-HTML .msg").hide(); } var TABS; var VALIDATION_TABS; jQuery(document).ready(function(){ var sigmaLoaded = false; jQuery(".useExtractors").live('click',function(){ sigmaLoaded=false; jQuery("#tabs-SIGMA iframe").show(); parameters.useExtractors= jQuery('.useExtractorsList').val(); runRDFExtractor(parameters); }); jQuery('#openDialog').click(function(){ jQuery('#dialog').dialog('open'); }); jQuery("#dialog").dialog({ autoOpen: false, modal: true, width:500, open:function(event, ui){ jQuery(".ui-dialog").css({'opacity':1,"margin-top":"4px"}); } }); jQuery("#openDialog").button({ icons: { primary: 'ui-icon-clock' } }); jQuery("#refresh").button({ icons: { primary: 'ui-icon-refresh' } }).click(function(){ location.reload(true); }); jQuery("#newInspection").button({ icons: { primary: 'ui-icon-home' } }); VALIDATION_TABS = jQuery("#tabs3").tabs({ select: function(event, ui) { document.location.hash = jQuery(ui.panel).attr("id").slice(5); } }); TABS = jQuery("#tabs").tabs({ select: function(event, ui) { if(!sigmaLoaded && ui.panel.id=="tabs-SIGMA"){ //init sigma when user clicks on sigma tab was selected initSigma(parameters.url); sigmaLoaded=true; } document.location.hash = jQuery(ui.panel).attr("id").slice(5); } }); var hash = document.location.hash.slice(1); if(hash=="SIGMA"){ TABS.tabs('select', "#tabs-"+hash); initSigma(parameters.url); sigmaLoaded=true; }else if(hash==""){ TABS.tabs('select', "#tabs-TRIPLES"); }else if(hash=="COMMON-MISTAKES-VALIDATION" || hash=="SYNTAX-VALIDATION" || hash=="RDF-SYNTAX-VALIDATION" || hash=="PEDANTIC-VALIDATION" || hash=="OKKAM-VALIDATION"){ VALIDATION_TABS.tabs('select', "#tabs-"+hash); }else{ TABS.tabs('select', "#tabs-"+hash); } runRDFExtractor(parameters); if(getURLParam('raw') == '1'){ jQuery('div#RDFExtractor').addClass('raw'); } jQuery('#RDFExtractorContent').click(function(){ var H = 200; if(jQuery(this).height()!=H){ jQuery(this).animate({ height:"200px" } ,"fast" ); }else{ //jQuery(this).animate({ height:"48px" } ,"fast" ); } }); jQuery('#RDFExtractorShowExplicit').click(function(){ if(jQuery('#RDFExtractorShowExplicit:checked').size()){ jQuery(".explicit").show(); }else{ jQuery(".explicit").hide(); } }); jQuery('#RDFExtractorShowImplicit').click(function(){ if(jQuery('#RDFExtractorShowImplicit:checked').size()){ jQuery(".implicit").show(); }else{ jQuery(".implicit").hide(); } }); jQuery("#serializedGraphFormat").change(function(){ var id = jQuery(this).val(); jQuery(".serializedGraphContainer").hide(); jQuery("#"+id).show(); }); prettyPrint(); });