OWL 2 Came Out Today(w3.org)
w3.org
OWL 2 Came Out Today
http://www.w3.org/TR/owl2-overview/
3 comments
Honest question: does anyone actually /use/ OWL? My only experience with it was in a class, and it seemed to me like a very verbose and overly-complicated way of describing some pretty simple stuff.
All general purpose ontologies look like very verbose and overly-complicated ways of describing things. OWL is no different, and the fact that it has taken on the challenge of relating several different preexisting ontologies to each other complicates it further.
Now, that doesn't mean it's useful. The largest ontological framework I'm aware of is Cyc, which uses its own proprietary ontology and is at least as complex as OWL ever was or will be. Ultimately I think it's about as useful as reasoning about RDF ever is, which is to say not very at this time--but that's not really its fault.
Now, that doesn't mean it's useful. The largest ontological framework I'm aware of is Cyc, which uses its own proprietary ontology and is at least as complex as OWL ever was or will be. Ultimately I think it's about as useful as reasoning about RDF ever is, which is to say not very at this time--but that's not really its fault.
You're comparing Apples and Oranges a bit. OWL is formal framework that can be used to describe ontologies. Cyc is an attempt to create an ontology that describes the world.
You are right that a lot of these "glob everything together" ontologies inevitably get too unwieldy to actually use. And wouldn't be so far off saying that OWL itself is a bit hard to grok. But it is important to see what the difference is. What is important about something like OWL, OWL-DL, or OWL Light is that they specify the types of axioms you are allowed to use. For example, the following statements are very different:
- Humans have exactly two biological parents
- Humans must have biological parents
- Humans must have biological parent(s)
- Humans can have parent(s)
OWL, and its subsets, are attempts to carve out logical axioms that allow you to specify the nature of conceptual classes and their properties. You need a framework such as OWL to spell out what you are allowed to state about concepts like this because different types of logical relationships have algorithmic complexity implications. What you are allowed to state is incredibly important to people who want to perform logical inference, for example, because certain types of axioms will take a dataset on which inference would otherwise be O(P) time, and turn it to O(NP) time.
You are right that a lot of these "glob everything together" ontologies inevitably get too unwieldy to actually use. And wouldn't be so far off saying that OWL itself is a bit hard to grok. But it is important to see what the difference is. What is important about something like OWL, OWL-DL, or OWL Light is that they specify the types of axioms you are allowed to use. For example, the following statements are very different:
- Humans have exactly two biological parents
- Humans must have biological parents
- Humans must have biological parent(s)
- Humans can have parent(s)
OWL, and its subsets, are attempts to carve out logical axioms that allow you to specify the nature of conceptual classes and their properties. You need a framework such as OWL to spell out what you are allowed to state about concepts like this because different types of logical relationships have algorithmic complexity implications. What you are allowed to state is incredibly important to people who want to perform logical inference, for example, because certain types of axioms will take a dataset on which inference would otherwise be O(P) time, and turn it to O(NP) time.
It's also worth noting that a lot of the verbosity and over-complication come not with OWL, but with its RDF serialization in XML. If you use another RDF serialization like Turtle or n3, it's not very verbose at all.
Here is how to say "NY", according to the wiki article on RDF:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:dcterms="http://purl.org/dc/terms/>; <rdf:Description rdf:about="urn:x-states:New%20York"> <dcterms:alternative>NY</dcterms:alternative> </rdf:Description> </rdf:RDF>
hehe. That's funny...
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:dcterms="http://purl.org/dc/terms/>; <rdf:Description rdf:about="urn:x-states:New%20York"> <dcterms:alternative>NY</dcterms:alternative> </rdf:Description> </rdf:RDF>
hehe. That's funny...
That actually says something slightly different, defining NY as an alternative for New York. But yes, the RDF syntax is terrible. Turtle was my favorite.
Something that works for me is always keeping Sesame running (and OpenCyc, but mostly for learning/experimenting - I have never done anything practical with OpenCyc, after years of playing with it) on a server on my LAN at home. If you always have a RDF data store available, then it is easier to use it as an alternative to a relational database, if that is appropriate for a project.
Anyway, I like "semantic web 'light'" :-)