Give me all the genes shared with two diseases introduced

Database: 
Statement: 
Give me all the genes shared with two diseases $disease1$ (e.g. Osteosarcoma) and $disease2$ (e.g. Alzheimer disease)
A limit of results per page $number$ (e.g. 10)
NOTE: This query can take too much time according to the limit of results established by the user.
Query: 
SELECT DISTINCT ?geneName ?Disease1Name ?Disease2Name FROM <http://rdf.disgenet.org> WHERE { ?gda <http://semanticscience.org/resource/SIO_000628> ?gene,?disease1 . ?gda2 <http://semanticscience.org/resource/SIO_000628> ?gene,?disease2 . FILTER (?gda != ?gda2) FILTER(?disease1 != ?disease2) FILTER regex(?disease1, "umls/id") FILTER regex(?disease2, "umls/id") FILTER regex(?gene, "ncbigene") ?disease1<http://purl.org/dc/terms/title>?Disease1Name . ?disease2<http://purl.org/dc/terms/title>?Disease2Name . Filter REGEX(?Disease1Name, "??disease1", "i") Filter REGEX(?Disease2Name, "??disease2", "i") ?gene<http://purl.org/dc/terms/title>?geneName . } LIMIT ??number