<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://ceur-ws.bitplan.com/index.php?action=history&amp;feed=atom&amp;title=TopicGenerator</id>
	<title>TopicGenerator - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://ceur-ws.bitplan.com/index.php?action=history&amp;feed=atom&amp;title=TopicGenerator"/>
	<link rel="alternate" type="text/html" href="http://ceur-ws.bitplan.com/index.php?title=TopicGenerator&amp;action=history"/>
	<updated>2026-04-04T01:09:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>http://ceur-ws.bitplan.com/index.php?title=TopicGenerator&amp;diff=103&amp;oldid=prev</id>
		<title>Wf: transfered by WikiBackup wikiTask at 2020-07-20T07:29:28Z</title>
		<link rel="alternate" type="text/html" href="http://ceur-ws.bitplan.com/index.php?title=TopicGenerator&amp;diff=103&amp;oldid=prev"/>
		<updated>2020-07-20T07:29:28Z</updated>

		<summary type="html">&lt;p&gt;transfered by WikiBackup wikiTask at 2020-07-20T07:29:28Z&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
=== dialog ===&lt;br /&gt;
&amp;lt;source lang='java' id='dialog' cache='false'&amp;gt;&lt;br /&gt;
@// Copyright (c) 2016 BITPlan GmbH&lt;br /&gt;
@// &lt;br /&gt;
@// This is a Wikitask / Rythm template that&lt;br /&gt;
@// displays an AJAX GUI for generating SmartMediaWiki results&lt;br /&gt;
@// &lt;br /&gt;
@import org.sidif.wiki.Reference&lt;br /&gt;
@import org.sidif.wiki.ReferenceManager&lt;br /&gt;
@import org.sidif.wiki.Source&lt;br /&gt;
@import org.sidif.wiki.PageCache&lt;br /&gt;
@import org.sidif.wiki.WikiTask&lt;br /&gt;
@import com.bitplan.mediawiki.japi.api.Page&lt;br /&gt;
@import com.bitplan.mediawiki.japi.api.Rev&lt;br /&gt;
@include(wiki.SiDIFTemplates.defs)&lt;br /&gt;
@include(wiki.SiDIFTemplates.dialogdefs)&lt;br /&gt;
@// get a link for the given pagetitle&lt;br /&gt;
@def String getLink(String pageTitle, int revid) {&lt;br /&gt;
  String link=wikiTask.getServer()+wikiTask.getScriptpath()+&amp;quot;/index.php?title=&amp;quot;+urlEncode(pageTitle);&lt;br /&gt;
  if (revid&amp;gt;0) {&lt;br /&gt;
    link+=&amp;quot;&amp;amp;oldid=&amp;quot;+revid;&lt;br /&gt;
  }&lt;br /&gt;
  return link;&lt;br /&gt;
}&lt;br /&gt;
@// get the parameters for the wikitask&lt;br /&gt;
@def String getWikiTaskParams(String engine) {&lt;br /&gt;
  String params=&amp;quot;?server=&amp;quot;+urlEncode(wikiTask.getServer());&lt;br /&gt;
  params+=&amp;quot;&amp;amp;scriptpath=&amp;quot;+urlEncode(wikiTask.getScriptpath());&lt;br /&gt;
  params+=&amp;quot;&amp;amp;page=&amp;quot;+urlEncode(wikiTask.getPageTitle());&lt;br /&gt;
  params+=&amp;quot;&amp;amp;engine=&amp;quot;+engine;&lt;br /&gt;
  return params;&lt;br /&gt;
}&lt;br /&gt;
@// run the given wikitask command&lt;br /&gt;
@def doWikiTaskCmd(String cmd, String param) {&lt;br /&gt;
@{ &lt;br /&gt;
  String icon=&amp;quot;component&amp;quot;;&lt;br /&gt;
  String engine=&amp;quot;Freemarker&amp;quot;;&lt;br /&gt;
  if (&amp;quot;runtemplate&amp;quot;.equals(cmd)){ icon=&amp;quot;media_play_green.png&amp;quot;; }&lt;br /&gt;
  if (&amp;quot;reset&amp;quot;.equals(cmd))      { icon=&amp;quot;refresh&amp;quot;; }&lt;br /&gt;
  if (&amp;quot;help&amp;quot;.equals(cmd))       { icon=&amp;quot;help&amp;quot;; }&lt;br /&gt;
  if (&amp;quot;debug&amp;quot;.equals(cmd))      { icon=&amp;quot;wrench&amp;quot;; }&lt;br /&gt;
  if (&amp;quot;refreshRef&amp;quot;.equals(cmd)) { icon=&amp;quot;refresh&amp;quot;; }&lt;br /&gt;
  String params=getWikiTaskParams(engine);&lt;br /&gt;
}&lt;br /&gt;
  &amp;lt;a href='@(cmd)@(params)'&amp;gt;@(stockicon(icon,48,cmd,cmd))&amp;lt;/a&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// run the given wikitask command&lt;br /&gt;
@def wikiTaskCmd(String cmd) {&lt;br /&gt;
  @doWikiTaskCmd(cmd,null)&lt;br /&gt;
}&lt;br /&gt;
@// run the given wikitask command with a parameter&lt;br /&gt;
@def wikiTaskCmd(String cmd, String param) {&lt;br /&gt;
  @doWikiTaskCmd(cmd,param)&lt;br /&gt;
}&lt;br /&gt;
@// add styles for the generator&lt;br /&gt;
@def generatorStyle(String i_____) {&lt;br /&gt;
@(i_____)  &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
@(i_____)    // progress text that comes with progress bars&lt;br /&gt;
@(i_____)    // see http://stackoverflow.com/questions/12452594/how-can-i-add-label-inside-a-progress-bar-tag&lt;br /&gt;
@(i_____)    span.progresstext {&lt;br /&gt;
@(i_____)    font-family:'Arial';&lt;br /&gt;
@(i_____)    position:relative;&lt;br /&gt;
@(i_____)    top:-1.5em;&lt;br /&gt;
@(i_____)    margin-left:50%;;&lt;br /&gt;
@(i_____)    font-size:small;&lt;br /&gt;
@(i_____)  }&lt;br /&gt;
@(i_____)  &amp;lt;/style&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// scripts for generators&lt;br /&gt;
@def generatorScript() {    &lt;br /&gt;
&amp;lt;script&amp;gt;      &lt;br /&gt;
       // JavaScript support for Y-Principle TopicGenerator&lt;br /&gt;
       // convert a string to make the first char lower case&lt;br /&gt;
       function firstToLower(string) {&lt;br /&gt;
         return string.charAt(0).toLowerCase() + string.slice(1);&lt;br /&gt;
       } &lt;br /&gt;
       // get the div where responses are shown&lt;br /&gt;
       function getResponseDiv() {&lt;br /&gt;
         var result=document.getElementById(&amp;quot;response&amp;quot;);&lt;br /&gt;
         return result;&lt;br /&gt;
       }&lt;br /&gt;
       // get the div where errors are shown&lt;br /&gt;
       function getErrorDiv() {        &lt;br /&gt;
         var result=document.getElementById(&amp;quot;errorMessage&amp;quot;);&lt;br /&gt;
         return result;&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       // get the checkBox jquery object with the given id&lt;br /&gt;
       function getGeneratorElement(generatorId,postfix) {&lt;br /&gt;
         var result=$(&amp;quot;#&amp;quot;+generatorId+postfix);&lt;br /&gt;
         return result;&lt;br /&gt;
       }&lt;br /&gt;
       // clear the given div&lt;br /&gt;
       function clearDiv(div) {&lt;br /&gt;
         div.innerHTML='';&lt;br /&gt;
       }&lt;br /&gt;
       // add a TextElement with the given tag and message to the given parent&lt;br /&gt;
       function newTextElement(tag,msg) {&lt;br /&gt;
       	 var newElement=document.createElement(tag);&lt;br /&gt;
         var content = document.createTextNode(msg);&lt;br /&gt;
         newElement.appendChild(content);&lt;br /&gt;
         return newElement;&lt;br /&gt;
       }&lt;br /&gt;
       // add a message to the given div&lt;br /&gt;
       function addMessage(div, msg) {&lt;br /&gt;
       	 var newElement=newTextElement('pre',msg);&lt;br /&gt;
       	 div.appendChild(newElement);&lt;br /&gt;
       	 return newElement;&lt;br /&gt;
       }&lt;br /&gt;
       // progress on transfers from the server to the client (downloads)&lt;br /&gt;
       // see https://developer.mozilla.org/de/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest&lt;br /&gt;
       function updateProgress (oEvent) {&lt;br /&gt;
         if (oEvent.lengthComputable) {&lt;br /&gt;
           var percentComplete = oEvent.loaded / oEvent.total;&lt;br /&gt;
           // ...&lt;br /&gt;
         } else {&lt;br /&gt;
           // Unable to compute progress information since the total size is unknown&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
       // show an error Message&lt;br /&gt;
       // param errMsg: the message to show&lt;br /&gt;
       function errorMessage(errMsg) {&lt;br /&gt;
         var errDiv=getErrorDiv();&lt;br /&gt;
         if (errDiv!=null) {&lt;br /&gt;
           addMessage(errDiv,errMsg);&lt;br /&gt;
           errDiv.style.display = 'block';&lt;br /&gt;
         } else {&lt;br /&gt;
           alert(errMsg); &lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
       // flag an error for the given id&lt;br /&gt;
       function flagError(id,msg) {&lt;br /&gt;
       	 setProgress(id,0,&amp;quot;&amp;quot;);&lt;br /&gt;
         var checkBox=getGeneratorElement(id,&amp;quot;&amp;quot;);&lt;br /&gt;
         var progresstext=getGeneratorElement(id,&amp;quot;_progress_pc&amp;quot;);&lt;br /&gt;
         var errorSpan=newTextElement('span','⚠ '+msg);&lt;br /&gt;
         errorSpan.style='color:red;font-size:14px';&lt;br /&gt;
         progresstext[0].appendChild(errorSpan);&lt;br /&gt;
         return checkBox;&lt;br /&gt;
       }&lt;br /&gt;
       // handle an error that has been thrown&lt;br /&gt;
       function handleError(err,id) {&lt;br /&gt;
       	 flagError(id,err.message);&lt;br /&gt;
       	 // abusing checkBox as data lookup &lt;br /&gt;
       	 var checkBox=getGeneratorElement(id,&amp;quot;&amp;quot;);&lt;br /&gt;
       	 var errMessage=checkBox[0].name+&amp;quot; ERROR:&amp;quot;+err.code+&amp;quot; &amp;quot;+err.name+&amp;quot; '&amp;quot;+err.message+&amp;quot;' line:&amp;quot;+err.lineNumber;&lt;br /&gt;
       	 errorMessage(errMessage);&lt;br /&gt;
       }&lt;br /&gt;
       // get the class name of the given object&lt;br /&gt;
       function getClass(obj) {&lt;br /&gt;
         if (typeof obj === &amp;quot;undefined&amp;quot;)&lt;br /&gt;
           return &amp;quot;undefined&amp;quot;;&lt;br /&gt;
         if (obj === null)&lt;br /&gt;
           return &amp;quot;null&amp;quot;;&lt;br /&gt;
         return Object.prototype.toString.call(obj)&lt;br /&gt;
           .match(/^\[object\s(.*)\]$/)[1];&lt;br /&gt;
       }&lt;br /&gt;
       // send the given form&lt;br /&gt;
       function sendForm(formData,action,id) {&lt;br /&gt;
         try {&lt;br /&gt;
           var oReq = new XMLHttpRequest();&lt;br /&gt;
           oReq.addEventListener('progress', updateProgress, false);&lt;br /&gt;
           oReq.addEventListener('load', transferComplete, false);&lt;br /&gt;
           oReq.addEventListener('error', transferFailed, false);&lt;br /&gt;
           oReq.addEventListener('abort', transferCanceled, false);&lt;br /&gt;
           oReq.onload = ajaxSuccess;&lt;br /&gt;
           // http://stackoverflow.com/questions/921198/get-request-url-from-xhr-object&lt;br /&gt;
           var xhrProto = XMLHttpRequest.prototype,&lt;br /&gt;
           origOpen = xhrProto.open;&lt;br /&gt;
 &lt;br /&gt;
           xhrProto.open = function (method, url, async) {&lt;br /&gt;
             this._url = url;&lt;br /&gt;
             this._id = id;&lt;br /&gt;
             return origOpen.apply(this,arguments);&lt;br /&gt;
           };&lt;br /&gt;
           var async=true;&lt;br /&gt;
           oReq.open('POST', action, async,id);&lt;br /&gt;
           // important - this makes the request a non-simple request with CORS&lt;br /&gt;
           // oReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');&lt;br /&gt;
           // user defined header forces CORS?&lt;br /&gt;
           oReq.setRequestHeader('Header-Custom-WikitaskCORS', 'OK');&lt;br /&gt;
           oReq.setRequestHeader('Accept','application/json');&lt;br /&gt;
           oReq.send(formData);&lt;br /&gt;
         } catch(err) {&lt;br /&gt;
           handleError(err,id);&lt;br /&gt;
         }&lt;br /&gt;
         return false; // Prevent direct form page button submit action&lt;br /&gt;
       }&lt;br /&gt;
       // set the progress for the given check box id&lt;br /&gt;
       // and return the progress bar&lt;br /&gt;
       function setProgress(checkBoxId,progress,percent) {&lt;br /&gt;
         var checkBox=getGeneratorElement(checkBoxId,&amp;quot;&amp;quot;);&lt;br /&gt;
         var progressbar=getGeneratorElement(checkBoxId,&amp;quot;_progress&amp;quot;);&lt;br /&gt;
         var progresstext=getGeneratorElement(checkBoxId,&amp;quot;_progress_pc&amp;quot;);&lt;br /&gt;
         // console.log(progressbar);&lt;br /&gt;
         // FIXME - do a true progress&lt;br /&gt;
         // progressbar.val(progress);&lt;br /&gt;
         if (progress==0) {&lt;br /&gt;
           progressbar[0].style.display = 'none';&lt;br /&gt;
         } else {&lt;br /&gt;
           progressbar[0].style.display = 'block';&lt;br /&gt;
         }&lt;br /&gt;
         progresstext[0].textContent=percent;&lt;br /&gt;
         return progressbar;&lt;br /&gt;
       }&lt;br /&gt;
       // start the generator for the given form, contextSetting, contextname, template and targetpage&lt;br /&gt;
       function startGenerator(form,contextSettingTxt,contextname,topic,template,targetpage,id) {&lt;br /&gt;
         var formData = new FormData(form);&lt;br /&gt;
         formData.append('server', &amp;quot;@(wikiTask.getServer())&amp;quot;);&lt;br /&gt;
         formData.append('scriptpath', &amp;quot;/@(wikiTask.getScriptpath())&amp;quot;);&lt;br /&gt;
         formData.append('engine', 'Rythm');&lt;br /&gt;
         formData.append('input', 'sidif');&lt;br /&gt;
         formData.append('page','Topic');&lt;br /&gt;
         var action=form.action;&lt;br /&gt;
         // action=&lt;br /&gt;
         // action=&amp;quot;http://phobos.bitplan.com:9089/wikiserver/task/runtemplate&amp;quot;;&lt;br /&gt;
         formData.append('template',template);&lt;br /&gt;
         formData.append('targetpage',targetpage);&lt;br /&gt;
         formData.append('id',id);&lt;br /&gt;
         // set the params from the contextSettings&lt;br /&gt;
         // e.g. wikiId:capri,sidifInput:Topic#sidif,contextName:MetaModel,maintopicName:Topic&lt;br /&gt;
         var contextSetting=JSON.parse(contextSettingTxt);&lt;br /&gt;
         contextSetting.maintopicName=topic;&lt;br /&gt;
         var contextSettingJson=JSON.stringify(contextSetting)&lt;br /&gt;
         formData.append('params',contextSettingJson);&lt;br /&gt;
         sendForm(formData,action,id);&lt;br /&gt;
       }&lt;br /&gt;
       // start the generators for the given form&lt;br /&gt;
       function startGenerators(form) {&lt;br /&gt;
         clearDiv(getErrorDiv());&lt;br /&gt;
         clearDiv(getResponseDiv());&lt;br /&gt;
 &lt;br /&gt;
         var generatorchecks= $(&amp;quot;.checkBoxClass:checked&amp;quot;);&lt;br /&gt;
         generatorchecks.each(function(){&lt;br /&gt;
           setProgress(this.id,1,&amp;quot;&amp;quot;);&lt;br /&gt;
           // targetPage is the name of the checkbox&lt;br /&gt;
           var template=this.value;&lt;br /&gt;
           var ytname=$(this).attr(&amp;quot;yt&amp;quot;)&lt;br /&gt;
           var target=$(this).attr(&amp;quot;target&amp;quot;);&lt;br /&gt;
           var contextname=$(this).attr(&amp;quot;context&amp;quot;);&lt;br /&gt;
           var contextSetting=$(this).attr(&amp;quot;contextsetting&amp;quot;);&lt;br /&gt;
           var id=this.id;&lt;br /&gt;
           // split e.g. Template_Context;&lt;br /&gt;
           var split = id.split('__');&lt;br /&gt;
           // FIXME use yt and topic and generator objects instead&lt;br /&gt;
           var topic=split[1]; &lt;br /&gt;
           startGenerator(form,contextSetting,contextname,topic,template,target,id);&lt;br /&gt;
         });&lt;br /&gt;
         return false;&lt;br /&gt;
       }&lt;br /&gt;
       // get SiDIF&lt;br /&gt;
       function getSiDIF(lbutton) {&lt;br /&gt;
         // {{wikitask&lt;br /&gt;
         // |cmd=runtemplate&lt;br /&gt;
         // |engine=Rythm&lt;br /&gt;
         // |input=sidif&lt;br /&gt;
         // |dialog=TopicGenerator#dialog&lt;br /&gt;
         // |template=TopicGenerator#template&lt;br /&gt;
         // |params=tripleStoreMode:SMW,contextName:{{{context|}}}&lt;br /&gt;
         // |targetpage=TopicGenerator2015/{{{context|}}}}}&lt;br /&gt;
         var contextSetting=JSON.parse(lbutton.value);&lt;br /&gt;
         var params='@(getWikiTaskParams(&amp;quot;Rythm&amp;quot;))';&lt;br /&gt;
         var wikiTaskLink=&amp;quot;runtemplate&amp;quot;+params;&lt;br /&gt;
         wikiTaskLink+=&amp;quot;&amp;amp;input=&amp;quot;+encodeURIComponent(contextSetting.sidifInput);&lt;br /&gt;
         wikiTaskLink+=&amp;quot;&amp;amp;dialog=&amp;quot;+encodeURIComponent(&amp;quot;TopicGenerator#dialog&amp;quot;);&lt;br /&gt;
         wikiTaskLink+=&amp;quot;&amp;amp;template=&amp;quot;+encodeURIComponent(&amp;quot;TopicGenerator#template&amp;quot;);&lt;br /&gt;
         wikiTaskLink+=&amp;quot;&amp;amp;targetpage=&amp;quot;+encodeURIComponent(&amp;quot;TopicGenerator2015/&amp;quot;+contextSetting.contextName);&lt;br /&gt;
         wikiTaskLink+=&amp;quot;&amp;amp;params=tripleStoreMode:&amp;quot;+contextSetting.tripleStoreMode;&lt;br /&gt;
         wikiTaskLink+=&amp;quot;,contextName:&amp;quot;+encodeURIComponent(contextSetting.contextName);&lt;br /&gt;
         wikiTaskLink+=&amp;quot;,sidifInput:&amp;quot;+encodeURIComponent(contextSetting.sidifInput);&lt;br /&gt;
         // console.log(wikiTaskLink);&lt;br /&gt;
         window.location.replace(wikiTaskLink);&lt;br /&gt;
       }&lt;br /&gt;
       // show the given event with the given message&lt;br /&gt;
       function showEvent(evt, msg) {&lt;br /&gt;
       	 var doshow=true;&lt;br /&gt;
         if (evt.target instanceof XMLHttpRequest) {&lt;br /&gt;
           var xhr=evt.target;&lt;br /&gt;
           msg+=&amp;quot; target=&amp;quot;+xhr._url;&lt;br /&gt;
           msg+=&amp;quot; responseType=&amp;quot;+xhr.responseType;&lt;br /&gt;
           msg+=&amp;quot; status=&amp;quot;+xhr.status;&lt;br /&gt;
           if (xhr.status==200) {&lt;br /&gt;
             doshow=false;&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
         if (doshow) {&lt;br /&gt;
           errorMessage(evt.type+&amp;quot; &amp;quot;+getClass(evt.target)+&amp;quot;: &amp;quot;+msg);&lt;br /&gt;
         }&lt;br /&gt;
         return evt.target;&lt;br /&gt;
       }&lt;br /&gt;
       // event when the transfer was successfully completed&lt;br /&gt;
       function ajaxSuccess () {&lt;br /&gt;
         var json=this.responseText;&lt;br /&gt;
         // console.log(json);&lt;br /&gt;
         try {&lt;br /&gt;
           var jsonResult=JSON.parse(json);  &lt;br /&gt;
           // console.log(jsonResult);&lt;br /&gt;
           var errorMsg=jsonResult.errorMsg;&lt;br /&gt;
           if (errorMsg!=null) {&lt;br /&gt;
             setProgress(jsonResult.id,100,&amp;quot;&amp;quot;);&lt;br /&gt;
             addMessage(getResponseDiv(),errorMsg);&lt;br /&gt;
           } else {&lt;br /&gt;
             setProgress(jsonResult.id,0,&amp;quot;&amp;quot;);&lt;br /&gt;
             var checkBox=getGeneratorElement(jsonResult.id,&amp;quot;&amp;quot;);&lt;br /&gt;
             var progresstext=getGeneratorElement(jsonResult.id,&amp;quot;_progress_pc&amp;quot;);&lt;br /&gt;
             var target=$(&amp;quot;#&amp;quot;+jsonResult.id).attr(&amp;quot;target&amp;quot;);&lt;br /&gt;
             var targetRef=newTextElement('a',target);&lt;br /&gt;
             targetRef.href=jsonResult.targetUrl;&lt;br /&gt;
             targetRef.style='font-size:12px';&lt;br /&gt;
             var doneSpan=newTextElement('span','✓');&lt;br /&gt;
             doneSpan.style='color:green;font-size:14px';&lt;br /&gt;
             progresstext[0].appendChild(targetRef);&lt;br /&gt;
             progresstext[0].appendChild(doneSpan);&lt;br /&gt;
             var deltaRef=newTextElement('a','Δ');&lt;br /&gt;
             deltaRef.style='font-size:12px';&lt;br /&gt;
             var revid=$(&amp;quot;#&amp;quot;+jsonResult.id+&amp;quot;_rev&amp;quot;).attr(&amp;quot;revid&amp;quot;);&lt;br /&gt;
             deltaRef.href=jsonResult.targetUrl+&amp;quot;?diff=cur&amp;amp;oldid=&amp;quot;+revid;&lt;br /&gt;
             progresstext[0].appendChild(deltaRef);&lt;br /&gt;
           }&lt;br /&gt;
         } catch (ex) {&lt;br /&gt;
            alert(ex.message+&amp;quot;\njson=&amp;quot;+json);&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
       // event when transfer is complete&lt;br /&gt;
       function transferComplete(evt) {&lt;br /&gt;
         showEvent(evt,&amp;quot;transfer complete&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
       // event when the transfer failed&lt;br /&gt;
       function transferFailed(evt) {&lt;br /&gt;
         var xhr=showEvent(evt,&amp;quot;transfer failed&amp;quot;);&lt;br /&gt;
         if (xhr instanceof XMLHttpRequest) {&lt;br /&gt;
         	 flagError(xhr._id,&amp;quot;transfer failed&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
       // event when the transer was cancelled&lt;br /&gt;
       function transferCanceled(evt) {&lt;br /&gt;
         showEvent(evt,&amp;quot;transfer canceled&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
     &amp;lt;/script&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// run the selected generators&lt;br /&gt;
@def runGenerators() {&lt;br /&gt;
@{&lt;br /&gt;
  String icon=&amp;quot;media_play_green&amp;quot;;&lt;br /&gt;
  String cmd=&amp;quot;run&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
    &amp;lt;button type='submit' name='@cmd' value='@cmd' title='@cmd' onclick=&amp;quot;return startGenerators(this.form);&amp;quot;&amp;gt;&lt;br /&gt;
      @(stockicon(icon,32,cmd,cmd))&lt;br /&gt;
    &amp;lt;/button&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// display the given Reference as a row&lt;br /&gt;
@def referenceRow(Reference ref) {&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;@(wikiTaskCmd(&amp;quot;refreshRef&amp;quot;,ref.getReferenceId()))&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;a href='@(ref.getUrl())'&amp;gt;@(ref.getReferenceId())&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;@(ref.getReferenceType().toString())&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;@(ref.getAge())&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;@(ref.isAvailable())&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;@if(ref.getContent()) { @(ref.getContent().length()) } else { - }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// display the given Source as a row&lt;br /&gt;
@def sourceRow(Source source) {&lt;br /&gt;
      &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;@(source.getId())&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;@(source.getPageTitle())&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;@(source.getAge())&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;@(source.isCache())&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;@(source.getSource().length())&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// display the table of PageCache entries &lt;br /&gt;
@def pageCacheTable(PageCache pageCache,String indent) {&lt;br /&gt;
@(indent)&amp;lt;table class=&amp;quot;table tablesorter sortable&amp;quot;&amp;gt;&lt;br /&gt;
@(indent)&amp;lt;thead&amp;gt;&lt;br /&gt;
@(indent)  &amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;page&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;rev&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;timestamp&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
@(indent)&amp;lt;/thead&amp;gt;&lt;br /&gt;
@(indent)&amp;lt;tbody&amp;gt;&lt;br /&gt;
@{&lt;br /&gt;
  List&amp;lt;String&amp;gt; pageTitles = new ArrayList&amp;lt;String&amp;gt;(pageCache.getCachedPages().keySet());&lt;br /&gt;
}&lt;br /&gt;
@for (String pageTitle:pageTitles) {&lt;br /&gt;
@{&lt;br /&gt;
  Page page=pageCache.getCachedPages().get(pageTitle);&lt;br /&gt;
  Rev rev = PageCache.getPageRevision(page);&lt;br /&gt;
  int revid=-1;&lt;br /&gt;
  String timeStamp=&amp;quot;?&amp;quot;;&lt;br /&gt;
  if (rev!=null)  {&lt;br /&gt;
    revid=rev.getRevid();&lt;br /&gt;
    timeStamp=rev.getTimestamp();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
@(indent)  &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;@showLink(pageTitle, 0, &amp;quot;Cache0_&amp;quot;+revid, &amp;quot;&amp;quot;)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;@showLink(pageTitle, revid, &amp;quot;Cache_&amp;quot;+revid, &amp;quot;&amp;quot;)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;@(timeStamp)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@(indent)&amp;lt;/tbody&amp;gt;&lt;br /&gt;
@(indent)&amp;lt;/table&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// display the table of references and sources&lt;br /&gt;
@def referenceTable(ReferenceManager rm) {&lt;br /&gt;
           &amp;lt;table class=&amp;quot;table tablesorter sortable&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;thead&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;id&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;age&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;cache&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;size&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/thead&amp;gt;&lt;br /&gt;
              &amp;lt;tbody&amp;gt;&lt;br /&gt;
                @for (Reference reference:rm.referenceByReferenceId.values()) {&lt;br /&gt;
                  @referenceRow(reference)&lt;br /&gt;
                  @if (rm.getSourceById().get(reference.getReferenceId())!=null) {&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&amp;lt;th colspan='3'&amp;gt;Sources by Id&amp;lt;/th&amp;gt;&lt;br /&gt;
                    @for (Source source:wikiTask.referenceManager.getSourceById().get(reference.getReferenceId()).values()) {&lt;br /&gt;
                      @sourceRow(source)&lt;br /&gt;
                    }   &lt;br /&gt;
                  }&lt;br /&gt;
                  @if (rm.getSourceBySection().get(reference.getAnchor())!=null) {&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&amp;lt;th colspan='3'&amp;gt;Sources by Section&amp;lt;/th&amp;gt;&lt;br /&gt;
                    @for (Source source:wikiTask.referenceManager.getSourceBySection().get(reference.getAnchor()).values()) {&lt;br /&gt;
                      @sourceRow(source)&lt;br /&gt;
                    }   &lt;br /&gt;
                  }&lt;br /&gt;
                }&lt;br /&gt;
              &amp;lt;/tbody&amp;gt;           &lt;br /&gt;
           &amp;lt;/table&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// show a link for the given pageTitle and revision id&lt;br /&gt;
@def showLink(String pageTitle,int revid, String id, String indent) {&lt;br /&gt;
@{&lt;br /&gt;
  // default is unknown revision red link / create page approach&lt;br /&gt;
  String revname=&amp;quot;click to create&amp;quot;;&lt;br /&gt;
  String style=&amp;quot;style='color:red'&amp;quot;;&lt;br /&gt;
  if (revid&amp;gt;=0) {&lt;br /&gt;
    style=&amp;quot;style='font-size: 12px'&amp;quot;; // normal link but small font&lt;br /&gt;
    revname=&amp;quot;Rev &amp;quot;+revid;&lt;br /&gt;
  }&lt;br /&gt;
  String link=getLink(pageTitle,revid);&lt;br /&gt;
}&lt;br /&gt;
@(indent)&amp;lt;a href='@(link)' id='@(id)' revid='@(revid)' title='@(revname)' @(style)&amp;gt;@(pageTitle)&amp;lt;/a&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// show the page status link&lt;br /&gt;
@def pageStatusLink(Topic topic,YT yt,Map&amp;lt;String, Page&amp;gt; statusMap) {&lt;br /&gt;
@{&lt;br /&gt;
  String pageTitle=yt.getPageTitle(topic);&lt;br /&gt;
  Page page=statusMap.get(pageTitle);&lt;br /&gt;
  int revid = -1;&lt;br /&gt;
  if (page != null) {&lt;br /&gt;
    Rev rev = PageCache.getPageRevision(page);&lt;br /&gt;
    if (rev!=null) {&lt;br /&gt;
      revid = rev.getRevid();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
  @showLink(pageTitle, revid, yt.name+&amp;quot;__&amp;quot;+topic.name+&amp;quot;_rev&amp;quot;, &amp;quot;             &amp;quot;) &lt;br /&gt;
}&lt;br /&gt;
@// show a single row of generators for a given domain topic&lt;br /&gt;
@def topicRow(ContextSetting contextSetting,Context context,Topic topic,Map&amp;lt;String, Page&amp;gt; statusMap,YT[] yts, int rownum) {&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;th&amp;gt;@(topic.name)&amp;lt;div style=&amp;quot;margin: 0 auto; width: 48px&amp;quot;&amp;gt;&amp;lt;img src='@(wikiTask.getServer())@(wikiTask.getScriptpath())@(topic.iconUrl)' alt='@(topic.name)'&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;label&amp;gt;&amp;lt;input class='checkboxSelect' type='checkbox' id=&amp;quot;select_row_@(rownum)&amp;quot; title='select row'/&amp;gt;→&amp;lt;/label&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      @{ int colnum=0;}&lt;br /&gt;
      @for(YT yt:yts) {&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;label for='@(yt.name)_@(topic.name)'&amp;gt;&lt;br /&gt;
              &amp;lt;input type=&amp;quot;checkbox&amp;quot; class=&amp;quot;checkBoxClass row_@(rownum) col_@(colnum)&amp;quot; contextsetting='@contextSetting.toJson()' context='@(context.name)' target='@yt.getPageTitle(topic)' yt='@(yt.name)' topic='@(topic.name)' id='@(yt.name)__@(topic.name)' name='@(yt.name):@(topic.name)' title='generate @(yt.getPageTitle(topic))' value=&amp;quot;SiDIFTemplates#@(yt.template)&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;/label&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
             @pageStatusLink(topic,yt,statusMap)&lt;br /&gt;
             &amp;lt;progress id='@(yt.name)__@(topic.name)_progress' max='10' title='@(yt.name):@(topic.name)' style='display:none'&amp;gt;&amp;lt;/progress&amp;gt;&lt;br /&gt;
             &amp;lt;span id='@(yt.name)__@(topic.name)_progress_pc' class='progresstext'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
        @{ colnum++;}&lt;br /&gt;
      }&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@// display the generators&lt;br /&gt;
@// sortable disabled - doesn't seem to work with selectAll logic&lt;br /&gt;
@def showGeneratorTasks(WikiTask wikiTask,ContextSetting contextSetting) {&lt;br /&gt;
@{ &lt;br /&gt;
  Context context=ContextFactory.getInstance().getContext(contextSetting);&lt;br /&gt;
  List&amp;lt;String&amp;gt; pageTitles = new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;
  if (context!=null) {&lt;br /&gt;
    for (YT yt : YT.yts) {&lt;br /&gt;
      for (Topic topic : context.getTopics()) {&lt;br /&gt;
        pageTitles.add(yt.getPageTitle(topic));&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  Map&amp;lt;String, Page&amp;gt; statusMap = wikiTask.referenceManager.getPageCache()&lt;br /&gt;
        .updatePageStatus(pageTitles, true);&lt;br /&gt;
}&lt;br /&gt;
  &amp;lt;h3&amp;gt;@(contextSetting.getTripleStoreMode())&amp;lt;/h3&amp;gt;&lt;br /&gt;
@if (context) {&lt;br /&gt;
  &amp;lt;form action='#'&amp;gt;&lt;br /&gt;
    &amp;lt;table class=&amp;quot;table tablesorter tablesorter-blue&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;thead&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;th width='12%'&amp;gt;@(runGenerators())&amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;th&amp;gt;Targets&lt;br /&gt;
          &amp;lt;/th&amp;gt;&lt;br /&gt;
    @for(YT yt:YT.yts) {&lt;br /&gt;
          &amp;lt;th colspan='2' style=&amp;quot;text-align:center&amp;quot;&amp;gt;@(yt.label)&amp;lt;/th&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
    @{ int colnum=0;}&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;th class='{sorter: false}'&amp;gt;Topics&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;div id='reloadbuttoncontainer' style='width:80px;display:inline-block' &amp;gt;&lt;br /&gt;
	      &amp;lt;button onclick='getSiDIF(this);return false;' value='@ContextSetting.fromWikiTaskAsSiDIF(wikiTask).toJson()'  title='reload from SiDIF' style='display:inline-block'&amp;gt;&lt;br /&gt;
	        &amp;lt;img src='/stockicons/16x16/shadow/arrow_down_blue.png'/&amp;gt;&lt;br /&gt;
	      &amp;lt;/button&amp;gt;&lt;br /&gt;
	      &amp;lt;button onclick='getSiDIF(this);return false;' value='@contextSetting.asSMWContextSetting().toJson()' title='reload from SMW Triples' style='display:inline-block' &amp;gt;&lt;br /&gt;
	        &amp;lt;img src='/stockicons/16x16/shadow/arrow_down_green.png'/&amp;gt;&lt;br /&gt;
	      &amp;lt;/button&amp;gt;&lt;br /&gt;
	    &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;th class='{sorter: false}'&amp;gt;&amp;lt;label&amp;gt;&amp;lt;input type=&amp;quot;checkbox&amp;quot; id=&amp;quot;selectall&amp;quot; name=&amp;quot;selectall&amp;quot; title='select all'/&amp;gt;↘&amp;lt;/label&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
   @for(YT yt:YT.yts) {&lt;br /&gt;
          &amp;lt;th class='{sorter: false}' width='14px'&amp;gt;&amp;lt;label&amp;gt;&amp;lt;input class='checkboxSelect' type='checkbox' id='select_col_@(colnum)' title='select all @(yt.label)'/&amp;gt;↓&amp;lt;/label&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th width='10%'&amp;gt;&amp;lt;div style=&amp;quot;margin: 0 auto; width: 48px&amp;quot;&amp;gt;&amp;lt;img src='@(wikiTask.getServer())@(wikiTask.getScriptpath())@(yt.iconUrl)' alt='@(yt.label)'&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
        @{ colnum++;}&lt;br /&gt;
   }&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;/thead&amp;gt;&lt;br /&gt;
      &amp;lt;tbody id='generatortasktable'&amp;gt;&lt;br /&gt;
    @{ int rownum=0;}&lt;br /&gt;
    @for (Topic topic:context.getTopics()) { &lt;br /&gt;
      @topicRow(contextSetting,context,topic,statusMap,YT.yts,rownum++)&lt;br /&gt;
    }&lt;br /&gt;
      &amp;lt;/tbody&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
@// show the HTML Page for the given context&lt;br /&gt;
@def showHtml(ContextSetting contextSetting) {&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta http-equiv='Content-Type' content='text/html; charset=utf-8'/&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;@(title)&amp;lt;/title&amp;gt;&lt;br /&gt;
@jquery(&amp;quot;    &amp;quot;)&lt;br /&gt;
@style(&amp;quot;    &amp;quot;)&lt;br /&gt;
@selectall()&lt;br /&gt;
@generatorStyle(&amp;quot;    &amp;quot;)&lt;br /&gt;
@generatorScript()&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;lt;div id='container' class='container'&amp;gt;&lt;br /&gt;
       &amp;lt;div id=&amp;quot;dialog&amp;quot; title=&amp;quot;@(title)&amp;quot; &amp;gt;&lt;br /&gt;
         @(wikiTaskCmd(&amp;quot;reset&amp;quot;))@(wikiTaskCmd(&amp;quot;help&amp;quot;))@(wikiTaskCmd(&amp;quot;debug&amp;quot;))&lt;br /&gt;
         &amp;lt;a href='@(wikiTask.getTargetLink().getUrl())'&amp;gt;@(wikiTask.getTargetpage())&amp;lt;/a&amp;gt;&lt;br /&gt;
         called from &amp;lt;a href='@(wikiTask.getServer())@(wikiTask.getScriptpath())/index.php/@(wikiTask.getPageTitle())'&amp;gt;@(wikiTask.getPageTitle())&amp;lt;/a&amp;gt; (@(wikiTask.getDuration()) msecs)&lt;br /&gt;
         &amp;lt;div id=&amp;quot;tabs&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;ul&amp;gt;&lt;br /&gt;
             &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#generators&amp;quot;&amp;gt;Generators&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
             &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#pagecache&amp;quot;&amp;gt;Page-Cache&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
             &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#references&amp;quot;&amp;gt;References&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
           &amp;lt;/ul&amp;gt;&lt;br /&gt;
           &amp;lt;div id=&amp;quot;generators&amp;quot;&amp;gt;&lt;br /&gt;
             @(showGeneratorTasks(wikiTask,contextSetting))&lt;br /&gt;
           &amp;lt;/div&amp;gt;&lt;br /&gt;
           &amp;lt;div id=&amp;quot;pagecache&amp;quot;&amp;gt;&lt;br /&gt;
             @pageCacheTable(wikiTask.referenceManager.getPageCache(),&amp;quot;        &amp;quot;)&lt;br /&gt;
           &amp;lt;/div&amp;gt;&lt;br /&gt;
           &amp;lt;div id=&amp;quot;references&amp;quot;&amp;gt;&lt;br /&gt;
             @referenceTable(wikiTask.referenceManager)&lt;br /&gt;
           &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id='errorMessage' style='color:red;font-size: 14px;border:1px solid red;display:none'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div id='response' style='font-size: 14px;border:1px solid blue'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
     @dialog(&amp;quot;     &amp;quot;)&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@{&lt;br /&gt;
  ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask);&lt;br /&gt;
}&lt;br /&gt;
@showHtml(contextSetting)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== template ===&lt;br /&gt;
&amp;lt;source lang='java' id='template'&amp;gt;&lt;br /&gt;
@include(wiki.SiDIFTemplates.defs)&lt;br /&gt;
@// handle error&lt;br /&gt;
@def handleError(Throwable error) {&lt;br /&gt;
error @(error.getClass().getName()): @(error.getMessage())&lt;br /&gt;
=== stacktrace ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@getStackTrace(error)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@{&lt;br /&gt;
  ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask);&lt;br /&gt;
  Context context=ContextFactory.getInstance().getContext(contextSetting);&lt;br /&gt;
  Context smwContext=ContextFactory.getInstance().getContext(contextSetting.asSMWContextSetting());&lt;br /&gt;
  String contextName=contextSetting.getContextName();&lt;br /&gt;
}&lt;br /&gt;
@if (context==null) {&lt;br /&gt;
Context (sidif): @(contextName) not found in SiDIF&lt;br /&gt;
} else {== SiDIF ==&lt;br /&gt;
=== @(contextName) SiDIF ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@(context.asSiDIF())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== @(contextName) JSON ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@(context.toJson())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
@if (smwContext==null) {&lt;br /&gt;
Context (smw): @(contextName) not found in SMW triples of Wiki&lt;br /&gt;
} else {&lt;br /&gt;
== SMW ==&lt;br /&gt;
=== @(contextName) SiDIF ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@(smwContext.asSiDIF())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== @(contextName) JSON ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@(smwContext.toJson())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wf</name></author>
	</entry>
</feed>