Search code examples
rdfowlknowledge-management

What are the limits to expressability of RDF / OWL / etc


So Im learning about RDF and OWL and "knowledge representation" in general.

1) What are the limits of RDF or OWL formats?

Are there concepts that can't be expressed in RDF? But that can be expressed in OWL? Or the other way around.

Are there concepts that can't be expressed in either?

2) What about this (complicated) example:

"How can someone fall so far, without realising it?".

Could you express this question in RDF or OWL? Or can you even express questions like "Is the sky blue?"

3) Finally... Is there a knowledge representation language that can describe anything?


Solution

  • 1) What are the limits of RDF or OWL formats? Are there concepts that can't be expressed in RDF? But that can be expressed in OWL? Or the other way around.

    RDF is a simple graph model that can be used to capture pretty much anything as long as you can represent it as a triple. OWL (and RDFS) are more expressive than RDF, which means here that you can capture more complex relations: For instance you can also represent the link between sets of things (rdfs:SubClassOf) or use transitive properties (e.g. hasAncestor). OWL can be serialized as a RDF graph too and is particularly useful coupled with a reasoner. So OWL can express everything that RDF can, but RDF alone cannot capture some of the statements available within OWL. It makes a difference when you use a reasoner for instance.

    Are there concepts that can't be expressed in either?

    Modeling temporal or dynamic information is challenging using either RDF or OWL. Bottom line: As long as you could describe your information as a graph you can represent it as RDF.

    2) What about this (complicated) example: "How can someone fall so far, without realising it?". Could you express this question in RDF or OWL? Or can you even express questions like "Is the sky blue?"

    The second question is more in the realm of RDF and OWL. For instance imagine you have a knowledge base inside which you have the statement: sky has-color blue. You could then express a question on it by looking at all the things that are known to be blue and see if sky is among them. The question "Is the sky blue" could be formulated with an OWL class expression (has-color value blue) or via a SPARQL query (?thing has-color blue.). You can think of questions as retrieving the set of things matching some criteria (with SPARQL or OWL) or as you mentioned in the comment as "I want to know if X is true".

    The question "How can someone fall so far, without realising it?" is more difficult to model. You will first need to think how to represent it in your knowledge base. It's an example involving a dynamic behaviour tricky to capture with RDF/OWL.

    3) Finally... Is there a knowledge representation language that can describe anything?

    Maybe a theoretical one, in practice the computational complexity is often the limit to the expressiveness of a language.