ciao Nicola, se ci fai qualche esempio magari sappiamo darti una mano, sennò non è chiaro (almeno a me) se ciò che viene duplicata è la risorsa oppure magari alcune triple legate ad essa.
In quest'ultima ipotesi occhio ai blanknodes, che producono a volte duplicazioni proprio poiché risorse "anonime" (e quindi in particolari casi chiedere due volte la stessa cosa non può che produrre due rappresentazioni della medesima cosa: su alcuni sistemi c'è un id interno per disambiguare, ma non è proprio standard come cosa)
In generale puoi usare (come immagino avrai fatto :-) la parola chiave DISTINCT subito dopo SELECT.
Se invece la questione che sollevi è più relativa alla denormalizzazione del risultato, lì c'è da fare ragionamenti più ampi sia in termini di formato di uscita (ultimamente c'è chi usa dei formati che hanno una intestazione con i nomi dei binding, così da alleggerire un poì le duplicazioni), sia in termini di costruzione delle query. Ma su questo o ci sentiamo a parte con calma con gli interessati per scambiare idee e non intasare la mailing list, oppure se ci dai qualche sempio "pratico" (se possibile ovviamente), magari ci aiuti a capire meglio il problema e proviamo a ragionarci su :-)