Codage DFSR (Deep First Search for RDF)

 
 

Les codes du niveau 2 sont construits à partir des codes du niveau 1. L’algorithme de la phase 2, décrit ci dessous effectue la jointure de codes du niveau 1 qui partagent un nœud.

procedure DFSRTwoEdges ()

  1. 1.  P: set of DFSR code of size 1

  2. 2.  var level2 = {}

  3. 3.  for all DFSR codes d1 in P do

  4. 4.    for all DFSR codes d2 in P do

  5. 5.      Case 1: d1.subject = d2.subject

  6. 6.         d=dfsr(d1,d2,1,3)

  7. 7.          if(instanceInRep(d)) then {

  8. 8.            d.kernel= concat(d1.id,d2.id)

  9. 9.           level2 = level2 U d

  10. 10.           marked(d1) //marked

  11. 11.           marked(d2) } //marked

  12. 12.     Case 2: d1.subject = d2.object

  13. 13.        if(d1<d2) then

  14. 14.          d2.setDiscoveries(3,1)

  15. 15.        else

  16. 16.          d1.setDiscoveries(2,3)

  17. 17.        d=dfsr(d1,d2)

  18. 18.        if(instanceInRep(d)) then {

  19. 19.          d.kernel= concat(d1.id,d2.id)

  20. 20.           level2 = leve2 U d

  21. 21.           marked(d1) //marked

  22. 22.           marked(d2) } //marked

  23. 23.     Case 2 bis: d1.object = d2.subject

  24. 24.         //permute d1 and d2

  25. 25.          goto case 2

  26. 26.      Case 4: d1.object = d2.object

  27. 27.          d=dfsr(d1,d2,3,2)

  28. 28.           if(instanceInRep(d)) then {

  29. 29.              d.kernel = concat(d1.id,d2.id)

  30. 30.               level2 = level2 U d

  31. 31.               marked(d1) //marked

  32. 32.               marked(d2) } //marked

Algorithme

  1. PucePrésentation

Procédures principales

  1. PuceDFSROneEdge

  2. PuceDFSRTwoEdges

  3. PuceDFSNEdges

Procédure DFSRTwoEdges