should be a simple self-join. The where clause of one table has common ID to the second instance on the second filtering criteria.
select
v1.resource_id,
v1.value Title,
v2.value YearPublished
from
Value v1
Join Value v2
on v2.type = 2
AND v2.value in ( 1822, 1835, 1912 )
AND v1.resource_id = v2.resource_id
where
v1.type = 1
v1.value = 'Moby Dick'
I would have a composite index on your table on (type, value, resource_id) instead of individual indexes on each column
Now lets look at what this is doing. If you look at the very BASIC part of the query as it only pertains to the "v1" alias, it is looking for the type = 1 (representing the title), AND the value is the name of the book of interest. You probably get that easy enough.
So now all you are doing is adding an additional criteria for a year written/published (or whatever your other "types" of data indicate). This becomes the join to the same table AGAIN, but with a different alias. Now, for the relationship, just put THAT criteria there, but IN ADDITION, you are also making sure the resource_id is the same as in the first v1 resource found.
The benefit here, is your outer primary query will start the data looking FIRST for only those that qualify for the title which would be a somewhat small list. And then, only from that small list does it even care if there is a join condition to the second table by the same resource AND the additional query you are looking for (the list of dates, years, or whatever).
Now if you had some other "value" with a type of 3, but did not care what values were in that, you would just join to the value table again as ex: alias v3, but only do the join on the v3.type = 3 and v1.resource_id = v3.resource_id
By using the alias references, and the value column, just assign the final column alias name to what it is supposed to represent as sampled here.
If doing such a possible 3rd, 4th, or more to the same value table, you probably want an additional index on (resource_id, type, value). Yes, two indexes with same columns, but to optimize the 2nd, 3rd, 4th JOIN condition purposes.