Completed
Push — master ( e8947e...dc23b0 )
by Andreas
15:04
created

static/openpsa.createphp/deps/vie-min.js   F

Complexity

Total Complexity 1089
Complexity/F 2.61

Size

Lines of Code 1
Function Count 417

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 0
nc 0
dl 0
loc 1
rs 3.12
c 0
b 0
f 0
wmc 1089
mnd 7
bc 986
fnc 417
bpm 2.3645
cpm 2.6115
noi 32

How to fix   Complexity   

Complexity

Complex classes like static/openpsa.createphp/deps/vie-min.js often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
/* VIE 2.1.0 may be freely distributed under the MIT license. See http://viejs.org/ for more details. */(function(){var a=this,d=a.jQuery,e=a.Backbone,b=a._;var c=a.VIE=function(f){this.config=(f)?f:{};this.services={};this.jQuery=d;this.entities=new this.Collection([],{vie:this});this.Entity.prototype.entities=this.entities;this.Entity.prototype.entityCollection=this.Collection;this.Entity.prototype.vie=this;this.Namespaces.prototype.vie=this;this.namespaces=new this.Namespaces((this.config.baseNamespace)?this.config.baseNamespace:"http://viejs.org/ns/",{owl:"http://www.w3.org/2002/07/owl#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",schema:"http://schema.org/",foaf:"http://xmlns.com/foaf/0.1/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",dbpedia:"http://dbpedia.org/ontology/",dbprop:"http://dbpedia.org/property/",skos:"http://www.w3.org/2004/02/skos/core#",xsd:"http://www.w3.org/2001/XMLSchema#",sioc:"http://rdfs.org/sioc/ns#",dcterms:"http://purl.org/dc/terms/"});this.Type.prototype.vie=this;this.Types.prototype.vie=this;this.Attribute.prototype.vie=this;this.Attributes.prototype.vie=this;this.types=new this.Types();this.types.add("owl:Thing");if(this.config.classic===true){this.RDFa=new this.ClassicRDFa(this);this.RDFaEntities=new this.ClassicRDFaEntities(this);this.EntityManager=new this.ClassicEntityManager(this);this.cleanup=function(){this.entities.reset()}}};c.prototype.use=function(f,g){if(!g&&!f.name){throw new Error("Please provide a name for the service!")}f.vie=this;f.name=(g)?g:f.name;if(f.init){f.init()}this.services[f.name]=f;return this};c.prototype.service=function(f){if(!this.hasService(f)){throw"Undefined service "+f}return this.services[f]};c.prototype.hasService=function(f){if(!this.services[f]){return false}return true};c.prototype.getServicesArray=function(){return b.map(this.services,function(f){return f})};c.prototype.load=function(f){if(!f){f={}}f.vie=this;return new this.Loadable(f)};c.prototype.save=function(f){if(!f){f={}}f.vie=this;return new this.Savable(f)};c.prototype.remove=function(f){if(!f){f={}}f.vie=this;return new this.Removable(f)};c.prototype.analyze=function(f){if(!f){f={}}f.vie=this;return new this.Analyzable(f)};c.prototype.find=function(f){if(!f){f={}}f.vie=this;return new this.Findable(f)};c.prototype.loadSchema=function(g,f){f=(!f)?{}:f;if(!g){throw new Error("Please provide a proper URL")}else{var h=this;d.getJSON(g).success(function(i){try{c.Util.loadSchemaOrg(h,i,f.baseNS);if(f.success){f.success.call(h)}}catch(j){f.error.call(h,j);return}}).error(function(j,k,i){if(f.error){console.warn(j,k,i);f.error.call(h,"Could not load schema from URL ("+g+")")}})}return this};c.prototype.getTypedEntityClass=function(h){var g=this.types.get(h);if(!g){throw new Error("Unknown type "+h)}var f=function(i,j){if(!i){i={}}i["@type"]=h;this.set(i,j)};f.prototype=new this.Entity();f.prototype.schema=function(){return c.Util.getFormSchemaForType(g)};return f};if(typeof exports==="object"){exports.VIE=c;if(!d){d=require("jquery")}if(!e){e=require("backbone");e.setDomLibrary(d)}if(!b){b=require("underscore")._}}c.prototype.Able=function(){this.init=function(g,f){this.options=g;this.services=g.from||g.using||g.to||[];this.vie=g.vie;this.methodName=f;this.deferred=d.Deferred();this.resolve=this.deferred.resolve;this.resolveWith=this.deferred.resolveWith;this.reject=this.deferred.reject;this.rejectWith=this.deferred.rejectWith;this.success=this.done=this.deferred.done;this.fail=this.deferred.fail;this.then=this.deferred.then;this.always=this.deferred.always;this.from=this.using;this.to=this.using;return this};this.using=function(g){var f=this;g=(b.isArray(g))?g:[g];b.each(g,function(h){var i=(typeof h==="string")?f.vie.service(h):h;f.services.push(i)});return this};this.execute=function(){var f=this;b(this.services).each(function(g){g[f.methodName](f)});return this}};c.prototype.Loadable=function(f){this.init(f,"load")};c.prototype.Loadable.prototype=new c.prototype.Able();c.prototype.Savable=function(f){this.init(f,"save")};c.prototype.Savable.prototype=new c.prototype.Able();c.prototype.Removable=function(f){this.init(f,"remove")};c.prototype.Removable.prototype=new c.prototype.Able();c.prototype.Analyzable=function(f){this.init(f,"analyze")};c.prototype.Analyzable.prototype=new c.prototype.Able();c.prototype.Findable=function(f){this.init(f,"find")};c.prototype.Findable.prototype=new c.prototype.Able();c.Util={toCurie:function(g,j,i){if(c.Util.isCurie(g,i)){return g}var l=":";for(var f in i.toObj()){if(g.indexOf(i.get(f))===1){var h=new RegExp("^<?"+i.get(f));if(f===""){l=""}return((j)?"[":"")+g.replace(h,f+l).replace(/>$/,"")+((j)?"]":"")}}throw new Error("No prefix found for URI '"+g+"'!")},isCurie:function(f,g){if(c.Util.isUri(f)){return false}else{try{c.Util.toUri(f,g);return true}catch(h){return false}}},toUri:function(f,i){if(c.Util.isUri(f)){return f}var j=":";for(var h in i.toObj()){if(h!==""&&(f.indexOf(h+":")===0||f.indexOf("["+h+":")===0)){var g=new RegExp("^\\[{0,1}"+h+j);return"<"+f.replace(g,i.get(h)).replace(/\]{0,1}$/,"")+">"}}if(f.indexOf(j)===-1){return"<"+i.base()+f+">"}throw new Error("No prefix found for CURIE '"+f+"'!")},isUri:function(f){return(typeof f==="string"&&f.search(/^<.+>$/)===0)},mapAttributeNS:function(f,h){var g=f;if(h.isUri(f)||f.indexOf("@")===0){}else{if(h.isCurie(f)){g=h.uri(f)}else{if(!h.isUri(f)){if(f.indexOf(":")===-1){g="<"+h.base()+f+">"}else{g="<"+f+">"}}}}return g},rdf2Entities:function(m,g){if(typeof d.rdf!=="function"){return c.Util._rdf2EntitiesNoRdfQuery(m,g)}try{var l=(g instanceof d.rdf)?g.base(m.vie.namespaces.base()):d.rdf().base(m.vie.namespaces.base()).load(g,{});if(m.rules){var p=d.rdf.ruleset();for(var j in m.vie.namespaces.toObj()){if(j!==""){p.prefix(j,m.vie.namespaces.get(j))}}for(var h=0;h<m.rules.length;h++){if(m.rules.hasOwnProperty(h)){var o=m.rules[h];p.add(o.left,o.right)}}l=l.reason(p,10)}var k={};l.where("?subject ?property ?object").each(function(){var q=this.subject.toString();if(!k[q]){k[q]={"@subject":q,"@context":m.vie.namespaces.toObj(true),"@type":[]}}var s=this.property.toString();var t;try{t=m.vie.namespaces.curie(s)}catch(r){t=s}k[q][t]=k[q][t]||[];function i(u){if(typeof u.value==="string"){if(u.lang){var v={toString:function(){return this["@value"]},"@value":u.value.replace(/^"|"$/g,""),"@language":u.lang};return v}else{return u.value}return u.value.toString()}else{if(u.type==="uri"){return u.toString()}else{return u.value}}}k[q][t].push(i(this.object))});b(k).each(function(i){i["@type"]=i["@type"].concat(i["rdf:type"]);delete i["rdf:type"];b(i).each(function(r,q){if(r.length===1){i[q]=r[0]}})});var f=[];d.each(k,function(){var i=new m.vie.Entity(this);i=m.vie.entities.addOrUpdate(i);f.push(i)});return f}catch(n){console.warn("Something went wrong while parsing the returned results!",n);return[]}},getPreferredLangForPreferredProperty:function(k,q,i){var j,t,h,g,s,o,n,r,f,m=this;o=[];b.each(i,function(l){b.each(q,function(p){t=null;if(typeof p==="string"&&k.get(p)){t=b.flatten([k.get(p)]);b(t).each(function(u){var v,x,w;x=g;v=u["@language"];if(typeof u==="string"&&(u.indexOf("@")===u.length-3||u.indexOf("@")===u.length-5)){v=u.replace(/(^\"*|\"*@)..(..)?$/g,"")}if(v){if(v===l){x+=j}else{x+=20}}else{x+=10}w=u.toString();w=w.replace(/(^\"*|\"*@..$)/g,"");return o.push({score:x,value:w})})}else{if(typeof p==="object"&&k.get(p.property)){n=b.flatten([k.get(p.property)]);n=b(n).map(function(u){if(u.isEntity){return u.getSubject()}else{return u}});o.push({score:g,value:p.makeLabel(n)})}}})});o=b(o).sortBy(function(l){return l.score});if(o.length){return o[0].value}else{return"n/a"}},_rdf2EntitiesNoRdfQuery:function(f,g){var h=[];b.forEach(g,function(k,j){var i={};i["@subject"]="<"+j+">";b.forEach(k,function(m,l){l="<"+l+">";b.forEach(m,function(n){if(n.type==="uri"){n.value="<"+n.value+">"}if(i[l]&&!b.isArray(i[l])){i[l]=[i[l]]}if(b.isArray(i[l])){i[l].push(n.value);return}i[l]=n.value})});h.push(i)});return h},loadSchemaOrg:function(n,k,o){if(!k){throw new Error("Please load the schema.json file.")}n.types.remove("<http://schema.org/Thing>");var h=(o)?o:n.namespaces.base();n.namespaces.base(o);var i={DataType:"xsd:anyType",Boolean:"xsd:boolean",Date:"xsd:date",DateTime:"xsd:dateTime",Time:"xsd:time",Float:"xsd:float",Integer:"xsd:integer",Number:"xsd:anySimpleType",Text:"xsd:string",URL:"xsd:anyURI"};var j=function(t,u){var s=n.types.add(u,[{id:"value",range:i[u]}]);for(var r=0;r<t.length;r++){var q=(n.types.get(t[r]))?n.types.get(t[r]):j.call(n,k.datatypes[t[r]].supertypes,t[r]);s.inherit(q)}return s};for(var g in k.datatypes){if(!n.types.get(g)){var p=k.datatypes[g].supertypes;j.call(n,p,g)}}var m=function(r){var q={};if(r.label){q.label=r.label}if(r.url){q.url=r.url}if(r.comment){q.comment=r.comment}if(r.metadata){q=b.extend(q,r.metadata)}return q};var l=function(r){var q=[];b.each(k.types[r].specific_properties,function(s){var t=k.properties[s];q.push({id:t.id,range:t.ranges,min:t.min,max:t.max,metadata:m(t)})});return q};var f=function(v,w,u,s){var t=n.types.add(w,u,s);for(var r=0;r<v.length;r++){var q=(n.types.get(v[r]))?n.types.get(v[r]):f.call(n,k.types[v[r]].supertypes,v[r],l.call(n,v[r]),m(k.types[v[r]]));t.inherit(q)}if(w==="Thing"&&!t.isof("owl:Thing")){t.inherit("owl:Thing")}return t};b.each(k.types,function(s){if(n.types.get(s.id)){return}var r=s.supertypes;var q=m(s);f.call(n,r,s.id,l.call(n,s.id),q)});n.namespaces.base(h)},getEntityTypeUnion:function(f){var g=f.vie;return new g.Type("Union").inherit(f.get("@type"))},getFormSchemaForType:function(g,f){var h={};b.each(g.attributes.toArray(),function(j){var i=c.Util.toCurie(j.id,false,j.vie.namespaces);h[i]=c.Util.getFormSchemaForAttribute(j)});b.each(h,function(i,j){if(!i.type){delete h[j]}if(i.type==="URL"){i.type="Text";i.dataType="url"}if(i.type==="List"&&!i.listType){delete h[j]}if(!f){if(i.type==="NestedModel"||i.listType==="NestedModel"){delete h[j]}}});return h},getFormSchemaForAttribute:function(h){var f=h.range[0];var g={};var i=function(k){switch(k){case"xsd:anySimpleType":case"xsd:float":case"xsd:integer":return"Number";case"xsd:string":return"Text";case"xsd:date":return"Date";case"xsd:dateTime":return"DateTime";case"xsd:boolean":return"Checkbox";case"xsd:anyURI":return"URL";default:var j=h.vie.types.get(k);if(!j){return null}if(j.attributes.get("value")){return i(j.attributes.get("value").range[0])}return"NestedModel"}};g.title=c.Util.toCurie(h.id,false,h.vie.namespaces);if(h.min>0){g.validators=["required"]}if(h.max>1){g.type="List";g.listType=i(f);if(g.listType==="NestedModel"){g.nestedModelType=f}return g}g.type=i(f);if(g.type==="NestedModel"){g.nestedModelType=f}return g},getFormSchema:function(g){if(!g||!g.isEntity){return{}}var f=c.Util.getEntityTypeUnion(g);var h=c.Util.getFormSchemaForType(f,true);b.each(h,function(i,j){if(i.type!=="NestedModel"&&i.listType!=="NestedModel"){return}h[j].model=g.vie.getTypedEntityClass(i.nestedModelType)});return h},xsdDateTime:function(g){function l(p){var o=p.toString();return o.length<2?"0"+o:o}var m=g.getFullYear();var k=l(g.getMonth()+1);var f=l(g.getDate());var i=l(g.getHours());var j=l(g.getMinutes());var h=l(g.getSeconds());return m+"-"+k+"-"+f+"T"+i+":"+j+":"+h},extractLanguageString:function(o,s,m){var g,r,f,q,j;if(o&&typeof o!=="string"){s=(b.isArray(s))?s:[s];m=(b.isArray(m))?m:[m];for(g=0;g<s.length;g++){for(var k=0;k<m.length;k++){var h=m[k];r=s[g];if(o.has(r)){f=o.get(r);f=(b.isArray(f))?f:[f];for(q=0;q<f.length;q++){j=f[q];if(j.isEntity){j=c.Util.extractLanguageString(j,s,h)}else{if(typeof j==="string"){j=j}else{j=""}}if(j&&j.indexOf("@"+h)>-1){return j.replace(/"/g,"").replace(/@[a-z]+/,"").trim()}}}}}for(g=0;g<s.length;g++){r=s[g];if(o.has(r)){f=o.get(r);f=(b.isArray(f))?f:[f];for(q=0;q<f.length;q++){j=f[q];if(j.isEntity){j=c.Util.extractLanguageString(j,s,[])}if(j&&(typeof j==="string")&&j.indexOf("@")===-1){return j.replace(/"/g,"").replace(/@[a-z]+/,"").trim()}}}}}return undefined},transformationRules:function(f){var g=[{left:["?subject a dbpedia:Person","?subject rdfs:label ?label"],right:function(h){return function(){return[d.rdf.triple(this.subject.toString(),"a","<"+h.base()+"Person>",{namespaces:h.toObj()}),d.rdf.triple(this.subject.toString(),"<"+h.base()+"name>",this.label,{namespaces:h.toObj()})]}}(f.vie.namespaces)},{left:["?subject a foaf:Person","?subject rdfs:label ?label"],right:function(h){return function(){return[d.rdf.triple(this.subject.toString(),"a","<"+h.base()+"Person>",{namespaces:h.toObj()}),d.rdf.triple(this.subject.toString(),"<"+h.base()+"name>",this.label,{namespaces:h.toObj()})]}}(f.vie.namespaces)},{left:["?subject a dbpedia:Place","?subject rdfs:label ?label"],right:function(h){return function(){return[d.rdf.triple(this.subject.toString(),"a","<"+h.base()+"Place>",{namespaces:h.toObj()}),d.rdf.triple(this.subject.toString(),"<"+h.base()+"name>",this.label.toString(),{namespaces:h.toObj()})]}}(f.vie.namespaces)},{left:["?subject a dbpedia:City","?subject rdfs:label ?label","?subject dbpedia:abstract ?abs","?subject dbpedia:country ?country"],right:function(h){return function(){return[d.rdf.triple(this.subject.toString(),"a","<"+h.base()+"City>",{namespaces:h.toObj()}),d.rdf.triple(this.subject.toString(),"<"+h.base()+"name>",this.label.toString(),{namespaces:h.toObj()}),d.rdf.triple(this.subject.toString(),"<"+h.base()+"description>",this.abs.toString(),{namespaces:h.toObj()}),d.rdf.triple(this.subject.toString(),"<"+h.base()+"containedIn>",this.country.toString(),{namespaces:h.toObj()})]}}(f.vie.namespaces)}];return g},getAdditionalRules:function(f){var h={Work:"CreativeWork",Film:"Movie",TelevisionEpisode:"TVEpisode",TelevisionShow:"TVSeries",Website:"WebPage",Painting:"Painting",Sculpture:"Sculpture",Event:"Event",SportsEvent:"SportsEvent",MusicFestival:"Festival",FilmFestival:"Festival",Place:"Place",Continent:"Continent",Country:"Country",City:"City",Airport:"Airport",Station:"TrainStation",Hospital:"GovernmentBuilding",Mountain:"Mountain",BodyOfWater:"BodyOfWater",Company:"Organization",Person:"Person"};var g=[];b.each(h,function(k,j){var i={left:["?subject a dbpedia:"+j,"?subject rdfs:label ?label"],right:function(l){return function(){return[d.rdf.triple(this.subject.toString(),"a","<"+l.base()+k+">",{namespaces:l.toObj()}),d.rdf.triple(this.subject.toString(),"<"+l.base()+"name>",this.label.toString(),{namespaces:l.toObj()})]}}(f.vie.namespaces)};g.push(i)});return g}};c.prototype.Entity=function(g,h){g=(g)?g:{};h=(h)?h:{};var f=this;if(g["@type"]!==undefined){g["@type"]=(b.isArray(g["@type"]))?g["@type"]:[g["@type"]];g["@type"]=b.map(g["@type"],function(j){if(!f.vie.types.get(j)){f.vie.types.add(j).inherit("owl:Thing")}return f.vie.types.get(j).id});g["@type"]=(g["@type"].length===1)?g["@type"][0]:g["@type"]}else{g["@type"]=f.vie.types.get("owl:Thing").id}b.each(g,function(k,j){var l=c.Util.mapAttributeNS(j,this.namespaces);if(j!==l){delete g[j];g[l]=k}},f.vie);var i=e.Model.extend({idAttribute:"@subject",initialize:function(j,k){if(j["@subject"]){this.id=this["@subject"]=this.toReference(j["@subject"])}else{this.id=this["@subject"]=j["@subject"]=this.cid.replace("c","_:bnode")}return this},schema:function(){return c.Util.getFormSchema(this)},get:function(j){j=c.Util.mapAttributeNS(j,f.vie.namespaces);var k=e.Model.prototype.get.call(this,j);k=(b.isArray(k))?k:[k];k=b.map(k,function(l){if(l!==undefined&&j==="@type"&&f.vie.types.get(l)){return f.vie.types.get(l)}else{if(l!==undefined&&f.vie.entities.get(l)){return f.vie.entities.get(l)}else{return l}}},this);if(k.length===0){return undefined}k=(k.length===1)?k[0]:k;return k},has:function(j){j=c.Util.mapAttributeNS(j,f.vie.namespaces);return e.Model.prototype.has.call(this,j)},hasRelations:function(){var j=false;b.each(this.attributes,function(k){if(k&&k.isCollection){j=true}});return j},set:function(m,l,o){if(!m){return this}if(m["@subject"]){m["@subject"]=this.toReference(m["@subject"])}if(typeof m==="string"){var p={};p[m]=l;return this.set(p,o)}if(m.attributes){m=m.attributes}var j=this;var n;b.each(m,function(r,q){var s=c.Util.mapAttributeNS(q,j.vie.namespaces);if(q!==s){delete m[q];m[s]=r}},this);b.each(m,function(s,r){if(!s){return}if(r.indexOf("@")===-1){if(s.isCollection){s.each(function(u){j.vie.entities.addOrUpdate(u)})}else{if(s.isEntity){j.vie.entities.addOrUpdate(s);n=new j.vie.Collection(s,{vie:j.vie,predicate:r});m[r]=n}else{if(b.isArray(s)){if(this.attributes[r]&&this.attributes[r].isCollection){var q=this.attributes[r].addOrUpdate(s);m[r]=this.attributes[r];m[r].reset(q)}}else{if(s["@value"]){}else{if(b.isObject(s)&&!b.isDate(s)){var t=new j.vie.Entity(s,l);j.vie.entities.addOrUpdate(t);n=new j.vie.Collection(s,{vie:j.vie,predicate:r});m[r]=n}else{}}}}}}},this);var k=e.Model.prototype.set.call(this,m,l);if(l&&l.ignoreChanges){this.changed={};this._previousAttributes=b.clone(this.attributes)}return k},unset:function(j,k){j=c.Util.mapAttributeNS(j,f.vie.namespaces);return e.Model.prototype.unset.call(this,j,k)},validate:function(j,m){if(m&&m.validate===false){return}var l=this.get("@type");if(b.isArray(l)){var k=[];b.each(l,function(o){var n=this.validateByType(o,j,m);if(n){k.push(n)}},this);if(b.isEmpty(k)){return}return b.flatten(k)}return this.validateByType(l,j,m)},validateByType:function(m,k,o){var n={max:"<%= property %> cannot contain more than <%= num %> items",min:"<%= property %> must contain at least <%= num %> items",required:"<%= property %> is required"};if(!m.attributes){return}var q=function(s,t,r){return{property:s.id,constraint:t,message:b.template(n[t],b.extend({property:s.id},r))}};var j=function(s,r){if(!r[s.id]||b.isEmpty(r[s.id])){return q(s,"required",{})}};var p=function(s,r){if(!r[s.id]){return}if(!r[s.id].isCollection&&!b.isArray(r[s.id])){return}if(r[s.id].length>s.max){return q(s,"max",{num:s.max})}};var l=[];b.each(m.attributes.list(),function(s){var r;if(s.max&&s.max!=-1){r=p(s,k);if(r){l.push(r)}}if(s.min&&s.min>0){r=j(s,k);if(r){l.push(r)}}});if(b.isEmpty(l)){return}return l},isNew:function(){if(this.getSubjectUri().substr(0,7)==="_:bnode"){return true}return false},hasChanged:function(j){if(this.markedChanged){return true}return e.Model.prototype.hasChanged.call(this,j)},forceChanged:function(j){this.markedChanged=j?true:false},getSubject:function(){if(typeof this.id==="undefined"){this.id=this.attributes[this.idAttribute]}if(typeof this.id==="string"){if(this.id.substr(0,7)==="http://"||this.id.substr(0,4)==="urn:"){return this.toReference(this.id)}return this.id}return this.cid.replace("c","_:bnode")},getSubjectUri:function(){return this.fromReference(this.getSubject())},isReference:function(j){var k=new RegExp("^\\<([^\\>]*)\\>$");if(k.exec(j)){return true}return false},toReference:function(m){if(b.isArray(m)){var j=this;return b.map(m,function(n){return j.toReference(n)})}var l=this.vie.namespaces;var k=m;if(m.substring(0,2)==="_:"){k=m}else{if(l.isCurie(m)){k=l.uri(m);if(k==="<"+l.base()+m+">"){k="<"+m+">"}}else{if(!l.isUri(m)){k="<"+m+">"}}}return k},fromReference:function(k){var j=this.vie.namespaces;if(!j.isUri(k)){return k}return k.substring(1,k.length-1)},as:function(j){if(j==="JSON"){return this.toJSON()}if(j==="JSONLD"){return this.toJSONLD()}throw new Error("Unknown encoding "+j)},toJSONLD:function(){var k={};var j=this;b.each(j.attributes,function(n,m){var l=n;if(n instanceof j.vie.Collection){l=n.map(function(o){return o.getSubject()})}k[m]=l});k["@subject"]=j.getSubject();return k},setOrAdd:function(l,k,m){var j=this;if(typeof l==="string"&&k){j._setOrAddOne(l,k,m)}else{if(typeof l==="object"){b(l).each(function(o,n){j._setOrAddOne(n,o,k)})}}return this},_setOrAddOne:function(k,o,m){if(!k||!o){return}m=(m)?m:{};var l;k=c.Util.mapAttributeNS(k,f.vie.namespaces);if(b.isArray(o)){for(l=0;l<o.length;l++){this._setOrAddOne(k,o[l],m)}return}if(k==="@type"&&o instanceof f.vie.Type){o=o.id}var p={};var n=e.Model.prototype.get.call(this,k);if(!n){p[k]=o;this.set(p,m)}else{if(n.isCollection){if(o.isCollection){o.each(function(q){n.add(q)})}else{if(o.isEntity){n.add(o)}else{if(typeof o==="object"){o=new this.vie.Entity(o);n.add(o)}else{throw new Error("you cannot add a literal to a collection of entities!")}}}this.trigger("change:"+k,this,o,{});this.change({})}else{if(b.isArray(n)){if(o.isCollection){for(l=0;l<o.size();l++){this._setOrAddOne(k,o.at(l).getSubject(),m)}}else{if(o.isEntity){this._setOrAddOne(k,o.getSubject(),m)}else{if(typeof o==="object"){o=new this.vie.Entity(o);this._setOrAddOne(k,o,m)}else{n.push(o);p[k]=n;this.set(p)}}}}else{var j=[n];j.push(o);p[k]=j;return this.set(p,m)}}}},hasType:function(j){j=f.vie.types.get(j);return this.hasPropertyValue("@type",j)},hasPropertyValue:function(l,k){var j=this.get(l);if(!(k instanceof Object)){k=f.vie.entities.get(k)}if(j instanceof Array){return j.indexOf(k)!==-1}else{return j===k}},isof:function(l){var k=this.get("@type");if(k===undefined){return false}k=(b.isArray(k))?k:[k];l=(f.vie.types.get(l))?f.vie.types.get(l):new f.vie.Type(l);for(var j=0;j<k.length;j++){if(f.vie.types.get(k[j])){if(f.vie.types.get(k[j]).isof(l)){return true}}else{var m=new f.vie.Type(k[j]);if(m.id===l.id){return true}}}return false},addTo:function(k,l){var j=this;if(k instanceof j.vie.Collection){if(l){k.addOrUpdate(j)}else{k.add(j)}return this}throw new Error("Please provide a proper collection of type VIE.Collection as argument!")},isEntity:true,vie:f.vie});return new i(g,h)};c.prototype.Collection=e.Collection.extend({model:c.prototype.Entity,initialize:function(g,f){if(!f||!f.vie){throw new Error("Each collection needs a VIE reference")}this.vie=f.vie;this.predicate=f.predicate},canAdd:function(f){return true},get:function(f){if(f===null){return null}f=(f.getSubject)?f.getSubject():f;if(typeof f==="string"&&f.indexOf("_:")===0){if(f.indexOf("bnode")===2){f=f.replace("_:bnode","c");return this._byCid[f]}else{return this._byId["<"+f+">"]}}else{f=this.toReference(f);return this._byId[f]}},addOrUpdate:function(g,f){f=f||{};var k=this;var i;if(b.isArray(g)){var j=[];b.each(g,function(l){j.push(k.addOrUpdate(l,f))});return j}if(g===undefined){throw new Error("No model given")}if(b.isString(g)){g={"@subject":g,id:g}}if(!g.isEntity){g=new this.model(g)}if(g.id&&this.get(g.id)){i=this.get(g.id)}if(this.getByCid(g.cid)){i=this.getByCid(g.cid)}if(i){var h={};b.each(g.attributes,function(n,m){if(!i.has(m)){h[m]=n;return true}if(m==="@subject"){if(g.isNew()&&!i.isNew()){return true}}if(i.get(m)===n){return true}var o=i.attributes[m];var l=n;if(o instanceof k.vie.Collection){return true}if(f.overrideAttributes){h[m]=n;return true}if(m==="@context"){h[m]=d.extend(true,{},o,l)}else{o=(d.isArray(o))?o:[o];l=(d.isArray(l))?l:[l];h[m]=b.uniq(o.concat(l));h[m]=(h[m].length===1)?h[m][0]:h[m]}});if(!b.isEmpty(h)){i.set(h,f.updateOptions)}return i}this.add(g,f.addOptions);return g},isReference:function(f){var g=new RegExp("^\\<([^\\>]*)\\>$");if(g.exec(f)){return true}return false},toReference:function(f){if(this.isReference(f)){return f}return"<"+f+">"},fromReference:function(f){if(!this.isReference(f)){return f}return f.substring(1,f.length-1)},isCollection:true});if(c.prototype.Type){throw new Error("ERROR: VIE.Type is already defined. Please check your installation!")}if(c.prototype.Types){throw new Error("ERROR: VIE.Types is already defined. Please check your installation!")}c.prototype.Type=function(h,f,g){if(h===undefined||typeof h!=="string"){throw"The type constructor needs an 'id' of type string! E.g., 'Person'"}this.id=this.vie.namespaces.isUri(h)?h:this.vie.namespaces.uri(h);if(this.vie.types.get(this.id)){throw new Error("The type "+this.id+" is already defined!")}this.supertypes=new this.vie.Types();this.subtypes=new this.vie.Types();this.attributes=new this.vie.Attributes(this,(f)?f:[]);this.metadata=g?g:{};this.isof=function(i){i=this.vie.types.get(i);if(i){return i.subsumes(this.id)}else{throw new Error("No valid type given")}};this.subsumes=function(i){i=this.vie.types.get(i);if(i){if(this.id===i.id){return true}var j=this.subtypes.list();for(var l=0;l<j.length;l++){var k=j[l];if(k){if(k.id===i.id||k.subsumes(i)){return true}}}return false}else{throw new Error("No valid type given")}};this.inherit=function(j){if(typeof j==="string"){this.inherit(this.vie.types.get(j))}else{if(j instanceof this.vie.Type){j.subtypes.addOrOverwrite(this);this.supertypes.addOrOverwrite(j);try{this.attributes.list()}catch(m){j.subtypes.remove(this);this.supertypes.remove(j);throw m}}else{if(d.isArray(j)){for(var k=0,l=j.length;k<l;k++){this.inherit(j[k])}}else{throw new Error("Wrong argument in VIE.Type.inherit()")}}}return this};this.hierarchy=function(){var k={id:this.id,subtypes:[]};var j=this.subtypes.list();for(var m=0,i=j.length;m<i;m++){var l=this.vie.types.get(j[m]);k.subtypes.push(l.hierarchy())}return k};this.instance=function(j,k){j=(j)?j:{};k=(k)?k:{};if(k.typeChecking!==false){for(var i in j){if(i.indexOf("@")!==0&&!this.attributes.get(i)){throw new Error("Cannot create an instance of "+this.id+" as the type does not allow an attribute '"+i+"'!")}}}if(j["@type"]){j["@type"].push(this.id)}else{j["@type"]=this.id}return new this.vie.Entity(j,k)};this.toString=function(){return this.id}};c.prototype.Types=function(){this._types={};this.add=function(i,f,h){if(b.isArray(i)){b.each(i,function(j){this.add(j)},this);return this}if(this.get(i)){throw new Error("Type '"+i+"' already registered.")}else{if(typeof i==="string"){var g=new this.vie.Type(i,f,h);this._types[g.id]=g;return g}else{if(i instanceof this.vie.Type){this._types[i.id]=i;return i}else{throw new Error("Wrong argument to VIE.Types.add()!")}}}return this};this.addOrOverwrite=function(g,f){if(this.get(g)){this.remove(g)}return this.add(g,f)};this.get=function(g){if(!g){return undefined}if(typeof g==="string"){var f=this.vie.namespaces.isUri(g)?g:this.vie.namespaces.uri(g);return this._types[f]}else{if(g instanceof this.vie.Type){return this.get(g.id)}}return undefined};this.remove=function(j){var f=this.get(j);if(!f){return this}if(!f||f.subsumes("owl:Thing")){console.warn("You are not allowed to remove 'owl:Thing'.");return this}delete this._types[f.id];var g=f.subtypes.list();for(var i=0;i<g.length;i++){var h=g[i];if(h.supertypes.list().length===1){this.remove(h)}else{h.supertypes.remove(f.id)}}return f};this.toArray=this.list=function(){var f=[];for(var g in this._types){f.push(this._types[g])}return f};this.sort=function(i,h){var n=this;i=(d.isArray(i))?i:[i];h=(h)?true:false;if(i.length===0){return[]}var f=[i[0]];var l,g;for(l=1,g=i.length;l<g;l++){var m=i[l];var j=n.get(m);if(j){for(var k=0;k<f.length;k++){if(j.subsumes(f[k])){f.splice(k,0,m);break}else{if(k===f.length-1){f.push(m)}}}}}for(l=0;l<f.length;l++){if(f.lastIndexOf(f[l])!==l){f.splice(l,1);l--}}if(!h){f.reverse()}return f}};if(c.prototype.Attribute){throw new Error("ERROR: VIE.Attribute is already defined. Please check your VIE installation!")}if(c.prototype.Attributes){throw new Error("ERROR: VIE.Attributes is already defined. Please check your VIE installation!")}c.prototype.Attribute=function(k,f,j,h,i,g){if(k===undefined||typeof k!=="string"){throw new Error("The attribute constructor needs an 'id' of type string! E.g., 'Person'")}if(f===undefined){throw new Error("The attribute constructor of "+k+" needs 'range'.")}if(j===undefined){throw new Error("The attribute constructor of "+k+" needs a 'domain'.")}this._domain=j;this.id=this.vie.namespaces.isUri(k)?k:this.vie.namespaces.uri(k);this.range=(b.isArray(f))?f:[f];h=h?h:0;this.min=(h>0)?h:0;i=i?i:1;if(i===-1){i=Number.MAX_VALUE}this.max=(i>=this.min)?i:this.min;this.metadata=g?g:{};this.applies=function(n){if(this.vie.types.get(n)){n=this.vie.types.get(n)}for(var o=0,m=this.range.length;o<m;o++){var l=this.vie.types.get(this.range[o]);if(l===undefined&&typeof n==="string"){if(n===this.range[o]){return true}}else{if(n.isof(this.range[o])){return true}}}return false}};c.prototype.Attributes=function(g,f){this._local={};this._attributes={};this.domain=g;this.add=function(m,j,l,h,k){if(b.isArray(m)){b.each(m,function(n){this.add(n)},this);return this}if(this.get(m)){throw new Error("Attribute '"+m+"' already registered for domain "+this.domain.id+"!")}else{if(typeof m==="string"){var i=new this.vie.Attribute(m,j,this.domain,l,h,k);this._local[i.id]=i;return i}else{if(m instanceof this.vie.Attribute){m.domain=this.domain;m.vie=this.vie;this._local[m.id]=m;return m}else{throw new Error("Wrong argument to VIE.Types.add()!")}}}};this.remove=function(i){var h=this.get(i);if(h.id in this._local){delete this._local[h.id];return h}throw new Error("The attribute "+i+" is inherited and cannot be removed from the domain "+this.domain.id+"!")};this.get=function(i){if(typeof i==="string"){var h=this.vie.namespaces.isUri(i)?i:this.vie.namespaces.uri(i);return this._inherit()._attributes[h]}else{if(i instanceof this.vie.Attribute){return this.get(i.id)}else{throw new Error("Wrong argument in VIE.Attributes.get()")}}};this._inherit=function(){var D,t,A;var q=d.extend(true,{},this._local);var E=b.map(this.domain.supertypes.list(),function(p){return p.attributes});var u={};var m={};var s,l;for(D=0,s=E.length;D<s;D++){var B=E[D].list();for(t=0,l=B.length;t<l;t++){A=B[t].id;if(!(A in q)){if(!(A in u)&&!(A in m)){u[A]=B[t]}else{if(!m[A]){m[A]={range:[],mins:[],maxs:[],metadatas:[]}}if(A in u){m[A].range=d.merge(m[A].range,u[A].range);m[A].mins=d.merge(m[A].mins,[u[A].min]);m[A].maxs=d.merge(m[A].maxs,[u[A].max]);m[A].metadatas=d.merge(m[A].metadatas,[u[A].metadata]);delete u[A]}m[A].range=d.merge(m[A].range,B[t].range);m[A].mins=d.merge(m[A].mins,[B[t].min]);m[A].maxs=d.merge(m[A].maxs,[B[t].max]);m[A].metadatas=d.merge(m[A].metadatas,[B[t].metadata]);m[A].range=b.uniq(m[A].range);m[A].mins=b.uniq(m[A].mins);m[A].maxs=b.uniq(m[A].maxs);m[A].metadatas=b.uniq(m[A].metadatas)}}}}d.extend(q,u);for(A in m){var z=m[A].range;var o=m[A].mins;var n=m[A].maxs;var j=m[A].metadatas;var k=[];for(var v=0,h=z.length;v<h;v++){var y=this.vie.types.get(z[v]);var F=false;if(y){for(t=0;t<h;t++){if(t===v){continue}var C=this.vie.types.get(z[t]);if(C&&C.isof(y)){F=true;break}}}if(!F){k.push(z[v])}}var i=b.max(o);var w=b.min(n);if(i<=w&&w>=0&&i>=0){q[A]=new this.vie.Attribute(A,k,this,i,w,j[0])}else{throw new Error("This inheritance is not allowed because of an invalid minCount/maxCount pair!")}}this._attributes=q;return this};this.toArray=this.list=function(j){var k=[];var i=this._inherit()._attributes;for(var h in i){if(!j||i[h].applies(j)){k.push(i[h])}}return k};f=b.isArray(f)?f:[f];b.each(f,function(h){this.add(h.id,h.range,h.min,h.max,h.metadata)},this)};if(c.prototype.Namespaces){throw new Error("ERROR: VIE.Namespaces is already defined. Please check your VIE installation!")}c.prototype.Namespaces=function(g,f){if(!g){throw new Error("Please provide a base namespace!")}this._base=g;this._namespaces=(f)?f:{};if(typeof this._namespaces!=="object"||b.isArray(this._namespaces)){throw new Error("If you want to initialise VIE namespace prefixes, please provide a proper object!")}};c.prototype.Namespaces.prototype.base=function(f){if(!f){return this._base}else{if(typeof f==="string"){this.removeNamespace(f);this._base=f;return this._base}else{throw new Error("Please provide a valid namespace!")}}};c.prototype.Namespaces.prototype.add=function(g,f){if(typeof g==="object"){for(var h in g){this.add(h,g[h])}return this}if(g===""){this.base(f);return this}else{if(this.contains(g)&&f!==this._namespaces[g]){throw new Error("ERROR: Trying to register namespace prefix mapping ("+g+","+f+")!There is already a mapping existing: '("+g+","+this.get(g)+")'!")}else{d.each(this._namespaces,function(j,i){if(i===f&&j!==g){throw new Error("ERROR: Trying to register namespace prefix mapping ("+g+","+f+")!There is already a mapping existing: '("+j+","+f+")'!")}})}}this._namespaces[g]=f;return this};c.prototype.Namespaces.prototype.addOrReplace=function(g,f){if(typeof g==="object"){for(var h in g){this.addOrReplace(h,g[h])}return this}this.remove(g);this.removeNamespace(f);return this.add(g,f)};c.prototype.Namespaces.prototype.get=function(f){if(f===""){return this.base()}return this._namespaces[f]};c.prototype.Namespaces.prototype.getPrefix=function(f){var g;if(f.indexOf("<")===0){f=f.substring(1,f.length-1)}d.each(this._namespaces,function(i,h){if(f.indexOf(h)===0){g=i}if(f.indexOf(i+":")===0){g=i}});return g};c.prototype.Namespaces.prototype.contains=function(f){return(f in this._namespaces)};c.prototype.Namespaces.prototype.containsNamespace=function(f){return this.getPrefix(f)!==undefined};c.prototype.Namespaces.prototype.update=function(g,f){this.remove(g);return this.add(g,f)};c.prototype.Namespaces.prototype.updateNamespace=function(g,f){this.removeNamespace(g);return this.add(g,f)};c.prototype.Namespaces.prototype.remove=function(f){if(f){delete this._namespaces[f]}return this};c.prototype.Namespaces.prototype.removeNamespace=function(f){var g=this.getPrefix(f);if(g){delete this._namespaces[g]}return this};c.prototype.Namespaces.prototype.toObj=function(f){if(f){return d.extend({},this._namespaces)}return d.extend({"":this._base},this._namespaces)};c.prototype.Namespaces.prototype.curie=function(f,g){return c.Util.toCurie(f,g,this)};c.prototype.Namespaces.prototype.isCurie=function(f){return c.Util.isCurie(f,this)};c.prototype.Namespaces.prototype.uri=function(f){return c.Util.toUri(f,this)};c.prototype.Namespaces.prototype.isUri=c.Util.isUri;c.prototype.ClassicRDFa=function(f){this.vie=f};c.prototype.ClassicRDFa.prototype={readEntities:function(f){var g=[];var h=this.vie.RDFaEntities.getInstances(f);b.each(h,function(i){g.push(i.toJSONLD())});return g},findPredicateElements:function(h,g,f){return this.vie.services.rdfa.findPredicateElements(h,g,f)},getPredicate:function(f){return this.vie.services.rdfa.getElementPredicate(f)},getSubject:function(f){return this.vie.services.rdfa.getElementSubject(f)}};c.prototype.ClassicRDFaEntities=function(f){this.vie=f};c.prototype.ClassicRDFaEntities.prototype={getInstances:function(f){if(!this.vie.services.rdfa){this.vie.use(new this.vie.RdfaService())}var g=null;var h=false;this.vie.load({element:f}).from("rdfa").execute().done(function(i){g=i;h=true});while(!h){}return g},getInstance:function(f){var g=this.getInstances(f);if(g&&g.length){return g.pop()}return null}};c.prototype.ClassicEntityManager=function(f){this.vie=f;this.entities=this.vie.entities};c.prototype.ClassicEntityManager.prototype={getBySubject:function(f){return this.vie.entities.get(f)},getByJSONLD:function(f){if(typeof f==="string"){try{f=d.parseJSON(f)}catch(g){return null}}return this.vie.entities.addOrUpdate(f)},initializeCollection:function(){return}};(function(){c.prototype.DBPediaService=function(f){var g={name:"dbpedia",namespaces:{owl:"http://www.w3.org/2002/07/owl#",yago:"http://dbpedia.org/class/yago/",foaf:"http://xmlns.com/foaf/0.1/",georss:"http://www.georss.org/georss/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",dbpedia:"http://dbpedia.org/ontology/",dbprop:"http://dbpedia.org/property/",dcelements:"http://purl.org/dc/elements/1.1/"},rules:[]};this.options=d.extend(true,g,f?f:{});this.vie=null;this.name=this.options.name;d.ajaxSetup({converters:{"text application/rdf+json":function(h){return JSON.parse(h)}},timeout:60000})};c.prototype.DBPediaService.prototype={init:function(){for(var f in this.options.namespaces){var g=this.options.namespaces[f];this.vie.namespaces.add(f,g)}this.rules=d.extend([],c.Util.transformationRules(this));this.rules=d.merge(this.rules,(this.options.rules)?this.options.rules:[]);this.connector=new this.vie.DBPediaConnector(this.options);return this},load:function(l){var h=this;var j=l instanceof this.vie.Loadable;if(!j){throw new Error("Invalid Loadable passed")}var m=function(o){o=(typeof o==="string")?JSON.parse(o):o;b.defer(function(){try{var q=c.Util.rdf2Entities(h,o);q=(b.isArray(q))?q:[q];b.each(q,function(r){r.set("DBPediaServiceLoad",c.Util.xsdDateTime(new Date()))});q=(q.length===1)?q[0]:q;l.resolve(q)}catch(p){l.reject(p)}})};var k=function(o){l.reject(o)};var g=(l.options.entity)?l.options.entity:l.options.entities;if(!g){l.reject([])}else{g=(b.isArray(g))?g:[g];var n=[];for(var i=0;i<g.length;i++){var f=(typeof g[i]==="string")?g[i]:g[i].id;n.push(f)}this.connector.load(n,m,k)}return this}};c.prototype.DBPediaConnector=function(f){this.options=f;this.baseUrl="http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&timeout=0"};c.prototype.DBPediaConnector.prototype={load:function(g,l,j,o){if(!o){o={}}var f=this.baseUrl+"&format="+encodeURIComponent("application/rdf+json")+"&query=";if(b.isArray(g)){var n="";var h="";for(var m=0;m<g.length;m++){var i=(/^<.+>$/.test(g[m]))?g[m]:"<"+g[m]+">";if(m>0){n+=" .";h+=" UNION "}n+=" "+i+" ?prop"+m+" ?val"+m;h+=" { "+i+" ?prop"+m+" ?val"+m+" }"}f+=encodeURIComponent("CONSTRUCT {"+n+" } WHERE {"+h+" }")}else{g=(/^<.+>$/.test(g))?g:"<"+g+">";f+=encodeURIComponent("CONSTRUCT { "+g+" ?prop ?val } WHERE { "+g+" ?prop ?val }")}var k=o.format||"application/rdf+json";if(typeof exports!=="undefined"&&typeof process!=="undefined"){return this._loadNode(f,l,j,o,k)}d.ajax({success:function(p){l(p)},error:j,type:"GET",url:f,accepts:{"application/rdf+json":"application/rdf+json"}});return this},_loadNode:function(j,l,g,f,k){var i=require("request");var h=i({method:"GET",uri:j,headers:{Accept:k}},function(o,n,m){if(n.statusCode!==200){return g(m)}l(JSON.parse(m))});h.end();return this}}})();(function(){c.prototype.OpenCalaisService=function(f){var g={name:"opencalais",url:["http://api.opencalais.com/enlighten/rest/"],timeout:60000,namespaces:{opencalaisc:"http://s.opencalais.com/1/pred/",opencalaiscr:"http://s.opencalais.com/1/type/er/",opencalaiscm:"http://s.opencalais.com/1/type/em/e/"},rules:[]};this.options=d.extend(true,g,f?f:{});this.vie=null;this.name=this.options.name;d.ajaxSetup({converters:{"text application/rdf+json":function(h){return JSON.parse(h)}},timeout:this.options.timeout})};c.prototype.OpenCalaisService.prototype={init:function(){for(var f in this.options.namespaces){var g=this.options.namespaces[f];this.vie.namespaces.add(f,g)}this.rules=d.extend([],c.Util.transformationRules(this));this.rules=d.merge(this.rules,(this.options.rules)?this.options.rules:[]);this.connector=new this.vie.OpenCalaisConnector(this.options)},analyze:function(l){var f=this;var h=l instanceof this.vie.Analyzable;if(!h){throw"Invalid Analyzable passed"}var i=l.options.element?l.options.element:d("body");var k=f._extractText(i);if(k.length>0){var j=function(m){b.defer(function(){var n=c.Util.rdf2Entities(f,m);l.resolve(n)})};var g=function(m){l.reject(m)};this.connector.analyze(k,j,g)}else{console.warn("No text found in element.");l.resolve([])}},_extractText:function(g){if(g.get(0)&&g.get(0).tagName&&(g.get(0).tagName=="TEXTAREA"||g.get(0).tagName=="INPUT"&&g.attr("type","text"))){return g.get(0).val()}else{var f=g.text().replace(/\s+/g," ").replace(/\0\b\n\r\f\t/g,"");return d.trim(f)}}};c.prototype.OpenCalaisConnector=function(f){this.options=f;this.baseUrl=(b.isArray(f.url))?f.url:[f.url];this.enhancerUrlPrefix="/"};c.prototype.OpenCalaisConnector.prototype={analyze:function(l,k,h,g){if(!g){g={urlIndex:0}}if(g.urlIndex>=this.baseUrl.length){h("Could not connect to the given OpenCalais endpoints! Please check for their setup!");return}var f=this.baseUrl[g.urlIndex].replace(/\/$/,"");f+=this.enhancerUrlPrefix;var j=g.format||"application/rdf+json";var m=function(u,n,p,q,r){return function(){console.error("OpenCalais connection error",arguments);u.analyze(n,p,q,b.extend(r,{urlIndex:r.urlIndex+1}))}}(this,l,k,h,g);var i=this._prepareData(l);if(typeof exports!=="undefined"&&typeof process!=="undefined"){return this._analyzeNode(f,i,k,m,g,j)}d.ajax({success:function(o,n,q){var p=q.responseText.replace(/<!--[\s\S]*?-->/g,"");k(p)},error:m,type:"POST",url:f,data:i,accept:"text/plain"})},_analyzeNode:function(g,m,l,h,f,k){var j=require("request");var i=j({method:"POST",uri:g,body:m,headers:{Accept:k}},function(p,o,n){try{l({results:JSON.parse(n)})}catch(q){h(q)}});i.end()},_prepareData:function(f){return{licenseID:this.options.api_key,calculareRelevanceScore:"true",enableMetadataType:"GenericRelations,SocialTags",contentType:"text/html",content:f}}}})();(function(){c.prototype.RdfaRdfQueryService=function(f){var g={name:"rdfardfquery",namespaces:{},rules:[]};this.options=d.extend(true,g,f?f:{});this.views=[];this.vie=null;this.name=this.options.name};c.prototype.RdfaRdfQueryService.prototype={init:function(){for(var f in this.options.namespaces){var g=this.options.namespaces[f];this.vie.namespaces.add(f,g)}this.rules=d.extend([],c.Util.transformationRules(this));this.rules=d.merge(this.rules,(this.options.rules)?this.options.rules:[])},analyze:function(f){return this.load(f)},load:function(l){var f=this;var g=l instanceof this.vie.Loadable||l instanceof this.vie.Analyzable;if(!g){throw new Error("Invalid Loadable/Analyzable passed")}var i=l.options.element?l.options.element:d(document);try{var h=d(i).find("[about],[typeof]").rdfa();d.each(d(i).xmlns(),function(n,m){f.vie.namespaces.addOrReplace(n,m.toString())});var k=c.Util.rdf2Entities(this,h);l.resolve(k)}catch(j){l.reject(j)}},save:function(i){var g=i instanceof this.vie.Savable;if(!g){i.reject("Invalid Savable passed")}if(!i.options.element){i.reject("Unable to write entity to RDFa, no element given")}if(!i.options.entity){i.reject("Unable to write to RDFa, no entity given")}if(!d.rdf){i.reject("No rdfQuery found.")}var f=i.options.entity;var j=[];var h=f.get("@type");h=(d.isArray(h))?h[0]:h;h=h.id;j.push(f.getSubject()+" a "+h);d(i.options.element).rdfa(j);i.resolve()}}})();(function(){c.prototype.RdfaService=function(f){var g={name:"rdfa",namespaces:{},subjectSelector:"[about],[typeof],[src],html",predicateSelector:"[property],[rel]",rules:[],bnodePrefix:"_a"};this.options=d.extend(true,g,f?f:{});this.bnodes=0;this.views=[];this.templates={};this.datatypeReaders={"<http://www.w3.org/2001/XMLSchema#boolean>":function(h){if(h==="true"||h===1||h===true){return true}return false},"<http://www.w3.org/2001/XMLSchema#dateTime>":function(h){return new Date(h)},"<http://www.w3.org/2001/XMLSchema#integer>":function(h){return parseInt(h,10)}};this.datatypeWriters={"<http://www.w3.org/2001/XMLSchema#dateTime>":function(h){if(!b.isDate(h)){return h}return h.toISOString()}};this.vie=null;this.name=this.options.name};c.prototype.RdfaService.prototype={init:function(){for(var f in this.options.namespaces){var g=this.options.namespaces[f];this.vie.namespaces.add(f,g)}this.rules=d.merge([],c.Util.transformationRules(this));this.rules=d.merge(this.rules,(this.options.rules)?this.options.rules:[])},analyze:function(f){return this.load(f)},load:function(j){var f=this;var g=j instanceof this.vie.Loadable||j instanceof this.vie.Analyzable;if(!g){throw new Error("Invalid Loadable/Analyzable passed")}var h;if(!j.options.element){if(typeof document==="undefined"){return j.resolve([])}h=d(document)}else{h=j.options.element}var i=this.readEntities(h);j.resolve(i)},save:function(g){var f=g instanceof this.vie.Savable;if(!f){throw"Invalid Savable passed"}if(!g.options.element){throw"Unable to write entity to RDFa, no element given"}if(!g.options.entity){throw"Unable to write to RDFa, no entity given"}this._writeEntity(g.options.entity,g.options.element);g.resolve()},readEntities:function(h){var g=this;var i=this.xmlns(h);for(var j in i){this.vie.namespaces.addOrReplace(j,i[j])}var k=[];var f=d(this.options.subjectSelector,h).add(d(h).filter(this.options.subjectSelector)).each(function(){var l=g._readEntity(d(this));if(l){k.push(l)}});return k},_readEntity:function(i){var h=this.getElementSubject(i);var j=this._getElementType(i);var f=this._readEntityPredicates(h,i,false);if(d.isEmptyObject(f)){return null}var k=this.vie;b.each(f,function(n,m){if(!b.isArray(n)){return}var l=new this.vie.Collection([],{vie:k,predicate:m});b.each(n,function(o){var p=k.entities.addOrUpdate({"@subject":o});l.addOrUpdate(p)});f[m]=l},this);f["@subject"]=h;if(j){f["@type"]=j}var g=new this.vie.Entity(f);g=this.vie.entities.addOrUpdate(g,{updateOptions:{silent:true,ignoreChanges:true}});this._registerEntityView(g,i);return g},_writeEntity:function(g,h){var f=this;this.findPredicateElements(this.getElementSubject(h),h,true).each(function(){var j=d(this);var i=f.getElementPredicate(j);if(!g.has(i)){return true}var k=g.get(i);if(k&&k.isCollection){return true}if(k===f.readElementValue(i,j)){return true}f.writeElementValue(i,j,k)});return true},_getViewForElement:function(h,f){var g;d.each(this.views,function(){if(d(this.el).get(0)===h.get(0)){if(f&&!this.template){return true}g=this;return false}});return g},_registerEntityView:function(i,j,g){if(!j.length){return}var f=this;var h=this._getViewForElement(j);if(h){if(i.hasRelations()&&!h.collectionsChecked){this._registerEntityCollectionViews(i,j,h)}return h}h=new this.vie.view.Entity({model:i,el:j,tagName:j.get(0).nodeName,vie:this.vie,service:this.name});this.views.push(h);if(g){d(j).find(this.options.predicateSelector).add(d(j).filter(this.options.predicateSelector)).each(function(){var k=d(this).attr("rel");if(!k){return}i.set(k,new f.vie.Collection([],{vie:f.vie,predicate:k}))})}this._registerEntityCollectionViews(i,j,h);return h},_registerEntityCollectionViews:function(h,i,g){var f=this;b.each(h.attributes,function(l,j){var k=h.fromReference(h.get(j));if(k&&k.isCollection){d.each(f.getElementByPredicate(j,i),function(){f._registerCollectionView(k,d(this),h)});g.collectionsChecked=true}})},setTemplate:function(i,f,h){var g;if(!h){h=f;f="default"}i=this.vie.namespaces.isUri(i)?i:this.vie.namespaces.uri(i);if(b.isFunction(h)){g=h}else{g=this.getElementTemplate(h)}if(!this.templates[i]){this.templates[i]={}}this.templates[i][f]=g;b.each(this.views,function(j){if(!(j instanceof this.vie.view.Collection)){return}if(j.collection.predicate!==f){return}j.templates[i]=g},this)},getTemplate:function(g,f){if(!f){f="default"}g=this.vie.namespaces.isUri(g)?g:this.vie.namespaces.uri(g);if(!this.templates[g]){return}return this.templates[g][f]},_getElementTemplates:function(j,h,f){var i={};var l=h.get("@type");if(l&&l.attributes&&l.attributes.get(f)){var m=l.attributes.get(f);b.each(m.range,function(n){var o=this.getTemplate(n,f);if(o){var p=this.vie.types.get(n);i[p.id]=o}},this);if(!b.isEmpty(i)){return i}}var g=this;d("[typeof]",j).each(function(){var p=d(this);var n=p.attr("typeof");n=g.vie.namespaces.isUri(n)?n:g.vie.namespaces.uri(n);if(i[n]){return}var o=g.getElementTemplate(p);i[n]=o;i["<http://www.w3.org/2002/07/owl#Thing>"]=o});if(b.isEmpty(i)){var k=j.children(":first-child");if(k.length){i["<http://www.w3.org/2002/07/owl#Thing>"]=g.getElementTemplate(k)}}return i},getElementTemplate:function(g){var f=this;return function(h,k){var j=d(g).clone(false);if(j.attr("about")!==undefined){j.attr("about","")}j.find("[about]").attr("about","");var i=f.findPredicateElements(i,j,false).each(function(){var m=d(this);var l=f.getElementPredicate(m);if(h.has(l)&&h.get(l).isCollection){return true}f.writeElementValue(null,m,"")});k(j)}},_registerCollectionView:function(i,h,g){var f=this._getViewForElement(h,true);if(f){return f}f=new this.vie.view.Collection({owner:g,collection:i,model:i.model,el:h,templates:this._getElementTemplates(h,g,i.predicate),service:this});this.views.push(f);return f},_getElementType:function(f){var g;if(d(f).attr("typeof")!==this.options.attributeExistenceComparator){g=d(f).attr("typeof");if(g.indexOf("://")!==-1){return"<"+g+">"}else{return g}}return null},_generatebnodeId:function(){var f=this.options.bnodePrefix+":"+this.bnodes;this.bnodes++;return f},getElementSubject:function(i,j){var g=this;if(typeof document!=="undefined"){if(i===document){return document.baseURI}}var h;var f=null;d(i).closest(this.options.subjectSelector).each(function(){f=this;if(d(this).attr("about")!==g.options.attributeExistenceComparator){h=d(this).attr("about");return true}if(d(this).attr("src")!==g.options.attributeExistenceComparator){h=d(this).attr("src");return true}if(d(this).attr("typeof")!==g.options.attributeExistenceComparator){var k=d(this);if(k.data("vie-bnode")){h=k.data("vie-bnode");return true}h=g._generatebnodeId();k.data("vie-bnode",h);return true}if(d(this).get(0).nodeName==="HTML"){d("base",this).each(function(){h=d(this).attr("href")})}});if(!h){if(f===i){return g.getElementSubject(d(i).parent())}return undefined}if(typeof h==="object"){return h}if(h.indexOf("_:")===0){return h}if(h.indexOf("<")===0){return h}return"<"+h+">"},setElementSubject:function(g,f){if(d(f).attr("src")){return d(f).attr("src",g)}return d(f).attr("about",g)},getElementPredicate:function(g){var f;g=d(g);f=g.attr("property");if(!f){f=g.attr("rel")}return f},getElementBySubject:function(h,g){var f=this;return d(g).find(this.options.subjectSelector).add(d(g).filter(this.options.subjectSelector)).filter(function(){if(f.getElementSubject(d(this))!==h){return false}return true})},getElementByPredicate:function(g,i){var f=this;var h=this.getElementSubject(i);return d(i).find(this.options.predicateSelector).add(d(i).filter(this.options.predicateSelector)).filter(function(){var j=f.getElementPredicate(d(this));if(f.vie.namespaces.curie(j)!==f.vie.namespaces.curie(g)){return false}if(f.getElementSubject(this)!==h){return false}return true})},_readEntityPredicates:function(h,g,j){var f=this;var i={};this.findPredicateElements(h,g,true).each(function(){var l=d(this);var k=f.getElementPredicate(l);if(k===""){return}var m=f.readElementValue(k,l);if(m===null&&!j){return}i[k]=m});if(d(g).get(0).tagName!=="HTML"){d(g).parent("[rev]").each(function(){var k=d(this).attr("rev");if(!k){return}i[d(this).attr("rev")]=f.getElementSubject(this)})}return i},findSubjectElements:function(f){return d("[about]",f)},findPredicateElements:function(i,h,g){var f=this;return d(h).find(this.options.predicateSelector).add(d(h).filter(this.options.predicateSelector)).filter(function(){if(f.getElementSubject(this)!==i){return false}if(!g){if(!d(this).parents("[property]").length){return true}return false}return true})},parseElementValue:function(h,f){if(!f.attr("datatype")){return h}var g=this.vie.namespaces.uri(f.attr("datatype"));if(!this.datatypeReaders[g]){return h}return this.datatypeReaders[g](h)},generateElementValue:function(h,f){if(!f.attr("datatype")){return h}var g=this.vie.namespaces.uri(f.attr("datatype"));if(!this.datatypeWriters[g]){return h}return this.datatypeWriters[g](h)},readElementValue:function(g,i){var j=i.attr("content");if(j){return this.parseElementValue(j,i)}var l=i.attr("resource");if(l){return["<"+l+">"]}var h=i.attr("href");if(h&&i.attr("rel")===g){return["<"+h+">"]}if(i.attr("rel")){var k=[];var f=this;d(i).children(this.options.subjectSelector).each(function(){k.push(f.getElementSubject(this,true))});return k}return this.parseElementValue(i.html(),i)},writeElementValue:function(f,g,j){j=this.generateElementValue(j,g);if(b.isArray(j)&&j.length>0){j=j[0]}var h=g.attr("content");if(h){g.attr("content",j);return}var i=g.attr("resource");if(i){g.attr("resource",j)}g.html(j)},xmlns:function(g){var f;if(!g){if(typeof document==="undefined"){return{}}f=d(document)}else{f=d(g)}f=f.add(f.parents());var h={};f.each(function(k,n){if(n.attributes){for(k=0;k<n.attributes.length;k+=1){var j=n.attributes[k];if(/^xmlns(:(.+))?$/.test(j.nodeName)){var m=/^xmlns(:(.+))?$/.exec(j.nodeName)[2]||"";var l=j.nodeValue;if(m===""||l!==""){h[m]=j.nodeValue}}}}});return h}}})();(function(){c.prototype.StanbolService=function(f){var g={name:"stanbol",url:["http://dev.iks-project.eu/stanbolfull"],timeout:20000,namespaces:{semdeski:"http://www.semanticdesktop.org/ontologies/2007/01/19/nie#",semdeskf:"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#",skos:"http://www.w3.org/2004/02/skos/core#",foaf:"http://xmlns.com/foaf/0.1/",opengis:"http://www.opengis.net/gml/",dbpedia:"http://dbpedia.org/ontology/",dbprop:"http://dbpedia.org/property/",owl:"http://www.w3.org/2002/07/owl#",geonames:"http://www.geonames.org/ontology#",enhancer:"http://fise.iks-project.eu/ontology/",entityhub:"http://www.iks-project.eu/ontology/rick/model/",entityhub2:"http://www.iks-project.eu/ontology/rick/query/",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",dcterms:"http://purl.org/dc/terms/",schema:"http://schema.org/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#"},rules:[{left:["?subject a <http://fise.iks-project.eu/ontology/EntityAnnotation>","?subject enhancer:entity-type ?type","?subject enhancer:confidence ?confidence","?subject enhancer:entity-reference ?entity","?subject dcterms:relation ?relation","?relation a <http://fise.iks-project.eu/ontology/TextAnnotation>","?relation enhancer:selected-text ?selected-text","?relation enhancer:selection-context ?selection-context","?relation enhancer:start ?start","?relation enhancer:end ?end"],right:["?entity a ?type","?entity enhancer:hasTextAnnotation ?relation","?entity enhancer:hasEntityAnnotation ?subject"]}],enhancer:{chain:"default"},entityhub:{site:undefined}};this.options=d.extend(true,g,f?f:{});this.vie=null;this.name=this.options.name};c.prototype.StanbolService.prototype={init:function(){for(var f in this.options.namespaces){var g=this.options.namespaces[f];this.vie.namespaces.add(f,g)}this.rules=d.extend([],c.Util.transformationRules(this));this.rules=d.merge(this.rules,(this.options.rules)?this.options.rules:[]);this.connector=new this.vie.StanbolConnector(this.options);this.vie.types.addOrOverwrite("enhancer:EntityAnnotation",[]).inherit("owl:Thing");this.vie.types.addOrOverwrite("enhancer:TextAnnotation",[]).inherit("owl:Thing");this.vie.types.addOrOverwrite("enhancer:Enhancement",[]).inherit("owl:Thing")},analyze:function(m){var f=this;var i=m instanceof this.vie.Analyzable;if(!i){throw"Invalid Analyzable passed"}var j=m.options.element?m.options.element:d("body");var l=f._extractText(j);if(l.length>0){var k=function(n){b.defer(function(){var o=c.Util.rdf2Entities(f,n);m.resolve(o)})};var h=function(n){m.reject(n)};var g={chain:(m.options.chain)?m.options.chain:f.options.enhancer.chain};this.connector.analyze(l,k,h,g)}else{console.warn("No text found in element.");m.resolve([])}},find:function(l){var j=l instanceof this.vie.Findable;if(!j){throw"Invalid Findable passed"}var i=this;if(!l.options.term){console.info("StanbolConnector: No term to look for!");l.reject([])}var f=escape(l.options.term);var g=(typeof l.options.limit==="undefined")?20:l.options.limit;var h=(typeof l.options.offset==="undefined")?0:l.options.offset;var p=function(q){b.defer(function(){var r=c.Util.rdf2Entities(i,q);l.resolve(r)})};var m=function(q){l.reject(q)};l.options.site=(l.options.site)?l.options.site:i.options.entityhub.site;var n=this.vie;if(l.options.properties){var k=l.options.properties;l.options.ldPath=b(k).map(function(q){if(n.namespaces.isCurie(q)){return n.namespaces.uri(q)+";"}else{return q}}).join("")}if(l.options.field&&n.namespaces.isCurie(o)){var o=l.options.field;l.options.field=n.namespaces.uri(o)}this.connector.find(f,g,h,p,m,l.options)},load:function(l){var j=l instanceof this.vie.Loadable;if(!j){throw"Invalid Loadable passed"}var f=this;var g=l.options.entity;if(!g){console.warn("StanbolConnector: No entity to look for!");l.resolve([])}var k=function(m){b.defer(function(){var n=c.Util.rdf2Entities(f,m);l.resolve(n)})};var i=function(m){l.reject(m)};var h={site:(l.options.site)?l.options.site:f.options.entityhub.site,local:l.options.local};this.connector.load(g,k,i,h)},save:function(k){var j=k instanceof this.vie.Savable;if(!j){throw"Invalid Savable passed"}var f=this;var g=k.options.entity;if(!g){console.warn("StanbolConnector: No entity to save!");k.reject("StanbolConnector: No entity to save!")}var l=function(m){b.defer(function(){var n=c.Util.rdf2Entities(f,m);k.resolve(n)})};var i=function(m){k.reject(m)};var h={site:(k.options.site)?k.options.site:f.options.entityhub.site,local:k.options.local};this.connector.save(g,l,i,h)},_extractText:function(g){if(g.get(0)&&g.get(0).tagName&&(g.get(0).tagName=="TEXTAREA"||g.get(0).tagName=="INPUT"&&g.attr("type","text"))){return g.get(0).val()}else{var f=g.text().replace(/\s+/g," ").replace(/\0\b\n\r\f\t/g,"");return d.trim(f)}}};c.prototype.StanbolConnector=function(f){var g={url:["http://dev.iks-project.eu/stanbolfull"],timeout:20000,enhancer:{urlPostfix:"/enhancer",chain:"default"},entityhub:{site:undefined,urlPostfix:"/entityhub",local:false},sparql:{urlPostfix:"/sparql"},contenthub:{urlPostfix:"/contenthub",index:"contenthub"},ontonet:{urlPostfix:"/ontonet"},factstore:{urlPostfix:"/factstore"},rules:{urlPostfix:"/rules"},cmsadapter:{urlPostfix:"/cmsadapter"}};this.options=d.extend(true,g,f?f:{});this.options.url=(b.isArray(this.options.url))?this.options.url:[this.options.url];this._init();this.baseUrl=(b.isArray(f.url))?f.url:[f.url]};c.prototype.StanbolConnector.prototype={_init:function(){var f=this;d.ajaxSetup({converters:{"text application/rdf+json":function(g){return JSON.parse(g)}},timeout:f.options.timeout});return this},_iterate:function(f){if(!f){return}if(f.urlIndex>=this.options.url.length){f.error.call(this,"Could not connect to the given Stanbol endpoints! Please check for their setup!");return}var g=function(i,h){return function(){console.log("Stanbol connection error",arguments);h.urlIndex=h.urlIndex+1;i._iterate(h)}}(this,f);if(typeof exports!=="undefined"&&typeof process!=="undefined"){return f.methodNode.call(this,f.url.call(this,f.urlIndex,f.args.options),f.args,f.success,g)}return f.method.call(this,f.url.call(this,f.urlIndex,f.args.options),f.args,f.success,g)},analyze:function(j,i,h,g){g=(g)?g:{};var f=this;f._iterate({method:f._analyze,methodNode:f._analyzeNode,url:function(k,n){var m=(n.chain)?n.chain:this.options.enhancer.chain;var l=this.options.url[k].replace(/\/$/,"");l+=this.options.enhancer.urlPostfix+"/chain/"+m.replace(/\/$/,"");return l},args:{text:j,format:g.format||"application/rdf+json",options:g},success:i,error:h,urlIndex:0})},_analyze:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"POST",data:g.text,dataType:g.format,contentType:"text/plain",accepts:{"application/rdf+json":"application/rdf+json"}})},_analyzeNode:function(h,g,k,f){var j=require("request");var i=j({method:"POST",uri:h,body:g.text,headers:{Accept:g.format,"Content-Type":"text/plain"}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},load:function(i,j,h,g){var f=this;g=(g)?g:{};g.uri=i.replace(/^</,"").replace(/>$/,"");f._iterate({method:f._load,methodNode:f._loadNode,success:j,error:h,url:function(k,o){var m=(o.site)?o.site:this.options.entityhub.site;m=(m)?"/"+m:"s";var n=o.local;var l=this.options.url[k].replace(/\/$/,"")+this.options.entityhub.urlPostfix;if(n){l+="/entity?id="+escape(o.uri)}else{l+="/site"+m+"/entity?id="+escape(o.uri)}return l},args:{format:g.format||"application/rdf+json",options:g},urlIndex:0})},_load:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"GET",dataType:g.format,contentType:"text/plain",accepts:{"application/rdf+json":"application/rdf+json"}})},_loadNode:function(h,g,k,f){var j=require("request");var i=j({method:"GET",uri:h,body:g.text,headers:{Accept:g.format}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},find:function(j,g,l,k,i,h){h=(h)?h:{};var f=this;if(!j||j===""){i("No term given!");return}l=(l)?l:0;g=(g)?g:10;f._iterate({method:f._find,methodNode:f._findNode,success:k,error:i,url:function(m,q){var o=(q.site)?q.site:this.options.entityhub.site;o=(o)?"/"+o:"s";var p=q.local;var n=this.options.url[m].replace(/\/$/,"")+this.options.entityhub.urlPostfix;if(p){n+="/sites/find"}else{n+="/site"+o+"/find"}return n},args:{term:j,offset:l,limit:g,format:h.format||"application/rdf+json",options:h},urlIndex:0})},_find:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"POST",data:"name="+g.term+"&limit="+g.limit+"&offset="+g.offset,dataType:g.format,contentType:"application/x-www-form-urlencoded",accepts:{"application/rdf+json":"application/rdf+json"}})},_findNode:function(h,g,k,f){var j=require("request");var i=j({method:"POST",uri:h,body:"name="+g.term+"&limit="+g.limit+"&offset="+g.offset,headers:{Accept:g.format}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},lookup:function(i,j,h,g){g=(g)?g:{};var f=this;i=i.replace(/^</,"").replace(/>$/,"");g.uri=i;g.create=(g.create)?g.create:false;f._iterate({method:f._lookup,methodNode:f._lookupNode,success:j,error:h,url:function(k,m){var l=this.options.url[k].replace(/\/$/,"")+this.options.entityhub.urlPostfix;l+="/lookup?id="+escape(m.uri)+"&create="+m.create;return l},args:{format:g.format||"application/rdf+json",options:g},urlIndex:0})},_lookup:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"GET",dataType:g.format,contentType:"text/plain",accepts:{"application/rdf+json":"application/rdf+json"}})},_lookupNode:function(h,g,k,f){var j=require("request");var i=j({method:"GET",uri:h,body:g.text,headers:{Accept:g.format}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},referenced:function(j,h,g){g=(g)?g:{};var f=this;var i=function(o){if(!b.isArray(o)){o=JSON.parse(o)}var m=[];for(var n=0,k=o.length;n<k;n++){m.push(o[n].replace(/.+\/(.+?)\/?$/,"$1"))}return j(m)};f._iterate({method:f._referenced,methodNode:f._referencedNode,success:i,error:h,url:function(k,m){var l=this.options.url[k].replace(/\/$/,"");l+=this.options.entityhub.urlPostfix+"/sites/referenced";return l},args:{options:g},urlIndex:0})},_referenced:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"GET",accepts:{"application/rdf+json":"application/rdf+json"}})},_referencedNode:function(h,g,k,f){var j=require("request");var i=j({method:"GET",uri:h,headers:{Accept:g.format}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},sparql:function(i,j,h,g){g=(g)?g:{};var f=this;f._iterate({method:f._sparql,methodNode:f._sparqlNode,success:j,error:h,url:function(k,m){var l=this.options.url[k].replace(/\/$/,"");l+=this.options.sparql.urlPostfix.replace(/\/$/,"");return l},args:{query:i,options:g},urlIndex:0})},_sparql:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"POST",data:"query="+g.query,contentType:"application/x-www-form-urlencoded"})},_sparqlNode:function(h,g,k,f){var j=require("request");var i=j({method:"POST",uri:h,body:JSON.stringify({query:g.query}),headers:{Accept:g.format}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},ldpath:function(j,i,l,h,g){g=(g)?g:{};var f=this;i=(b.isArray(i))?i:[i];var k="";for(var m=0;m<i.length;m++){k+="&context="+i[m]}f._iterate({method:f._ldpath,methodNode:f._ldpathNode,success:l,error:h,url:function(n,r){var p=(r.site)?r.site:this.options.entityhub.site;p=(p)?"/"+p:"s";var q=r.local;var o=this.options.url[n].replace(/\/$/,"")+this.options.entityhub.urlPostfix;if(!q){o+="/site"+p}o+="/ldpath";return o},args:{ldpath:j,context:k,format:g.format||"application/rdf+json",options:g},urlIndex:0})},_ldpath:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"POST",data:"ldpath="+g.ldpath+g.context,contentType:"application/x-www-form-urlencoded",dataType:g.format,accepts:{"application/rdf+json":"application/rdf+json"}})},_ldpathNode:function(h,g,k,f){var j=require("request");var i=j({method:"POST",uri:h,body:"ldpath="+g.ldpath+g.context,headers:{Accept:g.format}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},uploadContent:function(i,j,h,g){g=(g)?g:{};var f=this;f._iterate({method:f._uploadContent,methodNode:f._uploadContentNode,success:j,error:h,url:function(k,n){var m=this.options.url[k].replace(/\/$/,"");m+=this.options.contenthub.urlPostfix.replace(/\/$/,"");var l=(n.index)?n.index:this.options.contenthub.index;m+="/"+l.replace(/\/$/,"");m+="/store";return m},args:{content:i,options:g},urlIndex:0})},_uploadContent:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"POST",data:g.content,contentType:"text/plain"})},_uploadContentNode:function(h,g,k,f){var j=require("request");var i=j({method:"POST",uri:h,body:g.content,headers:{Accept:"application/rdf+xml","Content-Type":"text/plain"}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},createFactSchema:function(i,j,k,h,g){g=(g)?g:{};var f=this;g.url=i;f._iterate({method:f._createFactSchema,methodNode:f._createFactSchemaNode,success:k,error:h,url:function(l,n){var m=this.options.url[l].replace(/\/$/,"");m+=this.options.factstore.urlPostfix.replace(/\/$/,"");m+="/facts/"+escape(n.url);return m},args:{url:i,schema:j,options:g},urlIndex:0})},_createFactSchema:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"PUT",data:g.schema,contentType:"application/json",dataType:"application/json"})},_createFactSchemaNode:function(h,g,k,f){var j=require("request");var i=j({method:"PUT",uri:h,body:g.schema,headers:{Accept:"application/json","Content-Type":"application/json"}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},createFact:function(i,j,h,g){g=(g)?g:{};var f=this;f._iterate({method:f._createFact,methodNode:f._createFactNode,success:j,error:h,url:function(k,m){var l=this.options.url[k].replace(/\/$/,"");l+=this.options.factstore.urlPostfix.replace(/\/$/,"");l+="/facts";return l},args:{fact:i,options:g},urlIndex:0})},_createFact:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"POST",data:g.fact,contentType:"application/json",dataType:"application/json"})},_createFactNode:function(h,g,k,f){var j=require("request");var i=j({method:"POST",uri:h,body:g.fact,headers:{Accept:"application/json","Content-Type":"application/json"}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()},queryFact:function(i,j,h,g){g=(g)?g:{};var f=this;f._iterate({method:f._queryFact,methodNode:f._queryFactNode,success:j,error:h,url:function(k,m){var l=this.options.url[k].replace(/\/$/,"");l+=this.options.factstore.urlPostfix.replace(/\/$/,"");l+="/query";return l},args:{query:i,options:g},urlIndex:0})},_queryFact:function(h,g,i,f){d.ajax({success:i,error:f,url:h,type:"POST",data:g.query,contentType:"application/json",dataType:"application/json"})},_queryFactNode:function(h,g,k,f){var j=require("request");var i=j({method:"POST",uri:h,body:g.query,headers:{Accept:"application/json","Content-Type":"application/json"}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()}}})();(function(){c.prototype.ZemantaService=function(f){var g={name:"zemanta",url:["http://api.zemanta.com/services/rest/0.0/"],timeout:20000,namespaces:{zemanta:"http://s.zemanta.com/ns#"},rules:[{left:["?subject a zemanta:Recognition","?subject zemanta:object ?object","?object owl:sameAs ?entity"],right:["?entity zemanta:hasEntityAnnotation ?subject"]}],api_key:undefined};this.options=d.extend(true,g,f?f:{});this.vie=null;this.name=this.options.name;d.ajaxSetup({converters:{"text application/rdf+json":function(h){return JSON.parse(h)}},timeout:this.options.timeout})};c.prototype.ZemantaService.prototype={init:function(){for(var f in this.options.namespaces){var g=this.options.namespaces[f];this.vie.namespaces.add(f,g)}this.rules=d.extend([],c.Util.transformationRules(this));this.rules=d.merge(this.rules,(this.options.rules)?this.options.rules:[]);this.connector=new this.vie.ZemantaConnector(this.options);this.vie.types.addOrOverwrite("zemanta:Recognition",[]).inherit("owl:Thing")},analyze:function(m){var f=this;var i=m instanceof this.vie.Analyzable;if(!i){throw"Invalid Analyzable passed"}var j=m.options.element?m.options.element:d("body");var l=f._extractText(j);if(l.length>0){var k=function(n){b.defer(function(){var o=c.Util.rdf2Entities(f,n);m.resolve(o)})};var h=function(n){m.reject(n)};var g={};this.connector.analyze(l,k,h,g)}else{console.warn("No text found in element.");m.resolve([])}},_extractText:function(f){return d(f).wrap("<div>").parent().html()}};c.prototype.ZemantaConnector=function(f){var g={url:["http://api.zemanta.com/services/rest/0.0/"],timeout:20000,api_key:undefined};this.options=d.extend(true,g,f?f:{});this.options.url=(b.isArray(this.options.url))?this.options.url:[this.options.url];this._init();this.baseUrl=(b.isArray(f.url))?f.url:[f.url]};c.prototype.ZemantaConnector.prototype={_init:function(){var f=this;d.ajaxSetup({converters:{"text application/rdf+json":function(g){return JSON.parse(g)}},timeout:f.options.timeout});return this},_iterate:function(f){if(!f){return}if(f.urlIndex>=this.options.url.length){f.error.call(this,"Could not connect to the given Zemanta endpoints! Please check for their setup!");return}var g=function(i,h){return function(){console.log("Zemanta connection error",arguments);h.urlIndex=h.urlIndex+1;i._iterate(h)}}(this,f);if(typeof exports!=="undefined"&&typeof process!=="undefined"){return f.methodNode.call(this,f.url.call(this,f.urlIndex,f.args.options),f.args,f.success,g)}return f.method.call(this,f.url.call(this,f.urlIndex,f.args.options),f.args,f.success,g)},analyze:function(j,i,h,g){g=(g)?g:{};var f=this;f._iterate({method:f._analyze,methodNode:f._analyzeNode,success:i,error:h,url:function(k,m){var l=this.options.url[k].replace(/\/$/,"");return l},args:{text:j,format:g.format||"rdfxml",options:g},urlIndex:0})},_analyze:function(h,g,i,f){d.ajax({success:function(k,j,m){var l=m.responseText.replace(/<z:signature>.*?<\/z:signature>/,"");i(l)},error:f,url:h,type:"POST",dataType:"xml",data:{method:"zemanta.suggest",text:g.text,format:g.format,api_key:this.options.api_key,return_rdf_links:g.options.return_rdf_links},contentType:"text/plain",accepts:{"application/rdf+json":"application/rdf+json"}})},_analyzeNode:function(h,g,k,f){var j=require("request");var i=j({method:"POST",uri:h,body:g.text,headers:{Accept:g.format,"Content-Type":"text/plain"}},function(n,m,l){try{k({results:JSON.parse(l)})}catch(o){f(o)}});i.end()}}})();if(!c.prototype.view){c.prototype.view={}}c.prototype.view.Collection=e.View.extend({initialize:function(){this.templates=this.options.templates;this.service=this.options.service;if(!this.service){throw"No RDFa service provided to the Collection View"}this.owner=this.options.owner;this.definition=this.options.definition;this.entityViews={};b.bindAll(this,"addItem","removeItem","refreshItems");this.collection.on("add",this.addItem);this.collection.on("remove",this.removeItem);this.collection.on("reset",this.refreshItems);this.collection.each(function(f){this.registerItem(f,this.collection)},this)},canAdd:function(f){if(b.isEmpty(this.templates)){return false}if(f&&!this.templates[f]){return false}return this.collection.canAdd(f)},addItem:function(g,j){if(j!==this.collection){return}var h=g.get("@type");var i;if(b.isArray(h)){b.each(h,function(k){if(this.canAdd(k.id)){i=k.id}},this)}else{if(this.canAdd(h.id)){i=h.id}}if(!i){return}var f=this;this.templates[i](g,function(l){var k=f.service._registerEntityView(g,l,true);var m=k.render().$el;if(g.id){f.service.setElementSubject(g.getSubjectUri(),m)}var o=j.indexOf(g);if(o===0){f.$el.prepend(m)}else{var p=j.at(o-1);var n=f.entityViews[p.cid];if(n){n.$el.after(m)}else{f.$el.append(m)}}f.findReverseRelations(g,m);f.trigger("add",k);f.entityViews[g.cid]=k;m.show()},this)},findReverseRelations:function(g,h){var f=this.service;h.parent("[rev]").each(function(){var i=d(this).attr("rev");var j={};j[i]=new f.vie.Collection([],{vie:f.vie,predicate:i});var k=f.vie.entities.get(f.getElementSubject(this));if(k){j[i].addOrUpdate(k)}g.set(j)})},registerItem:function(g,i){var h=this.service.getElementBySubject(g.id,this.el);if(!h){return}var f=this.service._registerEntityView(g,h);this.entityViews[g.cid]=f},removeItem:function(f){if(!this.entityViews[f.cid]){return}this.trigger("remove",this.entityViews[f.cid]);d(this.entityViews[f.cid].el).remove();delete (this.entityViews[f.cid])},refreshItems:function(f){b.each(this.entityViews,function(g,h){d(g.el).remove()});this.entityViews={};f.forEach(function(g){this.addItem(g,f)},this)}});if(!c.prototype.view){c.prototype.view={}}c.prototype.view.Entity=e.View.extend({initialize:function(f){this.service=f.service?f.service:"rdfa";this.vie=f.vie;b.bindAll(this,"render","renderAbout");this.model.on("change",this.render);this.model.on("change:@subject",this.renderAbout)},render:function(){this.vie.save({element:this.el,entity:this.model}).to(this.service).execute();return this},renderAbout:function(){this.vie.service(this.service).setElementSubject(this.model.getSubjectUri(),this.el)}});var a=this;(function(f){if(a.XDomainRequest){f.ajaxTransport(function(h){if(h.crossDomain&&h.async){if(h.timeout){h.xdrTimeout=h.timeout;delete h.timeout}var g;return{send:function(j,i){function l(m,p,o,n){g.onload=g.onerror=g.ontimeout=f.noop;g=undefined;i(m,p,o,n)}g=new XDomainRequest();if(h.dataType){var k="header_Accept="+encodeURIComponent(h.dataType);h.url=h.url+(h.url.indexOf("?")===-1?"?":"&")+k}g.open(h.type,h.url);g.onload=function(n,m){l(200,"OK",{text:g.responseText},"Content-Type: "+g.contentType)};g.onerror=function(m){console.error(JSON.stringify(m));l(404,"Not Found")};if(h.xdrTimeout){g.ontimeout=function(){l(0,"timeout")};g.timeout=h.xdrTimeout}g.send((h.hasContent&&h.data)||null)},abort:function(){if(g){g.onerror=f.noop();g.abort()}}}}})}})(d)})();