私が持っているとしましょう:
- プロパティ 1 はオプションです
- 常に定義される Property2
次と等しい TrueProperty を定義したい:
- Property1 が存在する場合は Property1
- それ以外の場合は Property2
それ以外の場合は Property2
それをしてもいいですか?OWLでそれを行うことはできますか?
ありがとうございました
OWL ではそれを行うことはできません。OWL は、書かれていることについて話すことを意図したものではなく、世界の真実について話します。データ セットに明示的に存在しない事実は、真実である可能性があります。住所が記載されていない履歴書を送られたら、あなたはホームレスであると判断できますか?
ただし、OWL を使用せずに、やりたいことを実行する方法はいくつかあります。FILTER を使用した SPARQL CONSTRUCT クエリ。Property1 の値を推測できる場合は推論を行い、そうでない場合は Property2 をプログラムで追加します。例えば:
CONSTRUCT { ?s <TruProperty> ?o }
WHERE {
{ ?s <Property1> ?o }
UNION
{ ?s <Property2> ?o
FILTER NOT EXISTS { ?s <Property1> ?o }
}
}