A repository can have several links to the same paper, with slightly different URLs. E.g. philpapers has a "direct download" link, a link to the philpapers coverpage for the paper, and another link to a sub-anchor of that page. Right now I follow each link and process the paper three times.
An obvious partial fix would be to only process documents if their URL is new. (I should do that anyway.) It's only a partial fix to the present problem because it doesn't help with cases where the multi-linked document is not a philosophy paper: then I don't store anything in the 'docs' table. Having a separate 'locations' table would be the clearest solution here. Another possibility is to store links from intermediate pages in the 'links' table, possibly flagging (in a new column) that they are not links to be found on the original source page. Before processing a link, I could then check that it's not already in the table.
A repository can have several links to the same paper, with slightly different URLs. E.g. philpapers has a "direct download" link, a link to the philpapers coverpage for the paper, and another link to a sub-anchor of that page. Right now I follow each link and process the paper three times.
An obvious partial fix would be to only process documents if their URL is new. (I should do that anyway.) It's only a partial fix to the present problem because it doesn't help with cases where the multi-linked document is not a philosophy paper: then I don't store anything in the 'docs' table. Having a separate 'locations' table would be the clearest solution here. Another possibility is to store links from intermediate pages in the 'links' table, possibly flagging (in a new column) that they are not links to be found on the original source page. Before processing a link, I could then check that it's not already in the table.