我试图根据对象属性之间的关系来定义一个类。我不确定它是否可以在 OWL/Protege 中表达,并希望得到一些意见。此外,即使可能,我想知道 Protege 是否能够在给定类定义对象实例的情况下推断出该类的新个体。
我会用一个简单的例子来说明:
有任务和资源。 (
Task ⊑ Thing
, Resource ⊑ Thing
)
任务需要资源。 (
Task ⊑ requires.Resource
) 与逆requiredBy
共享资源依赖(
SRD
)是指至少两个任务需要相同的资源。我要创建的 SRD 类必须至少有两个任务需要相同的资源(即>=2 hasTask.Task
),并且只有 1 个资源(即=1 hasResource.Resource
)必须是链接任务都依赖的资源。
考虑以下情况:
在这种情况下,应该有两个 SRD 实例,其中第一个实例有两个“hasTask”属性与任务 T1 和 T2,以及一个“hasResource”属性与 R1。第二个实例有两个带有任务 T3 和 T4 的“hasTask”属性,以及带有 R2 的 1 个“hasResource”属性。
任何想法:
到目前为止,我有
SRD ⊑ =1 hasResource.Resource ⊓ >=2 hasTask(Task ⊓ requiredBy.Resource)
。但是这个定义当然有两个问题:
hasResource
关系中的资源与Resource
关系中的hasTask
相同Tasks
关系中的 >=2 hasTask
需要相同的 Resource
.