.symbol_type Ref
.symbol_type Uri
.symbol_type Value

.decl part(uri:Uri, supplier:Uri)
.input part

.decl fact(part:Uri, key:Uri, value:Value)
.input fact

.decl warning(part:Uri, msg:symbol)
.output warning

.decl part_status(part:Uri, status:Value)
.decl active(part:Uri)

part_status(part, status) :- fact(part, "http://purl.org/ee/digikey-fact-key#1989", status).

active(part) :- part_status(part, "Active").

warning(part, cat("Not active from ", supplier)) :- part(part, supplier), !active(part).

/*
active(part) :- fact(part, "http://purl.org/ee/digikey-fact-key#1989", "Active").

warning(part, "Not active") :-
    fact(part, "http://purl.org/ee/digikey-fact-key#1989", status),
    status != "Active".
*/