Obi-Wan
Obi-Wan is a RDF data integration system I developed during my thesis.
Troubles
not compatible with java 11
rendre le projet compatible à java 11 (comme integraal) et s'y tenir
no inversion of SK and join
SELECT * WHERE { ?sub <local://file> <https://buron.coffee/notes/entity/the_shift_project>. ?sub <https://schema.org/mainEntity> ?o . }
rendre l'injection et la l'incompatibilité des SK optionnelle
Typer avec URI les opérateurs qui le mérite (notamment pour bien pousser les IRIs dans SPARQL)
Permettre les fonctions SK différentes, mais compatibles
C'est ce dont on a besoin en pratique. Il faut commencer avec le cas simple où la compatibilité n'est permise seulement pour les SK à 1 variable. La compatibilité se réduit alors à des cas d'égalité où l'on peut utiliser des prédicats de subchaînes + pred. de commence par/fini par (ce qui se pousse bien dans la plupart des langages de requêtes)
$1=$2 a$1=$2 $1a=$2 a$1a=$2 a$1=$2a
Future work
Supporting SPARQL using Jena ARQ
As explain on this page, it is possible to use ARQ as query engine for Obi-Wan:
- move to Jena 4.X to have things as (OK for Obiwan): https://github.com/apache/jena/blob/main/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBuilder.java
- modify the OpExecutor class to answer OpBGP using Obiwan : https://github.com/apache/jena/blob/main/jena-examples/src/main/java/arq/examples/bgpmatching/OpExecutorAlt.java, https://github.com/apache/jena/blob/main/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/OpExecutor.java
try to encapsulate Jena's QueryIterator in Tatooine Operator. Maybe by doing (AST -> LogOperation) first converting most of the Op as LogOperator and using as LogJenaOperator(Op) for the unsupported Op. Then use OpExecutor for the part convertion to NIterator
Warning : the support of OPTIONAL is not complete due to the rewriting …
It is doable :)
Supporting Web api
It will require that binding pattern work in Tatooine
Progress done
Supporting LIMIT in SPARQL queries
Supporting SPARQL endpoint
Creating a SPARQL endpoint
Currently Obi-Wan only supports conjunctive queries, but it may be possible to extends it using Jena ARQ as explained here. It got this idea from the D2RQ systems, which seems to do it (look at this class).
Then Jena Fuseki can be used as a SPARQL endpoint.
Or maybe the best solution is to use rdf4j.