What is the difference between a semantic network and an ontology? How are they related? I have not found any article that describes how these two concepts are related.
A semantic network is a way to implement an ontology. An ontology is just a generalised way of representing knowledge in a particular domain, and there are multiple ways of doing so. The key that distinguishes an ontology from, say, Wikipedia, is that it is formally defined, so that the knowledge represented can be used in programs to reason with.
Semantic networks can be used to do that. Please note that there are many types of semantic networks, so you can use them to represent a wide range of relevant information. Since the point of an ontology is to show the relationships between entities relevant to a domain, they are usually represented as networks — if the information is stored as RDF triples, these can usually be visualised as an equivalent network.
So ontology is the broader, more general term, whereas a semantic network is a more specific way of representing information.