Alex J.
Alex J.

Reputation: 337

How to combine Data Properties in OWL?

Say I have:

I want to define TrueProperty that is equal to:

  1. Property1 if Property1 is present
  2. Property2 otherwise

Property2 otherwise

Can I do that? Can I do that in OWL?

Thank you

Upvotes: 0

Views: 102

Answers (1)

Antoine Zimmermann
Antoine Zimmermann

Reputation: 5515

You cannot do that in OWL. OWL is not meant to talk about what's written, it talks about true things of the world. Facts that are not present explicitly in your data set MAY be true. If you send me a CV where you do not mention your street address, can I conclude that you are homeless?

However, there are several ways to do what you want to do, without OWL. A SPARQL CONSTRUCT query with a FILTER, qking a reasoner if you can infer some value for Property1, and if not, adding Property2 programmatically. For instance:

CONSTRUCT { ?s  <TruProperty>  ?o }
WHERE {
    { ?s  <Property1>  ?o }
   UNION
    { ?s  <Property2>  ?o
      FILTER NOT EXISTS { ?s  <Property1>  ?o }
    }
}

Upvotes: 4

Related Questions