2002 — The Pattern, Before There Was a Company

The vision lineage brackets two decades: a 2002 feasibility study that fixed the interface between an image-processing front end and a formal reasoner, and a 2022 system that put a deep network on the front of the same socket. Start where the pattern starts.

The oldest paper in this lineage is not a VIStology program, and we say so plainly: it is Air Force-funded research by Dr. Mieczyslaw Kokar — VIStology's president — then at Northeastern University. It is where the pattern starts.

The front end was a wavelet corner detector followed by a pixel-counting heuristic that sorted each corner into one of four types. No neural network, no learning, no training set — 2002-era image feature extraction, run over simulated intensity and range imagery. What it emitted, though, is the thing to look at: crisp logical assertions naming individuals, giving each one an ontology class, and relating them — corner(c1), intensityCornerType1(c1), hasCorner(t,c1). Nothing numeric crossed the boundary. The detector's job was to turn signal into symbols; the reasoner's job was to turn symbols into conclusions.

And what a target was lived nowhere in the recognition code. A target type was defined declaratively, in the ontology, as a set of cardinality constraints over feature types — this kind of target has four corners of that type and four of the other. Recognition was constraint satisfaction against that definition. Teach the system a new target and you write knowledge, not code. Two sensors that were each individually ambiguous were fused in the knowledge representation, not in the signal chain — which remains, twenty-four years later, the most precise argument we know for why the symbolic layer has to be there.

The paper reports no accuracy figures and makes no performance claim; its authors explicitly decline to make one. We cite it for exactly one thing: the interface was already drawn.

2022 — FLOCK: The Socket, Concretely

The most recent system in this lineage is the one with a real neural network in it, and it is the clearest picture of the architecture we have. Under Army contract W909MY-19-P-0005, VIStology and Southwest Research Institute built FLOCK — a deep object detector on one side of a REST socket, and a formal reasoner on the other.

Architecture of FLOCK The FLOCK architecture. Video frames from a visual or infrared camera enter the SOLO detector — Southwest Research Institute's component, a hybrid of YOLO, Faster R-CNN and Multi-box SSD built in Python on Caffe and exposed as a REST microservice at about ten frames per second — which emits bounding boxes and an objectness confidence and no class labels at all. Over HTTP, a JSON payload of top-left and bottom-right box corners plus a confidence value crosses into VIStology's Java Semantic Reasoner, where a Tracker turns boxes into stable tracks, a Semantic Annotator lifts tracks and sensor metadata into OWL and RDF individuals and typed property assertions, and a Semantic Engine running BaseVISor with OWL 2 RL inference and user-defined BVR rules removes high-confidence false alarms and raises the confidence of true detections in the World Model. The reasoner draws on evidence the network cannot represent — a range map, the sensor field of view, and a semantic scene segmentation — from which box width, range and field of view yield an object's size in meters. No arrow returns to the detector: the reasoner overrules the network, it never retrains it. FLOCK — The Socket, Concretely A neural detector in Python behind a REST socket; a formal reasoner in Java on the other side of it Sub-symbolic — the extractor Video frames visual or IR camera Southwest Research Institute SOLO Detector hybrid of YOLO / Faster R-CNN / Multi-box SSD Python · Caffe · REST microservice · ~10 FPS emits boxes + objectness confidence — no class labels HTTP · request / response payload — JSON · tl / br = box corners · confidence = objectness {"detection": [ {"tl":[0,0], "br":[1,3], "confidence":0.0}, {"tl":[4,6], "br":[7,9], "confidence":0.1} ]} No arrow returns here. The reasoner overrules the detector. It never retrains it — no gradient, no weight update, no online learning. Symbolic — the socket, and everything behind it VIStology · Java Semantic Reasoner Tracker bounding boxes become tracks with stable IDs, frame to frame the lift Semantic Annotator tracks + sensor metadata are lifted into OWL/RDF individuals and typed property assertions Semantic Engine BaseVISor · OWL 2 RL inference user-defined BVR rules removes high-confidence false alarms; raises the confidence of true detections World Model The engine rewrites confidences · high-confidence false alarms dropped to zero · true detections boosted Evidence the network cannot represent Range map — range to the box’s bottom-center pixel Sensor field of view + pointing metadata Scene segmentation — sky · water · cloud · road · building · vegetation BVR rules — hand-authored, hand-tuned · estimated width > 15 m → confidence 0 · in water / cloud / sky → penalized · on road / building / man-made → boosted · in vegetation → discounted Symbolic reasoning is where pixels become meters — box width + range + field of view give an object’s real-world size, a fact the network cannot represent. The rules were written and tuned by hand. Learning them is stated as the next step, not a result. Moskal, Kokar & Whittington, “Improved Scene Understanding through Semantic Reasoning and Online Learning,” Proc. SPIE 12122, 2022
Figure 2. FLOCK, redrawn from the 2022 SPIE architecture figure. Southwest Research Institute’s SOLO detector runs as a Python REST microservice and emits nothing but boxes and an objectness confidence — no class labels. Over HTTP, that JSON crosses into VIStology’s Java reasoner, where the Semantic Annotator lifts it into OWL/RDF assertions and BaseVISor applies OWL 2 RL inference and BVR rules against evidence the network has no way to represent: an object’s size in meters, and the terrain it sits on. The reasoner rewrites the detector’s confidences in the world model. It does not retrain the network.

What crosses the wire

SOLO, the detector, is Southwest Research Institute's component — a hybrid of YOLO, Faster R-CNN and Multi-box SSD, built in Python on Caffe, exposed as a REST microservice, running at around 10 frames per second. It emits bounding boxes and an objectness confidence, and nothing else. No class labels. The network never tells the reasoner what it thinks it has seen — only that something is there, and how sure it is.

That JSON crosses an HTTP boundary into VIStology's Java Semantic Reasoner, where a Tracker turns per-frame boxes into tracks with stable identity, a Semantic Annotator lifts those tracks and their sensor metadata into OWL/RDF individuals and typed property assertions — the same handoff, in a modern syntax, as the Prolog facts of 2002 — and a Semantic Engine runs BaseVISor over them with OWL 2 RL inference and user-defined BVR rules.

Symbolic reasoning is where pixels become meters

The reasoner is not a second opinion on the same evidence. It is holding evidence the network structurally cannot represent: a range map, the sensor's field of view, and a semantic segmentation of the scene into sky, water, cloud, road, building and vegetation. Box width plus range plus field of view gives an object's real-world size in meters — a quantity no pixel-space detector computes, because it has no concept of a meter.

From that, the rules follow, and they are blunt: a declaration whose estimated width exceeds 15 meters has its confidence dropped to zero. Declarations falling in water, cloud or sky are penalized; those on roads, buildings and man-made surfaces are boosted; those in vegetation are discounted. A tank-sized blob in a patch of sky, or a forty-meter-wide "vehicle," is not a plausible target — and now something in the system knows it.

The reasoner overrules the network. It never retrains it.

Be exact about the direction of the loop, because this is where neurosymbolic marketing usually starts lying. FLOCK closes the loop at the level of belief, not at the level of weights. The Semantic Engine removes high-confidence false alarms from the world model and raises the confidence of genuine detections. It sends no gradient back, updates no weight, and adapts no network. There is no arrow returning to the detector, and we have not drawn one.

Be equally exact about the rules: in the work reported, they were hand-authored and hand-tuned. Rule parameters were varied manually from one experiment to the next; learning them is identified by the authors as the next step, not delivered as a result. The paper's title says online learning; the paper's experiments do not implement it, and neither does this page.

What the work does establish, it establishes on its own terms. The evaluation is offline, on recorded infrared video from a government-furnished dataset with ground truth, on scenarios selected to exercise occlusion. It reports no mAP, no precision, no recall — its evidence is the shape of the detection-versus-false-alarm curves, and the authors' own conclusion: "The experiments decisively confirm the claim that semantic reasoning is a valuable tool for improving the quality of target detection."

Now substitute your LLM

Nothing in that architecture depends on the extractor being SOLO. Swap in a vision-language model, a modern detector, or an LLM reading text instead of pixels, and the rest of the diagram is unchanged: the annotator lifts its output into the ontology, the reasoner checks it against constraints the model cannot represent, and the answer that comes out is traceable to the axiom or the rule that produced it. The extractor gets better every year. The obligation to be right does not get easier — and that obligation is met on the far side of the socket, or it is not met at all.

Proof Points

Flagship

FLOCK — Detector Meets Reasoner

Army contract W909MY-19-P-0005, with Southwest Research Institute. A deep detection network (SOLO) behind a REST socket, emitting boxes and objectness confidence; a BaseVISor reasoner on the other side applying OWL 2 RL inference and BVR rules against a range map, sensor field of view and scene segmentation. The reasoner suppresses high-confidence false alarms and boosts genuine detections. Published at SPIE Defense + Commercial Sensing 2022.

Selected Publications

Improved Scene Understanding Through Semantic Reasoning and Online Learning

Moskal, J.J., Kokar, M.M. & Whittington, S.J.

Proc. SPIE 12122

View Publication

The origin of the pattern predates the company. The paper below is not a VIStology program: it is AFOSR-funded research by Dr. Mieczyslaw Kokar — VIStology's president — then at Northeastern University. It reports no accuracy results and claims none. We cite it for one reason: it is where the interface between a sub-symbolic extractor and a formal reasoner was first drawn.

An Example of Using Ontologies and Symbolic Information in Automatic Target Recognition

Kokar, M.M. & Wang, J.

SPIE, Sensor Fusion VI, Vol. 4731

View PDF

See the full list of VIStology publications →

Put a Reasoner Behind the Detector

If your detection network is confident when it is wrong, we can help you put sound inference on the other side of the socket — checking every declaration against physical plausibility, the terrain, and the context the network cannot represent.

Get in Touch