n3 2.13.11 → 2.13.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,7 +20,7 @@ var nu=Object.create;var ur=Object.defineProperty,su=Object.defineProperties,ou=
20
20
  `:"",r)}_createPrefixRegex(){let e="",r="";for(let i in this._prefixPatterns){let[n,s]=this._prefixPatterns[i];e+=e?`|${n}`:n,r+=r?`|${s}`:s}return this._prefixRegex=new RegExp(`^(${e})([_a-zA-Z0-9](?:\\.?[\\-_a-zA-Z0-9])*)$|^(?:${r})`)}blank(e,r){let i=e,n,s;switch(e===void 0?i=[]:e.termType?i=[{predicate:e,object:r}]:"length"in e||(i=[e]),s=i.length){case 0:return new Ve("[]");case 1:if(n=i[0],!(n.object instanceof Ve))return new Ve(`[ ${this._encodePredicate(n.predicate)} ${this._encodeObject(n.object)} ]`);default:let o="[";for(let a=0;a<s;a++)n=i[a],n.predicate.equals(e)?o+=`, ${this._encodeObject(n.object)}`:(o+=`${(a?`;
21
21
  `:`
22
22
  `)+this._encodePredicate(n.predicate)} ${this._encodeObject(n.object)}`,e=n.predicate);return new Ve(`${o}
23
- ]`)}}list(e){let r=e&&e.length||0,i=new Array(r);for(let n=0;n<r;n++)i[n]=this._encodeObject(e[n]);return new Ve(`(${i.join(" ")})`)}end(e){this._endStatement(),this._write=this._blockedWrite;let r=e&&((i,n)=>{r=null,e(i,n)});if(this._endStream)try{return this._outputStream.end(r)}catch(i){}r&&r()}};function Ju(t){let e=ys[t];return e===void 0&&(t.length===1?(e=t.charCodeAt(0).toString(16),e="\\u0000".substr(0,6-e.length)+e):(e=((t.charCodeAt(0)-55296)*1024+t.charCodeAt(1)+9216).toString(16),e="\\U00000000".substr(0,10-e.length)+e)),e}function Xu(t){let e=ys[t];return e===void 0&&(e=t.charCodeAt(0).toString(16).toUpperCase(),e="\\u0000".substr(0,6-e.length)+e),e}var Xr=Zr(Yr());var Mt=Symbol("iter"),N=Symbol("size"),$n;function sb({store:t,observer:e}){let r=t.deref();r&&r._removeObserver(e)}function kn(t,e,r,i){let n=t&&t[e],s=n&&n[r];return!!s&&i in s}var ob=/^[?_"[.<]/;function Z(t){if(typeof t=="string"){let r=t.charCodeAt(0);return r!==60&&r!==46||t==="<>"?t:`<${t}>`}let e=De(t);return e.charCodeAt(0)>=97||!t?e:t.termType==="Quad"?JSON.stringify(Xl(t)):t.termType!=="NamedNode"||!ob.test(t.value)?e:`<${t.value}>`}function Xl(t){let e=[Jr(t.subject),Jr(t.predicate),Jr(t.object)];return t.graph&&!se(t.graph)&&e.push(Jr(t.graph)),e}function Jr(t){return t.termType==="Quad"?Xl(t):Z(t)}var nr=class{constructor(e={}){this._id=1,this._ids=Object.create(null),this._ids[""]=1,this._entities=Object.create(null),this._entities[1]="",this._blankNodeIndex=0,this._factory=e.factory||Q}_termFromId(e){if(e[0]==="<")return this._factory.namedNode(e.substring(1,e.length-1));if(e[0]==="."){let r=this._entities,i=e.split(".");return this._factory.quad(this._termFromId(r[i[1]]),this._termFromId(r[i[2]]),this._termFromId(r[i[3]]),i[4]&&this._termFromId(r[i[4]]))}return Be(e,this._factory)}_termToNumericId(e){if(e.termType==="Quad"){let r=this._termToNumericId(e.subject),i=this._termToNumericId(e.predicate),n=this._termToNumericId(e.object),s;return r&&i&&n&&(se(e.graph)||(s=this._termToNumericId(e.graph)))&&this._ids[s?`.${r}.${i}.${n}.${s}`:`.${r}.${i}.${n}`]}return typeof e=="string"?this._stringToNumericId(e):this._ids[Z(e)]}_stringToNumericId(e){let r=this._ids[e],i=r?this._entities[r].charCodeAt(0):e.charCodeAt(0);return i!==60&&i!==46||e==="<>"?r:this._ids[`<${e}>`]}_termToNewNumericId(e){if(typeof e=="string")return this._stringToNumericId(e)||this._addEntity(Z(e));let r=e&&e.termType==="Quad"?`.${this._termToNewNumericId(e.subject)}.${this._termToNewNumericId(e.predicate)}.${this._termToNewNumericId(e.object)}${se(e.graph)?"":`.${this._termToNewNumericId(e.graph)}`}`:Z(e);return this._ids[r]||this._addEntity(r)}_addEntity(e){return this._ids[this._entities[++this._id]=e]=this._id}createBlankNode(e){let r,i;if(e)for(r=e=`_:${e}`,i=1;this._ids[r];)r=e+i++;else do r=`_:b${this._blankNodeIndex++}`;while(this._ids[r]);return this._ids[r]=++this._id,this._entities[this._id]=r,this._factory.blankNode(r.substr(2))}};function Kl(t){return t instanceof we?t._size:null}var we=class t{constructor(e,r){this._size=0,this._graphs=Object.create(null),this._graphCount=0,this._observers=null,!r&&e&&!e[0]&&typeof e.match!="function"&&(r=e,e=null),r=r||{},this._factory=r.factory||Q,this._matchSemantics=Un(r.matchSemantics),this._entityIndex=r.entityIndex||new nr({factory:this._factory}),this._entities=this._entityIndex._entities,this._termFromId=this._entityIndex._termFromId.bind(this._entityIndex),this._termToNumericId=this._entityIndex._termToNumericId.bind(this._entityIndex),this._termToNewNumericId=this._entityIndex._termToNewNumericId.bind(this._entityIndex),e&&this.addAll(e)}get size(){return this._size===null&&(this._size=this.countQuads()),this._size}_addToIndex(e,r,i,n){let s=e[r];s||(e[r]=s={[N]:0},e[N]++);let o=s[i];o||(s[i]=o={[N]:0},s[N]++);let a=n in o;return a||(o[n]=null,o[N]++),!a}_removeFromIndex(e,r,i,n){let s=e[r],o=s[i];delete o[n],--o[N]===0&&(delete s[i],--s[N]===0&&(delete e[r],e[N]--))}*_findInIndex(e,r,i,n,s,o,a,l){let u=this._entities,f=this._termFromId(u[l]),c={subject:null,predicate:null,object:null};if(n){let h=e[r],b=h&&h[i];if(!b||!(n in b))return;c[s]=this._termFromId(u[r]),c[o]=this._termFromId(u[i]),c[a]=this._termFromId(u[n]),yield this._factory.quad(c.subject,c.predicate,c.object,f);return}if(r&&!(r in e))return;let d=r?null:Object.keys(e);for(let h=0,b=r||d[0];b;b=d&&d[++h]){let _=e[b];if(!_)continue;if(c[s]=this._termFromId(u[b]),i&&!(i in _))return;let y=i?null:Object.keys(_);for(let g=0,S=i||y[0];S;S=y&&y[++g]){let m=_[S];if(!m)continue;c[o]=this._termFromId(u[S]);let w=Object.keys(m);for(let x=0;x<w.length;x++)c[a]=this._termFromId(u[w[x]]),yield this._factory.quad(c.subject,c.predicate,c.object,f)}}}_loop(e,r){for(let i in e)r(i)}_loopByKey0(e,r,i){let n,s;if(n=e[r])for(s in n)i(s)}_loopByKey1(e,r,i){let n,s;for(n in e)s=e[n],s[r]&&i(n)}_loopBy2Keys(e,r,i,n){let s,o,a;if((s=e[r])&&(o=s[i]))for(a in o)n(a)}_loopByKey0Deep(e,r,i){let n,s,o,a;if(n=e[r])for(o in n){s=n[o];for(a in s)i(a)}}_countInIndex(e,r,i,n){let s=0,o,a;if(r){if(!(o=e[r]))return 0;if(i)return(a=o[i])?n?n in a?1:0:a[N]:0;let u=Object.keys(o);for(let f=0;f<u.length;f++)s+=o[u[f]][N];return s}let l=Object.keys(e);for(let u=0;u<l.length;u++){o=e[l[u]];let f=Object.keys(o);for(let c=0;c<f.length;c++)s+=o[f[c]][N]}return s}_getGraphs(e){return e=e===""?1:e&&(this._termToNumericId(e)||-1),typeof e!="number"?this._graphs:{[e]:this._graphs[e]}}_addObserver(e){let r=new WeakRef(e);return($n||($n=new FinalizationRegistry(sb))).register(e,{store:new WeakRef(this),observer:r},r),(this._observers||(this._observers=new Set)).add(r),r}_removeObserver(e){$n.unregister(e),this._observers&&(this._observers.delete(e),this._observers.size===0&&(this._observers=null))}_notifyObservers(e,r,i,n,s){for(let o of this._observers){let a=o.deref();a?a._onParentMutation(e,r,i,n,s):this._removeObserver(o)}}_uniqueEntities(e){let r=Object.create(null);return i=>{i in r||(r[i]=!0,e(this._termFromId(this._entities[i],this._factory)))}}add(e){return this.addQuad(e),this}addQuad(e,r,i,n){return r||(n=e.graph,i=e.object,r=e.predicate,e=e.subject),n=n?this._termToNewNumericId(n):1,e=this._termToNewNumericId(e),r=this._termToNewNumericId(r),i=this._termToNewNumericId(i),this._addQuad(e,r,i,n)}_addQuad(e,r,i,n){let s=this._graphs[n];if(s||(s=this._graphs[n]={subjects:{[N]:0},predicates:{[N]:0},objects:{[N]:0}},Object.freeze(s),this._graphCount++),this._observers!==null){if(kn(s.subjects,e,r,i))return!1;this._notifyObservers(e,r,i,n,!0)}return this._addToIndex(s.subjects,e,r,i)?(this._addToIndex(s.predicates,r,i,e),this._addToIndex(s.objects,i,e,r),this._size!==null&&this._size++,!0):!1}_addFromIndex(e,r=null){for(let i in e){let n=e[i].subjects,s=r&&r[i],o=s?s.subjects:null;for(let a in n){let l=Number(a),u=n[a],f=o&&o[a];for(let c in u){let d=Number(c),h=u[c],b=f&&f[c];for(let _ in h)(!b||!(_ in b))&&this._addQuad(l,d,Number(_),Number(i))}}}}_addIntersectionFromIndex(e,r){for(let i in e){let n=r[i];if(n){let s=e[i].subjects,o=n.subjects;o[N]<s[N]&&([s,o]=[o,s]);for(let a in s){let l=s[a],u=o[a];if(u){u[N]<l[N]&&([l,u]=[u,l]);for(let f in l){let c=l[f],d=u[f];if(d){d[N]<c[N]&&([c,d]=[d,c]);for(let h in c)h in d&&this._addQuad(Number(a),Number(f),Number(h),Number(i))}}}}}}}addQuads(e){for(let r=0;r<e.length;r++)this.addQuad(e[r])}delete(e){return this.removeQuad(e),this}has(e,r,i,n){if(e&&e.subject&&r==null&&i==null&&n==null&&({subject:e,predicate:r,object:i,graph:n}=e),e&&r&&i&&n!==void 0&&n!==null){let s=this._termToNumericId(e),o=this._termToNumericId(r),a=this._termToNumericId(i),l=n===""||se(n)?1:this._termToNumericId(n),u=l&&this._graphs[l];return!!s&&!!o&&!!a&&!!u&&kn(u.subjects,s,o,a)}return!this.readQuads(e,r,i,n).next().done}import(e){return e.on("data",r=>{this.addQuad(r)}),e}removeQuad(e,r,i,n){return r||({subject:e,predicate:r,object:i,graph:n}=e),n=n?this._termToNumericId(n):1,!(e=e&&this._termToNumericId(e))||!(r=r&&this._termToNumericId(r))||!(i=i&&this._termToNumericId(i))?!1:this._removeQuad(e,r,i,n)}_removeQuad(e,r,i,n){let s=this._graphs,o=s[n];return!o||!kn(o.subjects,e,r,i)?!1:(this._observers!==null&&this._notifyObservers(e,r,i,n,!1),this._removeFromIndex(o.subjects,e,r,i),this._removeFromIndex(o.predicates,r,i,e),this._removeFromIndex(o.objects,i,e,r),this._size!==null&&this._size--,o.subjects[N]===0&&(delete s[n],this._graphCount--),!0)}removeQuads(e){for(let r=0;r<e.length;r++)this.removeQuad(e[r])}remove(e){return e.on("data",r=>{this.removeQuad(r)}),e}removeMatches(e,r,i,n){let s=new Xr.Readable({objectMode:!0}),o=this.readQuads(e,r,i,n);return s._read=a=>{for(;--a>=0;){let{done:l,value:u}=o.next();if(l){s.push(null);return}s.push(u)}},this.remove(s)}deleteGraph(e){return this.removeMatches(null,null,null,e)}getQuads(e,r,i,n){return[...this.readQuads(e,r,i,n)]}*readQuads(e,r,i,n){let s=this._getGraphs(n),o,a,l,u;if(!(e&&!(a=this._termToNumericId(e))||r&&!(l=this._termToNumericId(r))||i&&!(u=this._termToNumericId(i))))for(let f in s)(o=s[f])&&(a?u?yield*ne(this._findInIndex(o.objects,u,a,l,"object","subject","predicate",f)):yield*ne(this._findInIndex(o.subjects,a,l,null,"subject","predicate","object",f)):l?yield*ne(this._findInIndex(o.predicates,l,u,null,"predicate","object","subject",f)):u?yield*ne(this._findInIndex(o.objects,u,null,null,"object","subject","predicate",f)):yield*ne(this._findInIndex(o.subjects,null,null,null,"subject","predicate","object",f)))}match(e,r,i,n,s=null){return new We(this,e,r,i,n,{entityIndex:this._entityIndex,matchSemantics:s&&s.matchSemantics!==void 0?s.matchSemantics:this._matchSemantics})}countQuads(e,r,i,n){let s=this._getGraphs(n),o=0,a,l,u,f;if(e&&!(l=this._termToNumericId(e))||r&&!(u=this._termToNumericId(r))||i&&!(f=this._termToNumericId(i)))return 0;for(let c in s)(a=s[c])&&(e?i?o+=this._countInIndex(a.objects,f,l,u):o+=this._countInIndex(a.subjects,l,u,f):r?o+=this._countInIndex(a.predicates,u,f,l):i?o+=this._countInIndex(a.objects,f,l,u):o+=this._countInIndex(a.subjects));return o}forEach(e,r,i,n,s){this.some(o=>(e(o,this),!1),r,i,n,s)}every(e,r,i,n,s){return!this.some(o=>!e(o,this),r,i,n,s)}some(e,r,i,n,s){for(let o of this.readQuads(r,i,n,s))if(e(o,this))return!0;return!1}getSubjects(e,r,i){let n=[];return this.forSubjects(s=>{n.push(s)},e,r,i),n}forSubjects(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.predicates,a,l,e):this._loopByKey1(o.subjects,a,e):l?this._loopByKey0(o.objects,l,e):this._loop(o.subjects,e))}getPredicates(e,r,i){let n=[];return this.forPredicates(s=>{n.push(s)},e,r,i),n}forPredicates(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.objects,l,a,e):this._loopByKey0(o.subjects,a,e):l?this._loopByKey1(o.predicates,l,e):this._loop(o.predicates,e))}getObjects(e,r,i){let n=[];return this.forObjects(s=>{n.push(s)},e,r,i),n}forObjects(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.subjects,a,l,e):this._loopByKey0Deep(o.subjects,a,e):l?this._loopByKey0(o.predicates,l,e):this._loop(o.objects,e))}getGraphs(e,r,i){let n=[];return this.forGraphs(s=>{n.push(s)},e,r,i),n}forGraphs(e,r,i,n){for(let s in this._graphs)this.some(o=>(e(o.graph),!0),r,i,n,this._termFromId(this._entities[s]))}createBlankNode(e){return this._entityIndex.createBlankNode(e)}extractLists({remove:e=!1,ignoreErrors:r=!1,allowExtraArcs:i=!1}={}){let n=Object.create(null),s=r?(()=>!0):((l,u)=>{throw new Error(`${l.value} ${u}`)}),o=this.getQuads(null,j.rdf.rest,j.rdf.nil,null),a=[];return o.forEach(l=>{let u=[],f=!1,c=!1,d,h,b=l.graph,_=[],y=l.subject;for(;y&&!f;){let g=this.getQuads(null,null,y,null),S=this.getQuads(y,null,null,null),m,w=null,x=null,A=null;for(let E=0;E<S.length&&!f;E++)m=S[E],m.graph.equals(b)?d?f=s(y,"has non-list arcs out"):m.predicate.value===j.rdf.first?(w?f=s(y,"has multiple rdf:first arcs"):w=m,e&&w===m&&_.push(m)):m.predicate.value===j.rdf.rest?(x?f=s(y,"has multiple rdf:rest arcs"):x=m,e&&x===m&&_.push(m)):g.length?i?c=!0:f=s(y,`has non-list arc ${m.predicate.value}`):(d=m,h="subject"):f=s(y,"not confined to single graph");for(let E=0;E<g.length&&!f;++E)m=g[E],d?f=s(y,"can't have coreferences"):m.predicate.value===j.rdf.rest?A?f=s(y,"has incoming rdf:rest arcs"):A=m:(d=m,h="object");w?u.push(w.object):f=s(y,"has no list head"),y=A&&A.subject}if(f)e=!1;else if(u.reverse(),d&&(n[d[h].value]=u),e&&!c)for(let g=0;g<_.length;g++)a.push(_[g])}),e&&this.removeQuads(a),n}addAll(e){if(e instanceof We&&(e=e.filtered),Array.isArray(e))this.addQuads(e);else if(e instanceof t&&e._entityIndex===this._entityIndex)this._addFromIndex(e._graphs);else for(let r of e)this.add(r);return this}contains(e){if(e instanceof We&&(e=e.filtered),e===this)return!0;if(!(e instanceof t)||this._entityIndex!==e._entityIndex){let f=Kl(e),c=this._size;return f!==null&&c!==null&&f>c?!1:e.every(d=>this.has(d))}let r=this._graphs,i=e._graphs,n,s,o,a,l,u;for(let f in i){if(!(n=r[f])||(n=n.subjects,(s=i[f].subjects)[N]>n[N]))return!1;for(let c in s){if(!(o=n[c])||(a=s[c])[N]>o[N])return!1;for(let d in a){if(!(l=o[d])||(u=a[d])[N]>l[N])return!1;for(let h in u)if(!(h in l))return!1}}}return!0}deleteMatches(e,r,i,n){for(let s of this.match(e,r,i,n,{matchSemantics:"lazy"}))this.removeQuad(s);return this}difference(e){if(e&&e instanceof We&&(e=e.filtered),e===this)return new t({entityIndex:this._entityIndex});if(e instanceof t&&e._entityIndex===this._entityIndex){let r=new t({entityIndex:this._entityIndex});return r._addFromIndex(this._graphs,e._graphs),r}return this.filter(r=>!e.has(r))}equals(e){return e instanceof We&&(e=e.filtered),e===this||this.size===e.size&&this.contains(e)}filter(e){let r=new t({entityIndex:this._entityIndex});for(let i of this)e(i,this)&&r.add(i);return r}intersection(e){if(e instanceof We&&(e=e.filtered),e===this){let n=new t({entityIndex:this._entityIndex});return n._addFromIndex(this._graphs),n}else if(e instanceof t&&this._entityIndex===e._entityIndex){let n=new t({entityIndex:this._entityIndex});return this._size!==0&&e._size!==0&&(e._graphCount<this._graphCount?n._addIntersectionFromIndex(e._graphs,this._graphs):n._addIntersectionFromIndex(this._graphs,e._graphs)),n}let r=Kl(e),i=this._size;if(r!==null&&i!==null&&r<i&&typeof e[Symbol.iterator]=="function"&&e._factory===Q&&e._entityIndex._factory===Q){let n=new t({entityIndex:this._entityIndex});for(let s of e)this.has(s)&&n.add(s);return n}return this.filter(n=>e.has(n))}map(e){let r=new t({entityIndex:this._entityIndex});for(let i of this)r.add(e(i,this));return r}reduce(e,r){let i=this.readQuads(),n=r===void 0?i.next().value:r;for(let s of i)n=e(n,s,this);return n}toArray(){return this.getQuads()}toCanonical(){throw new Error("not implemented")}toStream(){return this.match(null,null,null,null,{matchSemantics:"lazy"})}toString(){return new le().quadsToString(this)}union(e){let r=new t({entityIndex:this._entityIndex});return r._addFromIndex(this._graphs),r.addAll(e),r}[Symbol.iterator](){return this.readQuads()}};function me(t,e,r=0){let i=e[r];if(i&&!(i in t))return!1;let n=!1,s=0;for(let o in i?{[i]:t[i]}:t){let a=r===2?null:me(t[o],e,r+1);a!==!1&&(n=n||Object.create(null),n[o]=a,s++)}return n&&(n[N]=s),n}function Yl(t,e,r,i,n){let s={store:t,ids:[]},o=e&&t._termToNumericId(e),a=r&&t._termToNumericId(r),l=i&&t._termToNumericId(i),u,f,c,d,h;l&&(o||!a)?(u="objects",[f,c,d]=[l,o,a],h=[2,0,1]):!o&&a?(u="predicates",[f,c,d]=[a,l,o],h=[1,2,0]):(u="subjects",[f,c,d]=[o,a,l],h=[0,1,2]);let b=t._getGraphs(n),_=[];for(let y in b){let g=b[y][u],S=Number(y);for(let m in f?{[f]:g[f]}:g){let w=g[m];if(w){_[h[0]]=Number(m);for(let x in c?{[c]:w[c]}:w){let A=w[x];if(A){_[h[1]]=Number(x);for(let E in d?d in A?{[d]:null}:{}:A)_[h[2]]=Number(E),s.ids.push(_[0],_[1],_[2],S)}}}}}return s}function*ab({store:t,ids:e},r){let i=t._entities,n,s,o,a,l,u,f,c;for(let d=r*4;d<e.length;d+=4)l!==e[d]&&(n=t._termFromId(i[l=e[d]])),u!==e[d+1]&&(s=t._termFromId(i[u=e[d+1]])),f!==e[d+2]&&(o=t._termFromId(i[f=e[d+2]])),c!==e[d+3]&&(a=t._termFromId(i[c=e[d+3]])),yield t._factory.quad(n,s,o,a)}function Un(t="lazy"){if(t!=="lazy"&&t!=="snapshot"&&t!=="forwarded")throw new Error(`Unknown matchSemantics: ${t}`);if(t!=="lazy"&&(typeof WeakRef!="function"||typeof FinalizationRegistry!="function"))throw new Error("Non-lazy matchSemantics requires WeakRef and FinalizationRegistry support");return t}function Jl(t,e){let r=new Array(4);for(let i=0;i<4;i++){let n=t[i],s=e[i];if(n==null)r[i]=s;else if(s==null||Z(n)===Z(s))r[i]=n;else return!1}return r}var We=class t extends Xr.Readable{constructor(e,r,i,n,s,o){super({objectMode:!0}),Object.assign(this,{n3Store:e,subject:r,predicate:i,object:n,graph:s,options:o});let a=this._semantics=Un(o.matchSemantics);o.matchesNothing&&(this._matchesNothing=!0,this._filtered=new we({factory:e._factory,entityIndex:o.entityIndex})),a!=="lazy"&&(this._readers=null,this._subjectId=this._predicateId=this._objectId=this._graphId=void 0,this._matchesNothing||(this._observer=e._addObserver(this)))}_matchesPattern(e,r,i,n){let{subject:s,predicate:o,object:a,graph:l,n3Store:u}=this;return s&&e!==(this._subjectId||(this._subjectId=u._termToNumericId(s)))||o&&r!==(this._predicateId||(this._predicateId=u._termToNumericId(o)))||a&&i!==(this._objectId||(this._objectId=u._termToNumericId(a)))?!1:l==null||n===(this._graphId||(this._graphId=l===""||se(l)?1:u._termToNumericId(l)))}_matchesQuad(e){let{subject:r,predicate:i,object:n,graph:s}=this;return!this._matchesNothing&&(r==null||Z(r)===Z(e.subject))&&(i==null||Z(i)===Z(e.predicate))&&(n==null||Z(n)===Z(e.object))&&(s==null||Z(s)===Z(e.graph))}_assertMatchesPattern(e){if(!this._matchesQuad(e))throw new Error("Quad does not match the forwarded view pattern")}_sourceIterator(){return this._filtered?this._filtered[Symbol.iterator]():this.n3Store.readQuads(this.subject,this.predicate,this.object,this.graph)}_freezeCurrentIterators(){this._readers&&(this._readers.snapshot=this._filtered?Yl(this._filtered):Yl(this.n3Store,this.subject,this.predicate,this.object,this.graph),this._readers=null)}_onParentMutation(e,r,i,n,s){if(this._matchesPattern(e,r,i,n)){if(this._freezeCurrentIterators(),this._semantics==="forwarded"){this._filtered&&(s?this._filtered._addQuad(e,r,i,n):this._filtered._removeQuad(e,r,i,n));return}this._filtered=this.filtered}}get filtered(){if(!this._filtered){let{n3Store:e,graph:r,object:i,predicate:n,subject:s}=this;this._semantics!=="lazy"&&this._freezeCurrentIterators();let o=this._filtered=new we({factory:e._factory,entityIndex:this.options.entityIndex});this._semantics==="snapshot"&&this._detachObserver();let a,l,u;if(s&&!(a=o._termToNumericId(s))||n&&!(l=o._termToNumericId(n))||i&&!(u=o._termToNumericId(i)))return o;let f=e._getGraphs(r);for(let c in f){let d,h,b,_;(_=f[c])&&(!a&&l?(h=me(_.predicates,[l,u,a]))&&(d=me(_.subjects,[a,l,u]),b=me(_.objects,[u,a,l])):u?(b=me(_.objects,[u,a,l]))&&(d=me(_.subjects,[a,l,u]),h=me(_.predicates,[l,u,a])):(d=me(_.subjects,[a,l,u]))&&(h=me(_.predicates,[l,u,a]),b=me(_.objects,[u,a,l])),d&&(o._graphs[c]={subjects:d,predicates:h,objects:b},o._graphCount++))}o._size=null}return this._filtered}get size(){return this.filtered.size}_read(e){e>0&&!this[Mt]&&(this[Mt]=this[Symbol.iterator]());let r=this[Mt];for(;--e>=0;){let{done:i,value:n}=r.next();if(i){this.push(null);return}this.push(n)}}_destroy(e,r){this[Mt]&&(this[Mt].return(),this[Mt]=null),r(e)}_detachObserver(){this._observer&&(this.n3Store._removeObserver(this._observer),this._observer=null)}_detach(){return this._filtered=this.filtered,this._detachObserver(),this._semantics==="lazy"&&(this._readers=null),this._semantics="snapshot",this}addAll(e){if(this._semantics==="forwarded"){for(let r of e)this._assertMatchesPattern(r),this.n3Store.addQuad(r);return this}return this.filtered.addAll(e)}contains(e){return this.filtered.contains(e)}deleteMatches(e,r,i,n){if(this._semantics==="forwarded"){if(this._matchesNothing)throw new Error("Cannot delete from a conflicting forwarded view pattern");let s=Jl([this.subject,this.predicate,this.object,this.graph],[e,r,i,n]);if(!s)throw new Error("Deletion pattern does not match the forwarded view pattern");return this.n3Store.deleteMatches(...s),this}return this.filtered.deleteMatches(e,r,i,n)}difference(e){return this.filtered.difference(e)}equals(e){return this.filtered.equals(e)}every(e,r,i,n,s){return this.filtered.every(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}filter(e){return this.filtered.filter(this._semantics==="forwarded"?r=>e(r,this):e)}forEach(e,r,i,n,s){return this.filtered.forEach(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}import(e){if(this._semantics!=="forwarded")return this.filtered.import(e);let r=this;function i(n){try{r._assertMatchesPattern(n),r.n3Store.addQuad(n)}catch(s){e.removeListener("data",i),typeof e.destroy=="function"?e.destroy(s):e.emit("error",s)}}return e.on("data",i),e}intersection(e){return this.filtered.intersection(e)}map(e){return this.filtered.map(this._semantics==="forwarded"?r=>e(r,this):e)}some(e,r,i,n,s){return this.filtered.some(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}toCanonical(){return this.filtered.toCanonical()}toStream(){return this._semantics!=="lazy"?Xr.Readable.from(this[Symbol.iterator]()):this._filtered?this._filtered.toStream():this.n3Store.match(this.subject,this.predicate,this.object,this.graph,{matchSemantics:"lazy"})}union(e){return this._filtered?this._filtered.union(e):this.n3Store.match(this.subject,this.predicate,this.object,this.graph,{matchSemantics:"lazy"}).addAll(e)}toArray(){return this._semantics!=="lazy"?[...this]:this._filtered?this._filtered.toArray():this.n3Store.getQuads(this.subject,this.predicate,this.object,this.graph)}reduce(e,r){return this.filtered.reduce(this._semantics==="forwarded"?(i,n)=>e(i,n,this):e,r)}toString(){return new le().quadsToString(this)}add(e){return this._semantics==="forwarded"?(this._assertMatchesPattern(e),this.n3Store.addQuad(e),this):this.filtered.add(e)}delete(e){return this._semantics==="forwarded"?(this._assertMatchesPattern(e),this.n3Store.removeQuad(e),this):this.filtered.delete(e)}has(e){return this.filtered.has(e)}match(e,r,i,n,s=null){let o=s&&s.matchSemantics;if(s&&o!==void 0&&(Un(o),o!==this._semantics))throw new Error(`Cannot override matchSemantics on a view: inherited "${this._semantics}", received "${o}"`);if(this._semantics!=="forwarded")return new t(this.filtered,e,r,i,n,{entityIndex:this.options.entityIndex,matchSemantics:this._semantics});let a=!this._matchesNothing&&Jl([this.subject,this.predicate,this.object,this.graph],[e,r,i,n]),[l,u,f,c]=a||[null,null,null,null];return new t(this.n3Store,l,u,f,c,{entityIndex:this.options.entityIndex,matchSemantics:"forwarded",matchesNothing:!a})}[Symbol.iterator](){return this._semantics==="lazy"?this._sourceIterator():this._iterateStable()}*_iterateStable(){let e=this._readers||(this._readers={count:0,snapshot:null}),r=this._sourceIterator(),i=0;e.count++;try{for(;!e.snapshot;){let{value:n,done:s}=r.next();if(e.snapshot||s)break;i++,yield n}e.snapshot&&(yield*ne(ab(e.snapshot,i)))}finally{r.return(),--e.count===0&&(e.snapshot=null,this._readers===e&&(this._readers=null))}}};var sr=class{dataset(e){return new we(e)}};function eu(t){let e=[];for(let{subject:r,object:i}of t.match(null,Q.namedNode("http://www.w3.org/2000/10/swap/log#implies"),null,Q.defaultGraph())){let n=[...t.match(null,null,null,r)],s=[...t.match(null,null,null,i)];e.push({premise:n,conclusion:s})}return e}var or=class{constructor(e,r={}){this._store=e,this._maxDerivations=r.maxDerivations===void 0?1/0:r.maxDerivations,this._maxPremiseDepth=r.maxPremiseDepth===void 0?1/0:r.maxPremiseDepth}_add(e,r,i,n,s,o){let a=this._store;if(a._observers){if(!a._addQuad(e,r,i,this._graphId))return}else{if(!a._addToIndex(n.subjects,e,r,i))return;a._addToIndex(n.predicates,r,i,e),a._addToIndex(n.objects,i,e,r),this._indexed++}if(++this._derivations>this._maxDerivations)throw new Error(`Reasoning exceeded the maximum of ${this._maxDerivations} derivations`);o(s)}_emit(e,r,i){let n=e.conclusion;for(let s=0;s<n.length;s++){let o=n[s];this._add(o.subject.value,o.predicate.value,o.object.value,r,o,i)}}_evaluatePremise(e,r,i,n=0){let s,o,[a,l,u]=e.premise[n].value,f=r[e.premise[n].content],c=n===e.premise.length-1;if(!(s=a.value)){for(s in f)o=f[s],a.value=Number(s),this._evaluateLevel1(e,r,i,n,c,l,u,o);a.value=null}else(o=f[s])&&this._evaluateLevel1(e,r,i,n,c,l,u,o)}_evaluateLevel1(e,r,i,n,s,o,a,l){let u,f;if(!(u=o.value)){for(u in l)f=l[u],o.value=Number(u),this._evaluateLevel2(e,r,i,n,s,a,f);o.value=null}else(f=l[u])&&this._evaluateLevel2(e,r,i,n,s,a,f)}_evaluateLevel2(e,r,i,n,s,o,a){let l;if(!(l=o.value)){for(l in a)o.value=Number(l),s?this._emit(e,r,i):this._evaluatePremise(e,r,i,n+1);o.value=null}else s?this._emit(e,r,i):this._evaluatePremise(e,r,i,n+1)}_evaluateRules(e,r,i){for(let n=0;n<e.length;n++)this._evaluatePremise(e[n],r,i)}_reasonGraphNaive(e,r){let i=[];function n(a){a.next&&a.next.forEach(l=>{i.push([a.subject.value,a.predicate.value,a.object.value,l])})}let s=a=>{for(let l=0;l<a.length;l++){let u=a[l];this._add(u.subject.value,u.predicate.value,u.object.value,r,u,n)}};this._evaluateRules(e,r,n);let o;for(;(o=i.pop())!==void 0;){let[a,l,u,f]=o,c=f.basePremise.subject.value;c||(f.basePremise.subject.value=a);let d=f.basePremise.predicate.value;d||(f.basePremise.predicate.value=l);let h=f.basePremise.object.value;h||(f.basePremise.object.value=u),f.premise.length===0?s(f.conclusion):this._evaluatePremise(f,r,n),c||(f.basePremise.subject.value=null),d||(f.basePremise.predicate.value=null),h||(f.basePremise.object.value=null)}}_createRule({premise:e,conclusion:r}){let i=Object.create(null),n=o=>o.termType==="Variable"?i[o.value]=i[o.value]||{}:{value:this._store._termToNewNumericId(o)},s=o=>({subject:n(o.subject),predicate:n(o.predicate),object:n(o.object)});return{premise:e.map(o=>s(o)),conclusion:r.map(o=>s(o)),variables:Object.values(i)}}reason(e){this._derivations=this._indexed=0,Array.isArray(e)||(e=eu(e)),e=e.map(i=>this._createRule(i));for(let i of e)if(i.premise.length>this._maxPremiseDepth)throw new Error(`Reasoning rule exceeds the maximum premise depth of ${this._maxPremiseDepth}`);for(let i of e)for(let n of e)for(let s=0;s<n.premise.length;s++){let o=n.premise[s];for(let a of i.conclusion){if(qn(o.subject,a.subject)&&qn(o.predicate,a.predicate)&&qn(o.object,a.object)){let l=new Set,u=[];o.subject.value=o.subject.value||1,o.object.value=o.object.value||1,o.predicate.value=o.predicate.value||1;for(let f=0;f<n.premise.length;f++)f!==s&&u.push(Zl(n.premise[f],l));(a.next=a.next||[]).push({premise:u,conclusion:n.conclusion,basePremise:o})}for(let l=0;l<n.variables.length;l++)n.variables[l].value=null}}for(let i of e){let n=new Set;i.premise=i.premise.map(s=>Zl(s,n))}let r=this._store._getGraphs();try{for(let i in r)this._graphId=Number(i),this._reasonGraphNaive(e,r[i])}finally{this._store._size!==null&&(this._store._size+=this._indexed)}}};function Zl({subject:t,predicate:e,object:r},i){let n=t.value||i.has(t)||(i.add(t),!1),s=e.value||i.has(e)||(i.add(e),!1),o=r.value||i.has(r)||(i.add(r),!1);return!n&&s?{content:"predicates",value:[e,r,t]}:o?{content:"objects",value:[r,t,e]}:{content:"subjects",value:[t,e,r]}}function qn(t,e){return t.value===null&&(t.value=e.value),t.value===e.value}var tu=Zr(Yr());var ar=class extends tu.Transform{constructor(e){super({decodeStrings:!0,readableObjectMode:!0});let r=new Se(e),i,n,s={onQuad:(o,a)=>{o&&this.emit("error",o)||a&&this.push(a)},onPrefix:(o,a)=>{this.emit("prefix",o,a)},onDirective:o=>{this.emit("directive",o)}};e&&e.comments&&(s.onComment=o=>{this.emit("comment",o)}),r.parse({on:(o,a)=>{switch(o){case"data":i=a;break;case"end":n=a;break}}},s),this._transform=(o,a,l)=>{i(o),l()},this._flush=o=>{n(),o()}}import(e){return e.on("error",r=>{this.emit("error",r)}),typeof e.pipe=="function"?e.pipe(this):(e.on("data",r=>{this.write(r)}),e.on("end",()=>{this.end()})),this}};var ru=Zr(Yr());var lb=16*1024,ub=20,lr=class extends ru.Transform{constructor(e){super({encoding:"utf8",writableObjectMode:!0}),this._buffer="",this._flushTimer=null,this._flushDelay=e&&e.flushDelay!==void 0?e.flushDelay:ub;let r=this._writer=new le({write:(s,o,a)=>{this._buffer+=s,this._buffer.length>=lb?this._pushBuffer():this._flushTimer===null&&this._armFlushTimer(),a&&a()},end:s=>{this._pushBuffer(),this.push(null),s&&s()}},e),i=null,n=s=>{let o=i;i=null,s&&this._pushBuffer(),o(s)};this._transform=(s,o,a)=>{i=a,r.addQuad(s,n)},this._flush=s=>{r.end(s)}}_pushBuffer(){this._clearFlushTimer(),this._buffer!==""&&(this.push(this._buffer),this._buffer="")}_armFlushTimer(){this._flushTimer=setTimeout(()=>{this._flushTimer=null,this._pushBuffer()},this._flushDelay),this._flushTimer.unref&&this._flushTimer.unref()}_clearFlushTimer(){this._flushTimer!==null&&(clearTimeout(this._flushTimer),this._flushTimer=null)}_destroy(e,r){this._clearFlushTimer(),super._destroy(e,r)}import(e){return e.on("data",r=>{this.write(r)}),e.on("end",()=>{this.end()}),e.on("error",r=>{this._pushBuffer(),this.emit("error",r)}),e.on("prefix",(r,i)=>{this._writer.addPrefix(r,i)}),this}};var qy={Lexer:Ce,Parser:Se,Writer:le,Store:we,StoreFactory:sr,EntityIndex:nr,StreamParser:ar,StreamWriter:lr,Util:fi,Reasoner:or,BaseIRI:ze,DataFactory:Q,Term:K,NamedNode:_t,Literal:Ee,BlankNode:Ut,Variable:qt,DefaultGraph:Wt,Quad:Oe,Triple:Oe,termFromId:Be,termToId:De};export{ze as BaseIRI,Ut as BlankNode,Q as DataFactory,Wt as DefaultGraph,nr as EntityIndex,Ce as Lexer,Ee as Literal,_t as NamedNode,Se as Parser,Oe as Quad,or as Reasoner,we as Store,sr as StoreFactory,ar as StreamParser,lr as StreamWriter,K as Term,Oe as Triple,fi as Util,qt as Variable,le as Writer,qy as default,eu as getRulesFromDataset,Be as termFromId,De as termToId};
23
+ ]`)}}list(e){let r=e&&e.length||0,i=new Array(r);for(let n=0;n<r;n++)i[n]=this._encodeObject(e[n]);return new Ve(`(${i.join(" ")})`)}end(e){this._endStatement(),this._write=this._blockedWrite;let r=e&&((i,n)=>{r=null,e(i,n)});if(this._endStream)try{return this._outputStream.end(r)}catch(i){}r&&r()}};function Ju(t){let e=ys[t];return e===void 0&&(t.length===1?(e=t.charCodeAt(0).toString(16),e="\\u0000".substr(0,6-e.length)+e):(e=((t.charCodeAt(0)-55296)*1024+t.charCodeAt(1)+9216).toString(16),e="\\U00000000".substr(0,10-e.length)+e)),e}function Xu(t){let e=ys[t];return e===void 0&&(e=t.charCodeAt(0).toString(16).toUpperCase(),e="\\u0000".substr(0,6-e.length)+e),e}var Xr=Zr(Yr());var Mt=Symbol("iter"),N=Symbol("size"),$n;function sb({store:t,observer:e}){let r=t.deref();r&&r._removeObserver(e)}function kn(t,e,r,i){let n=t&&t[e],s=n&&n[r];return!!s&&i in s}var ob=/^[?_"[.<]/;function Z(t){if(typeof t=="string"){let r=t.charCodeAt(0);return r!==60&&r!==46||t==="<>"?t:`<${t}>`}let e=De(t);return e.charCodeAt(0)>=97||!t?e:t.termType==="Quad"?JSON.stringify(Xl(t)):t.termType!=="NamedNode"||!ob.test(t.value)?e:`<${t.value}>`}function Xl(t){let e=[Jr(t.subject),Jr(t.predicate),Jr(t.object)];return t.graph&&!se(t.graph)&&e.push(Jr(t.graph)),e}function Jr(t){return t.termType==="Quad"?Xl(t):Z(t)}var nr=class{constructor(e={}){this._id=1,this._ids=Object.create(null),this._ids[""]=1,this._entities=Object.create(null),this._entities[1]="",this._blankNodeIndex=0,this._factory=e.factory||Q}_termFromId(e){if(e[0]==="<")return this._factory.namedNode(e.substring(1,e.length-1));if(e[0]==="."){let r=this._entities,i=e.split(".");return this._factory.quad(this._termFromId(r[i[1]]),this._termFromId(r[i[2]]),this._termFromId(r[i[3]]),i[4]&&this._termFromId(r[i[4]]))}return Be(e,this._factory)}_termToNumericId(e){if(e.termType==="Quad"){let r=this._termToNumericId(e.subject),i=this._termToNumericId(e.predicate),n=this._termToNumericId(e.object),s;return r&&i&&n&&(se(e.graph)||(s=this._termToNumericId(e.graph)))&&this._ids[s?`.${r}.${i}.${n}.${s}`:`.${r}.${i}.${n}`]}return typeof e=="string"?this._stringToNumericId(e):this._ids[Z(e)]}_stringToNumericId(e){let r=this._ids[e],i=r?this._entities[r].charCodeAt(0):e.charCodeAt(0);return i!==60&&i!==46||e==="<>"?r:this._ids[`<${e}>`]}_termToNewNumericId(e){if(typeof e=="string")return this._stringToNumericId(e)||this._addEntity(Z(e));let r=e&&e.termType==="Quad"?`.${this._termToNewNumericId(e.subject)}.${this._termToNewNumericId(e.predicate)}.${this._termToNewNumericId(e.object)}${se(e.graph)?"":`.${this._termToNewNumericId(e.graph)}`}`:Z(e);return this._ids[r]||this._addEntity(r)}_addEntity(e){return this._ids[this._entities[++this._id]=e]=this._id}createBlankNode(e){let r,i;if(e)for(r=e=`_:${e}`,i=1;this._ids[r];)r=e+i++;else do r=`_:b${this._blankNodeIndex++}`;while(this._ids[r]);return this._ids[r]=++this._id,this._entities[this._id]=r,this._factory.blankNode(r.substr(2))}};function Kl(t){return t instanceof we?t._size:null}var we=class t{constructor(e,r){this._size=0,this._graphs=Object.create(null),this._graphCount=0,this._observers=null,!r&&e&&!e[0]&&typeof e.match!="function"&&(r=e,e=null),r=r||{},this._factory=r.factory||Q,this._matchSemantics=Un(r.matchSemantics),this._entityIndex=r.entityIndex||new nr({factory:this._factory}),this._entities=this._entityIndex._entities,this._termFromId=this._entityIndex._termFromId.bind(this._entityIndex),this._termToNumericId=this._entityIndex._termToNumericId.bind(this._entityIndex),this._termToNewNumericId=this._entityIndex._termToNewNumericId.bind(this._entityIndex),e&&this.addAll(e)}get size(){return this._size===null&&(this._size=this.countQuads()),this._size}_addToIndex(e,r,i,n){let s=e[r];s||(e[r]=s={[N]:0},e[N]++);let o=s[i];o||(s[i]=o={[N]:0},s[N]++);let a=n in o;return a||(o[n]=null,o[N]++),!a}_removeFromIndex(e,r,i,n){let s=e[r],o=s[i];delete o[n],--o[N]===0&&(delete s[i],--s[N]===0&&(delete e[r],e[N]--))}*_findInIndex(e,r,i,n,s,o,a,l){let u=this._entities,f=this._termFromId(u[l]),c={subject:null,predicate:null,object:null};if(n){let h=e[r],b=h&&h[i];if(!b||!(n in b))return;c[s]=this._termFromId(u[r]),c[o]=this._termFromId(u[i]),c[a]=this._termFromId(u[n]),yield this._factory.quad(c.subject,c.predicate,c.object,f);return}if(r&&!(r in e))return;let d=r?null:Object.keys(e);for(let h=0,b=r||d[0];b;b=d&&d[++h]){let _=e[b];if(!_)continue;if(c[s]=this._termFromId(u[b]),i&&!(i in _))return;let y=i?null:Object.keys(_);for(let g=0,S=i||y[0];S;S=y&&y[++g]){let m=_[S];if(!m)continue;c[o]=this._termFromId(u[S]);let w=Object.keys(m);for(let x=0;x<w.length;x++)c[a]=this._termFromId(u[w[x]]),yield this._factory.quad(c.subject,c.predicate,c.object,f)}}}_loop(e,r){for(let i in e)r(i)}_loopByKey0(e,r,i){let n,s;if(n=e[r])for(s in n)i(s)}_loopByKey1(e,r,i){let n,s;for(n in e)s=e[n],s[r]&&i(n)}_loopBy2Keys(e,r,i,n){let s,o,a;if((s=e[r])&&(o=s[i]))for(a in o)n(a)}_loopByKey0Deep(e,r,i){let n,s,o,a;if(n=e[r])for(o in n){s=n[o];for(a in s)i(a)}}_countInIndex(e,r,i,n){let s=0,o,a;if(r){if(!(o=e[r]))return 0;if(i)return(a=o[i])?n?n in a?1:0:a[N]:0;let u=Object.keys(o);for(let f=0;f<u.length;f++)s+=o[u[f]][N];return s}let l=Object.keys(e);for(let u=0;u<l.length;u++){o=e[l[u]];let f=Object.keys(o);for(let c=0;c<f.length;c++)s+=o[f[c]][N]}return s}_getGraphs(e){return e=e===""?1:e&&(this._termToNumericId(e)||-1),typeof e!="number"?this._graphs:{[e]:this._graphs[e]}}_addObserver(e){let r=new WeakRef(e);return($n||($n=new FinalizationRegistry(sb))).register(e,{store:new WeakRef(this),observer:r},r),(this._observers||(this._observers=new Set)).add(r),r}_removeObserver(e){$n.unregister(e),this._observers&&(this._observers.delete(e),this._observers.size===0&&(this._observers=null))}_notifyObservers(e,r,i,n,s){for(let o of this._observers){let a=o.deref();a?a._onParentMutation(e,r,i,n,s):this._removeObserver(o)}}_uniqueEntities(e){let r=Object.create(null);return i=>{i in r||(r[i]=!0,e(this._termFromId(this._entities[i],this._factory)))}}add(e){return this.addQuad(e),this}addQuad(e,r,i,n){return r||(n=e.graph,i=e.object,r=e.predicate,e=e.subject),n=n?this._termToNewNumericId(n):1,e=this._termToNewNumericId(e),r=this._termToNewNumericId(r),i=this._termToNewNumericId(i),this._addQuad(e,r,i,n)}_addQuad(e,r,i,n){let s=this._graphs[n];if(s||(s=this._graphs[n]={subjects:{[N]:0},predicates:{[N]:0},objects:{[N]:0}},Object.freeze(s),this._graphCount++),this._observers!==null){if(kn(s.subjects,e,r,i))return!1;this._notifyObservers(e,r,i,n,!0)}return this._addToIndex(s.subjects,e,r,i)?(this._addToIndex(s.predicates,r,i,e),this._addToIndex(s.objects,i,e,r),this._size!==null&&this._size++,!0):!1}_addFromIndex(e,r=null){for(let i in e){let n=e[i].subjects,s=r&&r[i],o=s?s.subjects:null;for(let a in n){let l=Number(a),u=n[a],f=o&&o[a];for(let c in u){let d=Number(c),h=u[c],b=f&&f[c];for(let _ in h)(!b||!(_ in b))&&this._addQuad(l,d,Number(_),Number(i))}}}}_addIntersectionFromIndex(e,r){for(let i in e){let n=r[i];if(n){let s=e[i].subjects,o=n.subjects;o[N]<s[N]&&([s,o]=[o,s]);for(let a in s){let l=s[a],u=o[a];if(u){u[N]<l[N]&&([l,u]=[u,l]);for(let f in l){let c=l[f],d=u[f];if(d){d[N]<c[N]&&([c,d]=[d,c]);for(let h in c)h in d&&this._addQuad(Number(a),Number(f),Number(h),Number(i))}}}}}}}addQuads(e){for(let r=0;r<e.length;r++)this.addQuad(e[r])}delete(e){return this.removeQuad(e),this}has(e,r,i,n){if(e&&e.subject&&r==null&&i==null&&n==null&&({subject:e,predicate:r,object:i,graph:n}=e),e&&r&&i&&n!==void 0&&n!==null){let s=this._termToNumericId(e),o=this._termToNumericId(r),a=this._termToNumericId(i),l=n===""||se(n)?1:this._termToNumericId(n),u=l&&this._graphs[l];return!!s&&!!o&&!!a&&!!u&&kn(u.subjects,s,o,a)}return!this.readQuads(e,r,i,n).next().done}import(e){return e.on("data",r=>{this.addQuad(r)}),e}removeQuad(e,r,i,n){return r||({subject:e,predicate:r,object:i,graph:n}=e),n=n?this._termToNumericId(n):1,!(e=e&&this._termToNumericId(e))||!(r=r&&this._termToNumericId(r))||!(i=i&&this._termToNumericId(i))?!1:this._removeQuad(e,r,i,n)}_removeQuad(e,r,i,n){let s=this._graphs,o=s[n];return!o||!kn(o.subjects,e,r,i)?!1:(this._observers!==null&&this._notifyObservers(e,r,i,n,!1),this._removeFromIndex(o.subjects,e,r,i),this._removeFromIndex(o.predicates,r,i,e),this._removeFromIndex(o.objects,i,e,r),this._size!==null&&this._size--,o.subjects[N]===0&&(delete s[n],this._graphCount--),!0)}removeQuads(e){for(let r=0;r<e.length;r++)this.removeQuad(e[r])}remove(e){return e.on("data",r=>{this.removeQuad(r)}),e}removeMatches(e,r,i,n){let s=new Xr.Readable({objectMode:!0}),o=this.readQuads(e,r,i,n);return s._read=a=>{for(;--a>=0;){let{done:l,value:u}=o.next();if(l){s.push(null);return}s.push(u)}},this.remove(s)}deleteGraph(e){return this.removeMatches(null,null,null,e)}getQuads(e,r,i,n){return[...this.readQuads(e,r,i,n)]}*readQuads(e,r,i,n){let s=this._getGraphs(n),o,a,l,u;if(!(e&&!(a=this._termToNumericId(e))||r&&!(l=this._termToNumericId(r))||i&&!(u=this._termToNumericId(i))))for(let f in s)(o=s[f])&&(a?u?yield*ne(this._findInIndex(o.objects,u,a,l,"object","subject","predicate",f)):yield*ne(this._findInIndex(o.subjects,a,l,null,"subject","predicate","object",f)):l?yield*ne(this._findInIndex(o.predicates,l,u,null,"predicate","object","subject",f)):u?yield*ne(this._findInIndex(o.objects,u,null,null,"object","subject","predicate",f)):yield*ne(this._findInIndex(o.subjects,null,null,null,"subject","predicate","object",f)))}match(e,r,i,n,s=null){return new We(this,e,r,i,n,{entityIndex:this._entityIndex,matchSemantics:s&&s.matchSemantics!==void 0?s.matchSemantics:this._matchSemantics})}countQuads(e,r,i,n){let s=this._getGraphs(n),o=0,a,l,u,f;if(e&&!(l=this._termToNumericId(e))||r&&!(u=this._termToNumericId(r))||i&&!(f=this._termToNumericId(i)))return 0;for(let c in s)(a=s[c])&&(e?i?o+=this._countInIndex(a.objects,f,l,u):o+=this._countInIndex(a.subjects,l,u,f):r?o+=this._countInIndex(a.predicates,u,f,l):i?o+=this._countInIndex(a.objects,f,l,u):o+=this._countInIndex(a.subjects));return o}forEach(e,r,i,n,s){this.some(o=>(e(o,this),!1),r,i,n,s)}every(e,r,i,n,s){return!this.some(o=>!e(o,this),r,i,n,s)}some(e,r,i,n,s){for(let o of this.readQuads(r,i,n,s))if(e(o,this))return!0;return!1}getSubjects(e,r,i){let n=[];return this.forSubjects(s=>{n.push(s)},e,r,i),n}forSubjects(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.predicates,a,l,e):this._loopByKey1(o.subjects,a,e):l?this._loopByKey0(o.objects,l,e):this._loop(o.subjects,e))}getPredicates(e,r,i){let n=[];return this.forPredicates(s=>{n.push(s)},e,r,i),n}forPredicates(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.objects,l,a,e):this._loopByKey0(o.subjects,a,e):l?this._loopByKey1(o.predicates,l,e):this._loop(o.predicates,e))}getObjects(e,r,i){let n=[];return this.forObjects(s=>{n.push(s)},e,r,i),n}forObjects(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.subjects,a,l,e):this._loopByKey0Deep(o.subjects,a,e):l?this._loopByKey0(o.predicates,l,e):this._loop(o.objects,e))}getGraphs(e,r,i){let n=[];return this.forGraphs(s=>{n.push(s)},e,r,i),n}forGraphs(e,r,i,n){for(let s in this._graphs)this.some(o=>(e(o.graph),!0),r,i,n,this._termFromId(this._entities[s]))}createBlankNode(e){return this._entityIndex.createBlankNode(e)}extractLists({remove:e=!1,ignoreErrors:r=!1,allowExtraArcs:i=!1}={}){let n=Object.create(null),s=r?(()=>!0):((l,u)=>{throw new Error(`${l.value} ${u}`)}),o=this.getQuads(null,j.rdf.rest,j.rdf.nil,null),a=[];return o.forEach(l=>{let u=[],f=!1,c=!1,d,h,b=l.graph,_=[],y=l.subject;for(;y&&!f;){let g=this.getQuads(null,null,y,null),S=this.getQuads(y,null,null,null),m,w=null,x=null,A=null;for(let E=0;E<S.length&&!f;E++)m=S[E],m.graph.equals(b)?d?f=s(y,"has non-list arcs out"):m.predicate.value===j.rdf.first?(w?f=s(y,"has multiple rdf:first arcs"):w=m,e&&w===m&&_.push(m)):m.predicate.value===j.rdf.rest?(x?f=s(y,"has multiple rdf:rest arcs"):x=m,e&&x===m&&_.push(m)):g.length?i?c=!0:f=s(y,`has non-list arc ${m.predicate.value}`):(d=m,h="subject"):f=s(y,"not confined to single graph");for(let E=0;E<g.length&&!f;++E)m=g[E],d?f=s(y,"can't have coreferences"):m.predicate.value===j.rdf.rest?A?f=s(y,"has incoming rdf:rest arcs"):A=m:(d=m,h="object");w?u.push(w.object):f=s(y,"has no list head"),y=A&&A.subject}if(f)e=!1;else if(u.reverse(),d&&(n[d[h].value]=u),e&&!c)for(let g=0;g<_.length;g++)a.push(_[g])}),e&&this.removeQuads(a),n}addAll(e){if(e instanceof We&&(e=e.filtered),Array.isArray(e))this.addQuads(e);else if(e instanceof t&&e._entityIndex===this._entityIndex)this._addFromIndex(e._graphs);else for(let r of e)this.add(r);return this}contains(e){if(e instanceof We&&(e=e.filtered),e===this)return!0;if(!(e instanceof t)||this._entityIndex!==e._entityIndex){let f=Kl(e),c=this._size;return f!==null&&c!==null&&f>c?!1:e.every(d=>this.has(d))}let r=this._graphs,i=e._graphs,n,s,o,a,l,u;for(let f in i){if(!(n=r[f])||(n=n.subjects,(s=i[f].subjects)[N]>n[N]))return!1;for(let c in s){if(!(o=n[c])||(a=s[c])[N]>o[N])return!1;for(let d in a){if(!(l=o[d])||(u=a[d])[N]>l[N])return!1;for(let h in u)if(!(h in l))return!1}}}return!0}deleteMatches(e,r,i,n){for(let s of this.match(e,r,i,n,{matchSemantics:"lazy"}))this.removeQuad(s);return this}difference(e){if(e&&e instanceof We&&(e=e.filtered),e===this)return new t({entityIndex:this._entityIndex});if(e instanceof t&&e._entityIndex===this._entityIndex){let r=new t({entityIndex:this._entityIndex});return r._addFromIndex(this._graphs,e._graphs),r}return this.filter(r=>!e.has(r))}equals(e){return e instanceof We&&(e=e.filtered),e===this||this.size===e.size&&this.contains(e)}filter(e){let r=new t({entityIndex:this._entityIndex});for(let i of this)e(i,this)&&r.add(i);return r}intersection(e){if(e instanceof We&&(e=e.filtered),e===this){let n=new t({entityIndex:this._entityIndex});return n._addFromIndex(this._graphs),n}else if(e instanceof t&&this._entityIndex===e._entityIndex){let n=new t({entityIndex:this._entityIndex});return this._size!==0&&e._size!==0&&(e._graphCount<this._graphCount?n._addIntersectionFromIndex(e._graphs,this._graphs):n._addIntersectionFromIndex(this._graphs,e._graphs)),n}let r=Kl(e),i=this._size;if(r!==null&&i!==null&&r<i&&typeof e[Symbol.iterator]=="function"&&e._factory===Q&&e._entityIndex._factory===Q){let n=new t({entityIndex:this._entityIndex});for(let s of e)this.has(s)&&n.add(s);return n}return this.filter(n=>e.has(n))}map(e){let r=new t({entityIndex:this._entityIndex});for(let i of this)r.add(e(i,this));return r}reduce(e,r){let i=this.readQuads(),n=r===void 0?i.next().value:r;for(let s of i)n=e(n,s,this);return n}toArray(){return this.getQuads()}toCanonical(){throw new Error("not implemented")}toStream(){return this.match(null,null,null,null,{matchSemantics:"lazy"})}toString(){return new le().quadsToString(this)}union(e){let r=new t({entityIndex:this._entityIndex});return r._addFromIndex(this._graphs),r.addAll(e),r}[Symbol.iterator](){return this.readQuads()}};function me(t,e,r=0){let i=e[r];if(i&&!(i in t))return!1;let n=!1,s=0;for(let o in i?{[i]:t[i]}:t){let a=r===2?null:me(t[o],e,r+1);a!==!1&&(n=n||Object.create(null),n[o]=a,s++)}return n&&(n[N]=s),n}function Yl(t,e,r,i,n){let s={store:t,ids:[]},o=e&&t._termToNumericId(e),a=r&&t._termToNumericId(r),l=i&&t._termToNumericId(i),u,f,c,d,h;l&&(o||!a)?(u="objects",[f,c,d]=[l,o,a],h=[2,0,1]):!o&&a?(u="predicates",[f,c,d]=[a,l,o],h=[1,2,0]):(u="subjects",[f,c,d]=[o,a,l],h=[0,1,2]);let b=t._getGraphs(n),_=[];for(let y in b){let g=b[y][u],S=Number(y);for(let m in f?{[f]:g[f]}:g){let w=g[m];if(w){_[h[0]]=Number(m);for(let x in c?{[c]:w[c]}:w){let A=w[x];if(A){_[h[1]]=Number(x);for(let E in d?d in A?{[d]:null}:{}:A)_[h[2]]=Number(E),s.ids.push(_[0],_[1],_[2],S)}}}}}return s}function*ab({store:t,ids:e},r){let i=t._entities,n,s,o,a,l,u,f,c;for(let d=r*4;d<e.length;d+=4)l!==e[d]&&(n=t._termFromId(i[l=e[d]])),u!==e[d+1]&&(s=t._termFromId(i[u=e[d+1]])),f!==e[d+2]&&(o=t._termFromId(i[f=e[d+2]])),c!==e[d+3]&&(a=t._termFromId(i[c=e[d+3]])),yield t._factory.quad(n,s,o,a)}function Un(t="lazy"){if(t!=="lazy"&&t!=="snapshot"&&t!=="forwarded")throw new Error(`Unknown matchSemantics: ${t}`);if(t!=="lazy"&&(typeof WeakRef!="function"||typeof FinalizationRegistry!="function"))throw new Error("Non-lazy matchSemantics requires WeakRef and FinalizationRegistry support");return t}function Jl(t,e){let r=new Array(4);for(let i=0;i<4;i++){let n=t[i],s=e[i];if(n==null)r[i]=s;else if(s==null||Z(n)===Z(s))r[i]=n;else return!1}return r}var We=class t extends Xr.Readable{constructor(e,r,i,n,s,o){super({objectMode:!0}),Object.assign(this,{n3Store:e,subject:r,predicate:i,object:n,graph:s,options:o});let a=this._semantics=Un(o.matchSemantics);o.matchesNothing&&(this._matchesNothing=!0,this._filtered=new we({factory:e._factory,entityIndex:o.entityIndex})),a!=="lazy"&&(this._readers=null,this._subjectId=this._predicateId=this._objectId=this._graphId=void 0,this._matchesNothing||(this._observer=e._addObserver(this)))}_matchesPattern(e,r,i,n){let{subject:s,predicate:o,object:a,graph:l,n3Store:u}=this;return s&&e!==(this._subjectId||(this._subjectId=u._termToNumericId(s)))||o&&r!==(this._predicateId||(this._predicateId=u._termToNumericId(o)))||a&&i!==(this._objectId||(this._objectId=u._termToNumericId(a)))?!1:l==null||n===(this._graphId||(this._graphId=l===""||se(l)?1:u._termToNumericId(l)))}_matchesQuad(e){let{subject:r,predicate:i,object:n,graph:s}=this;return!this._matchesNothing&&(r==null||Z(r)===Z(e.subject))&&(i==null||Z(i)===Z(e.predicate))&&(n==null||Z(n)===Z(e.object))&&(s==null||Z(s)===Z(e.graph))}_assertMatchesPattern(e){if(!this._matchesQuad(e))throw new Error("Quad does not match the forwarded view pattern")}_sourceIterator(){return this._filtered?this._filtered[Symbol.iterator]():this.n3Store.readQuads(this.subject,this.predicate,this.object,this.graph)}_freezeCurrentIterators(){this._readers&&(this._readers.snapshot=this._filtered?Yl(this._filtered):Yl(this.n3Store,this.subject,this.predicate,this.object,this.graph),this._readers=null)}_onParentMutation(e,r,i,n,s){if(this._matchesPattern(e,r,i,n)){if(this._freezeCurrentIterators(),this._semantics==="forwarded"){this._filtered&&(s?this._filtered._addQuad(e,r,i,n):this._filtered._removeQuad(e,r,i,n));return}this._filtered=this.filtered}}get filtered(){if(!this._filtered){let{n3Store:e,graph:r,object:i,predicate:n,subject:s}=this;this._semantics!=="lazy"&&this._freezeCurrentIterators();let o=this._filtered=new we({factory:e._factory,entityIndex:this.options.entityIndex});this._semantics==="snapshot"&&this._detachObserver();let a,l,u;if(s&&!(a=o._termToNumericId(s))||n&&!(l=o._termToNumericId(n))||i&&!(u=o._termToNumericId(i)))return o;let f=e._getGraphs(r);for(let c in f){let d,h,b,_;(_=f[c])&&(!a&&l?(h=me(_.predicates,[l,u,a]))&&(d=me(_.subjects,[a,l,u]),b=me(_.objects,[u,a,l])):u?(b=me(_.objects,[u,a,l]))&&(d=me(_.subjects,[a,l,u]),h=me(_.predicates,[l,u,a])):(d=me(_.subjects,[a,l,u]))&&(h=me(_.predicates,[l,u,a]),b=me(_.objects,[u,a,l])),d&&(o._graphs[c]={subjects:d,predicates:h,objects:b},o._graphCount++))}o._size=null}return this._filtered}get size(){return this.filtered.size}_read(e){e>0&&!this[Mt]&&(this[Mt]=this[Symbol.iterator]());let r=this[Mt];for(;--e>=0;){let{done:i,value:n}=r.next();if(i){this.push(null);return}this.push(n)}}_destroy(e,r){this[Mt]&&(this[Mt].return(),this[Mt]=null),r(e)}_detachObserver(){this._observer&&(this.n3Store._removeObserver(this._observer),this._observer=null)}_detach(){return this._filtered=this.filtered,this._detachObserver(),this._semantics==="lazy"&&(this._readers=null),this._semantics="snapshot",this}addAll(e){if(this._semantics==="forwarded"){for(let r of e)this._assertMatchesPattern(r),this.n3Store.addQuad(r);return this}return this.filtered.addAll(e)}contains(e){return this.filtered.contains(e)}deleteMatches(e,r,i,n){if(this._semantics==="forwarded"){if(this._matchesNothing)throw new Error("Cannot delete from a conflicting forwarded view pattern");let s=Jl([this.subject,this.predicate,this.object,this.graph],[e,r,i,n]);if(!s)throw new Error("Deletion pattern does not match the forwarded view pattern");return this.n3Store.deleteMatches(...s),this}return this.filtered.deleteMatches(e,r,i,n)}difference(e){return this.filtered.difference(e)}equals(e){return this.filtered.equals(e)}every(e,r,i,n,s){return this.filtered.every(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}filter(e){return this.filtered.filter(this._semantics==="forwarded"?r=>e(r,this):e)}forEach(e,r,i,n,s){return this.filtered.forEach(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}import(e){if(this._semantics!=="forwarded")return this.filtered.import(e);let r=this;function i(n){try{r._assertMatchesPattern(n),r.n3Store.addQuad(n)}catch(s){e.removeListener("data",i),typeof e.destroy=="function"?e.destroy(s):e.emit("error",s)}}return e.on("data",i),e}intersection(e){return this.filtered.intersection(e)}map(e){return this.filtered.map(this._semantics==="forwarded"?r=>e(r,this):e)}some(e,r,i,n,s){return this.filtered.some(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}toCanonical(){return this.filtered.toCanonical()}toStream(){return this._semantics!=="lazy"?Xr.Readable.from(this[Symbol.iterator]()):this._filtered?this._filtered.toStream():this.n3Store.match(this.subject,this.predicate,this.object,this.graph,{matchSemantics:"lazy"})}union(e){return this._filtered?this._filtered.union(e):this.n3Store.match(this.subject,this.predicate,this.object,this.graph,{matchSemantics:"lazy"}).addAll(e)}toArray(){return this._semantics!=="lazy"?[...this]:this._filtered?this._filtered.toArray():this.n3Store.getQuads(this.subject,this.predicate,this.object,this.graph)}reduce(e,r){return this.filtered.reduce(this._semantics==="forwarded"?(i,n)=>e(i,n,this):e,r)}toString(){return new le().quadsToString(this)}add(e){return this._semantics==="forwarded"?(this._assertMatchesPattern(e),this.n3Store.addQuad(e),this):this.filtered.add(e)}delete(e){return this._semantics==="forwarded"?(this._assertMatchesPattern(e),this.n3Store.removeQuad(e),this):this.filtered.delete(e)}has(e){return this.filtered.has(e)}match(e,r,i,n,s=null){let o=s&&s.matchSemantics;if(s&&o!==void 0&&(Un(o),o!==this._semantics))throw new Error(`Cannot override matchSemantics on a view: inherited "${this._semantics}", received "${o}"`);if(this._semantics!=="forwarded")return new t(this.filtered,e,r,i,n,{entityIndex:this.options.entityIndex,matchSemantics:this._semantics});let a=!this._matchesNothing&&Jl([this.subject,this.predicate,this.object,this.graph],[e,r,i,n]),[l,u,f,c]=a||[null,null,null,null];return new t(this.n3Store,l,u,f,c,{entityIndex:this.options.entityIndex,matchSemantics:"forwarded",matchesNothing:!a})}[Symbol.iterator](){return this._semantics==="lazy"?this._sourceIterator():this._iterateStable()}*_iterateStable(){let e=this._readers||(this._readers={count:0,snapshot:null}),r=this._sourceIterator(),i=0;e.count++;try{for(;!e.snapshot;){let{value:n,done:s}=r.next();if(e.snapshot||s)break;i++,yield n}e.snapshot&&(yield*ne(ab(e.snapshot,i)))}finally{r.return(),--e.count===0&&(e.snapshot=null,this._readers===e&&(this._readers=null))}}};var sr=class{dataset(e){return new we(e)}};function eu(t){let e=[];for(let{subject:r,object:i}of t.match(null,Q.namedNode("http://www.w3.org/2000/10/swap/log#implies"),null,Q.defaultGraph())){let n=[...t.match(null,null,null,r)],s=[...t.match(null,null,null,i)];e.push({premise:n,conclusion:s})}return e}var or=class{constructor(e,r={}){this._store=e,this._maxDerivations=r.maxDerivations===void 0?1/0:r.maxDerivations,this._maxPremiseDepth=r.maxPremiseDepth===void 0?1/0:r.maxPremiseDepth}_add(e,r,i,n,s,o){let a=this._store;if(a._observers){if(!a._addQuad(e,r,i,this._graphId))return}else{if(!a._addToIndex(n.subjects,e,r,i))return;a._addToIndex(n.predicates,r,i,e),a._addToIndex(n.objects,i,e,r),this._indexed++}if(++this._derivations>this._maxDerivations)throw new Error(`Reasoning exceeded the maximum of ${this._maxDerivations} derivations`);o(s)}_emit(e,r,i){let n=e.conclusion;for(let s=0;s<n.length;s++){let o=n[s];this._add(o.subject.value,o.predicate.value,o.object.value,r,o,i)}}_evaluatePremise(e,r,i,n=0){let s,o,[a,l,u]=e.premise[n].value,f=r[e.premise[n].content],c=n===e.premise.length-1;if(!(s=a.value)){for(s in f)o=f[s],a.value=Number(s),this._evaluateLevel1(e,r,i,n,c,l,u,o);a.value=null}else(o=f[s])&&this._evaluateLevel1(e,r,i,n,c,l,u,o)}_evaluateLevel1(e,r,i,n,s,o,a,l){let u,f;if(!(u=o.value)){for(u in l)f=l[u],o.value=Number(u),this._evaluateLevel2(e,r,i,n,s,a,f);o.value=null}else(f=l[u])&&this._evaluateLevel2(e,r,i,n,s,a,f)}_evaluateLevel2(e,r,i,n,s,o,a){let l;if(!(l=o.value)){for(l in a)o.value=Number(l),s?this._emit(e,r,i):this._evaluatePremise(e,r,i,n+1);o.value=null}else l in a&&(s?this._emit(e,r,i):this._evaluatePremise(e,r,i,n+1))}_evaluateRules(e,r,i){for(let n=0;n<e.length;n++)this._evaluatePremise(e[n],r,i)}_reasonGraphNaive(e,r){let i=[];function n(a){a.next&&a.next.forEach(l=>{i.push([a.subject.value,a.predicate.value,a.object.value,l])})}let s=a=>{for(let l=0;l<a.length;l++){let u=a[l];this._add(u.subject.value,u.predicate.value,u.object.value,r,u,n)}};this._evaluateRules(e,r,n);let o;for(;(o=i.pop())!==void 0;){let[a,l,u,f]=o,c=f.basePremise.subject.value;c||(f.basePremise.subject.value=a);let d=f.basePremise.predicate.value;d||(f.basePremise.predicate.value=l);let h=f.basePremise.object.value;h||(f.basePremise.object.value=u);let{basePremise:b}=f;b.subject.value===a&&b.predicate.value===l&&b.object.value===u&&(f.premise.length===0?s(f.conclusion):this._evaluatePremise(f,r,n)),c||(f.basePremise.subject.value=null),d||(f.basePremise.predicate.value=null),h||(f.basePremise.object.value=null)}}_createRule({premise:e,conclusion:r}){let i=Object.create(null),n=o=>o.termType==="Variable"?i[o.value]=i[o.value]||{}:{value:this._store._termToNewNumericId(o)},s=o=>({subject:n(o.subject),predicate:n(o.predicate),object:n(o.object)});return{premise:e.map(o=>s(o)),conclusion:r.map(o=>s(o)),variables:Object.values(i)}}reason(e){this._derivations=this._indexed=0,Array.isArray(e)||(e=eu(e)),e=e.map(i=>this._createRule(i));for(let i of e)if(i.premise.length>this._maxPremiseDepth)throw new Error(`Reasoning rule exceeds the maximum premise depth of ${this._maxPremiseDepth}`);for(let i of e)for(let n of e)for(let s=0;s<n.premise.length;s++){let o=n.premise[s];for(let a of i.conclusion){if(qn(o.subject,a.subject)&&qn(o.predicate,a.predicate)&&qn(o.object,a.object)){let l=new Set,u=[];o.subject.value=o.subject.value||1,o.object.value=o.object.value||1,o.predicate.value=o.predicate.value||1;for(let f=0;f<n.premise.length;f++)f!==s&&u.push(Zl(n.premise[f],l));(a.next=a.next||[]).push({premise:u,conclusion:n.conclusion,basePremise:o})}for(let l=0;l<n.variables.length;l++)n.variables[l].value=null}}for(let i of e){let n=new Set;i.premise=i.premise.map(s=>Zl(s,n))}let r=this._store._getGraphs();try{for(let i in r)this._graphId=Number(i),this._reasonGraphNaive(e,r[i])}finally{this._store._size!==null&&(this._store._size+=this._indexed)}}};function Zl({subject:t,predicate:e,object:r},i){let n=t.value||i.has(t)||(i.add(t),!1),s=e.value||i.has(e)||(i.add(e),!1),o=r.value||i.has(r)||(i.add(r),!1);return!n&&s?{content:"predicates",value:[e,r,t]}:o?{content:"objects",value:[r,t,e]}:{content:"subjects",value:[t,e,r]}}function qn(t,e){return t.value===null&&(t.value=e.value),t.value===e.value}var tu=Zr(Yr());var ar=class extends tu.Transform{constructor(e){super({decodeStrings:!0,readableObjectMode:!0});let r=new Se(e),i,n,s={onQuad:(o,a)=>{o&&this.emit("error",o)||a&&this.push(a)},onPrefix:(o,a)=>{this.emit("prefix",o,a)},onDirective:o=>{this.emit("directive",o)}};e&&e.comments&&(s.onComment=o=>{this.emit("comment",o)}),r.parse({on:(o,a)=>{switch(o){case"data":i=a;break;case"end":n=a;break}}},s),this._transform=(o,a,l)=>{i(o),l()},this._flush=o=>{n(),o()}}import(e){return e.on("error",r=>{this.emit("error",r)}),typeof e.pipe=="function"?e.pipe(this):(e.on("data",r=>{this.write(r)}),e.on("end",()=>{this.end()})),this}};var ru=Zr(Yr());var lb=16*1024,ub=20,lr=class extends ru.Transform{constructor(e){super({encoding:"utf8",writableObjectMode:!0}),this._buffer="",this._flushTimer=null,this._flushDelay=e&&e.flushDelay!==void 0?e.flushDelay:ub;let r=this._writer=new le({write:(s,o,a)=>{this._buffer+=s,this._buffer.length>=lb?this._pushBuffer():this._flushTimer===null&&this._armFlushTimer(),a&&a()},end:s=>{this._pushBuffer(),this.push(null),s&&s()}},e),i=null,n=s=>{let o=i;i=null,s&&this._pushBuffer(),o(s)};this._transform=(s,o,a)=>{i=a,r.addQuad(s,n)},this._flush=s=>{r.end(s)}}_pushBuffer(){this._clearFlushTimer(),this._buffer!==""&&(this.push(this._buffer),this._buffer="")}_armFlushTimer(){this._flushTimer=setTimeout(()=>{this._flushTimer=null,this._pushBuffer()},this._flushDelay),this._flushTimer.unref&&this._flushTimer.unref()}_clearFlushTimer(){this._flushTimer!==null&&(clearTimeout(this._flushTimer),this._flushTimer=null)}_destroy(e,r){this._clearFlushTimer(),super._destroy(e,r)}import(e){return e.on("data",r=>{this.write(r)}),e.on("end",()=>{this.end()}),e.on("error",r=>{this._pushBuffer(),this.emit("error",r)}),e.on("prefix",(r,i)=>{this._writer.addPrefix(r,i)}),this}};var qy={Lexer:Ce,Parser:Se,Writer:le,Store:we,StoreFactory:sr,EntityIndex:nr,StreamParser:ar,StreamWriter:lr,Util:fi,Reasoner:or,BaseIRI:ze,DataFactory:Q,Term:K,NamedNode:_t,Literal:Ee,BlankNode:Ut,Variable:qt,DefaultGraph:Wt,Quad:Oe,Triple:Oe,termFromId:Be,termToId:De};export{ze as BaseIRI,Ut as BlankNode,Q as DataFactory,Wt as DefaultGraph,nr as EntityIndex,Ce as Lexer,Ee as Literal,_t as NamedNode,Se as Parser,Oe as Quad,or as Reasoner,we as Store,sr as StoreFactory,ar as StreamParser,lr as StreamWriter,K as Term,Oe as Triple,fi as Util,qt as Variable,le as Writer,qy as default,eu as getRulesFromDataset,Be as termFromId,De as termToId};
24
24
  /*! Bundled license information:
25
25
 
26
26
  ieee754/index.js:
package/browser/n3.min.js CHANGED
@@ -20,7 +20,7 @@ var N3=(()=>{var ou=Object.create;var Vt=Object.defineProperty,au=Object.defineP
20
20
  `:"",r)}_createPrefixRegex(){let e="",r="";for(let i in this._prefixPatterns){let[n,s]=this._prefixPatterns[i];e+=e?`|${n}`:n,r+=r?`|${s}`:s}return this._prefixRegex=new RegExp(`^(${e})([_a-zA-Z0-9](?:\\.?[\\-_a-zA-Z0-9])*)$|^(?:${r})`)}blank(e,r){let i=e,n,s;switch(e===void 0?i=[]:e.termType?i=[{predicate:e,object:r}]:"length"in e||(i=[e]),s=i.length){case 0:return new He("[]");case 1:if(n=i[0],!(n.object instanceof He))return new He(`[ ${this._encodePredicate(n.predicate)} ${this._encodeObject(n.object)} ]`);default:let o="[";for(let a=0;a<s;a++)n=i[a],n.predicate.equals(e)?o+=`, ${this._encodeObject(n.object)}`:(o+=`${(a?`;
21
21
  `:`
22
22
  `)+this._encodePredicate(n.predicate)} ${this._encodeObject(n.object)}`,e=n.predicate);return new He(`${o}
23
- ]`)}}list(e){let r=e&&e.length||0,i=new Array(r);for(let n=0;n<r;n++)i[n]=this._encodeObject(e[n]);return new He(`(${i.join(" ")})`)}end(e){this._endStatement(),this._write=this._blockedWrite;let r=e&&((i,n)=>{r=null,e(i,n)});if(this._endStream)try{return this._outputStream.end(r)}catch(i){}r&&r()}};function Xu(t){let e=ws[t];return e===void 0&&(t.length===1?(e=t.charCodeAt(0).toString(16),e="\\u0000".substr(0,6-e.length)+e):(e=((t.charCodeAt(0)-55296)*1024+t.charCodeAt(1)+9216).toString(16),e="\\U00000000".substr(0,10-e.length)+e)),e}function Zu(t){let e=ws[t];return e===void 0&&(e=t.charCodeAt(0).toString(16).toUpperCase(),e="\\u0000".substr(0,6-e.length)+e),e}var Zr=ei(Jr());var Ut=Symbol("iter"),N=Symbol("size"),$n;function ob({store:t,observer:e}){let r=t.deref();r&&r._removeObserver(e)}function kn(t,e,r,i){let n=t&&t[e],s=n&&n[r];return!!s&&i in s}var ab=/^[?_"[.<]/;function Z(t){if(typeof t=="string"){let r=t.charCodeAt(0);return r!==60&&r!==46||t==="<>"?t:`<${t}>`}let e=Te(t);return e.charCodeAt(0)>=97||!t?e:t.termType==="Quad"?JSON.stringify(tu(t)):t.termType!=="NamedNode"||!ab.test(t.value)?e:`<${t.value}>`}function tu(t){let e=[Xr(t.subject),Xr(t.predicate),Xr(t.object)];return t.graph&&!se(t.graph)&&e.push(Xr(t.graph)),e}function Xr(t){return t.termType==="Quad"?tu(t):Z(t)}var qt=class{constructor(e={}){this._id=1,this._ids=Object.create(null),this._ids[""]=1,this._entities=Object.create(null),this._entities[1]="",this._blankNodeIndex=0,this._factory=e.factory||W}_termFromId(e){if(e[0]==="<")return this._factory.namedNode(e.substring(1,e.length-1));if(e[0]==="."){let r=this._entities,i=e.split(".");return this._factory.quad(this._termFromId(r[i[1]]),this._termFromId(r[i[2]]),this._termFromId(r[i[3]]),i[4]&&this._termFromId(r[i[4]]))}return Re(e,this._factory)}_termToNumericId(e){if(e.termType==="Quad"){let r=this._termToNumericId(e.subject),i=this._termToNumericId(e.predicate),n=this._termToNumericId(e.object),s;return r&&i&&n&&(se(e.graph)||(s=this._termToNumericId(e.graph)))&&this._ids[s?`.${r}.${i}.${n}.${s}`:`.${r}.${i}.${n}`]}return typeof e=="string"?this._stringToNumericId(e):this._ids[Z(e)]}_stringToNumericId(e){let r=this._ids[e],i=r?this._entities[r].charCodeAt(0):e.charCodeAt(0);return i!==60&&i!==46||e==="<>"?r:this._ids[`<${e}>`]}_termToNewNumericId(e){if(typeof e=="string")return this._stringToNumericId(e)||this._addEntity(Z(e));let r=e&&e.termType==="Quad"?`.${this._termToNewNumericId(e.subject)}.${this._termToNewNumericId(e.predicate)}.${this._termToNewNumericId(e.object)}${se(e.graph)?"":`.${this._termToNewNumericId(e.graph)}`}`:Z(e);return this._ids[r]||this._addEntity(r)}_addEntity(e){return this._ids[this._entities[++this._id]=e]=this._id}createBlankNode(e){let r,i;if(e)for(r=e=`_:${e}`,i=1;this._ids[r];)r=e+i++;else do r=`_:b${this._blankNodeIndex++}`;while(this._ids[r]);return this._ids[r]=++this._id,this._entities[this._id]=r,this._factory.blankNode(r.substr(2))}};function Xl(t){return t instanceof ue?t._size:null}var ue=class t{constructor(e,r){this._size=0,this._graphs=Object.create(null),this._graphCount=0,this._observers=null,!r&&e&&!e[0]&&typeof e.match!="function"&&(r=e,e=null),r=r||{},this._factory=r.factory||W,this._matchSemantics=Un(r.matchSemantics),this._entityIndex=r.entityIndex||new qt({factory:this._factory}),this._entities=this._entityIndex._entities,this._termFromId=this._entityIndex._termFromId.bind(this._entityIndex),this._termToNumericId=this._entityIndex._termToNumericId.bind(this._entityIndex),this._termToNewNumericId=this._entityIndex._termToNewNumericId.bind(this._entityIndex),e&&this.addAll(e)}get size(){return this._size===null&&(this._size=this.countQuads()),this._size}_addToIndex(e,r,i,n){let s=e[r];s||(e[r]=s={[N]:0},e[N]++);let o=s[i];o||(s[i]=o={[N]:0},s[N]++);let a=n in o;return a||(o[n]=null,o[N]++),!a}_removeFromIndex(e,r,i,n){let s=e[r],o=s[i];delete o[n],--o[N]===0&&(delete s[i],--s[N]===0&&(delete e[r],e[N]--))}*_findInIndex(e,r,i,n,s,o,a,l){let u=this._entities,f=this._termFromId(u[l]),c={subject:null,predicate:null,object:null};if(n){let h=e[r],b=h&&h[i];if(!b||!(n in b))return;c[s]=this._termFromId(u[r]),c[o]=this._termFromId(u[i]),c[a]=this._termFromId(u[n]),yield this._factory.quad(c.subject,c.predicate,c.object,f);return}if(r&&!(r in e))return;let d=r?null:Object.keys(e);for(let h=0,b=r||d[0];b;b=d&&d[++h]){let _=e[b];if(!_)continue;if(c[s]=this._termFromId(u[b]),i&&!(i in _))return;let y=i?null:Object.keys(_);for(let g=0,S=i||y[0];S;S=y&&y[++g]){let m=_[S];if(!m)continue;c[o]=this._termFromId(u[S]);let w=Object.keys(m);for(let x=0;x<w.length;x++)c[a]=this._termFromId(u[w[x]]),yield this._factory.quad(c.subject,c.predicate,c.object,f)}}}_loop(e,r){for(let i in e)r(i)}_loopByKey0(e,r,i){let n,s;if(n=e[r])for(s in n)i(s)}_loopByKey1(e,r,i){let n,s;for(n in e)s=e[n],s[r]&&i(n)}_loopBy2Keys(e,r,i,n){let s,o,a;if((s=e[r])&&(o=s[i]))for(a in o)n(a)}_loopByKey0Deep(e,r,i){let n,s,o,a;if(n=e[r])for(o in n){s=n[o];for(a in s)i(a)}}_countInIndex(e,r,i,n){let s=0,o,a;if(r){if(!(o=e[r]))return 0;if(i)return(a=o[i])?n?n in a?1:0:a[N]:0;let u=Object.keys(o);for(let f=0;f<u.length;f++)s+=o[u[f]][N];return s}let l=Object.keys(e);for(let u=0;u<l.length;u++){o=e[l[u]];let f=Object.keys(o);for(let c=0;c<f.length;c++)s+=o[f[c]][N]}return s}_getGraphs(e){return e=e===""?1:e&&(this._termToNumericId(e)||-1),typeof e!="number"?this._graphs:{[e]:this._graphs[e]}}_addObserver(e){let r=new WeakRef(e);return($n||($n=new FinalizationRegistry(ob))).register(e,{store:new WeakRef(this),observer:r},r),(this._observers||(this._observers=new Set)).add(r),r}_removeObserver(e){$n.unregister(e),this._observers&&(this._observers.delete(e),this._observers.size===0&&(this._observers=null))}_notifyObservers(e,r,i,n,s){for(let o of this._observers){let a=o.deref();a?a._onParentMutation(e,r,i,n,s):this._removeObserver(o)}}_uniqueEntities(e){let r=Object.create(null);return i=>{i in r||(r[i]=!0,e(this._termFromId(this._entities[i],this._factory)))}}add(e){return this.addQuad(e),this}addQuad(e,r,i,n){return r||(n=e.graph,i=e.object,r=e.predicate,e=e.subject),n=n?this._termToNewNumericId(n):1,e=this._termToNewNumericId(e),r=this._termToNewNumericId(r),i=this._termToNewNumericId(i),this._addQuad(e,r,i,n)}_addQuad(e,r,i,n){let s=this._graphs[n];if(s||(s=this._graphs[n]={subjects:{[N]:0},predicates:{[N]:0},objects:{[N]:0}},Object.freeze(s),this._graphCount++),this._observers!==null){if(kn(s.subjects,e,r,i))return!1;this._notifyObservers(e,r,i,n,!0)}return this._addToIndex(s.subjects,e,r,i)?(this._addToIndex(s.predicates,r,i,e),this._addToIndex(s.objects,i,e,r),this._size!==null&&this._size++,!0):!1}_addFromIndex(e,r=null){for(let i in e){let n=e[i].subjects,s=r&&r[i],o=s?s.subjects:null;for(let a in n){let l=Number(a),u=n[a],f=o&&o[a];for(let c in u){let d=Number(c),h=u[c],b=f&&f[c];for(let _ in h)(!b||!(_ in b))&&this._addQuad(l,d,Number(_),Number(i))}}}}_addIntersectionFromIndex(e,r){for(let i in e){let n=r[i];if(n){let s=e[i].subjects,o=n.subjects;o[N]<s[N]&&([s,o]=[o,s]);for(let a in s){let l=s[a],u=o[a];if(u){u[N]<l[N]&&([l,u]=[u,l]);for(let f in l){let c=l[f],d=u[f];if(d){d[N]<c[N]&&([c,d]=[d,c]);for(let h in c)h in d&&this._addQuad(Number(a),Number(f),Number(h),Number(i))}}}}}}}addQuads(e){for(let r=0;r<e.length;r++)this.addQuad(e[r])}delete(e){return this.removeQuad(e),this}has(e,r,i,n){if(e&&e.subject&&r==null&&i==null&&n==null&&({subject:e,predicate:r,object:i,graph:n}=e),e&&r&&i&&n!==void 0&&n!==null){let s=this._termToNumericId(e),o=this._termToNumericId(r),a=this._termToNumericId(i),l=n===""||se(n)?1:this._termToNumericId(n),u=l&&this._graphs[l];return!!s&&!!o&&!!a&&!!u&&kn(u.subjects,s,o,a)}return!this.readQuads(e,r,i,n).next().done}import(e){return e.on("data",r=>{this.addQuad(r)}),e}removeQuad(e,r,i,n){return r||({subject:e,predicate:r,object:i,graph:n}=e),n=n?this._termToNumericId(n):1,!(e=e&&this._termToNumericId(e))||!(r=r&&this._termToNumericId(r))||!(i=i&&this._termToNumericId(i))?!1:this._removeQuad(e,r,i,n)}_removeQuad(e,r,i,n){let s=this._graphs,o=s[n];return!o||!kn(o.subjects,e,r,i)?!1:(this._observers!==null&&this._notifyObservers(e,r,i,n,!1),this._removeFromIndex(o.subjects,e,r,i),this._removeFromIndex(o.predicates,r,i,e),this._removeFromIndex(o.objects,i,e,r),this._size!==null&&this._size--,o.subjects[N]===0&&(delete s[n],this._graphCount--),!0)}removeQuads(e){for(let r=0;r<e.length;r++)this.removeQuad(e[r])}remove(e){return e.on("data",r=>{this.removeQuad(r)}),e}removeMatches(e,r,i,n){let s=new Zr.Readable({objectMode:!0}),o=this.readQuads(e,r,i,n);return s._read=a=>{for(;--a>=0;){let{done:l,value:u}=o.next();if(l){s.push(null);return}s.push(u)}},this.remove(s)}deleteGraph(e){return this.removeMatches(null,null,null,e)}getQuads(e,r,i,n){return[...this.readQuads(e,r,i,n)]}*readQuads(e,r,i,n){let s=this._getGraphs(n),o,a,l,u;if(!(e&&!(a=this._termToNumericId(e))||r&&!(l=this._termToNumericId(r))||i&&!(u=this._termToNumericId(i))))for(let f in s)(o=s[f])&&(a?u?yield*ne(this._findInIndex(o.objects,u,a,l,"object","subject","predicate",f)):yield*ne(this._findInIndex(o.subjects,a,l,null,"subject","predicate","object",f)):l?yield*ne(this._findInIndex(o.predicates,l,u,null,"predicate","object","subject",f)):u?yield*ne(this._findInIndex(o.objects,u,null,null,"object","subject","predicate",f)):yield*ne(this._findInIndex(o.subjects,null,null,null,"subject","predicate","object",f)))}match(e,r,i,n,s=null){return new Ge(this,e,r,i,n,{entityIndex:this._entityIndex,matchSemantics:s&&s.matchSemantics!==void 0?s.matchSemantics:this._matchSemantics})}countQuads(e,r,i,n){let s=this._getGraphs(n),o=0,a,l,u,f;if(e&&!(l=this._termToNumericId(e))||r&&!(u=this._termToNumericId(r))||i&&!(f=this._termToNumericId(i)))return 0;for(let c in s)(a=s[c])&&(e?i?o+=this._countInIndex(a.objects,f,l,u):o+=this._countInIndex(a.subjects,l,u,f):r?o+=this._countInIndex(a.predicates,u,f,l):i?o+=this._countInIndex(a.objects,f,l,u):o+=this._countInIndex(a.subjects));return o}forEach(e,r,i,n,s){this.some(o=>(e(o,this),!1),r,i,n,s)}every(e,r,i,n,s){return!this.some(o=>!e(o,this),r,i,n,s)}some(e,r,i,n,s){for(let o of this.readQuads(r,i,n,s))if(e(o,this))return!0;return!1}getSubjects(e,r,i){let n=[];return this.forSubjects(s=>{n.push(s)},e,r,i),n}forSubjects(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.predicates,a,l,e):this._loopByKey1(o.subjects,a,e):l?this._loopByKey0(o.objects,l,e):this._loop(o.subjects,e))}getPredicates(e,r,i){let n=[];return this.forPredicates(s=>{n.push(s)},e,r,i),n}forPredicates(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.objects,l,a,e):this._loopByKey0(o.subjects,a,e):l?this._loopByKey1(o.predicates,l,e):this._loop(o.predicates,e))}getObjects(e,r,i){let n=[];return this.forObjects(s=>{n.push(s)},e,r,i),n}forObjects(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.subjects,a,l,e):this._loopByKey0Deep(o.subjects,a,e):l?this._loopByKey0(o.predicates,l,e):this._loop(o.objects,e))}getGraphs(e,r,i){let n=[];return this.forGraphs(s=>{n.push(s)},e,r,i),n}forGraphs(e,r,i,n){for(let s in this._graphs)this.some(o=>(e(o.graph),!0),r,i,n,this._termFromId(this._entities[s]))}createBlankNode(e){return this._entityIndex.createBlankNode(e)}extractLists({remove:e=!1,ignoreErrors:r=!1,allowExtraArcs:i=!1}={}){let n=Object.create(null),s=r?(()=>!0):((l,u)=>{throw new Error(`${l.value} ${u}`)}),o=this.getQuads(null,j.rdf.rest,j.rdf.nil,null),a=[];return o.forEach(l=>{let u=[],f=!1,c=!1,d,h,b=l.graph,_=[],y=l.subject;for(;y&&!f;){let g=this.getQuads(null,null,y,null),S=this.getQuads(y,null,null,null),m,w=null,x=null,A=null;for(let E=0;E<S.length&&!f;E++)m=S[E],m.graph.equals(b)?d?f=s(y,"has non-list arcs out"):m.predicate.value===j.rdf.first?(w?f=s(y,"has multiple rdf:first arcs"):w=m,e&&w===m&&_.push(m)):m.predicate.value===j.rdf.rest?(x?f=s(y,"has multiple rdf:rest arcs"):x=m,e&&x===m&&_.push(m)):g.length?i?c=!0:f=s(y,`has non-list arc ${m.predicate.value}`):(d=m,h="subject"):f=s(y,"not confined to single graph");for(let E=0;E<g.length&&!f;++E)m=g[E],d?f=s(y,"can't have coreferences"):m.predicate.value===j.rdf.rest?A?f=s(y,"has incoming rdf:rest arcs"):A=m:(d=m,h="object");w?u.push(w.object):f=s(y,"has no list head"),y=A&&A.subject}if(f)e=!1;else if(u.reverse(),d&&(n[d[h].value]=u),e&&!c)for(let g=0;g<_.length;g++)a.push(_[g])}),e&&this.removeQuads(a),n}addAll(e){if(e instanceof Ge&&(e=e.filtered),Array.isArray(e))this.addQuads(e);else if(e instanceof t&&e._entityIndex===this._entityIndex)this._addFromIndex(e._graphs);else for(let r of e)this.add(r);return this}contains(e){if(e instanceof Ge&&(e=e.filtered),e===this)return!0;if(!(e instanceof t)||this._entityIndex!==e._entityIndex){let f=Xl(e),c=this._size;return f!==null&&c!==null&&f>c?!1:e.every(d=>this.has(d))}let r=this._graphs,i=e._graphs,n,s,o,a,l,u;for(let f in i){if(!(n=r[f])||(n=n.subjects,(s=i[f].subjects)[N]>n[N]))return!1;for(let c in s){if(!(o=n[c])||(a=s[c])[N]>o[N])return!1;for(let d in a){if(!(l=o[d])||(u=a[d])[N]>l[N])return!1;for(let h in u)if(!(h in l))return!1}}}return!0}deleteMatches(e,r,i,n){for(let s of this.match(e,r,i,n,{matchSemantics:"lazy"}))this.removeQuad(s);return this}difference(e){if(e&&e instanceof Ge&&(e=e.filtered),e===this)return new t({entityIndex:this._entityIndex});if(e instanceof t&&e._entityIndex===this._entityIndex){let r=new t({entityIndex:this._entityIndex});return r._addFromIndex(this._graphs,e._graphs),r}return this.filter(r=>!e.has(r))}equals(e){return e instanceof Ge&&(e=e.filtered),e===this||this.size===e.size&&this.contains(e)}filter(e){let r=new t({entityIndex:this._entityIndex});for(let i of this)e(i,this)&&r.add(i);return r}intersection(e){if(e instanceof Ge&&(e=e.filtered),e===this){let n=new t({entityIndex:this._entityIndex});return n._addFromIndex(this._graphs),n}else if(e instanceof t&&this._entityIndex===e._entityIndex){let n=new t({entityIndex:this._entityIndex});return this._size!==0&&e._size!==0&&(e._graphCount<this._graphCount?n._addIntersectionFromIndex(e._graphs,this._graphs):n._addIntersectionFromIndex(this._graphs,e._graphs)),n}let r=Xl(e),i=this._size;if(r!==null&&i!==null&&r<i&&typeof e[Symbol.iterator]=="function"&&e._factory===W&&e._entityIndex._factory===W){let n=new t({entityIndex:this._entityIndex});for(let s of e)this.has(s)&&n.add(s);return n}return this.filter(n=>e.has(n))}map(e){let r=new t({entityIndex:this._entityIndex});for(let i of this)r.add(e(i,this));return r}reduce(e,r){let i=this.readQuads(),n=r===void 0?i.next().value:r;for(let s of i)n=e(n,s,this);return n}toArray(){return this.getQuads()}toCanonical(){throw new Error("not implemented")}toStream(){return this.match(null,null,null,null,{matchSemantics:"lazy"})}toString(){return new oe().quadsToString(this)}union(e){let r=new t({entityIndex:this._entityIndex});return r._addFromIndex(this._graphs),r.addAll(e),r}[Symbol.iterator](){return this.readQuads()}};function Ee(t,e,r=0){let i=e[r];if(i&&!(i in t))return!1;let n=!1,s=0;for(let o in i?{[i]:t[i]}:t){let a=r===2?null:Ee(t[o],e,r+1);a!==!1&&(n=n||Object.create(null),n[o]=a,s++)}return n&&(n[N]=s),n}function Zl(t,e,r,i,n){let s={store:t,ids:[]},o=e&&t._termToNumericId(e),a=r&&t._termToNumericId(r),l=i&&t._termToNumericId(i),u,f,c,d,h;l&&(o||!a)?(u="objects",[f,c,d]=[l,o,a],h=[2,0,1]):!o&&a?(u="predicates",[f,c,d]=[a,l,o],h=[1,2,0]):(u="subjects",[f,c,d]=[o,a,l],h=[0,1,2]);let b=t._getGraphs(n),_=[];for(let y in b){let g=b[y][u],S=Number(y);for(let m in f?{[f]:g[f]}:g){let w=g[m];if(w){_[h[0]]=Number(m);for(let x in c?{[c]:w[c]}:w){let A=w[x];if(A){_[h[1]]=Number(x);for(let E in d?d in A?{[d]:null}:{}:A)_[h[2]]=Number(E),s.ids.push(_[0],_[1],_[2],S)}}}}}return s}function*lb({store:t,ids:e},r){let i=t._entities,n,s,o,a,l,u,f,c;for(let d=r*4;d<e.length;d+=4)l!==e[d]&&(n=t._termFromId(i[l=e[d]])),u!==e[d+1]&&(s=t._termFromId(i[u=e[d+1]])),f!==e[d+2]&&(o=t._termFromId(i[f=e[d+2]])),c!==e[d+3]&&(a=t._termFromId(i[c=e[d+3]])),yield t._factory.quad(n,s,o,a)}function Un(t="lazy"){if(t!=="lazy"&&t!=="snapshot"&&t!=="forwarded")throw new Error(`Unknown matchSemantics: ${t}`);if(t!=="lazy"&&(typeof WeakRef!="function"||typeof FinalizationRegistry!="function"))throw new Error("Non-lazy matchSemantics requires WeakRef and FinalizationRegistry support");return t}function eu(t,e){let r=new Array(4);for(let i=0;i<4;i++){let n=t[i],s=e[i];if(n==null)r[i]=s;else if(s==null||Z(n)===Z(s))r[i]=n;else return!1}return r}var Ge=class t extends Zr.Readable{constructor(e,r,i,n,s,o){super({objectMode:!0}),Object.assign(this,{n3Store:e,subject:r,predicate:i,object:n,graph:s,options:o});let a=this._semantics=Un(o.matchSemantics);o.matchesNothing&&(this._matchesNothing=!0,this._filtered=new ue({factory:e._factory,entityIndex:o.entityIndex})),a!=="lazy"&&(this._readers=null,this._subjectId=this._predicateId=this._objectId=this._graphId=void 0,this._matchesNothing||(this._observer=e._addObserver(this)))}_matchesPattern(e,r,i,n){let{subject:s,predicate:o,object:a,graph:l,n3Store:u}=this;return s&&e!==(this._subjectId||(this._subjectId=u._termToNumericId(s)))||o&&r!==(this._predicateId||(this._predicateId=u._termToNumericId(o)))||a&&i!==(this._objectId||(this._objectId=u._termToNumericId(a)))?!1:l==null||n===(this._graphId||(this._graphId=l===""||se(l)?1:u._termToNumericId(l)))}_matchesQuad(e){let{subject:r,predicate:i,object:n,graph:s}=this;return!this._matchesNothing&&(r==null||Z(r)===Z(e.subject))&&(i==null||Z(i)===Z(e.predicate))&&(n==null||Z(n)===Z(e.object))&&(s==null||Z(s)===Z(e.graph))}_assertMatchesPattern(e){if(!this._matchesQuad(e))throw new Error("Quad does not match the forwarded view pattern")}_sourceIterator(){return this._filtered?this._filtered[Symbol.iterator]():this.n3Store.readQuads(this.subject,this.predicate,this.object,this.graph)}_freezeCurrentIterators(){this._readers&&(this._readers.snapshot=this._filtered?Zl(this._filtered):Zl(this.n3Store,this.subject,this.predicate,this.object,this.graph),this._readers=null)}_onParentMutation(e,r,i,n,s){if(this._matchesPattern(e,r,i,n)){if(this._freezeCurrentIterators(),this._semantics==="forwarded"){this._filtered&&(s?this._filtered._addQuad(e,r,i,n):this._filtered._removeQuad(e,r,i,n));return}this._filtered=this.filtered}}get filtered(){if(!this._filtered){let{n3Store:e,graph:r,object:i,predicate:n,subject:s}=this;this._semantics!=="lazy"&&this._freezeCurrentIterators();let o=this._filtered=new ue({factory:e._factory,entityIndex:this.options.entityIndex});this._semantics==="snapshot"&&this._detachObserver();let a,l,u;if(s&&!(a=o._termToNumericId(s))||n&&!(l=o._termToNumericId(n))||i&&!(u=o._termToNumericId(i)))return o;let f=e._getGraphs(r);for(let c in f){let d,h,b,_;(_=f[c])&&(!a&&l?(h=Ee(_.predicates,[l,u,a]))&&(d=Ee(_.subjects,[a,l,u]),b=Ee(_.objects,[u,a,l])):u?(b=Ee(_.objects,[u,a,l]))&&(d=Ee(_.subjects,[a,l,u]),h=Ee(_.predicates,[l,u,a])):(d=Ee(_.subjects,[a,l,u]))&&(h=Ee(_.predicates,[l,u,a]),b=Ee(_.objects,[u,a,l])),d&&(o._graphs[c]={subjects:d,predicates:h,objects:b},o._graphCount++))}o._size=null}return this._filtered}get size(){return this.filtered.size}_read(e){e>0&&!this[Ut]&&(this[Ut]=this[Symbol.iterator]());let r=this[Ut];for(;--e>=0;){let{done:i,value:n}=r.next();if(i){this.push(null);return}this.push(n)}}_destroy(e,r){this[Ut]&&(this[Ut].return(),this[Ut]=null),r(e)}_detachObserver(){this._observer&&(this.n3Store._removeObserver(this._observer),this._observer=null)}_detach(){return this._filtered=this.filtered,this._detachObserver(),this._semantics==="lazy"&&(this._readers=null),this._semantics="snapshot",this}addAll(e){if(this._semantics==="forwarded"){for(let r of e)this._assertMatchesPattern(r),this.n3Store.addQuad(r);return this}return this.filtered.addAll(e)}contains(e){return this.filtered.contains(e)}deleteMatches(e,r,i,n){if(this._semantics==="forwarded"){if(this._matchesNothing)throw new Error("Cannot delete from a conflicting forwarded view pattern");let s=eu([this.subject,this.predicate,this.object,this.graph],[e,r,i,n]);if(!s)throw new Error("Deletion pattern does not match the forwarded view pattern");return this.n3Store.deleteMatches(...s),this}return this.filtered.deleteMatches(e,r,i,n)}difference(e){return this.filtered.difference(e)}equals(e){return this.filtered.equals(e)}every(e,r,i,n,s){return this.filtered.every(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}filter(e){return this.filtered.filter(this._semantics==="forwarded"?r=>e(r,this):e)}forEach(e,r,i,n,s){return this.filtered.forEach(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}import(e){if(this._semantics!=="forwarded")return this.filtered.import(e);let r=this;function i(n){try{r._assertMatchesPattern(n),r.n3Store.addQuad(n)}catch(s){e.removeListener("data",i),typeof e.destroy=="function"?e.destroy(s):e.emit("error",s)}}return e.on("data",i),e}intersection(e){return this.filtered.intersection(e)}map(e){return this.filtered.map(this._semantics==="forwarded"?r=>e(r,this):e)}some(e,r,i,n,s){return this.filtered.some(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}toCanonical(){return this.filtered.toCanonical()}toStream(){return this._semantics!=="lazy"?Zr.Readable.from(this[Symbol.iterator]()):this._filtered?this._filtered.toStream():this.n3Store.match(this.subject,this.predicate,this.object,this.graph,{matchSemantics:"lazy"})}union(e){return this._filtered?this._filtered.union(e):this.n3Store.match(this.subject,this.predicate,this.object,this.graph,{matchSemantics:"lazy"}).addAll(e)}toArray(){return this._semantics!=="lazy"?[...this]:this._filtered?this._filtered.toArray():this.n3Store.getQuads(this.subject,this.predicate,this.object,this.graph)}reduce(e,r){return this.filtered.reduce(this._semantics==="forwarded"?(i,n)=>e(i,n,this):e,r)}toString(){return new oe().quadsToString(this)}add(e){return this._semantics==="forwarded"?(this._assertMatchesPattern(e),this.n3Store.addQuad(e),this):this.filtered.add(e)}delete(e){return this._semantics==="forwarded"?(this._assertMatchesPattern(e),this.n3Store.removeQuad(e),this):this.filtered.delete(e)}has(e){return this.filtered.has(e)}match(e,r,i,n,s=null){let o=s&&s.matchSemantics;if(s&&o!==void 0&&(Un(o),o!==this._semantics))throw new Error(`Cannot override matchSemantics on a view: inherited "${this._semantics}", received "${o}"`);if(this._semantics!=="forwarded")return new t(this.filtered,e,r,i,n,{entityIndex:this.options.entityIndex,matchSemantics:this._semantics});let a=!this._matchesNothing&&eu([this.subject,this.predicate,this.object,this.graph],[e,r,i,n]),[l,u,f,c]=a||[null,null,null,null];return new t(this.n3Store,l,u,f,c,{entityIndex:this.options.entityIndex,matchSemantics:"forwarded",matchesNothing:!a})}[Symbol.iterator](){return this._semantics==="lazy"?this._sourceIterator():this._iterateStable()}*_iterateStable(){let e=this._readers||(this._readers={count:0,snapshot:null}),r=this._sourceIterator(),i=0;e.count++;try{for(;!e.snapshot;){let{value:n,done:s}=r.next();if(e.snapshot||s)break;i++,yield n}e.snapshot&&(yield*ne(lb(e.snapshot,i)))}finally{r.return(),--e.count===0&&(e.snapshot=null,this._readers===e&&(this._readers=null))}}};var Wt=class{dataset(e){return new ue(e)}};function Wn(t){let e=[];for(let{subject:r,object:i}of t.match(null,W.namedNode("http://www.w3.org/2000/10/swap/log#implies"),null,W.defaultGraph())){let n=[...t.match(null,null,null,r)],s=[...t.match(null,null,null,i)];e.push({premise:n,conclusion:s})}return e}var Gt=class{constructor(e,r={}){this._store=e,this._maxDerivations=r.maxDerivations===void 0?1/0:r.maxDerivations,this._maxPremiseDepth=r.maxPremiseDepth===void 0?1/0:r.maxPremiseDepth}_add(e,r,i,n,s,o){let a=this._store;if(a._observers){if(!a._addQuad(e,r,i,this._graphId))return}else{if(!a._addToIndex(n.subjects,e,r,i))return;a._addToIndex(n.predicates,r,i,e),a._addToIndex(n.objects,i,e,r),this._indexed++}if(++this._derivations>this._maxDerivations)throw new Error(`Reasoning exceeded the maximum of ${this._maxDerivations} derivations`);o(s)}_emit(e,r,i){let n=e.conclusion;for(let s=0;s<n.length;s++){let o=n[s];this._add(o.subject.value,o.predicate.value,o.object.value,r,o,i)}}_evaluatePremise(e,r,i,n=0){let s,o,[a,l,u]=e.premise[n].value,f=r[e.premise[n].content],c=n===e.premise.length-1;if(!(s=a.value)){for(s in f)o=f[s],a.value=Number(s),this._evaluateLevel1(e,r,i,n,c,l,u,o);a.value=null}else(o=f[s])&&this._evaluateLevel1(e,r,i,n,c,l,u,o)}_evaluateLevel1(e,r,i,n,s,o,a,l){let u,f;if(!(u=o.value)){for(u in l)f=l[u],o.value=Number(u),this._evaluateLevel2(e,r,i,n,s,a,f);o.value=null}else(f=l[u])&&this._evaluateLevel2(e,r,i,n,s,a,f)}_evaluateLevel2(e,r,i,n,s,o,a){let l;if(!(l=o.value)){for(l in a)o.value=Number(l),s?this._emit(e,r,i):this._evaluatePremise(e,r,i,n+1);o.value=null}else s?this._emit(e,r,i):this._evaluatePremise(e,r,i,n+1)}_evaluateRules(e,r,i){for(let n=0;n<e.length;n++)this._evaluatePremise(e[n],r,i)}_reasonGraphNaive(e,r){let i=[];function n(a){a.next&&a.next.forEach(l=>{i.push([a.subject.value,a.predicate.value,a.object.value,l])})}let s=a=>{for(let l=0;l<a.length;l++){let u=a[l];this._add(u.subject.value,u.predicate.value,u.object.value,r,u,n)}};this._evaluateRules(e,r,n);let o;for(;(o=i.pop())!==void 0;){let[a,l,u,f]=o,c=f.basePremise.subject.value;c||(f.basePremise.subject.value=a);let d=f.basePremise.predicate.value;d||(f.basePremise.predicate.value=l);let h=f.basePremise.object.value;h||(f.basePremise.object.value=u),f.premise.length===0?s(f.conclusion):this._evaluatePremise(f,r,n),c||(f.basePremise.subject.value=null),d||(f.basePremise.predicate.value=null),h||(f.basePremise.object.value=null)}}_createRule({premise:e,conclusion:r}){let i=Object.create(null),n=o=>o.termType==="Variable"?i[o.value]=i[o.value]||{}:{value:this._store._termToNewNumericId(o)},s=o=>({subject:n(o.subject),predicate:n(o.predicate),object:n(o.object)});return{premise:e.map(o=>s(o)),conclusion:r.map(o=>s(o)),variables:Object.values(i)}}reason(e){this._derivations=this._indexed=0,Array.isArray(e)||(e=Wn(e)),e=e.map(i=>this._createRule(i));for(let i of e)if(i.premise.length>this._maxPremiseDepth)throw new Error(`Reasoning rule exceeds the maximum premise depth of ${this._maxPremiseDepth}`);for(let i of e)for(let n of e)for(let s=0;s<n.premise.length;s++){let o=n.premise[s];for(let a of i.conclusion){if(qn(o.subject,a.subject)&&qn(o.predicate,a.predicate)&&qn(o.object,a.object)){let l=new Set,u=[];o.subject.value=o.subject.value||1,o.object.value=o.object.value||1,o.predicate.value=o.predicate.value||1;for(let f=0;f<n.premise.length;f++)f!==s&&u.push(ru(n.premise[f],l));(a.next=a.next||[]).push({premise:u,conclusion:n.conclusion,basePremise:o})}for(let l=0;l<n.variables.length;l++)n.variables[l].value=null}}for(let i of e){let n=new Set;i.premise=i.premise.map(s=>ru(s,n))}let r=this._store._getGraphs();try{for(let i in r)this._graphId=Number(i),this._reasonGraphNaive(e,r[i])}finally{this._store._size!==null&&(this._store._size+=this._indexed)}}};function ru({subject:t,predicate:e,object:r},i){let n=t.value||i.has(t)||(i.add(t),!1),s=e.value||i.has(e)||(i.add(e),!1),o=r.value||i.has(r)||(i.add(r),!1);return!n&&s?{content:"predicates",value:[e,r,t]}:o?{content:"objects",value:[r,t,e]}:{content:"subjects",value:[t,e,r]}}function qn(t,e){return t.value===null&&(t.value=e.value),t.value===e.value}var iu=ei(Jr());var Qt=class extends iu.Transform{constructor(e){super({decodeStrings:!0,readableObjectMode:!0});let r=new ce(e),i,n,s={onQuad:(o,a)=>{o&&this.emit("error",o)||a&&this.push(a)},onPrefix:(o,a)=>{this.emit("prefix",o,a)},onDirective:o=>{this.emit("directive",o)}};e&&e.comments&&(s.onComment=o=>{this.emit("comment",o)}),r.parse({on:(o,a)=>{switch(o){case"data":i=a;break;case"end":n=a;break}}},s),this._transform=(o,a,l)=>{i(o),l()},this._flush=o=>{n(),o()}}import(e){return e.on("error",r=>{this.emit("error",r)}),typeof e.pipe=="function"?e.pipe(this):(e.on("data",r=>{this.write(r)}),e.on("end",()=>{this.end()})),this}};var nu=ei(Jr());var ub=16*1024,fb=20,zt=class extends nu.Transform{constructor(e){super({encoding:"utf8",writableObjectMode:!0}),this._buffer="",this._flushTimer=null,this._flushDelay=e&&e.flushDelay!==void 0?e.flushDelay:fb;let r=this._writer=new oe({write:(s,o,a)=>{this._buffer+=s,this._buffer.length>=ub?this._pushBuffer():this._flushTimer===null&&this._armFlushTimer(),a&&a()},end:s=>{this._pushBuffer(),this.push(null),s&&s()}},e),i=null,n=s=>{let o=i;i=null,s&&this._pushBuffer(),o(s)};this._transform=(s,o,a)=>{i=a,r.addQuad(s,n)},this._flush=s=>{r.end(s)}}_pushBuffer(){this._clearFlushTimer(),this._buffer!==""&&(this.push(this._buffer),this._buffer="")}_armFlushTimer(){this._flushTimer=setTimeout(()=>{this._flushTimer=null,this._pushBuffer()},this._flushDelay),this._flushTimer.unref&&this._flushTimer.unref()}_clearFlushTimer(){this._flushTimer!==null&&(clearTimeout(this._flushTimer),this._flushTimer=null)}_destroy(e,r){this._clearFlushTimer(),super._destroy(e,r)}import(e){return e.on("data",r=>{this.write(r)}),e.on("end",()=>{this.end()}),e.on("error",r=>{this._pushBuffer(),this.emit("error",r)}),e.on("prefix",(r,i)=>{this._writer.addPrefix(r,i)}),this}};var cb={Lexer:Se,Parser:ce,Writer:oe,Store:ue,StoreFactory:Wt,EntityIndex:qt,StreamParser:Qt,StreamWriter:zt,Util:dr,Reasoner:Gt,BaseIRI:Me,DataFactory:W,Term:z,NamedNode:ze,Literal:fe,BlankNode:pt,Variable:bt,DefaultGraph:yt,Quad:Ae,Triple:Ae,termFromId:Re,termToId:Te};return _u(hb);})();
23
+ ]`)}}list(e){let r=e&&e.length||0,i=new Array(r);for(let n=0;n<r;n++)i[n]=this._encodeObject(e[n]);return new He(`(${i.join(" ")})`)}end(e){this._endStatement(),this._write=this._blockedWrite;let r=e&&((i,n)=>{r=null,e(i,n)});if(this._endStream)try{return this._outputStream.end(r)}catch(i){}r&&r()}};function Xu(t){let e=ws[t];return e===void 0&&(t.length===1?(e=t.charCodeAt(0).toString(16),e="\\u0000".substr(0,6-e.length)+e):(e=((t.charCodeAt(0)-55296)*1024+t.charCodeAt(1)+9216).toString(16),e="\\U00000000".substr(0,10-e.length)+e)),e}function Zu(t){let e=ws[t];return e===void 0&&(e=t.charCodeAt(0).toString(16).toUpperCase(),e="\\u0000".substr(0,6-e.length)+e),e}var Zr=ei(Jr());var Ut=Symbol("iter"),N=Symbol("size"),$n;function ob({store:t,observer:e}){let r=t.deref();r&&r._removeObserver(e)}function kn(t,e,r,i){let n=t&&t[e],s=n&&n[r];return!!s&&i in s}var ab=/^[?_"[.<]/;function Z(t){if(typeof t=="string"){let r=t.charCodeAt(0);return r!==60&&r!==46||t==="<>"?t:`<${t}>`}let e=Te(t);return e.charCodeAt(0)>=97||!t?e:t.termType==="Quad"?JSON.stringify(tu(t)):t.termType!=="NamedNode"||!ab.test(t.value)?e:`<${t.value}>`}function tu(t){let e=[Xr(t.subject),Xr(t.predicate),Xr(t.object)];return t.graph&&!se(t.graph)&&e.push(Xr(t.graph)),e}function Xr(t){return t.termType==="Quad"?tu(t):Z(t)}var qt=class{constructor(e={}){this._id=1,this._ids=Object.create(null),this._ids[""]=1,this._entities=Object.create(null),this._entities[1]="",this._blankNodeIndex=0,this._factory=e.factory||W}_termFromId(e){if(e[0]==="<")return this._factory.namedNode(e.substring(1,e.length-1));if(e[0]==="."){let r=this._entities,i=e.split(".");return this._factory.quad(this._termFromId(r[i[1]]),this._termFromId(r[i[2]]),this._termFromId(r[i[3]]),i[4]&&this._termFromId(r[i[4]]))}return Re(e,this._factory)}_termToNumericId(e){if(e.termType==="Quad"){let r=this._termToNumericId(e.subject),i=this._termToNumericId(e.predicate),n=this._termToNumericId(e.object),s;return r&&i&&n&&(se(e.graph)||(s=this._termToNumericId(e.graph)))&&this._ids[s?`.${r}.${i}.${n}.${s}`:`.${r}.${i}.${n}`]}return typeof e=="string"?this._stringToNumericId(e):this._ids[Z(e)]}_stringToNumericId(e){let r=this._ids[e],i=r?this._entities[r].charCodeAt(0):e.charCodeAt(0);return i!==60&&i!==46||e==="<>"?r:this._ids[`<${e}>`]}_termToNewNumericId(e){if(typeof e=="string")return this._stringToNumericId(e)||this._addEntity(Z(e));let r=e&&e.termType==="Quad"?`.${this._termToNewNumericId(e.subject)}.${this._termToNewNumericId(e.predicate)}.${this._termToNewNumericId(e.object)}${se(e.graph)?"":`.${this._termToNewNumericId(e.graph)}`}`:Z(e);return this._ids[r]||this._addEntity(r)}_addEntity(e){return this._ids[this._entities[++this._id]=e]=this._id}createBlankNode(e){let r,i;if(e)for(r=e=`_:${e}`,i=1;this._ids[r];)r=e+i++;else do r=`_:b${this._blankNodeIndex++}`;while(this._ids[r]);return this._ids[r]=++this._id,this._entities[this._id]=r,this._factory.blankNode(r.substr(2))}};function Xl(t){return t instanceof ue?t._size:null}var ue=class t{constructor(e,r){this._size=0,this._graphs=Object.create(null),this._graphCount=0,this._observers=null,!r&&e&&!e[0]&&typeof e.match!="function"&&(r=e,e=null),r=r||{},this._factory=r.factory||W,this._matchSemantics=Un(r.matchSemantics),this._entityIndex=r.entityIndex||new qt({factory:this._factory}),this._entities=this._entityIndex._entities,this._termFromId=this._entityIndex._termFromId.bind(this._entityIndex),this._termToNumericId=this._entityIndex._termToNumericId.bind(this._entityIndex),this._termToNewNumericId=this._entityIndex._termToNewNumericId.bind(this._entityIndex),e&&this.addAll(e)}get size(){return this._size===null&&(this._size=this.countQuads()),this._size}_addToIndex(e,r,i,n){let s=e[r];s||(e[r]=s={[N]:0},e[N]++);let o=s[i];o||(s[i]=o={[N]:0},s[N]++);let a=n in o;return a||(o[n]=null,o[N]++),!a}_removeFromIndex(e,r,i,n){let s=e[r],o=s[i];delete o[n],--o[N]===0&&(delete s[i],--s[N]===0&&(delete e[r],e[N]--))}*_findInIndex(e,r,i,n,s,o,a,l){let u=this._entities,f=this._termFromId(u[l]),c={subject:null,predicate:null,object:null};if(n){let h=e[r],b=h&&h[i];if(!b||!(n in b))return;c[s]=this._termFromId(u[r]),c[o]=this._termFromId(u[i]),c[a]=this._termFromId(u[n]),yield this._factory.quad(c.subject,c.predicate,c.object,f);return}if(r&&!(r in e))return;let d=r?null:Object.keys(e);for(let h=0,b=r||d[0];b;b=d&&d[++h]){let _=e[b];if(!_)continue;if(c[s]=this._termFromId(u[b]),i&&!(i in _))return;let y=i?null:Object.keys(_);for(let g=0,S=i||y[0];S;S=y&&y[++g]){let m=_[S];if(!m)continue;c[o]=this._termFromId(u[S]);let w=Object.keys(m);for(let x=0;x<w.length;x++)c[a]=this._termFromId(u[w[x]]),yield this._factory.quad(c.subject,c.predicate,c.object,f)}}}_loop(e,r){for(let i in e)r(i)}_loopByKey0(e,r,i){let n,s;if(n=e[r])for(s in n)i(s)}_loopByKey1(e,r,i){let n,s;for(n in e)s=e[n],s[r]&&i(n)}_loopBy2Keys(e,r,i,n){let s,o,a;if((s=e[r])&&(o=s[i]))for(a in o)n(a)}_loopByKey0Deep(e,r,i){let n,s,o,a;if(n=e[r])for(o in n){s=n[o];for(a in s)i(a)}}_countInIndex(e,r,i,n){let s=0,o,a;if(r){if(!(o=e[r]))return 0;if(i)return(a=o[i])?n?n in a?1:0:a[N]:0;let u=Object.keys(o);for(let f=0;f<u.length;f++)s+=o[u[f]][N];return s}let l=Object.keys(e);for(let u=0;u<l.length;u++){o=e[l[u]];let f=Object.keys(o);for(let c=0;c<f.length;c++)s+=o[f[c]][N]}return s}_getGraphs(e){return e=e===""?1:e&&(this._termToNumericId(e)||-1),typeof e!="number"?this._graphs:{[e]:this._graphs[e]}}_addObserver(e){let r=new WeakRef(e);return($n||($n=new FinalizationRegistry(ob))).register(e,{store:new WeakRef(this),observer:r},r),(this._observers||(this._observers=new Set)).add(r),r}_removeObserver(e){$n.unregister(e),this._observers&&(this._observers.delete(e),this._observers.size===0&&(this._observers=null))}_notifyObservers(e,r,i,n,s){for(let o of this._observers){let a=o.deref();a?a._onParentMutation(e,r,i,n,s):this._removeObserver(o)}}_uniqueEntities(e){let r=Object.create(null);return i=>{i in r||(r[i]=!0,e(this._termFromId(this._entities[i],this._factory)))}}add(e){return this.addQuad(e),this}addQuad(e,r,i,n){return r||(n=e.graph,i=e.object,r=e.predicate,e=e.subject),n=n?this._termToNewNumericId(n):1,e=this._termToNewNumericId(e),r=this._termToNewNumericId(r),i=this._termToNewNumericId(i),this._addQuad(e,r,i,n)}_addQuad(e,r,i,n){let s=this._graphs[n];if(s||(s=this._graphs[n]={subjects:{[N]:0},predicates:{[N]:0},objects:{[N]:0}},Object.freeze(s),this._graphCount++),this._observers!==null){if(kn(s.subjects,e,r,i))return!1;this._notifyObservers(e,r,i,n,!0)}return this._addToIndex(s.subjects,e,r,i)?(this._addToIndex(s.predicates,r,i,e),this._addToIndex(s.objects,i,e,r),this._size!==null&&this._size++,!0):!1}_addFromIndex(e,r=null){for(let i in e){let n=e[i].subjects,s=r&&r[i],o=s?s.subjects:null;for(let a in n){let l=Number(a),u=n[a],f=o&&o[a];for(let c in u){let d=Number(c),h=u[c],b=f&&f[c];for(let _ in h)(!b||!(_ in b))&&this._addQuad(l,d,Number(_),Number(i))}}}}_addIntersectionFromIndex(e,r){for(let i in e){let n=r[i];if(n){let s=e[i].subjects,o=n.subjects;o[N]<s[N]&&([s,o]=[o,s]);for(let a in s){let l=s[a],u=o[a];if(u){u[N]<l[N]&&([l,u]=[u,l]);for(let f in l){let c=l[f],d=u[f];if(d){d[N]<c[N]&&([c,d]=[d,c]);for(let h in c)h in d&&this._addQuad(Number(a),Number(f),Number(h),Number(i))}}}}}}}addQuads(e){for(let r=0;r<e.length;r++)this.addQuad(e[r])}delete(e){return this.removeQuad(e),this}has(e,r,i,n){if(e&&e.subject&&r==null&&i==null&&n==null&&({subject:e,predicate:r,object:i,graph:n}=e),e&&r&&i&&n!==void 0&&n!==null){let s=this._termToNumericId(e),o=this._termToNumericId(r),a=this._termToNumericId(i),l=n===""||se(n)?1:this._termToNumericId(n),u=l&&this._graphs[l];return!!s&&!!o&&!!a&&!!u&&kn(u.subjects,s,o,a)}return!this.readQuads(e,r,i,n).next().done}import(e){return e.on("data",r=>{this.addQuad(r)}),e}removeQuad(e,r,i,n){return r||({subject:e,predicate:r,object:i,graph:n}=e),n=n?this._termToNumericId(n):1,!(e=e&&this._termToNumericId(e))||!(r=r&&this._termToNumericId(r))||!(i=i&&this._termToNumericId(i))?!1:this._removeQuad(e,r,i,n)}_removeQuad(e,r,i,n){let s=this._graphs,o=s[n];return!o||!kn(o.subjects,e,r,i)?!1:(this._observers!==null&&this._notifyObservers(e,r,i,n,!1),this._removeFromIndex(o.subjects,e,r,i),this._removeFromIndex(o.predicates,r,i,e),this._removeFromIndex(o.objects,i,e,r),this._size!==null&&this._size--,o.subjects[N]===0&&(delete s[n],this._graphCount--),!0)}removeQuads(e){for(let r=0;r<e.length;r++)this.removeQuad(e[r])}remove(e){return e.on("data",r=>{this.removeQuad(r)}),e}removeMatches(e,r,i,n){let s=new Zr.Readable({objectMode:!0}),o=this.readQuads(e,r,i,n);return s._read=a=>{for(;--a>=0;){let{done:l,value:u}=o.next();if(l){s.push(null);return}s.push(u)}},this.remove(s)}deleteGraph(e){return this.removeMatches(null,null,null,e)}getQuads(e,r,i,n){return[...this.readQuads(e,r,i,n)]}*readQuads(e,r,i,n){let s=this._getGraphs(n),o,a,l,u;if(!(e&&!(a=this._termToNumericId(e))||r&&!(l=this._termToNumericId(r))||i&&!(u=this._termToNumericId(i))))for(let f in s)(o=s[f])&&(a?u?yield*ne(this._findInIndex(o.objects,u,a,l,"object","subject","predicate",f)):yield*ne(this._findInIndex(o.subjects,a,l,null,"subject","predicate","object",f)):l?yield*ne(this._findInIndex(o.predicates,l,u,null,"predicate","object","subject",f)):u?yield*ne(this._findInIndex(o.objects,u,null,null,"object","subject","predicate",f)):yield*ne(this._findInIndex(o.subjects,null,null,null,"subject","predicate","object",f)))}match(e,r,i,n,s=null){return new Ge(this,e,r,i,n,{entityIndex:this._entityIndex,matchSemantics:s&&s.matchSemantics!==void 0?s.matchSemantics:this._matchSemantics})}countQuads(e,r,i,n){let s=this._getGraphs(n),o=0,a,l,u,f;if(e&&!(l=this._termToNumericId(e))||r&&!(u=this._termToNumericId(r))||i&&!(f=this._termToNumericId(i)))return 0;for(let c in s)(a=s[c])&&(e?i?o+=this._countInIndex(a.objects,f,l,u):o+=this._countInIndex(a.subjects,l,u,f):r?o+=this._countInIndex(a.predicates,u,f,l):i?o+=this._countInIndex(a.objects,f,l,u):o+=this._countInIndex(a.subjects));return o}forEach(e,r,i,n,s){this.some(o=>(e(o,this),!1),r,i,n,s)}every(e,r,i,n,s){return!this.some(o=>!e(o,this),r,i,n,s)}some(e,r,i,n,s){for(let o of this.readQuads(r,i,n,s))if(e(o,this))return!0;return!1}getSubjects(e,r,i){let n=[];return this.forSubjects(s=>{n.push(s)},e,r,i),n}forSubjects(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.predicates,a,l,e):this._loopByKey1(o.subjects,a,e):l?this._loopByKey0(o.objects,l,e):this._loop(o.subjects,e))}getPredicates(e,r,i){let n=[];return this.forPredicates(s=>{n.push(s)},e,r,i),n}forPredicates(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.objects,l,a,e):this._loopByKey0(o.subjects,a,e):l?this._loopByKey1(o.predicates,l,e):this._loop(o.predicates,e))}getObjects(e,r,i){let n=[];return this.forObjects(s=>{n.push(s)},e,r,i),n}forObjects(e,r,i,n){let s=this._getGraphs(n),o,a,l;if(e=this._uniqueEntities(e),!(r&&!(a=this._termToNumericId(r))||i&&!(l=this._termToNumericId(i))))for(n in s)(o=s[n])&&(a?l?this._loopBy2Keys(o.subjects,a,l,e):this._loopByKey0Deep(o.subjects,a,e):l?this._loopByKey0(o.predicates,l,e):this._loop(o.objects,e))}getGraphs(e,r,i){let n=[];return this.forGraphs(s=>{n.push(s)},e,r,i),n}forGraphs(e,r,i,n){for(let s in this._graphs)this.some(o=>(e(o.graph),!0),r,i,n,this._termFromId(this._entities[s]))}createBlankNode(e){return this._entityIndex.createBlankNode(e)}extractLists({remove:e=!1,ignoreErrors:r=!1,allowExtraArcs:i=!1}={}){let n=Object.create(null),s=r?(()=>!0):((l,u)=>{throw new Error(`${l.value} ${u}`)}),o=this.getQuads(null,j.rdf.rest,j.rdf.nil,null),a=[];return o.forEach(l=>{let u=[],f=!1,c=!1,d,h,b=l.graph,_=[],y=l.subject;for(;y&&!f;){let g=this.getQuads(null,null,y,null),S=this.getQuads(y,null,null,null),m,w=null,x=null,A=null;for(let E=0;E<S.length&&!f;E++)m=S[E],m.graph.equals(b)?d?f=s(y,"has non-list arcs out"):m.predicate.value===j.rdf.first?(w?f=s(y,"has multiple rdf:first arcs"):w=m,e&&w===m&&_.push(m)):m.predicate.value===j.rdf.rest?(x?f=s(y,"has multiple rdf:rest arcs"):x=m,e&&x===m&&_.push(m)):g.length?i?c=!0:f=s(y,`has non-list arc ${m.predicate.value}`):(d=m,h="subject"):f=s(y,"not confined to single graph");for(let E=0;E<g.length&&!f;++E)m=g[E],d?f=s(y,"can't have coreferences"):m.predicate.value===j.rdf.rest?A?f=s(y,"has incoming rdf:rest arcs"):A=m:(d=m,h="object");w?u.push(w.object):f=s(y,"has no list head"),y=A&&A.subject}if(f)e=!1;else if(u.reverse(),d&&(n[d[h].value]=u),e&&!c)for(let g=0;g<_.length;g++)a.push(_[g])}),e&&this.removeQuads(a),n}addAll(e){if(e instanceof Ge&&(e=e.filtered),Array.isArray(e))this.addQuads(e);else if(e instanceof t&&e._entityIndex===this._entityIndex)this._addFromIndex(e._graphs);else for(let r of e)this.add(r);return this}contains(e){if(e instanceof Ge&&(e=e.filtered),e===this)return!0;if(!(e instanceof t)||this._entityIndex!==e._entityIndex){let f=Xl(e),c=this._size;return f!==null&&c!==null&&f>c?!1:e.every(d=>this.has(d))}let r=this._graphs,i=e._graphs,n,s,o,a,l,u;for(let f in i){if(!(n=r[f])||(n=n.subjects,(s=i[f].subjects)[N]>n[N]))return!1;for(let c in s){if(!(o=n[c])||(a=s[c])[N]>o[N])return!1;for(let d in a){if(!(l=o[d])||(u=a[d])[N]>l[N])return!1;for(let h in u)if(!(h in l))return!1}}}return!0}deleteMatches(e,r,i,n){for(let s of this.match(e,r,i,n,{matchSemantics:"lazy"}))this.removeQuad(s);return this}difference(e){if(e&&e instanceof Ge&&(e=e.filtered),e===this)return new t({entityIndex:this._entityIndex});if(e instanceof t&&e._entityIndex===this._entityIndex){let r=new t({entityIndex:this._entityIndex});return r._addFromIndex(this._graphs,e._graphs),r}return this.filter(r=>!e.has(r))}equals(e){return e instanceof Ge&&(e=e.filtered),e===this||this.size===e.size&&this.contains(e)}filter(e){let r=new t({entityIndex:this._entityIndex});for(let i of this)e(i,this)&&r.add(i);return r}intersection(e){if(e instanceof Ge&&(e=e.filtered),e===this){let n=new t({entityIndex:this._entityIndex});return n._addFromIndex(this._graphs),n}else if(e instanceof t&&this._entityIndex===e._entityIndex){let n=new t({entityIndex:this._entityIndex});return this._size!==0&&e._size!==0&&(e._graphCount<this._graphCount?n._addIntersectionFromIndex(e._graphs,this._graphs):n._addIntersectionFromIndex(this._graphs,e._graphs)),n}let r=Xl(e),i=this._size;if(r!==null&&i!==null&&r<i&&typeof e[Symbol.iterator]=="function"&&e._factory===W&&e._entityIndex._factory===W){let n=new t({entityIndex:this._entityIndex});for(let s of e)this.has(s)&&n.add(s);return n}return this.filter(n=>e.has(n))}map(e){let r=new t({entityIndex:this._entityIndex});for(let i of this)r.add(e(i,this));return r}reduce(e,r){let i=this.readQuads(),n=r===void 0?i.next().value:r;for(let s of i)n=e(n,s,this);return n}toArray(){return this.getQuads()}toCanonical(){throw new Error("not implemented")}toStream(){return this.match(null,null,null,null,{matchSemantics:"lazy"})}toString(){return new oe().quadsToString(this)}union(e){let r=new t({entityIndex:this._entityIndex});return r._addFromIndex(this._graphs),r.addAll(e),r}[Symbol.iterator](){return this.readQuads()}};function Ee(t,e,r=0){let i=e[r];if(i&&!(i in t))return!1;let n=!1,s=0;for(let o in i?{[i]:t[i]}:t){let a=r===2?null:Ee(t[o],e,r+1);a!==!1&&(n=n||Object.create(null),n[o]=a,s++)}return n&&(n[N]=s),n}function Zl(t,e,r,i,n){let s={store:t,ids:[]},o=e&&t._termToNumericId(e),a=r&&t._termToNumericId(r),l=i&&t._termToNumericId(i),u,f,c,d,h;l&&(o||!a)?(u="objects",[f,c,d]=[l,o,a],h=[2,0,1]):!o&&a?(u="predicates",[f,c,d]=[a,l,o],h=[1,2,0]):(u="subjects",[f,c,d]=[o,a,l],h=[0,1,2]);let b=t._getGraphs(n),_=[];for(let y in b){let g=b[y][u],S=Number(y);for(let m in f?{[f]:g[f]}:g){let w=g[m];if(w){_[h[0]]=Number(m);for(let x in c?{[c]:w[c]}:w){let A=w[x];if(A){_[h[1]]=Number(x);for(let E in d?d in A?{[d]:null}:{}:A)_[h[2]]=Number(E),s.ids.push(_[0],_[1],_[2],S)}}}}}return s}function*lb({store:t,ids:e},r){let i=t._entities,n,s,o,a,l,u,f,c;for(let d=r*4;d<e.length;d+=4)l!==e[d]&&(n=t._termFromId(i[l=e[d]])),u!==e[d+1]&&(s=t._termFromId(i[u=e[d+1]])),f!==e[d+2]&&(o=t._termFromId(i[f=e[d+2]])),c!==e[d+3]&&(a=t._termFromId(i[c=e[d+3]])),yield t._factory.quad(n,s,o,a)}function Un(t="lazy"){if(t!=="lazy"&&t!=="snapshot"&&t!=="forwarded")throw new Error(`Unknown matchSemantics: ${t}`);if(t!=="lazy"&&(typeof WeakRef!="function"||typeof FinalizationRegistry!="function"))throw new Error("Non-lazy matchSemantics requires WeakRef and FinalizationRegistry support");return t}function eu(t,e){let r=new Array(4);for(let i=0;i<4;i++){let n=t[i],s=e[i];if(n==null)r[i]=s;else if(s==null||Z(n)===Z(s))r[i]=n;else return!1}return r}var Ge=class t extends Zr.Readable{constructor(e,r,i,n,s,o){super({objectMode:!0}),Object.assign(this,{n3Store:e,subject:r,predicate:i,object:n,graph:s,options:o});let a=this._semantics=Un(o.matchSemantics);o.matchesNothing&&(this._matchesNothing=!0,this._filtered=new ue({factory:e._factory,entityIndex:o.entityIndex})),a!=="lazy"&&(this._readers=null,this._subjectId=this._predicateId=this._objectId=this._graphId=void 0,this._matchesNothing||(this._observer=e._addObserver(this)))}_matchesPattern(e,r,i,n){let{subject:s,predicate:o,object:a,graph:l,n3Store:u}=this;return s&&e!==(this._subjectId||(this._subjectId=u._termToNumericId(s)))||o&&r!==(this._predicateId||(this._predicateId=u._termToNumericId(o)))||a&&i!==(this._objectId||(this._objectId=u._termToNumericId(a)))?!1:l==null||n===(this._graphId||(this._graphId=l===""||se(l)?1:u._termToNumericId(l)))}_matchesQuad(e){let{subject:r,predicate:i,object:n,graph:s}=this;return!this._matchesNothing&&(r==null||Z(r)===Z(e.subject))&&(i==null||Z(i)===Z(e.predicate))&&(n==null||Z(n)===Z(e.object))&&(s==null||Z(s)===Z(e.graph))}_assertMatchesPattern(e){if(!this._matchesQuad(e))throw new Error("Quad does not match the forwarded view pattern")}_sourceIterator(){return this._filtered?this._filtered[Symbol.iterator]():this.n3Store.readQuads(this.subject,this.predicate,this.object,this.graph)}_freezeCurrentIterators(){this._readers&&(this._readers.snapshot=this._filtered?Zl(this._filtered):Zl(this.n3Store,this.subject,this.predicate,this.object,this.graph),this._readers=null)}_onParentMutation(e,r,i,n,s){if(this._matchesPattern(e,r,i,n)){if(this._freezeCurrentIterators(),this._semantics==="forwarded"){this._filtered&&(s?this._filtered._addQuad(e,r,i,n):this._filtered._removeQuad(e,r,i,n));return}this._filtered=this.filtered}}get filtered(){if(!this._filtered){let{n3Store:e,graph:r,object:i,predicate:n,subject:s}=this;this._semantics!=="lazy"&&this._freezeCurrentIterators();let o=this._filtered=new ue({factory:e._factory,entityIndex:this.options.entityIndex});this._semantics==="snapshot"&&this._detachObserver();let a,l,u;if(s&&!(a=o._termToNumericId(s))||n&&!(l=o._termToNumericId(n))||i&&!(u=o._termToNumericId(i)))return o;let f=e._getGraphs(r);for(let c in f){let d,h,b,_;(_=f[c])&&(!a&&l?(h=Ee(_.predicates,[l,u,a]))&&(d=Ee(_.subjects,[a,l,u]),b=Ee(_.objects,[u,a,l])):u?(b=Ee(_.objects,[u,a,l]))&&(d=Ee(_.subjects,[a,l,u]),h=Ee(_.predicates,[l,u,a])):(d=Ee(_.subjects,[a,l,u]))&&(h=Ee(_.predicates,[l,u,a]),b=Ee(_.objects,[u,a,l])),d&&(o._graphs[c]={subjects:d,predicates:h,objects:b},o._graphCount++))}o._size=null}return this._filtered}get size(){return this.filtered.size}_read(e){e>0&&!this[Ut]&&(this[Ut]=this[Symbol.iterator]());let r=this[Ut];for(;--e>=0;){let{done:i,value:n}=r.next();if(i){this.push(null);return}this.push(n)}}_destroy(e,r){this[Ut]&&(this[Ut].return(),this[Ut]=null),r(e)}_detachObserver(){this._observer&&(this.n3Store._removeObserver(this._observer),this._observer=null)}_detach(){return this._filtered=this.filtered,this._detachObserver(),this._semantics==="lazy"&&(this._readers=null),this._semantics="snapshot",this}addAll(e){if(this._semantics==="forwarded"){for(let r of e)this._assertMatchesPattern(r),this.n3Store.addQuad(r);return this}return this.filtered.addAll(e)}contains(e){return this.filtered.contains(e)}deleteMatches(e,r,i,n){if(this._semantics==="forwarded"){if(this._matchesNothing)throw new Error("Cannot delete from a conflicting forwarded view pattern");let s=eu([this.subject,this.predicate,this.object,this.graph],[e,r,i,n]);if(!s)throw new Error("Deletion pattern does not match the forwarded view pattern");return this.n3Store.deleteMatches(...s),this}return this.filtered.deleteMatches(e,r,i,n)}difference(e){return this.filtered.difference(e)}equals(e){return this.filtered.equals(e)}every(e,r,i,n,s){return this.filtered.every(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}filter(e){return this.filtered.filter(this._semantics==="forwarded"?r=>e(r,this):e)}forEach(e,r,i,n,s){return this.filtered.forEach(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}import(e){if(this._semantics!=="forwarded")return this.filtered.import(e);let r=this;function i(n){try{r._assertMatchesPattern(n),r.n3Store.addQuad(n)}catch(s){e.removeListener("data",i),typeof e.destroy=="function"?e.destroy(s):e.emit("error",s)}}return e.on("data",i),e}intersection(e){return this.filtered.intersection(e)}map(e){return this.filtered.map(this._semantics==="forwarded"?r=>e(r,this):e)}some(e,r,i,n,s){return this.filtered.some(this._semantics==="forwarded"?o=>e(o,this):e,r,i,n,s)}toCanonical(){return this.filtered.toCanonical()}toStream(){return this._semantics!=="lazy"?Zr.Readable.from(this[Symbol.iterator]()):this._filtered?this._filtered.toStream():this.n3Store.match(this.subject,this.predicate,this.object,this.graph,{matchSemantics:"lazy"})}union(e){return this._filtered?this._filtered.union(e):this.n3Store.match(this.subject,this.predicate,this.object,this.graph,{matchSemantics:"lazy"}).addAll(e)}toArray(){return this._semantics!=="lazy"?[...this]:this._filtered?this._filtered.toArray():this.n3Store.getQuads(this.subject,this.predicate,this.object,this.graph)}reduce(e,r){return this.filtered.reduce(this._semantics==="forwarded"?(i,n)=>e(i,n,this):e,r)}toString(){return new oe().quadsToString(this)}add(e){return this._semantics==="forwarded"?(this._assertMatchesPattern(e),this.n3Store.addQuad(e),this):this.filtered.add(e)}delete(e){return this._semantics==="forwarded"?(this._assertMatchesPattern(e),this.n3Store.removeQuad(e),this):this.filtered.delete(e)}has(e){return this.filtered.has(e)}match(e,r,i,n,s=null){let o=s&&s.matchSemantics;if(s&&o!==void 0&&(Un(o),o!==this._semantics))throw new Error(`Cannot override matchSemantics on a view: inherited "${this._semantics}", received "${o}"`);if(this._semantics!=="forwarded")return new t(this.filtered,e,r,i,n,{entityIndex:this.options.entityIndex,matchSemantics:this._semantics});let a=!this._matchesNothing&&eu([this.subject,this.predicate,this.object,this.graph],[e,r,i,n]),[l,u,f,c]=a||[null,null,null,null];return new t(this.n3Store,l,u,f,c,{entityIndex:this.options.entityIndex,matchSemantics:"forwarded",matchesNothing:!a})}[Symbol.iterator](){return this._semantics==="lazy"?this._sourceIterator():this._iterateStable()}*_iterateStable(){let e=this._readers||(this._readers={count:0,snapshot:null}),r=this._sourceIterator(),i=0;e.count++;try{for(;!e.snapshot;){let{value:n,done:s}=r.next();if(e.snapshot||s)break;i++,yield n}e.snapshot&&(yield*ne(lb(e.snapshot,i)))}finally{r.return(),--e.count===0&&(e.snapshot=null,this._readers===e&&(this._readers=null))}}};var Wt=class{dataset(e){return new ue(e)}};function Wn(t){let e=[];for(let{subject:r,object:i}of t.match(null,W.namedNode("http://www.w3.org/2000/10/swap/log#implies"),null,W.defaultGraph())){let n=[...t.match(null,null,null,r)],s=[...t.match(null,null,null,i)];e.push({premise:n,conclusion:s})}return e}var Gt=class{constructor(e,r={}){this._store=e,this._maxDerivations=r.maxDerivations===void 0?1/0:r.maxDerivations,this._maxPremiseDepth=r.maxPremiseDepth===void 0?1/0:r.maxPremiseDepth}_add(e,r,i,n,s,o){let a=this._store;if(a._observers){if(!a._addQuad(e,r,i,this._graphId))return}else{if(!a._addToIndex(n.subjects,e,r,i))return;a._addToIndex(n.predicates,r,i,e),a._addToIndex(n.objects,i,e,r),this._indexed++}if(++this._derivations>this._maxDerivations)throw new Error(`Reasoning exceeded the maximum of ${this._maxDerivations} derivations`);o(s)}_emit(e,r,i){let n=e.conclusion;for(let s=0;s<n.length;s++){let o=n[s];this._add(o.subject.value,o.predicate.value,o.object.value,r,o,i)}}_evaluatePremise(e,r,i,n=0){let s,o,[a,l,u]=e.premise[n].value,f=r[e.premise[n].content],c=n===e.premise.length-1;if(!(s=a.value)){for(s in f)o=f[s],a.value=Number(s),this._evaluateLevel1(e,r,i,n,c,l,u,o);a.value=null}else(o=f[s])&&this._evaluateLevel1(e,r,i,n,c,l,u,o)}_evaluateLevel1(e,r,i,n,s,o,a,l){let u,f;if(!(u=o.value)){for(u in l)f=l[u],o.value=Number(u),this._evaluateLevel2(e,r,i,n,s,a,f);o.value=null}else(f=l[u])&&this._evaluateLevel2(e,r,i,n,s,a,f)}_evaluateLevel2(e,r,i,n,s,o,a){let l;if(!(l=o.value)){for(l in a)o.value=Number(l),s?this._emit(e,r,i):this._evaluatePremise(e,r,i,n+1);o.value=null}else l in a&&(s?this._emit(e,r,i):this._evaluatePremise(e,r,i,n+1))}_evaluateRules(e,r,i){for(let n=0;n<e.length;n++)this._evaluatePremise(e[n],r,i)}_reasonGraphNaive(e,r){let i=[];function n(a){a.next&&a.next.forEach(l=>{i.push([a.subject.value,a.predicate.value,a.object.value,l])})}let s=a=>{for(let l=0;l<a.length;l++){let u=a[l];this._add(u.subject.value,u.predicate.value,u.object.value,r,u,n)}};this._evaluateRules(e,r,n);let o;for(;(o=i.pop())!==void 0;){let[a,l,u,f]=o,c=f.basePremise.subject.value;c||(f.basePremise.subject.value=a);let d=f.basePremise.predicate.value;d||(f.basePremise.predicate.value=l);let h=f.basePremise.object.value;h||(f.basePremise.object.value=u);let{basePremise:b}=f;b.subject.value===a&&b.predicate.value===l&&b.object.value===u&&(f.premise.length===0?s(f.conclusion):this._evaluatePremise(f,r,n)),c||(f.basePremise.subject.value=null),d||(f.basePremise.predicate.value=null),h||(f.basePremise.object.value=null)}}_createRule({premise:e,conclusion:r}){let i=Object.create(null),n=o=>o.termType==="Variable"?i[o.value]=i[o.value]||{}:{value:this._store._termToNewNumericId(o)},s=o=>({subject:n(o.subject),predicate:n(o.predicate),object:n(o.object)});return{premise:e.map(o=>s(o)),conclusion:r.map(o=>s(o)),variables:Object.values(i)}}reason(e){this._derivations=this._indexed=0,Array.isArray(e)||(e=Wn(e)),e=e.map(i=>this._createRule(i));for(let i of e)if(i.premise.length>this._maxPremiseDepth)throw new Error(`Reasoning rule exceeds the maximum premise depth of ${this._maxPremiseDepth}`);for(let i of e)for(let n of e)for(let s=0;s<n.premise.length;s++){let o=n.premise[s];for(let a of i.conclusion){if(qn(o.subject,a.subject)&&qn(o.predicate,a.predicate)&&qn(o.object,a.object)){let l=new Set,u=[];o.subject.value=o.subject.value||1,o.object.value=o.object.value||1,o.predicate.value=o.predicate.value||1;for(let f=0;f<n.premise.length;f++)f!==s&&u.push(ru(n.premise[f],l));(a.next=a.next||[]).push({premise:u,conclusion:n.conclusion,basePremise:o})}for(let l=0;l<n.variables.length;l++)n.variables[l].value=null}}for(let i of e){let n=new Set;i.premise=i.premise.map(s=>ru(s,n))}let r=this._store._getGraphs();try{for(let i in r)this._graphId=Number(i),this._reasonGraphNaive(e,r[i])}finally{this._store._size!==null&&(this._store._size+=this._indexed)}}};function ru({subject:t,predicate:e,object:r},i){let n=t.value||i.has(t)||(i.add(t),!1),s=e.value||i.has(e)||(i.add(e),!1),o=r.value||i.has(r)||(i.add(r),!1);return!n&&s?{content:"predicates",value:[e,r,t]}:o?{content:"objects",value:[r,t,e]}:{content:"subjects",value:[t,e,r]}}function qn(t,e){return t.value===null&&(t.value=e.value),t.value===e.value}var iu=ei(Jr());var Qt=class extends iu.Transform{constructor(e){super({decodeStrings:!0,readableObjectMode:!0});let r=new ce(e),i,n,s={onQuad:(o,a)=>{o&&this.emit("error",o)||a&&this.push(a)},onPrefix:(o,a)=>{this.emit("prefix",o,a)},onDirective:o=>{this.emit("directive",o)}};e&&e.comments&&(s.onComment=o=>{this.emit("comment",o)}),r.parse({on:(o,a)=>{switch(o){case"data":i=a;break;case"end":n=a;break}}},s),this._transform=(o,a,l)=>{i(o),l()},this._flush=o=>{n(),o()}}import(e){return e.on("error",r=>{this.emit("error",r)}),typeof e.pipe=="function"?e.pipe(this):(e.on("data",r=>{this.write(r)}),e.on("end",()=>{this.end()})),this}};var nu=ei(Jr());var ub=16*1024,fb=20,zt=class extends nu.Transform{constructor(e){super({encoding:"utf8",writableObjectMode:!0}),this._buffer="",this._flushTimer=null,this._flushDelay=e&&e.flushDelay!==void 0?e.flushDelay:fb;let r=this._writer=new oe({write:(s,o,a)=>{this._buffer+=s,this._buffer.length>=ub?this._pushBuffer():this._flushTimer===null&&this._armFlushTimer(),a&&a()},end:s=>{this._pushBuffer(),this.push(null),s&&s()}},e),i=null,n=s=>{let o=i;i=null,s&&this._pushBuffer(),o(s)};this._transform=(s,o,a)=>{i=a,r.addQuad(s,n)},this._flush=s=>{r.end(s)}}_pushBuffer(){this._clearFlushTimer(),this._buffer!==""&&(this.push(this._buffer),this._buffer="")}_armFlushTimer(){this._flushTimer=setTimeout(()=>{this._flushTimer=null,this._pushBuffer()},this._flushDelay),this._flushTimer.unref&&this._flushTimer.unref()}_clearFlushTimer(){this._flushTimer!==null&&(clearTimeout(this._flushTimer),this._flushTimer=null)}_destroy(e,r){this._clearFlushTimer(),super._destroy(e,r)}import(e){return e.on("data",r=>{this.write(r)}),e.on("end",()=>{this.end()}),e.on("error",r=>{this._pushBuffer(),this.emit("error",r)}),e.on("prefix",(r,i)=>{this._writer.addPrefix(r,i)}),this}};var cb={Lexer:Se,Parser:ce,Writer:oe,Store:ue,StoreFactory:Wt,EntityIndex:qt,StreamParser:Qt,StreamWriter:zt,Util:dr,Reasoner:Gt,BaseIRI:Me,DataFactory:W,Term:z,NamedNode:ze,Literal:fe,BlankNode:pt,Variable:bt,DefaultGraph:yt,Quad:Ae,Triple:Ae,termFromId:Re,termToId:Te};return _u(hb);})();
24
24
  /*! Bundled license information:
25
25
 
26
26
  ieee754/index.js:
package/lib/N3Reasoner.js CHANGED
@@ -105,8 +105,10 @@ class N3Reasoner {
105
105
  }
106
106
  val2.value = null;
107
107
  }
108
- // Bound leaves run once even when the key is absent
109
- else if (last) this._emit(rule, content, cb);else this._evaluatePremise(rule, content, cb, i + 1);
108
+ // A bound leaf only matches if the quad exists
109
+ else if (value in index2) {
110
+ if (last) this._emit(rule, content, cb);else this._evaluatePremise(rule, content, cb, i + 1);
111
+ }
110
112
  }
111
113
  _evaluateRules(rules, content, cb) {
112
114
  for (let i = 0; i < rules.length; i++) {
@@ -141,10 +143,13 @@ class N3Reasoner {
141
143
  if (!v2) rule.basePremise.predicate.value = predicate;
142
144
  const v3 = rule.basePremise.object.value;
143
145
  if (!v3) rule.basePremise.object.value = object;
144
- if (rule.premise.length === 0) {
145
- addConclusions(rule.conclusion);
146
- } else {
147
- this._evaluatePremise(rule, content, addRule);
146
+
147
+ // A repeated variable or a constant in the triggering premise must match the derived quad
148
+ const {
149
+ basePremise
150
+ } = rule;
151
+ if (basePremise.subject.value === subject && basePremise.predicate.value === predicate && basePremise.object.value === object) {
152
+ if (rule.premise.length === 0) addConclusions(rule.conclusion);else this._evaluatePremise(rule, content, addRule);
148
153
  }
149
154
  if (!v1) rule.basePremise.subject.value = null;
150
155
  if (!v2) rule.basePremise.predicate.value = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n3",
3
- "version": "2.13.11",
3
+ "version": "2.13.12",
4
4
  "description": "Lightning fast, asynchronous, streaming Turtle / N3 / RDF library.",
5
5
  "author": "Ruben Verborgh <ruben.verborgh@gmail.com>",
6
6
  "keywords": [
package/src/N3Reasoner.js CHANGED
@@ -100,9 +100,11 @@ export default class N3Reasoner {
100
100
  }
101
101
  val2.value = null;
102
102
  }
103
- // Bound leaves run once even when the key is absent
104
- else if (last) this._emit(rule, content, cb);
105
- else this._evaluatePremise(rule, content, cb, i + 1);
103
+ // A bound leaf only matches if the quad exists
104
+ else if (value in index2) {
105
+ if (last) this._emit(rule, content, cb);
106
+ else this._evaluatePremise(rule, content, cb, i + 1);
107
+ }
106
108
  }
107
109
 
108
110
  _evaluateRules(rules, content, cb) {
@@ -143,11 +145,14 @@ export default class N3Reasoner {
143
145
  const v3 = rule.basePremise.object.value;
144
146
  if (!v3) rule.basePremise.object.value = object;
145
147
 
146
- if (rule.premise.length === 0) {
147
- addConclusions(rule.conclusion);
148
- }
149
- else {
150
- this._evaluatePremise(rule, content, addRule);
148
+ // A repeated variable or a constant in the triggering premise must match the derived quad
149
+ const { basePremise } = rule;
150
+ if (basePremise.subject.value === subject && basePremise.predicate.value === predicate &&
151
+ basePremise.object.value === object) {
152
+ if (rule.premise.length === 0)
153
+ addConclusions(rule.conclusion);
154
+ else
155
+ this._evaluatePremise(rule, content, addRule);
151
156
  }
152
157
 
153
158
  if (!v1) rule.basePremise.subject.value = null;