@@ -130,24 +130,24 @@ private RDFQuadruple(RDFContext context, RDFResource subj, RDFResource pred)
130130 }
131131
132132 /// <summary>
133- /// Builds a quadruple from the given hashed quadruple
133+ /// Builds a quadruple from the given hashes
134134 /// </summary>
135- internal RDFQuadruple ( RDFHashedQuadruple hashedQuadruple , RDFStoreIndex index )
135+ internal RDFQuadruple ( ( long qid , long cid , long sid , long pid , long oid , byte tfv ) hashes , RDFStoreIndex index )
136136 {
137- Context = index . Contexts [ hashedQuadruple . ContextID ] ;
138- Subject = index . Resources [ hashedQuadruple . SubjectID ] ;
139- Predicate = index . Resources [ hashedQuadruple . PredicateID ] ;
140- if ( hashedQuadruple . TripleFlavor == 1 ) //SPO
137+ Context = index . Contexts [ hashes . cid ] ;
138+ Subject = index . Resources [ hashes . sid ] ;
139+ Predicate = index . Resources [ hashes . pid ] ;
140+ if ( hashes . tfv == 1 ) //SPO
141141 {
142142 TripleFlavor = RDFModelEnums . RDFTripleFlavors . SPO ;
143- Object = index . Resources [ hashedQuadruple . ObjectID ] ;
143+ Object = index . Resources [ hashes . oid ] ;
144144 }
145145 else
146146 {
147147 TripleFlavor = RDFModelEnums . RDFTripleFlavors . SPL ;
148- Object = index . Literals [ hashedQuadruple . ObjectID ] ;
148+ Object = index . Literals [ hashes . oid ] ;
149149 }
150- LazyQuadrupleID = new Lazy < long > ( ( ) => hashedQuadruple . QuadrupleID ) ;
150+ LazyQuadrupleID = new Lazy < long > ( ( ) => hashes . qid ) ;
151151 LazyReificationSubject = new Lazy < RDFResource > ( ( ) => new RDFResource ( $ "bnode:{ QuadrupleID } ") ) ;
152152 }
153153 #endregion
@@ -267,77 +267,4 @@ public RDFMemoryStore ReifyQuadrupleTerm(List<(RDFResource annPredicate, RDFPatt
267267 public Task < RDFMemoryStore > ReifyQuadrupleTermAsync ( List < ( RDFResource annPredicate , RDFPatternMember annObject ) > quadrupleAnnotations = null )
268268 => Task . Run ( ( ) => ReifyQuadrupleTerm ( quadrupleAnnotations ) ) ;
269269 #endregion
270- }
271-
272- /// <summary>
273- /// RDFHashedQuadruple represents the internal hashed representation of a quadruple
274- /// </summary>
275- internal sealed class RDFHashedQuadruple : IEquatable < RDFHashedQuadruple >
276- {
277- #region Properties
278- /// <summary>
279- /// Identifier of the quadruple
280- /// </summary>
281- internal readonly long QuadrupleID ;
282-
283- /// <summary>
284- /// Identifier of the member acting as context of the quadruple
285- /// </summary>
286- internal readonly long ContextID ;
287-
288- /// <summary>
289- /// Identifier of the member acting as subject of the quadruple
290- /// </summary>
291- internal readonly long SubjectID ;
292-
293- /// <summary>
294- /// Identifier of the member acting as predicate of the quadruple
295- /// </summary>
296- internal readonly long PredicateID ;
297-
298- /// <summary>
299- /// Identifier of the member acting as object of the quadruple
300- /// </summary>
301- internal readonly long ObjectID ;
302-
303- /// <summary>
304- /// Flavor of the quadruple (1=SPO, 2=SPL)
305- /// </summary>
306- internal readonly byte TripleFlavor ;
307- #endregion
308-
309- #region Ctor
310- /// <summary>
311- /// Builds an hashed quadruple from the given quadruple
312- /// </summary>
313- internal RDFHashedQuadruple ( RDFQuadruple quadruple )
314- {
315- TripleFlavor = ( byte ) quadruple . TripleFlavor ;
316- QuadrupleID = quadruple . QuadrupleID ;
317- ContextID = quadruple . Context . PatternMemberID ;
318- SubjectID = quadruple . Subject . PatternMemberID ;
319- PredicateID = quadruple . Predicate . PatternMemberID ;
320- ObjectID = quadruple . Object . PatternMemberID ;
321- }
322- #endregion
323-
324- #region Interfaces
325- /// <summary>
326- /// Performs the equality comparison between two hashed quadruples
327- /// </summary>
328- public bool Equals ( RDFHashedQuadruple other )
329- => other != null && QuadrupleID == other . QuadrupleID ;
330-
331- /// <summary>
332- /// Performs the equality comparison between two hashed quadruples
333- /// </summary>
334- public override bool Equals ( object other )
335- => other is RDFHashedQuadruple hq && QuadrupleID == hq . QuadrupleID ;
336-
337- /// <summary>
338- /// Calculates the hashcode of this hashed quadruple
339- /// </summary>
340- public override int GetHashCode ( )
341- => QuadrupleID . GetHashCode ( ) ;
342- #endregion
343270}
0 commit comments