1 Reply Latest reply on Nov 2, 2010 9:48 PM by alwu-Oracle

    user-defined rules with SPIN (SPARQL CONSTRUCT)

    801615
      Hi,

      We are looking at SPIN as an alternative to define and execute user-defined rules. It is very expressive and in that point looks superior over Jena, SWRL and Oracle type of user-defined rules with IF (filter) -> THEN type of syntax. Although, SPIN is TopQuadrant's, it is entirely SPARQL, and Oracle supports SPARQL CONSTRUCT via Jena Adapter. TopBraid Composer provides and excellent tool support and rule editor for SPIN rules as well.

      There is no problem to execute SPIN rules via Jena Adapter, and I believe even via TopQuadrant's SIN API, which is TopQuadrants's SPARQL based infrence engine's API.

      My question is about whether Oracle has looked into supporting SPARQL CONSTUCT based user-defined rules in its native inference engine?
      Do you have a recommendation for how to use SPIN based user rules in combination with Oracle inference today?

      Thanks
      Jürgen
        • 1. Re: user-defined rules with SPIN (SPARQL CONSTRUCT)
          alwu-Oracle
          Hi Jürgen,

          We are actually looking into a general mechanism that allows users to plug in their own queries/logic during inference. Thanks very much for bringing SPIN up. This general mechanism is very likely going to cover CONSTRUCT queries.

          To extend the existing inference engine using the existing Jena Adapter release, one possible way is as follows.

          1) Assume you have an ontology (model) A.

          2) Create an empty model B.

          3) run performInference on both A and B using OWLPrime.

          4) run SPARQL CONSTRUCT queries against A, B and inferred data

          5) store the query results (in the form of Jena models) back into model B.

          6) If the size of model B does not change, then stop. Otherwise, repeat 3)

          Note that model B is created to separate your original asserted data from inferred data.
          If you don't need such a separation, then don't create it.

          Thanks,

          Zhe Wu