Ajuda com java/xml e grafo

[b]Ae galera, blzinha???

to entalado com um trampo aki =(
seguinte: tem um programa q gera um arquivo XML pra mim, exemplo:[/b]

<Galicia_Document>
−<Lattice numberObj=“21” numberAtt=“22” numberCpt=“27”>
<Object>A processes</Object>
<Object>A feeding system</Object>
<Object>B feeding</Object>
<Object>A production</Object>
<Object>A growth</Object>
<Object>B concentrate food</Object>
<Object>B calves</Object>
<Object>B elephantGrass</Object>
<Object>A prod systems</Object>
<Object>B postweaning</Object>
<Object>A feeding system2</Object>
<Object>A intensive</Object>
<Object>B production systems</Object>
<Object>B intensive</Object>
<Object>A fattening</Object>
<Object>B production</Object>
<Object>A pasture usage</Object>
<Object>A brachiaria2</Object>
<Object>A males</Object>
<Object>A brachiaria</Object>
<Object>B preweaning</Object>
–<Concept>
<ID> 1 </ID>
−<Intent>
<Attribute_Ref>Production</Attribute_Ref>
<Attribute_Ref>AnimalProduction->Production</Attribute_Ref>
</Intent>
<UpperCovers>
</UpperCovers>
</Concept>

<Concept>
<ID> 3 </ID>
−<Intent>
<Attribute_Ref>Production</Attribute_Ref>
<Attribute_Ref>FeedingSystems</Attribute_Ref>
<Attribute_Ref>AnimalProduction->Production</Attribute_Ref>
</Intent>
−<UpperCovers>
<Concept_Ref>1</Concept_Ref>
</UpperCovers>
</Concept>

[b]Deletei algumas partes pois nao preciso de tudo, tipo, meu programa precisa contar quantos objetos eu tenho no XML <Object>A processes</Object>
isso eu fiz usando XPath, indiquei o nome do arqvuio XML e fiz ele contar quantos <Object> eu tenho
até aí tranquilo

esses <ID> são os nós
tenho 27 nós no grafo
cada nó contém esses <Attribute_Ref> dentro do elemento <Intent>
pelo XPath tbm consegui pesquisá-los

o elemento <UpperCovers> indicam quem são os pais deste nó q estamos vendo
há nós que possuem apenas um <UpperCovers> que serão os nós que utilizarem

o problema é: pegando esses <Object> [nesse exemplo são 21] eu faço uma matriz[i][j] <Object> versus <Object> para calcular a similaridade que há entre eles

esse cálculo seria: colocarei C para Cálculo,
no1 --> vetor dos Objects q estão nas linhas, quando o i estiver apontando para ele
no2 --> vetor dos Objects q estão nas colunas, quando o j estiver apontando para ele

pensei assim:
for (int i = 0; i < objects.lenght(); i++) {
for (int j = 0; j < objects.lenght(); j++) {
if (i == j)
C = 1; pq quando o Object da linha i for igual ao Object da coluna j , o calculo dá 1

     else {
        no1[] = nós que possuem apenas 1 pai; 
        no2[] = nós que possuem apenas 1 pai; //esses dois calculos é feito a partir do nó analisando, e subo contando deste nó para cima, pegando os nós q tem apenas um pai q estejam em seu caminho, ou seja, q aja uma ligação deste nó com os outros (expliquei bem né? =( hehe)
        notot = quantidade de nós comuns entre no1[] e no2[];
        nosub1 = quantidade de nós que estão presentes em no1[] e não há em no2[];
        nosub2 = quantidade de nós que estão presentes em no2[] e não há em no1[];
        C = (notot / (notot + 0.5 * (nosub1) + 0.5 * (nosub2)));

}
}

já é complicado e eu expliquei pior ainda né :sad:
bom, mas se alguém puder me ajudar, agradeço mesmo

abraçosss
qualqué duvida me perguntem q eu tento explicar melhor[/b]