Hybrid Search for SPARQL with Apache Jena and Fuseki

illustration of a neutron star s magnetic field

This article is NOT generated by LLMs or AI tools.

To kick off my new “All Things Graph” series 😊 I had so many topics that it was quite hard to choose where to start, but in the end, I thought what topic better than something related to good old RDF and graph databases created for dealing with RDFs. Apache Jena is one of my all-time favorite graph databases. Especially using its Fuseki server makes deploying a backend for your graph applications a cakewalk. However, one thing that has always been missing from it was “semantic” search (also known as vector search, which also helps avoid confusion with semantic reasoning as it relates to graphs). With the advent of LLMs and RAG (Retrieval Augmented Generation), having more powerful search systems, especially hybrid search has become a crucial decision factor for choosing the right storage and retrieval system. So, in this post, I will walk you through what hybrid search is and how I enabled Apache Jena to provide me with a hybrid search interface for my RAG applications.

Continue reading “Hybrid Search for SPARQL with Apache Jena and Fuseki”

Introducing Graph Series

green grass field with trees

This article is NOT generated by LLMs or AI tools.

Years ago, when I first read The Master and His Emissary by Iain McGilchrist, I wasn’t expecting it to totally reshape my thinking about how we define data, how we store it, how we retrieve and query it and so on. Perhaps I had forgotten that I was (still am) a software engineer. After all I have been taking all my learnings from arts, sports, and other non engineering fields to engineering and benefitting from this knowledge transfer across domains quite a bit. This was a time when I had already published a couple of books and had worked on a few others as technical reviewer/editor and my blogging days were seemingly coming to an end. Not to mention my private life was also getting busier and busier, so there was not much time to blog either. For this and many other reasons, I wasn’t really getting enough time to blog about how my thinking about data was changed and share my learnings. Which brings me to the title of this post, and graphs in general.

Continue reading “Introducing Graph Series”

Introducing Flython, a way to use Python in Flutter

It’s actually been quite some time since I’ve made a shift to using Python and in general languages and tools that offer a shorter way to test out ideas. But recently I’ve started doing that in a more structured and hopefully sustainable way, that not only is good for extremely fast prototyping, but also for building stable and trustworthy software applications that might (must?) run for a long time. So, to let you in on the trick, in this post, I am going to introduce you to Flython, a library that will help you create applications that use the best of the two worlds of Flutter (Dart) and Python.

Continue reading “Introducing Flython, a way to use Python in Flutter”

How to Build OpenCV 3.4.11 for Native Android Development Using PowerShell (Windows)

One in a while I start working on an Android app with computer vision capabilities and obviously I need OpenCV for that. However, I’m not surprised that every time (or most of the time to be fair) there’s some change in the way OpenCV is built which renders my build scripts useless, or buggy at least. This is understandable because of the nature of OpenCV library and the fact that it is trying to keep up with many new features and fixes and so on. In any case, this post is a reminder of all of the things I just mentioned and a guide to help you build OpenCV for Native Android development, and especially in Qt Framework which I’ll describe in a separate post soon.

Continue reading “How to Build OpenCV 3.4.11 for Native Android Development Using PowerShell (Windows)”

Computer Vision Docker Image with TensorFlow and OpenCV, From Scratch

After publishing this post some time ago which was a tutorial on how to create a Computer Vision Docker image using OpenCV and TensorFlow, I got many questions from people about the issues they’re facing when they try to use it. If you think something of a similar nature happened to you, then this post is meant for you.

Continue reading “Computer Vision Docker Image with TensorFlow and OpenCV, From Scratch”

Using OpenCV ANN MLP to Train a Model on Iris Flower Dataset

Even though OpenCV is mainly a Computer Vision Library, it still contains a large set of very powerful mathematical functions, optimization algorithms and even GUI utilities that can be useful in other applications as well. Besides the fact that it’s open source and has a very permissive license, the emphasis on speed and performance which has always been the main goal of OpenCV, makes it even more appealing for commercial grade applications. That was my main motivation behind writing this post, and I want to walk you through it with a classical machine learning example, that is training a multilayer perceptron to classify Iris Flower Dataset entries.

Continue reading “Using OpenCV ANN MLP to Train a Model on Iris Flower Dataset”