THE MAGICAL NATURE OF ALLEGROGRAPH PROLOG
While SPARQL is becoming more magical, let's take time to ask "Is Franz' AGProlog already magical"? I mean magical in the sense of magic properties in SPARQL (http://www.w3.org/wiki/SPARQL/Extensions/Computed_Properties).
Franz, I believe, is certainly doing the right thing by directly supporting magical properties in AllegroGraph for the SPARQL-centric subset of their customer base. This sort of magic corrects some of what I don't care for with SPARQL's FILTER syntax. But, let's not forget that Franz' Prolog has been magic-cabable from the day that they released their "q" and "q-" Prolog functors in support of their semantic support for Prolog. I've been using their Prolog magically for a couple of years by creating Prolog adapter rules like the following:
(<- (q- ?POINT_1 !st:myNonProprietaryPointAfter ?POINT_2) ;;rule conclusion.
(point-after ?POINT_1 ?POINT_2)) ;;rule premise; "point-after" is a Franz-supplied Prolog temporal functor.
This rule is invoked every time that basic semantic store access fails to find a matching triple/statement that declaratively asserts the "beforeness". So in magical fashion, I first try to grab it from the store, then I try to compute it.
(select (?POINT_1 ?POINT_2)
(q- ?POINT_1 !st:endsBeforeStartingOf ?POINT_2))
It is a bit of extra work for me to write these adaptor rules, but this allows me to name my magic properties as I choose. In particular, I have my own Allen interval overlap properties that I am fond of and that happen to be vendor neutral. Yet I tie into their Prolog's magic-enabling functors as in the point-after example above.
They could provide their own proprietary adapters for those who might like the out-of-the-box magic simplicity, but I'm quite happy with the vender-neutrality of the current state.
It appears that their magic SPARQL properties have corresponding Prolog functors. So they have a good claim on temporal, geo-spatial, and social network analysis magic for both SPARQL and Prolog. My experience is only with the Prolog magic-enabling functors.
Bottom line: AllegroGraph Prolog is quite magical for my purposes. Perhaps it was the first magical-enabling implementation.