Why do the OWL has two different semantics?
Good question and certainly not an easy one to answer, as it is related to the history of OWL and its precursors. I may not be the best expert on this but I'll try to answer the way I understand it.
OWL is heavily influenced by previous ontology languages, especially DAML+OIL, which derives from two languages, namely DAML (DARPA Agent Markup Language) and OIL (Ontology Inference Layer). The semantics of DAML+OIL was purely DL-based and therefore it seemed a natural choice for the designers of OWL to follow that route. However, OWL was built at the same time as the semantics of RDF/RDFS was conceived and these two languages were constructed hand in hand. OWL was planned to be a proper extension of RDFS. Unfortunately, it is not possible to embed RDFS into a Description Logic, so an alternative RDF-based semantics was also defined. I am not completely sure why both semantics were kept, but I can imagine the following reasons:
- DLs were very well understood and studied already (~20 years of research), so that you can switch on and off features of OWL and you immediately get tons of theoretical results, with complexities and algorithms, optimisations etc. So it was very interesting from an implementation point of view to use a DL based semantics for practical reasoning.
- The RDF-based semantics is not decidable, which can be a problem for various reasons, while the OWL DL semantics is. There are some people claiming that decidability is not an issue as the complexity of OWL DL is too high anyway to provide all results in reasonable time.
- Linked Data wasn't in people's mind at the time, so the notion of having Web vocabularies that data link to and follow your nose through the graph was not present. With this view, ontologies are seen as just another kind of RDF document, which gives now more weight to an RDF-based semantics. But at the time of the design of OWL, it seemed less important.
The owl has two different semantics, one is DL-based, and the other is RDF-based, and yet, which one is widespread used, or both are used commonly but depended on the specific applying case?
I think that the two are quite wide spread. It seems, from my perception, that the RDF-based semantics tends to get more traction in recent time, because of Linked Open Data as I said before. Usually, if you want to process huge datasets with reasoning, you don't use DL. But DL reasoners are well used when it comes to reason locally with expressive ontologies. And DL reasoners are quite efficient in fact.
Are the two semantics compatible[?]
There is a certain level of compatibility but they won't give you exactly the same inferences. First, any OWL DL ontology can be mapped to an RDF document, which is an OWL Full ontology (See OWL 2 Web Ontology Language Mapping to RDF Graphs). Second, if you take two OWL DL ontologies and one is entailed by the other according to the DL semantics, then the translation of the first ontology into an RDF graphs entails the translation of the other according to the RDF-based semantics. This is called the Correspondence Theorem in the specs. However, an OWL Full ontology may entail some facts according to the RDF-based semantics that would not be entailed according to the DL-based semantics, even when the OWL Full ontology is syntactically a valid OWL DL ontology.
how to distinguish between them?
Since they are two semantics, not syntaxes, you do not distinguish them (at least, you can't see the semantics in the ontology itself). It's the reasoner who decides which semantics it uses. To know which one is used, you have to read the documentation.
With respect to RDF-based OWL, the ontology file written by one of the syntaxs,including Turtle, owl/xml, Manchester Syntax and so on, should first be parsed via RDF parser tool, then can be handled by the application, does not it?
Not quite. If you use the Turtle, RDF/XML, N-triple, JSON-LD, or any RDF serialisation syntax, you obviously need an appropriate RDF parser tool. However, if you use syntaxes that are specific to OWL, such as the Manchester Syntax, the OWL/XML syntax or the Functional Syntax, you need specific parsers for them. However, to bring it back to an RDF graph, you need an extra tool. But usually, if you want to use the RDF-based semantics, you work on RDF documents preferably.