Hi Boris, here's a slightly modified version of your example. I hope it clarifies how the inferencing procedures in n10s work.
Step 1: Data load (requires APOC)
UNWIND [{ rel: "SUBCLASS_OF", item2: "Network", item1: "Untrusted Network"},
{ rel: "SUBCLASS_OF", item2: "Untrusted Network", item1: "LTE Network"},
{ rel: "SUBCLASS_OF", item2: "Untrusted Network", item1: "Internet"},
{ rel: "SUBCLASS_OF", item2: "Untrusted Network", item1: "Wireless Network"},
{ rel: "TYPE", item1: "WIFI-1234", item2: "Wireless Network"},
{ rel: "TYPE", item1: "WIFI-6789", item2: "Wireless Network"},
{ rel: "TYPE", item1: "WIFI-0631", item2: "Wireless Network"},
{ rel: "SUBCLASS_OF", item2: "Sniffer", item1: "Malicious Sniffer"},
{ rel: "SUBCLASS_OF", item2: "Sniffer", item1: "Authorized Sniffer"},
{ rel: "TYPE", item1: "NetXRay 3.0", item2: "Malicious Sniffer"},
{ rel: "TYPE", item1: "Wireshark 3.2.5", item2: "Authorized Sniffer"},
{ rel: "TYPE", item1: "SolarWinds", item2: "Authorized Sniffer"},
{ rel: "MAY_USE", item1: "NetXRay 3.0", item2: "WIFI-1234"},
{ rel: "MAY_USE", item1: "SolarWinds", item2: "WIFI-1234"},
{ rel: "SUBCLASS_OF", item2: "WAP", item1: "Rogue Wi-Fi AP"},
{ rel: "SUBCLASS_OF", item2: "WAP", item1: "Authorized Wi-Fi AP"},
{ rel: "TYPE", item1: "Meraki Go GR10-HW", item2: "Authorized Wi-Fi AP"},
{ rel: "TYPE", item1: "Netgear WAC104", item2: "Authorized Wi-Fi AP"},
{ rel: "TYPE", item1: "Netgear WAC510", item2: "Rogue Wi-Fi AP"},
{ rel: "MAY_USE", item1: "Meraki Go GR10-HW", item2: "WIFI-1234"},
{ rel: "MAY_USE", item1: "Netgear WAC104", item2: "WIFI-6789"},
{ rel: "MAY_USE", item1: "Netgear WAC510", item2: "WIFI-6789"},
{ rel: "SUBCLASS_OF", item2: "VPN", item1: "IOS VPN"},
{ rel: "SUBCLASS_OF", item2: "VPN", item1: "Android VPN"},
{ rel: "SUBCLASS_OF", item2: "Wi-Fi IPS", item1: "Harmony IoT"}] as item
merge (i1:Item { id: item.item1})
merge (i2:Item { id: item.item2})
with i1, i2, item.rel as relname
call apoc.merge.relationship(i1,toupper(relname),{},{},i2) yield rel
return count(rel) as relsCreated
Step 2: Queries using inferencing (requires n10s)
Question: Which elements may access an untrusted network?
MATCH (cat:Item { id: "Untrusted Network"})
CALL n10s.inference.nodesInCategory(cat, {subCatRel: "SUBCLASS_OF", inCatRel: "TYPE"}) yield node as network
MATCH (network)<-[:MAY_USE]-(x)-[:TYPE]->(type)
RETURN type.id + " '" + x.id + "' can access network '" + network.id + "'" as summary
Which returns:
╒════════════════════════════════════════════════════════════════════════╕
│"summary" │
╞════════════════════════════════════════════════════════════════════════╡
│"Authorized Wi-Fi AP 'Netgear WAC104' can access network 'WIFI-6789'" │
├────────────────────────────────────────────────────────────────────────┤
│"Rogue Wi-Fi AP 'Netgear WAC510' can access network 'WIFI-6789'" │
├────────────────────────────────────────────────────────────────────────┤
│"Authorized Sniffer 'SolarWinds' can access network 'WIFI-1234'" │
├────────────────────────────────────────────────────────────────────────┤
│"Authorized Wi-Fi AP 'Meraki Go GR10-HW' can access network 'WIFI-1234'"│
├────────────────────────────────────────────────────────────────────────┤
│"Malicious Sniffer 'NetXRay 3.0' can access network 'WIFI-1234'" │
└────────────────────────────────────────────────────────────────────────┘
Not sure it reflects what you were trying to achieve but maybe you can describe what other queries would be relevant?
Hope this helps.
JB.