-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding support for named graphs #196
Merged
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
f69df74
Implemented quad dictionaries for .nq files
QuentinJanuel 728446d
temp triples can handle quads
QuentinJanuel 3d9e29a
making sure graphs don't affect normal hdt
QuentinJanuel 9a7d09d
FourQuadSectionDictionary needs to implement FourSectionDictionary, n…
QuentinJanuel 7a024f5
quad patterns support (not implemented yet)
QuentinJanuel 82cb465
fixed quadstring
QuentinJanuel 3439c49
save triples (could be optimized)
QuentinJanuel a4f5bfb
search wip
QuentinJanuel d672ee9
Fixed search for triples (non quad)
QuentinJanuel c26b85e
number of graphs is now dynamic
QuentinJanuel f58cfa6
Adapt code for large files (RoaringBitmap)
QuentinJanuel bcc095a
roaring bitmap 64
QuentinJanuel f45facb
accelerated wildcard pattern a bit
QuentinJanuel 1e612c3
BitmapQuadsIterator
QuentinJanuel 8d31b3d
fixed roaring bitmap
QuentinJanuel c8b0c1e
let quads iterator variables be longs
QuentinJanuel b1ba3a6
support for ???G, S??G, SP?G & SPOG
QuentinJanuel 0f1685b
?POG & ??OG (ZGFOQ)
QuentinJanuel 5ccc86b
removed forgotten log
QuentinJanuel 257aa30
?PO? & ??O? (ZFOQ)
QuentinJanuel 76ee129
?P?G (YGFOQ)
QuentinJanuel 41abd02
?P?? (YFOQ)
QuentinJanuel cbfeedc
address https://github.com/rdfhdt/hdt-java/pull/196#discussion_r12416…
QuentinJanuel b9002a6
address https://github.com/rdfhdt/hdt-java/pull/196#discussion_r12955…
QuentinJanuel fef55fb
address https://github.com/rdfhdt/hdt-java/pull/196#discussion_r12955…
QuentinJanuel 5233663
address https://github.com/rdfhdt/hdt-java/pull/196#discussion_r12955…
QuentinJanuel 59bba7c
address https://github.com/rdfhdt/hdt-java/pull/196#discussion_r12955…
QuentinJanuel 7ae491c
address https://github.com/rdfhdt/hdt-java/pull/196#discussion_r12958…
QuentinJanuel eacd5bb
address https://github.com/rdfhdt/hdt-java/pull/196#discussion_r12958…
QuentinJanuel f61bc58
address https://github.com/rdfhdt/hdt-java/pull/196#discussion_r12959…
QuentinJanuel c675a01
cat tests for quads
QuentinJanuel 3f4ba41
test quads iterators
QuentinJanuel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
?P?G (YGFOQ)
- Loading branch information
commit 76ee129f189b91da634989a012053b9f8b47b432
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
101 changes: 101 additions & 0 deletions
101
hdt-java-core/src/main/java/org/rdfhdt/hdt/quads/impl/BitmapQuadsIteratorYGFOQ.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
package org.rdfhdt.hdt.quads.impl; | ||
|
||
import org.rdfhdt.hdt.compact.bitmap.Bitmap; | ||
import org.rdfhdt.hdt.enums.ResultEstimationType; | ||
import org.rdfhdt.hdt.enums.TripleComponentOrder; | ||
import org.rdfhdt.hdt.iterator.SuppliableIteratorTripleID; | ||
import org.rdfhdt.hdt.triples.TripleID; | ||
import org.rdfhdt.hdt.triples.impl.BitmapTriples; | ||
import org.rdfhdt.hdt.triples.impl.BitmapTriplesIteratorYFOQ; | ||
|
||
public class BitmapQuadsIteratorYGFOQ implements SuppliableIteratorTripleID { | ||
|
||
// resolves ?P?G queries | ||
private final Bitmap bitmapGraph; // the bitmap of the requested graph | ||
private final BitmapTriplesIteratorYFOQ inIt; | ||
private TripleID nextRes = null; | ||
public BitmapQuadsIteratorYGFOQ(BitmapTriples triples, TripleID pattern) { | ||
this.inIt = new BitmapTriplesIteratorYFOQ( | ||
triples, | ||
pattern | ||
); | ||
this.bitmapGraph = triples | ||
.getQuadInfoAG() | ||
.get((int) pattern.getGraph() - 1); | ||
this.goToStart(); | ||
this.calculateNext(); | ||
} | ||
|
||
private boolean isValidZ() { | ||
return this.inIt.posZ != -1 | ||
&& this.bitmapGraph.access(this.inIt.posZ - 1); | ||
} | ||
|
||
@Override | ||
public void goToStart() { | ||
this.inIt.goToStart(); | ||
} | ||
|
||
@Override | ||
public boolean hasNext() { | ||
return this.nextRes != null; | ||
} | ||
|
||
private void calculateNext() { | ||
this.nextRes = null; | ||
while (this.inIt.hasNext()) { | ||
TripleID next = this.inIt.next().clone(); | ||
if (!this.isValidZ()) | ||
continue; | ||
this.nextRes = next; | ||
break; | ||
} | ||
} | ||
|
||
@Override | ||
public TripleID next() { | ||
TripleID res = this.nextRes.clone(); | ||
this.calculateNext(); | ||
return res; | ||
} | ||
|
||
@Override | ||
public boolean hasPrevious() { | ||
return this.inIt.hasPrevious(); | ||
} | ||
|
||
@Override | ||
public TripleID previous() { | ||
return this.inIt.previous(); | ||
} | ||
|
||
@Override | ||
public boolean canGoTo() { | ||
return this.inIt.canGoTo(); | ||
} | ||
|
||
@Override | ||
public void goTo(long pos) { | ||
this.inIt.goTo(pos); | ||
} | ||
|
||
@Override | ||
public long estimatedNumResults() { | ||
return this.inIt.estimatedNumResults(); | ||
} | ||
|
||
@Override | ||
public ResultEstimationType numResultEstimation() { | ||
return this.inIt.numResultEstimation(); | ||
} | ||
|
||
@Override | ||
public TripleComponentOrder getOrder() { | ||
return this.inIt.getOrder(); | ||
} | ||
|
||
@Override | ||
public long getLastTriplePosition() { | ||
return this.inIt.getLastTriplePosition(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason for this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the class BitmapTriples is used by, for instance, BitmapQuadsIteratorZFOQ which needs to read these fields. This is done with a composition pattern, not inheritance, so protected won't work. The best I could to is creating getters (and setters maybe? didn't check if needed)