0

说我有:

  • 属性 1 是可选的
  • 始终定义的 Property2

我想定义 TrueProperty 等于:

  1. 如果 Property1 存在,则为 Property1
  2. Property2 否则

Property2 否则

我可以这样做吗?我可以在 OWL 中做到这一点吗?

谢谢

4

1 回答 1

4

你不能在 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 }
    }
}
于 2012-12-21T08:21:58.967 回答