I have no prob to write down some code as answer, but its hard to write it clear and easy to understand.
One more time: I ask how to get in jena sparql result like this object + object property + subject(s) [ C2-C4].
And the result is (this sample with 3 subjects)
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?c ?p1 ?C2 ?C3 ?C4
WHERE {
?c rdfs:subClassOf ?r .
?r rdf:type owl:Restriction .
?r owl:onProperty ?p1 .
?r owl:someValuesFrom ?i .
?i rdf:type owl:Class .
?i ?prop ?l .
?l rdf:first ?C2 .
?l rdf:rest ?m .
?m rdf:first ?C3 .
?m rdf:rest ?m2 .
?m2 rdf:first ?C4 .
?m2 rdf:rest rdf:nil .
}