Semantic Web Meshup Β· Knowledge Graph Β· May 2026

FuXi: Reborn Semantic Web Reasoner & Interlocutor

A knowledge graph meshup connecting Chimezie Ogbuji's origin story of FuXi 2.0.1 with the semantic-web-reasoner-skill β€” where theory and practice share IRIs.

What is a Meshup?

A meshup (not a mashup) is a semantic mesh where entities from multiple sources share IRIs and are fully interconnected. Here, the Medium article provides the theoretical and historical layer; the GitHub skill provides the practical tool layer; and FuXi is the central entity linking both layers in a single knowledge graph where all entities share stable IRIs.

πŸ“„ The Origin Story

Chimezie Ogbuji's Medium article (May 2026) narrates FuXi's original development for the Cleveland Clinic CVIR registry, its two-decade journey through Pychinko and RETE-UL, the Backward Fixpoint Procedure, and the vision of SPARQL interlocution as generative expert systems infrastructure.

β†— Read on Medium

βš™οΈ The Agent Skill

The semantic-web-reasoner-skill is a TypeScript + Python OpenCode / Claude skill exposing 10 tools for OWL ontology management and FuXi reasoning. It integrates owl_dsl, ROBOT, riot, and owlready2 into a tool-aware LLM agent pipeline.

β†— View on GitHub

The Origin Story
From the CVIR registry to SPARQL interlocution β€” FuXi's two-decade arc

πŸ₯ Historical Context

FuXi was originally built for the Cleveland Clinic Cardiovascular Information Registry (CVIR) at Case Western Reserve University, patented as an "Extensible Database-Backed Web Architecture." The core insight: healthcare data is a natural fit for open-world OWL reasoning.

πŸ”„ Evolution

FuXi grew out of Pychinko, an early Python RETE reasoner. It now implements RETE-UL, BFP (via FranΓ§ois Bry's 1990 meta-interpreter), and SPARQL interlocution. Version 2.0.1 was re-released in 2026 alongside the skill.

🧬 Generative Expert Systems

The article's thesis: SPARQL 1.1 Entailment Regimes + BFP + LLM tool-use creates the infrastructure for generative expert systems. The Semantic Web's Open World Assumption becomes an asset when combined with SPARQL interlocution's memoized SLD resolution over recursive rules.

πŸ“ DLP Compilation

Using Description Logic Programs (Grosof et al. 2003), FuXi compiles OWL axioms β€” inverseOf, TransitiveProperty, subClassOf β€” into Horn rules for RETE-UL evaluation. The fuxi.owl CLI subcommand orchestrates this pipeline.

Key Theoretical Concepts
The semantic web reasoning stack underlying FuXi
Forward Chaining A data-driven inference method that starts with available data and uses inferenc
Backward Chaining A goal-driven inference method that works backward from a goal, identifying rule
Meta-Interpretation A logic programming technique where an interpreter for a language is written in
RETE-UL A modification of the original RETE production rule algorithm (Doorenbos 1995) t
Backward Fixpoint Procedure (BFP) A meta-interpreter defined by Francois Bry (1990) for reconciling bottom-up and
SPARQL Interlocution An extension of Bry's BFP meta-interpreter that incorporates SPARQL service eval
Description Logic Programs (DLP) A technique from Grosof et al. (2003) providing a direct mapping from a subset o
Open World Assumption (OWA) The semantic principle of OWL and RDF stating that the absence of a stated fact
Sideways Information Passing (SIP) Query evaluation strategies that pass variable binding information (bound/free a
TBox (Terminological Box) In Description Logic, the TBox contains terminological statements: class names,
ABox (Assertional Box) In Description Logic, the ABox contains grounded individual statements: class me
FuXi: Origin & Timeline
From Cleveland Clinic healthcare data management to a reborn Semantic Web reasoner β€” two decades of reasoning infrastructure, from the article's own account
Early 2000s CVIR at Cleveland Clinic

Chimezie Ogbuji works in the Advanced Database department of Cardiothoracic Surgery Research. The Cardiovascular Information Registry captures data on every cardiac surgery patient. A domain interpreter using RDF Graphs and OWL reasoning is needed to auto-generate XSLT, XForms, and validation documents β€” the seed requirement for a custom reasoner.

~2005 Early Semantic Web Stack: CWM, Euler, Pychinko

Working with W3C Semantic Web technologies during the activity period, Ogbuji uses early N3 reasoners for the CVIR domain. They handle the reasoning needs but cannot scale to hundreds of thousands of patients β€” motivating a purpose-built solution.

Late 2006 FuXi Created β€” RETE-UL

FuXi begins as a successor to Pychinko. Ogbuji adapts Robert Doorenbos' 1995 thesis algorithms, producing RETE-UL: a 3-tuple variant of the RETE network that maps naturally to RDF triples (subject, predicate, object), with hash-table alpha/beta node optimisations.

2008 Extensible Database Patent + InfixOWL Paper

Patent US7836097B2 documents the CVIR domain interpreter architecture. Ogbuji also publishes the InfixOWL paper at OWLED, describing DLP: a direct mapping from OWL Description Logic subsets to equivalent Horn rules, enabling FuXi to compile OWL axioms into N3 Horn rules for RETE-UL evaluation.

2011 Leaves Cleveland Clinic β†’ Case Western Reserve β†’ BFP

Ogbuji leaves Cleveland Clinic to become a PhD student and Medical Informatics fellow. He takes a graduate course on GΓΆdel's incompleteness theorems covering mathematical logic, model theory, and deductive reasoning. In mid-2011 he adapts FranΓ§ois Bry's 1990 Backward Fixpoint Procedure for RDF/OWL/N3, enabling SPARQL Interlocution.

2012–2013 Sherlock Project + Graham Higgins Implementation

Ogbuji leaves Case Western and works on Sherlock, translating Cell Biology textbooks into formal mathematical logic. Contributor Graham Higgins describes the SPARQL Interlocution implementation: a RETE-UL decision network with bottom-up simulation of SLD resolution, complete and sound memoization even for recursive rules.

~2015 FuXi Goes Dormant

Python 2β†’3 transition and breaking changes in RDFLib's API render FuXi incompatible. The library enters dormancy β€” its OWL 1.1/2.0, RIF, RDFS, and SPARQL Entailment capabilities unavailable. Graham Higgins archives the codebase, preserving the test harness.

2026 FuXi 2.0.1 Reborn β€” Origin Story Published

A major modernisation restores OWL 1.1/2.0, RDF/RDFS, RIF, and N3 reasoning with full Python 3 / modern RDFLib compatibility. Ogbuji publishes the origin story article and the semantic-web-reasoner-skill simultaneously, framing FuXi as infrastructure for generative expert systems β€” combining traditional OWL/logic expert systems with modern transformer-based LLMs.

Core Tool Ecosystem
Software stack surrounding FuXi β€” from RDF I/O to OWL verbalization
🧠

FuXi

A Python bi-directional reasoning engine (forward/bottom-up + backward/top-down) companion to RDFLib. Handles OWL 1.1/2.0, RDF, RDFS, RIF, N3. Impleme

πŸ“

owl_dsl

A Python tool for verbalizing OWL ontologies into Controlled Natural Language. Renders OWL classes and properties as Manchester Syntax phrases. Used b

πŸ€–

ROBOT

A command-line tool for OBO Foundry ontology development. Validates OWL 2 profiles (RL, DL). Used by the skill's check-ontology tool for running struc

⚑

riot (Apache Jena)

Apache Jena's RDF I/O Technology CLI. Parses, converts, and validates RDF in multiple serialization formats. Used by the semantic-web-reasoner-skill f

πŸ¦‰

owlready2

A Python module for manipulating OWL 2.0 ontologies using SQLite persistence. Used by the skill's ontology management tools (create-ontology, list-ont

🐍

Pychinko

An early Python N3 reasoner using the original RETE algorithm. FuXi (circa 2006) initially continued in Pychinko's footsteps before evolving to the RE

🌐

CWM (Closed World Machine)

W3C's Notation 3 reasoner. One of the first N3 reasoners used in the CVIR project before FuXi was created.

πŸ”„

Euler

An N3 reasoner supporting backward reasoning. One of the early reasoners (alongside CWM and Pychinko) used before FuXi was created to handle larger sc

FuXi CLI Subcommands
Code examples β€” schema:SoftwareSourceCode instances from the knowledge graph
1 fuxi.core Python / CLI β–Ό

FuXi CLI subcommand for forward chaining evaluation and RETE network diagnostics.

fuxi.core facts.n3
2 fuxi.owl Python / CLI β–Ό

FuXi CLI subcommand for OWL reasoning, DLP compilation, and BFP query answering. Supports --dlp, --hybrid, --method=bfp, --why (SPARQL goal), --output (proof-graph-svg, man-owl, pml, etc.).

fuxi.owl --method=bfp --dlp --hybrid --ns eg=http://example.net/vocab# --why "ASK { eg:bob your:isBrotherOf eg:joe }" --output proof-graph-svg test/OWL/inverseOf/premises001.rdf > proof.svg
3 fuxi.proof Python / CLI β–Ό

FuXi CLI subcommand for proof and SIP graph generation. Output formats include rete-network-svg, sip-collection-svg, adornment, pml (Provenance Markup Language), proof-graph-svg, proof-graph-png.

fuxi.proof --method=bfp --dlp --hybrid --ns eg=http://example.net/vocab# --why "ASK { eg:bob your:isBrotherOf eg:joe }" --output rete-network-svg test/OWL/inverseOf/premises001.rdf > rete_network.svg
FuXi Reasoning β†’ SPARQL Entailment Examples
Each example traces the full chain: ABox facts + TBox axioms β†’ FuXi BFP or RETE-UL reasoning β†’ the entailment produced β†’ a live SPARQL query that retrieves or materialises that entailment from the FuXi named graph on URIBurner. Examples 1–2 are from the article's OWL test case 7.1.24 (owl:inverseOf); 3 is SPARQL Interlocution; 4–5 are RETE-UL superproperty; 6 is BFP owl:intersectionOf.
1 BFP owl:inverseOf β†’ CONSTRUCT Entailment SPARQL CONSTRUCT Β· BFP entailment β–Ό

The article's OWL test case 7.1.24 states: "if the pair (x,y) is an instance of P, then the pair (y,x) is an instance of the named property." FuXi's Backward Fixpoint Procedure evaluates the goal ASK { eg:bob your:isBrotherOf eg:joe }. DLP compiles owl:inverseOf into bidirectional Horn rules; BFP rewrites the goal to the sub-goal ASK { eg:joe your:isBrotherOf eg:bob }, dispatches it to the EDB β€” which confirms the ABox fact β€” and the goal is proved. This CONSTRUCT materialises that BFP-derived entailment from the named-graph data.

Sample Dataset (FuXi test suite β†—):

inverseOf ABox (premises001.rdf):

@prefix your: <http://example.net/vocab#> .
@prefix eg:   <http://example.net/> .

eg:joe your:isBrotherOf eg:bob .           # ABox asserted fact

inverseOf TBox (owl:inverseOf axiom) (TBox β€” ontology axioms):

@prefix your: <http://example.net/vocab#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .

your:isBrotherOf owl:inverseOf your:isBrotherOf .

# DLP compiles this to bidirectional N3 Horn rules:
# { ?X your:isBrotherOf ?Y } => { ?Y your:isBrotherOf ?X } .

β‡’ eg:bob your:isBrotherOf eg:joe ← BFP proves via owl:inverseOf backward chaining

SPARQL expressing this entailment (click β–Ά to run live):

PREFIX your: <http://example.net/vocab#>
PREFIX eg:   <http://example.net/>
PREFIX owl:  <http://www.w3.org/2002/07/owl#>

# BFP goal: ASK { eg:bob your:isBrotherOf eg:joe }
# DLP Horn rule: {?X your:isBrotherOf ?Y} => {?Y your:isBrotherOf ?X}
# BFP sub-goal:  ASK { eg:joe your:isBrotherOf eg:bob } β†’ true in EDB β†’ goal proved
# CONSTRUCT materialises the BFP-derived entailment:
CONSTRUCT { eg:bob your:isBrotherOf eg:joe . }
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/fuxi-semantic-web-reasoner-meshup-claude_sonnet4-1.ttl> {
    eg:joe your:isBrotherOf eg:bob .
    your:isBrotherOf owl:inverseOf your:isBrotherOf .
  }
}
β–Ά Run on URIBurner πŸ“‚ Source: FuXi test suite
2 BFP + SIP: SELECT with Bound/Free Adornments SPARQL SELECT Β· BFP + Sideways Information Passing β–Ό

The article shows FuXi using SELECT ?brother { eg:bob your:isBrotherOf ?brother } to demonstrate Sideways Information Passing (SIP): eg:bob is bound (b), ?brother is free (f). FuXi propagates the binding of eg:bob through the BFP meta-interpretation rules, adorning them as isBrotherOf_bf(?X ?_:3) :- hasBrother(?_:3 ?X). This SELECT against the named graph retrieves the entailed value of ?brother.

Sample Dataset (FuXi test suite β†—):

inverseOf ABox:

@prefix your: <http://example.net/vocab#> .
@prefix eg:   <http://example.net/> .

eg:joe your:isBrotherOf eg:bob .   # ABox fact

SIP adornment (from fuxi.owl --output adornment) (TBox β€” ontology axioms):

# SIP adornments: b=bound, f=free
# Forall ?X ?_:3 ( :isBrotherOf_bf(?X ?_:3) :- your:isBrotherOf(?_:3 ?X) )
# Forall ?X ?_:4 ( :isBrotherOf_bf(?X ?_:4) :- your:isBrotherOf(?_:4 ?X) )
#
# fuxi.owl --method=bfp --dlp --hybrid
#   --why "SELECT ?brother {{ eg:bob your:isBrotherOf ?brother }}"
#   --output adornment test/OWL/inverseOf/premises001.rdf

β‡’ ?brother = eg:joe ← BFP with SIP passes bound binding for eg:bob to derive the free ?brother

SPARQL expressing this entailment (click β–Ά to run live):

PREFIX your: <http://example.net/vocab#>
PREFIX eg:   <http://example.net/>

# SIP SELECT: eg:bob is bound (b), ?brother is free (f)
# FuXi adorns BFP rules as isBrotherOf_bf and propagates the eg:bob binding
# to efficiently derive ?brother = eg:joe without full table scan
SELECT ?brother
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/fuxi-semantic-web-reasoner-meshup-claude_sonnet4-1.ttl> {
    eg:joe your:isBrotherOf eg:bob .
    eg:bob ?p ?brother .
    FILTER(?p = your:isBrotherOf && ?brother != eg:bob)
  }
}
β–Ά Run on URIBurner πŸ“‚ Source: FuXi test suite
3 SPARQL Interlocution: FuXi-Generated EDB ASK SPARQL ASK Β· SPARQL Interlocution β–Ό

SPARQL Interlocution is FuXi's mechanism for dispatching SPARQL sub-queries to the EDB during BFP backward-chaining. Before applying Horn rules for OWL functional or inverse-functional properties, FuXi generates and dispatches this ASK to the EDB. If the EDB returns false (no such properties exist), those Horn rules are skipped β€” a key memoization optimisation described in the article as "complete, sound, and safe memoization even when the rules are recursive."

Sample Dataset (FuXi test suite β†—):

intersectionOf ABox+TBox:

@prefix first: <http://www.w3.org/2002/03owlt/intersectionOf/premises001#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .

first:C owl:intersectionOf ( first:Employee first:Student ) .
first:B owl:intersectionOf ( first:Student  first:Employee ) .
first:John a first:B .

β‡’ ASK β†’ false ← no functional/inverse-functional properties in EDB β†’ BFP skips those Horn rules (memoisation)

SPARQL expressing this entailment (click β–Ά to run live):

PREFIX owl: <http://www.w3.org/2002/07/owl#>

# FuXi generates and dispatches this ASK to the EDB during SPARQL Interlocution
# before deciding whether to apply Functional/InverseFunctional Horn rules
ASK {
  [] a ?KIND
  FILTER(
    ?KIND = owl:InverseFunctionalProperty ||
    ?KIND = owl:FunctionalProperty
  )
}
β–Ά Run on URIBurner πŸ“‚ Source: FuXi test suite
4 RETE-UL rdfs:subPropertyOf β†’ SELECT Entailment SPARQL SELECT Β· RETE-UL forward chain β–Ό

FuXi's RETE-UL forward-chaining network compiles the TBox axiom exterms:has_brother rdfs:subPropertyOf exterms:has_sibling into a Horn rule and fires it over the ABox. The Doorenbos RETE-UL algorithm (3-tuple facts matching RDF triples) derives and materialises exind:john exterms:has_sibling exind:jack in the named graph. This SELECT retrieves that RETE-UL-derived triple.

Sample Dataset (FuXi test suite β†—):

Superproperty ABox:

@prefix exterms: <http://example.org/terms/> .
@prefix exind:   <http://example.org/> .

exind:john exterms:has_brother exind:jack .
exind:jack exterms:brother     exind:john .

Superproperty TBox (TBox β€” ontology axioms):

@prefix exterms: <http://example.org/terms/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .

exterms:has_brother rdfs:subPropertyOf exterms:has_sibling .
exterms:brother owl:equivalentProperty exterms:has_brother .

β‡’ exind:john exterms:has_sibling exind:jack ← RETE-UL fires subPropertyOf Horn rule, triple materialised in named graph

SPARQL expressing this entailment (click β–Ά to run live):

PREFIX exterms: <http://example.org/terms/>

# RETE-UL fires: john has_brother jack + has_brother subPropertyOf has_sibling
# β†’ derives and materialises: john has_sibling jack  (stored in named graph)
SELECT ?subject ?object
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/fuxi-semantic-web-reasoner-meshup-claude_sonnet4-1.ttl> {
    ?subject exterms:has_sibling ?object .
  }
}
β–Ά Run on URIBurner πŸ“‚ Source: FuXi test suite
5 RETE-UL Full Closure: All Derived Triples SPARQL SELECT Β· RETE-UL closure β–Ό

FuXi RETE-UL applies both rdfs:subPropertyOf and owl:equivalentProperty Horn rules in one forward-chaining pass, producing the complete deductive closure. This SELECT retrieves all triples in the named graph with subject and predicate from the example namespace β€” the two ABox facts and every RETE-UL-entailed triple β€” showing the full closure FuXi computes.

Sample Dataset (FuXi test suite β†—):

Superproperty ABox + RETE-UL closure:

# ABox facts:
exind:john exterms:has_brother exind:jack
exind:jack exterms:brother     exind:john
# RETE-UL entailed (rdfs:subPropertyOf):
exind:john exterms:has_sibling exind:jack

Superproperty TBox (TBox β€” ontology axioms):

exterms:has_brother rdfs:subPropertyOf exterms:has_sibling .
exterms:brother owl:equivalentProperty exterms:has_brother .

β‡’ Full RETE-UL closure: both ABox facts + all derived triples across subPropertyOf and equivalentProperty chains

SPARQL expressing this entailment (click β–Ά to run live):

PREFIX exterms: <http://example.org/terms/>
PREFIX exind:   <http://example.org/>

# Full RETE-UL closure over the superproperty dataset
# Returns: john has_brother jack (ABox)
#          jack brother      john (ABox)
#          john has_sibling  jack (RETE-UL: subPropertyOf entailment)
SELECT ?subject ?predicate ?object
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/fuxi-semantic-web-reasoner-meshup-claude_sonnet4-1.ttl> {
    ?subject ?predicate ?object .
    FILTER(
      STRSTARTS(STR(?subject),   'http://example.org/') &&
      STRSTARTS(STR(?predicate), 'http://example.org/terms/')
    )
  }
}
ORDER BY ?subject ?predicate
β–Ά Run on URIBurner πŸ“‚ Source: FuXi test suite
6 BFP owl:intersectionOf β†’ Class Membership Entailment SPARQL SELECT Β· BFP intersectionOf β–Ό

FuXi BFP reasons over owl:intersectionOf: first:B owl:intersectionOf (first:Student first:Employee) means every member of first:B is simultaneously a Student and an Employee. Given first:John a first:B, BFP derives the class membership entailments. This SELECT retrieves the class assertions from the dataset that BFP reasons over, and the EDB ASK (example 3) is dispatched by FuXi during this same BFP evaluation.

Sample Dataset (FuXi test suite β†—):

intersectionOf ABox+TBox:

@prefix first: <http://www.w3.org/2002/03owlt/intersectionOf/premises001#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .

# ABox
first:John a first:B .
# TBox
first:B owl:intersectionOf ( first:Student  first:Employee ) .
first:C owl:intersectionOf ( first:Employee first:Student  ) .

β‡’ first:John a first:Student, first:Employee ← BFP derives class memberships via owl:intersectionOf

SPARQL expressing this entailment (click β–Ά to run live):

PREFIX first: <http://www.w3.org/2002/03owlt/intersectionOf/premises001#>
PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

# BFP: John a B + B intersectionOf(Student,Employee) β†’ John a Student, John a Employee
# This SELECT retrieves all class assertions from the intersectionOf dataset
SELECT ?individual ?class
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/fuxi-semantic-web-reasoner-meshup-claude_sonnet4-1.ttl> {
    ?individual rdf:type ?class .
    FILTER(STRSTARTS(STR(?individual), 'http://www.w3.org/2002/03owlt/'))
  }
}
β–Ά Run on URIBurner πŸ“‚ Source: FuXi test suite
Skill Tool Inventory
semantic-web-reasoner-skill β€” 10 tool definitions for LLM-assisted OWL reasoning
πŸ”§

list-ontologies

Lists OWL ontologies saved as owlready2 SQLite files in a working directory.

πŸ”§

verbalize-ontology-class

Verbalizes an OWL class into Controlled Natural Language using owlready2 and owl_dsl. Input: ontologyUri, sqliteFile, ba

πŸ”§

find-ontology-property

Finds OWL properties by label and URL pattern in an ontology SQLite file.

πŸ”§

create-ontology

Creates an owlready2 SQLite ontology and archives provenance for later use. Input: ontologyUri, baseUri, owlFile, workin

πŸ”§

find-ontology-class

Finds OWL classes by label pattern (string or regex) in an ontology SQLite file.

πŸ”§

dir-ontology

Lists ontology terms in Manchester OWL Syntax from an owlready2 SQLite file.

πŸ”§

check-ontology

Runs a ROBOT-powered structural and quality report on all issues with an OWL ontology file.

πŸ”§

extract-class

Extracts a class and its dependencies from an OWL ontology. Input: owlFile, term, outputOwl.

πŸ”§

ontology-report

Exports details about ontology entities as a tabular report file.

πŸ”§

ontology-measure-essentials

Computes quantitative and structural metrics about an OWL ontology: class count, property count, complexity, coverage, a

How To Use FuXi with the Skill
Step-by-step workflow from ontology loading to proof export
1

Install FuXi and owl_dsl via uv

Use uv to install FuXi and owl_dsl into your Python environment: 'uv pip install fuxi owl_dsl'. Alternatively use 'uv pip install -e ".[dev]"' for development mode. uv is preferred for environment isolation and reproducibility.

2

Create or load an OWL ontology

Use the create-ontology tool with ontologyUri, baseUri, and owlFile parameters to create an owlready2 SQLite ontology. Use list-ontologies to enumerate existing ontologies. Use dir-ontology to list terms in Manchester OWL Syntax.

3

Verbalize ontology classes with owl_dsl

Use verbalize-ontology-class providing the ontology URI, SQLite file, base URI, and class reference. The tool renders OWL classes in Controlled Natural Language using owl_dsl, enabling LLM-assisted ontology Q&A and annotation suggestion workflows.

4

Validate the ontology against OWL 2 profiles

Use check-ontology or invoke ROBOT directly: 'robot validate-profile --profile DL --input ontology.owl'. Use '--profile RL' for the OWL 2 RL profile. Structural errors and profile violations are reported in the output.

5

Run OWL reasoning with FuXi DLP and BFP

Invoke fuxi.owl with --method=bfp --dlp --hybrid flags to compile OWL axioms into Horn rules and run Backward Fixpoint Procedure reasoning. Use --why 'SPARQL GOAL' to specify the entailment query, --ns for namespace prefixes, and --output proof-graph-svg to visualize the proof trace.

6

Visualize RETE-UL networks and SIP collections

Use fuxi.proof with --output rete-network-svg to render the meta-interpreter RETE-UL network as SVG. Use --output sip-collection-svg to show Sideways Information Passing binding adornments (b=bound, f=free) flowing through rule evaluation. Both outputs can be refined in Inkscape.

7

Export proofs in PML and upload to Virtuoso

Use fuxi.proof with --output pml to serialize the reasoning proof in Provenance Markup Language. The generated RDF proof can be uploaded to a Virtuoso SPARQL endpoint (e.g., via the Virtuoso example at linkeddata.uriburner.com) for exploration using SPARQL queries.

πŸ•Έ Knowledge Graph Explorer
Loading…
Mode: Density:
Filter:
Scroll to zoom Β· Drag to pan Β· Click outside to release
Classes Properties Instances Persons Organizations
Frequently Asked Questions
Common questions about FuXi, RETE-UL, BFP, and the skill
Glossary
Key terms from Semantic Web reasoning and the FuXi ecosystem
ABox (Assertional Box)
In Description Logic, the ABox contains grounded individual statements: class memberships, object relationships, and data property values for specific named individuals. Uses the vocabulary defined in the TBox.
Backward Fixpoint Procedure (BFP)
A meta-interpreter defined by Francois Bry (1990) for reconciling bottom-up and top-down query evaluation in recursive databases. Asserts query and evaluate terms that trigger goal-directed fact generation, enabling a forward-chaining network to simulate SLD resolution.
Description Logic Programs (DLP)
A technique from Grosof et al. (2003) providing a direct mapping from a subset of OWL Description Logic into equivalent Horn rules (logic programs). Used in FuXi to compile OWL axioms (inverseOf, TransitiveProperty) into N3 Horn rules for RETE-UL evaluation.
Meta-Interpreter
An interpreter for a language written in the language itself. In FuXi, the meta-interpreter compiles N3/RIF rules and a SPARQL goal into RETE-UL meta-interpretation rules (evaluate-k and query-p terms) that drive backward-reasoning simulation via a forward-chaining network.
Notation 3 (N3)
A W3C Semantic Web rule language extending RDF with quantified variables, formula contexts, and rule notation. Supported by early reasoners CWM, Euler, Pychinko, and FuXi. N3 rules use left-to-right infix notation with { premise } => { conclusion } syntax.
Open World Assumption (OWA)
The semantic principle of OWL and RDF stating that the absence of a stated fact does not imply its falsehood. A reasoning-aware application can assume a logically entailed statement is present even if not explicitly in the knowledge base. SPARQL 1.1 Entailment Regimes formalise this declaratively.
Production Rule Matching
The process of matching facts in working memory against conditions (left-hand sides) of production rules to determine which rules can fire. RETE and RETE-UL networks implement this efficiently using discriminating network nodes.
RETE-UL
A modification of the original RETE production rule algorithm (Doorenbos 1995) that limits fact syntax to 3-item tuples, naturally mapping to RDF triples (subject, predicate, object). Uses hash tables for efficient alpha and beta network node evaluation.
Rule Interchange Format (RIF)
A W3C standard for exchanging rules among rule systems. FuXi adopts the RIF Basic Logic Dialect (BLD) as its abstract syntax and API for representing and serializing Horn rules. FuXi can output rules in both BLD and N3 format.
SLD Resolution
Selective Linear Definite clause resolution β€” the inference mechanism underlying logic programming. Implemented in FuXi via backward-chaining simulation using the Backward Fixpoint Procedure over a forward-chaining RETE-UL network.
SPARQL Interlocution
An extension of Bry's BFP meta-interpreter that incorporates SPARQL service evaluation into the reasoning loop. Generates open queries and intermediate bindings, enabling complete, sound, memoized bottom-up simulation of SLD resolution even over recursive rules. Enables declarative SPARQL Entailment Regime evaluation without pre-materializing the full inference closure.
Sideways Information Passing (SIP)
Query evaluation strategies that pass variable binding information (bound/free adornments) sideways between rule body terms. Originating from relational database Magic Sets research (Beeri & Ramakrishnan 1987; Bancilhon et al. 1985), SIP enables efficient evaluation of recursive queries by directing search toward relevant facts.
TBox (Terminological Box)
In Description Logic, the TBox contains terminological statements: class names, property descriptions, restrictions, and their hierarchies. Defines the vocabulary (schema) used to describe a domain.
TBox / ABox
In Description Logic: TBox (Terminological Box) defines the vocabulary β€” class names, property descriptions, restrictions, and hierarchies. ABox (Assertional Box) contains grounded individual statements using that vocabulary. Together they constitute an OWL knowledge base.
⚑ SPARQL Workbench
Query the FuXi meshup knowledge graph via URIBurner