Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 24 19:12
    jeenbroekstra commented #3931
  • May 24 18:46
    kenwenzel commented #3931
  • May 24 14:04
    hmottestad synchronize #3934
  • May 24 14:04

    hmottestad on GH-3933-thread-safe-MemStatementList

    start using var handle (compare)

  • May 24 13:04
    hmottestad commented #3934
  • May 24 13:04
    hmottestad opened #3934
  • May 24 12:47

    hmottestad on GH-3933-thread-safe-MemStatementList

    GH-3933 initial removal of exte… (compare)

  • May 24 12:45
    hmottestad milestoned #3933
  • May 24 12:45
    hmottestad opened #3933
  • May 24 12:45
    hmottestad assigned #3933
  • May 24 12:45
    hmottestad labeled #3933
  • May 24 12:45
    hmottestad labeled #3933
  • May 24 11:17
    hmottestad commented #3928
  • May 24 10:37
    hmottestad commented #3928
  • May 24 10:36
    hmottestad commented #3928
  • May 24 10:07
    hmottestad commented #3928
  • May 24 09:34
    hmottestad synchronize #3928
  • May 24 09:34

    hmottestad on GH-3927-optimize-query-optimizers

    wip (compare)

  • May 24 09:22
    hmottestad synchronize #3928
  • May 24 09:22

    hmottestad on GH-3927-optimize-query-optimizers

    wip (compare)

Iwan Aucamp
@aucampia
Yes I think Hayland seems like the best bet
Iwan Aucamp
@aucampia
I remember at some point in time RDF4J did not have much in terms of reasoning/inference - is that still the case? From the docs it seems actually there is some reasoning capabilities now.
Jeen
@abrokenjester:matrix.org
[m]
There's SHACL support, and of course RDFS inference. For OWL inference you'll have to go to something like GraphDB, though.
Iwan Aucamp
@aucampia
RDFS is enough I guess
Jeen
@abrokenjester:matrix.org
[m]
Well then you're covered - we've also had quite a bit of improvement in the performance of the RDFS inferencer in recent years.
Iwan Aucamp
@aucampia
Looked now at bigtable (hbase) pricing on GCP, quite pricey - may be better off making some generic SQL implementation for SAIL.
Jeen
@abrokenjester:matrix.org
[m]
what exactly are your requirements? There's plenty of choice of existing stores that may do what you need - Virtuoso, GraphDB, RDF4J's own native store (and the upcoming LMDB store), to name but a few.
Iwan Aucamp
@aucampia
I want to run a very low performance triple store on GCP for cheap, will ingest some architectural data into it, like terraform state, data models, and software dependency graphs
benefit of using GCP managed DB is that I can just use cloud run for the server then and not worrry about DB much
I can of course run GraphDB on a VM but then I have to worry about a whole load of other things
Jeen
@abrokenjester:matrix.org
[m]
native store or lmdb are no options? They are both embedded stores so they could just run directly on your compute instance
(not a Google Cloud expert myself but I assume that's possible)
Iwan Aucamp
@aucampia
they are options, but I would prefer to not have to worry about the data, if I deploy using native store I have to care about replication and backup, if I defer that to cloud SQL then I can just put the server in cloud run and then it just runs when someone is doing a query basically
Jeen
@abrokenjester:matrix.org
[m]
ah fair point
Iwan Aucamp
@aucampia
but probably I will start with native storage, was just thinking about options
Bart Hanssens
@barthanssens
@abrokenjester:matrix.org could it be that the website is case-sensitive ? link from news section https://rdf4j.org/news/ points to https://rdf4j.org/release-notes/4.0.0-M2 but that seems to generate a 404 (lowercase 4.0.0-m2 works)
2 replies
Adrian Hamod
@AdrianHamod
Hi everyone. I'm not able to write the lucene in-memory repo configuration from https://rdf4j.org/documentation/programming/lucene/ (the one using the native store) as a config.ttl for a remote repo on a RDF4J server. I will keep digging, but I'm wondering if someone already accomplished this.
3 replies
Florian Kleedorfer
@fkleedorfer
Hey, how does one clear only the default graph using RepositoryConnection? clear() clears everything. I've tried to use http://www.openrdf.org/schema/sesame#nil and http://rdf4j.org/schema/rdf4j#nil as context ids but to no avail...
3 replies
Adrian Hamod
@AdrianHamod
Regarding the spring integration. How can I work with rdf collections? How would I bind/map entities in this case? @fkleedorfer
Florian Kleedorfer
@fkleedorfer
No special support for that (yet). Not sure how to approach that generically. Do you have a toy example?
Florian Kleedorfer
@fkleedorfer
It might be something to tackle with a new sparqlbuilder feature...
Jeen
@abrokenjester:matrix.org
[m]
There are various utility functions available for converting Java collections to RDF lists and back
Jeen
@abrokenjester:matrix.org
[m]
:point_up: Edit: There are various utility functions available for converting Java collections to RDF lists (returned as a Model) and back
Iwan Aucamp
@aucampia
We sometimes find the need to write some tests on some well defined graph in RDFLib. We currently have some random files: https://github.com/RDFLib/rdflib/tree/master/test/consistent_test_data - but this is not ideal IMO - it would be nice to use something more official.
One option I considered is to just use actual ontologies, like https://www.w3.org/1999/02/22-rdf-syntax-ns# or http://www.w3.org/2000/01/rdf-schema#
and then write tests using them as graphs
but this may seem a bit confusing at first glance
another option is to use these datasets: https://www.w3.org/2000/10/rdf-tests/
but they seem a bit dated
not sure if you have some suggestions
Iwan Aucamp
@aucampia
will just use published schemas for now, will go for RDFS
I can of course use this: https://www.w3.org/2013/TurtleTests/ - but they are kind of small
Jeen
@abrokenjester:matrix.org
[m]
@aucampia: for testing compliance with specs we use the official test suites, but for our own functional testing we tend to use artifical graphs for the most part in RDF4J. For benchmarking purposes we include a couple of external datasets (we have a snapshot of data.gov.be, for example), but for most unit testing small fake files that can accurately express certain specific corner cases work fine IMHO.
Florian Kleedorfer
@fkleedorfer
We are migrating our application to RDF4J-4.0, which talks to a GraphDB running RDF4J-3.7.6(that is the latest GraphDB version 9.11.0). When testing with an in-memory repo, our test suite passes, but testing against GraphDB fails caused by: org.eclipse.rdf4j.repository.RepositoryException: Incompatible format version: 2. Some digging reveals that some protocol version has been incremented to 2 in 4.0. Is there a way to talk to a remote repo that runs protocol version 1?
Frens Jan Rumph
@frensjan
Do you have a stack trace?
Is Binary RDF being used?
Jeen
@abrokenjester:matrix.org
[m]
Protocol here refers to Rdf4j 's own remote protocol, which is an extension of SPARQL protocol, used by the Http repository. If the version doesn't match its incompatible I'm afraid. However you can use the SPARQLRepository instead, that should work with an older version of RDF4J on the server side
Frens Jan Rumph
@frensjan
(I've said nothing :'D)
Florian Kleedorfer
@fkleedorfer
Thanks Jeen! Any downside to doing that even with compatible repos? Higher data volume? Slower?
No transactions?
Jeen
@abrokenjester:matrix.org
[m]
Actually come to think of it I might be wrong here. That number looks off for the REST protocol version. Frensjan might be right that this has to do with the binary format instead..
Can you log a bug report? I may have some time to take a closer look this weekend (no promises, just intentions😄)
Florian Kleedorfer
@fkleedorfer
Will do but probably not before the weekend, sdly.
Jon Harper
@jonenst

Hi, I'm trying to upgrade from rdf4j 3.3 to 4.01 and I'm facing a problem with invalid iri (ValidatingValueFactory rejecting my name because it has a space).

Previously I would use:

 var repo =new SailRepository(new MemoryStore());
 var conn =  repo.getConnection()

// Report invalid identifiers but do not fail
// (sometimes RDF identifiers contain spaces or begin with #)
// This is the default behavior for other triple store engines (Jena)
conn.getParserConfig().addNonFatalError(XMLParserSettings.FAIL_ON_INVALID_NCNAME);
conn.getParserConfig().addNonFatalError(BasicParserSettings.VERIFY_URI_SYNTAX);
conn.getParserConfig().addNonFatalError(XMLParserSettings.FAIL_ON_DUPLICATE_RDF_ID);

conn.getValueFactory().createIRI(namespace, localName);

Now I get this stack trace:

java.lang.IllegalArgumentException: java.net.URISyntaxException: Unexpected character U+20 at index 34: contexts:foo bar.xml
    at org.eclipse.rdf4j.model.impl.ValidatingValueFactory.createIRI(ValidatingValueFactory.java:88)
    at org.eclipse.rdf4j.model.util.Values.iri(Values.java:175)
    at org.eclipse.rdf4j.model.util.Values.iri(Values.java:111)
    at org.eclipse.rdf4j.sail.memory.model.MemValueFactory.createIRI(MemValueFactory.java:329)

Looking at the code Looking at the code https://github.com/eclipse/rdf4j/commit/31eae61980b#diff-316111ad63bae0052ae1214d4e3abff22b8f951323f25287e24be2af0205e81eR336 is there a way to avoid calling ValidatingValueFactory which throws on whitespace ?
Thanks,
jon

Jeen
@abrokenjester:matrix.org
[m]
Hi @jonenst sorry for not responding sooner - this channel is a bit quiet these days. The parser configs you set only control the behavior of the RDF parsers used internally, for example when uploading a file to the repo. The ValueFactory class' behavior is not influenced by this.
However, taking a closer look, I think there is indeed a change in behavior in the MemoryStore. For this particular case it seems to now be using a ValidatingValueFactory, rather than what it previously did.
By the way I assume you're aware that whitespaces really are just not allowed in IRIs, and while there's ways to bypass that in RDF4J, you're probably better off making sure your IRIs are legal? I realize you don't always have full control over the input of course :)
Jeen
@abrokenjester:matrix.org
[m]
By the way you can bypass the behavior by using the SimpleValueFactory instead of the one supplied by the connection:
SimpleValueFactory.getInstance().createIRI(namespace, localName);
Jeen
@abrokenjester:matrix.org
[m]