@@ -195,11 +195,11 @@ public override RDFStore RemoveQuadruple(RDFQuadruple quadruple)
195195
196196 /// <summary>
197197 /// Removes the quadruples which satisfy the given combination of CSPOL accessors<br/>
198- /// (null values are handled as * selectors. Obj and Lit params must be mutually exclusive!)
198+ /// (null values are handled as * selectors. Object and Literal params must be mutually exclusive!)
199199 /// </summary>
200- public override RDFStore RemoveQuadruples ( RDFContext ctx , RDFResource subj , RDFResource pred , RDFResource obj , RDFLiteral lit )
200+ public override RDFStore RemoveQuadruples ( RDFContext c = null , RDFResource s = null , RDFResource p = null , RDFResource o = null , RDFLiteral l = null )
201201 {
202- foreach ( RDFQuadruple quadruple in SelectQuadruples ( ctx , subj , pred , obj , lit ) )
202+ foreach ( RDFQuadruple quadruple in SelectQuadruples ( c , s , p , o , l ) )
203203 Index . Remove ( quadruple ) ;
204204 return this ;
205205 }
@@ -220,47 +220,47 @@ public override bool ContainsQuadruple(RDFQuadruple quadruple)
220220
221221 /// <summary>
222222 /// Selects the quadruples which satisfy the given combination of CSPOL accessors<br/>
223- /// (null values are handled as * selectors. Obj and Lit params must be mutually exclusive!)
223+ /// (null values are handled as * selectors. Object and Literal params must be mutually exclusive!)
224224 /// </summary>
225225 /// <exception cref="RDFStoreException"></exception>
226- public override List < RDFQuadruple > SelectQuadruples ( RDFContext ctx , RDFResource subj , RDFResource pred , RDFResource obj , RDFLiteral lit )
226+ public override List < RDFQuadruple > SelectQuadruples ( RDFContext c = null , RDFResource s = null , RDFResource p = null , RDFResource o = null , RDFLiteral l = null )
227227 {
228228 #region Guards
229- if ( obj != null && lit != null )
229+ if ( o != null && l != null )
230230 throw new RDFStoreException ( "Cannot access a store when both object and literals are given: they must be mutually exclusive!" ) ;
231231 #endregion
232232
233233 StringBuilder queryFilters = new StringBuilder ( 4 ) ;
234- if ( ctx != null ) queryFilters . Append ( 'C' ) ;
235- if ( subj != null ) queryFilters . Append ( 'S' ) ;
236- if ( pred != null ) queryFilters . Append ( 'P' ) ;
237- if ( obj != null ) queryFilters . Append ( 'O' ) ;
238- if ( lit != null ) queryFilters . Append ( 'L' ) ;
234+ if ( c != null ) queryFilters . Append ( 'C' ) ;
235+ if ( s != null ) queryFilters . Append ( 'S' ) ;
236+ if ( p != null ) queryFilters . Append ( 'P' ) ;
237+ if ( o != null ) queryFilters . Append ( 'O' ) ;
238+ if ( l != null ) queryFilters . Append ( 'L' ) ;
239239 List < RDFHashedQuadruple > hashedQuadruples = queryFilters . ToString ( ) switch
240240 {
241- "C" => [ .. Index . LookupIndexByContext ( ctx ) . Select ( q => Index . Hashes [ q ] ) ] ,
242- "S" => [ .. Index . LookupIndexBySubject ( subj ) . Select ( q => Index . Hashes [ q ] ) ] ,
243- "P" => [ .. Index . LookupIndexByPredicate ( pred ) . Select ( q => Index . Hashes [ q ] ) ] ,
244- "O" => [ .. Index . LookupIndexByObject ( obj ) . Select ( q => Index . Hashes [ q ] ) ] ,
245- "L" => [ .. Index . LookupIndexByLiteral ( lit ) . Select ( q => Index . Hashes [ q ] ) ] ,
246- "CS" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexBySubject ( subj ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
247- "CP" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexByPredicate ( pred ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
248- "CO" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexByObject ( obj ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
249- "CL" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexByLiteral ( lit ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
250- "CSP" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByPredicate ( pred ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
251- "CSO" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByObject ( obj ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
252- "CSL" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByLiteral ( lit ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
253- "CPO" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexByPredicate ( pred ) . Intersect ( Index . LookupIndexByObject ( obj ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
254- "CPL" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexByPredicate ( pred ) . Intersect ( Index . LookupIndexByLiteral ( lit ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
255- "CSPO" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByPredicate ( pred ) . Intersect ( Index . LookupIndexByObject ( obj ) ) ) ) . Select ( t => Index . Hashes [ t ] ) ] ,
256- "CSPL" => [ .. Index . LookupIndexByContext ( ctx ) . Intersect ( Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByPredicate ( pred ) . Intersect ( Index . LookupIndexByLiteral ( lit ) ) ) ) . Select ( t => Index . Hashes [ t ] ) ] ,
257- "SP" => [ .. Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByPredicate ( pred ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
258- "SO" => [ .. Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByObject ( obj ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
259- "SL" => [ .. Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByLiteral ( lit ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
260- "PO" => [ .. Index . LookupIndexByPredicate ( pred ) . Intersect ( Index . LookupIndexByObject ( obj ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
261- "PL" => [ .. Index . LookupIndexByPredicate ( pred ) . Intersect ( Index . LookupIndexByLiteral ( lit ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
262- "SPO" => [ .. Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByPredicate ( pred ) . Intersect ( Index . LookupIndexByObject ( obj ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
263- "SPL" => [ .. Index . LookupIndexBySubject ( subj ) . Intersect ( Index . LookupIndexByPredicate ( pred ) . Intersect ( Index . LookupIndexByLiteral ( lit ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
241+ "C" => [ .. Index . LookupIndexByContext ( c ) . Select ( q => Index . Hashes [ q ] ) ] ,
242+ "S" => [ .. Index . LookupIndexBySubject ( s ) . Select ( q => Index . Hashes [ q ] ) ] ,
243+ "P" => [ .. Index . LookupIndexByPredicate ( p ) . Select ( q => Index . Hashes [ q ] ) ] ,
244+ "O" => [ .. Index . LookupIndexByObject ( o ) . Select ( q => Index . Hashes [ q ] ) ] ,
245+ "L" => [ .. Index . LookupIndexByLiteral ( l ) . Select ( q => Index . Hashes [ q ] ) ] ,
246+ "CS" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexBySubject ( s ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
247+ "CP" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexByPredicate ( p ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
248+ "CO" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexByObject ( o ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
249+ "CL" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexByLiteral ( l ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
250+ "CSP" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByPredicate ( p ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
251+ "CSO" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByObject ( o ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
252+ "CSL" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByLiteral ( l ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
253+ "CPO" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexByPredicate ( p ) . Intersect ( Index . LookupIndexByObject ( o ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
254+ "CPL" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexByPredicate ( p ) . Intersect ( Index . LookupIndexByLiteral ( l ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
255+ "CSPO" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByPredicate ( p ) . Intersect ( Index . LookupIndexByObject ( o ) ) ) ) . Select ( t => Index . Hashes [ t ] ) ] ,
256+ "CSPL" => [ .. Index . LookupIndexByContext ( c ) . Intersect ( Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByPredicate ( p ) . Intersect ( Index . LookupIndexByLiteral ( l ) ) ) ) . Select ( t => Index . Hashes [ t ] ) ] ,
257+ "SP" => [ .. Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByPredicate ( p ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
258+ "SO" => [ .. Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByObject ( o ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
259+ "SL" => [ .. Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByLiteral ( l ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
260+ "PO" => [ .. Index . LookupIndexByPredicate ( p ) . Intersect ( Index . LookupIndexByObject ( o ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
261+ "PL" => [ .. Index . LookupIndexByPredicate ( p ) . Intersect ( Index . LookupIndexByLiteral ( l ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
262+ "SPO" => [ .. Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByPredicate ( p ) . Intersect ( Index . LookupIndexByObject ( o ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
263+ "SPL" => [ .. Index . LookupIndexBySubject ( s ) . Intersect ( Index . LookupIndexByPredicate ( p ) . Intersect ( Index . LookupIndexByLiteral ( l ) ) ) . Select ( q => Index . Hashes [ q ] ) ] ,
264264 _ => [ .. Index . Hashes . Values ]
265265 } ;
266266
0 commit comments