Parse tree of "the ports of Santo Domingo and Cartagena in present-day Colombia"
Solution 1:
A purist might expect that "ports of Santo Domingo and Cartagena in present-day Colombia" implies that both are in Colombia, and with an extra comma, "ports of Santo Domingo, and Cartagena in present-day Colombia" to mean only Cartagena was in Colombia.
I for myself would try to avoid this sentence structure altogether, if I could foresee such an ambiguity. I would either say "ports of Santo Domingo and Cartagena, which are in present-day Colombia" or "port of Santo Domingo and the port of Cartagena, which is in present-day Colombia." Well, that may be going a bit too far, though.
Solution 2:
It could mean either. The context might make it clearer, but it's a lesson to us all on the need for careful drafting.
Solution 3:
English grammar allows both interpretations, that is, the syntax does not restrict the semantics to one or the other. But, pragmatically, in this situation, it would be weird to talk only about Cartagena being in Columbia but not Santo Domingo., otherwise you would probably say something different to make it explicit that only Cartagena is in present day Columbia.
To answer literally, from phpSyntaxTree, here are two the parse trees:
[NP [ART the] [N ports] [PP [PREP of] [CONJP [N Santo Domingo] [CONJ and] [NP [N Cartagena] [PP [PREP in] [NP [ADJ present-day] [N Colombia]]]]]]]
and
[NP [ART the] [N ports] [PP [PREP of] [CONJP [N Santo Domingo] [CONJ and] [NP [N Cartagena]]]] [PP [PREP in] [NP [ADJ present-day] [N Colombia]]]]