A useful command here is "
components", which returns a list of witness sets representing the irreducible components of V(I) which are computed by
numericalIrreducibleDecomposition. When I ran your code, I saw ten irreducible components (8 w/ dimension 2 and degree 4, 2 w/ dimension 3 and degree 8.) This result, which is generally heuristic and involves some randomization, can be validated in this case with
primaryDecomposition if you change the coefficient ring from CC to QQ.
One benefit of working with these witness sets is you can numerically check whether or not a point lies on the associated irreducible component, even if you don't know the vanishing ideal of that component. For example,
i56 : comps = components N
o56 = {C, (dim=2,deg=4), (dim=2,deg=4), (dim=2,deg=4), (dim=2,deg=4), (dim=2,deg=4), (dim=2,deg=4), (dim=2,deg=4), (dim=3,deg=8), (dim=3,deg=8)}
o56 : List
i57 : apply(comps, c -> isOn(point{{1,1,1,1,0,0,0,0,0,0}}, c))
o57 = {false, false, false, false, false, true, false, false, false, false}
o57 : List