[tinkerpop 3] sail outplementation

228 views
Skip to first unread message

François Delalleau

unread,
Mar 22, 2015, 7:20:41 AM3/22/15
to gremli...@googlegroups.com
Hi.

We are launching an rdf project, with hadoop backend for data, and neo4j for portable small subgraph. Tinkerpop suits our needs, and, as our calendar permit it, we'll try to make it using tinkerpop 3 (if roadmap planning release at the end of May is maintened). But it seem´s that there's no more sail outplementation. Is it planned before release? If not, we're going to work on our own..

Thanks

Marko Rodriguez

unread,
Mar 22, 2015, 12:06:21 PM3/22/15
to gremli...@googlegroups.com
Hello François,

TinkerPop3 GA will not release with a Sail binding. It would be great to see one from the community.

Thank you,
Marko.
--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/8a466d3e-1be0-4ade-ada9-67565d8108bb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Joshua Shinavier

unread,
Mar 22, 2015, 10:33:03 PM3/22/15
to gremli...@googlegroups.com
Yes, GraphSail will probably be adapted to TinkerPop3.  However, this is more likely to follow TinkerPop3 GA than precede it.

Josh

xavier sumba

unread,
Jul 18, 2017, 8:19:26 AM7/18/17
to Gremlin-users
Is there any implementation on GraphSail?

Stephen Mallette

unread,
Jul 18, 2017, 8:20:38 AM7/18/17
to Gremlin-users
I'm not aware of any sail bindings built for TinkerPop 3.x

To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/d9ec48be-5fae-4bf1-8c47-f303c922d079%40googlegroups.com.

xavier sumba

unread,
Jul 18, 2017, 11:38:52 AM7/18/17
to Gremlin-users
So, do you know any approach to migrate from TinkerPop 2.X to 3.x. Sesame 2 is used in TinkerPop 2.x, there isn't changes to Sesame 4/RDF4J

Stephen Mallette

unread,
Jul 18, 2017, 4:55:32 PM7/18/17
to Gremlin-users
If you are trying to use GraphSail, I'm not sure what the migration path would be to 3.x. I mean - there's no direct way in 3.x to interact with a sesame store. Until someone develops such a feature I don't know what the path would be. 

To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/3b40adca-518a-425e-947a-581f88007051%40googlegroups.com.

Joshua Shinavier

unread,
Jul 25, 2017, 12:32:25 PM7/25/17
to gremli...@googlegroups.com
Hi Xavier,

Stay tuned for the TinkerPop 3.x GraphSail; it is in the works now. The implementation is complete to the point of passing all of the old GraphSail tests apart from SPARQL evaluation. I plan to adapt some code from RDF4j MemoryStore to fill in the gaps (as I did with Blueprints GraphSail) and apply rdf4j-store-testsuite for a solid guarantee of Sail compliance.

Josh

Stephen Mallette

unread,
Jul 25, 2017, 12:35:30 PM7/25/17
to Gremlin-users
Hi Josh - nice to hear you have something brewing. Is there anything we can look at yet? I'm kinda curious as to the approach you took with this.

Joshua Shinavier

unread,
Jul 25, 2017, 1:07:27 PM7/25/17
to gremli...@googlegroups.com
Hi Stephen,

I had no commits before breaking things by pulling in MemorySailStore and related classes without properly integrating them, but I will put the repo out there when tests pass. I can tell you a little about the approach:

1) it is a straightforward mapping from RDF 1.1 to property graphs and back. Similar to the old SailGraph mapping [1], but with some small differences. Instead of vertex "kind" (URI, BNode, Literal) we have vertex labels (IRI, BNode, Literal). Every statement is an edge, and the label of the edge is the full IRI of the predicate.  For example:

    ex:Arthur foaf:name "Arthur Dent"

becomes an edge from IRI vertex Arthur to Literal vertex "Arthur Dent", with the label "http://xmlns.com/foaf/0.1/name". If the statement is in a named graph other than the default, you have a "context" property with the IRI of the graph as its value. The Literal vertex "Arthur Dent" also has an IRI (String)-valued "datatype" property, and others may have a "language" property.
As in SailGraph, the "value" property is used for the string value of a vertex (IRI or literal value, BNode id).

2) Every vertex is added to a value index. IRI and BNode vertices are unique in the index, while Literals may differ by datatype or language. (S,?,?,?), (?,?,O,?) and (S,?,O,?) query patterns are relatively fast because we can look up S or O in the index. The (less common) (?,P,?) pattern is slow because predicates are not indexed; it requires a full scan over all statement edges. The same goes for (?,?,?,C) or (?,P,?,C) queries (slightly more common -- "give me all the statements in named graph C"). The basic strategy is to choose the better of (subject, object) for a small-as-possible vertex iterator, build the corresponding statements, and filter the statements according to the other constraints of the query.
 
3) the experimental feature of statement indexes (i.e. indexes on subject-predicate-object-context patterns) is gone from this implementation, making the query solution simpler and presumably faster

4) namespaces are not stored "in the graph" (which means we don't need a special reference vertex for them). They are a convenience which is stored in memory and disappear between sessions.
 
5) GraphSail again supports an optional "unique statements" constraint, for which the performance penalty should be fairly small

Josh




Joshua Shinavier

unread,
Jul 27, 2017, 3:16:52 PM7/27/17
to gremli...@googlegroups.com
FYI, GraphSail for TinkerPop 3.x is now available in this repository:

It has only been tested with TinkerGraph, but it passes all of the old tests on TinkerGraph, including SPARQL evaluation (but excluding RDFS inference). No guarantees beyond that. I will send out another email when the tool is properly ready (RDF4j Sail test suite, Neo4j adapter, more documentation, etc.).

Josh


xavier sumba

unread,
Aug 12, 2017, 3:44:11 PM8/12/17
to Gremlin-users
Sorry, I miss your messages. Thanks so much. I'm going to take a look.

--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages