Re: [prov-o] How to express Involvement as as an "Abstract" class in OWL

Hi Luc,

I think your approach works, I don't see any issue for the moment.
Perhaps the only downside, which I don't think is that problematic, is 
that we need to add extra sub-properties that (re)define the properties 
defined at the level of the class that we cannot instanciate, e.g., 
provs:entity which has as a domain provs:EntityInvolvement, need to be 
redefined at the level of the descendent classes that can be 
instanciated, e.g., prov:usedEntity for prov:Usage.

Thanks, khalid


On 23/02/2012 12:41, Luc Moreau wrote:
> Hi Khalid,
>
> Just trying to expand on this idea:
>
> :a1 a prov:Activity
>   prov:used :e1
>   prov:usage [a Usage
>                       prov:usedEntity  :e1
>                       prov:usedTime t]
>
>
> Then, in prov-s (s for structure)
>
>
>  prov:usedEntity subPropertyOf provs:entity
>  prov:Usage subclassOf provs:EntityInvolvement
>  prov:usedTime subRelationOf provs:hadTemporalExtent
>  provs:entity domain: provs:EntityInvolvement
>                      range  prov:Entity
>
>   prov:usage subrelationOf provs:qualified
>   provs:qualified domain: provs:Element
>                            range: provs:Involvement
>   prov:Activity subclassOf provs:Element
>   prov:Entity subclassOf provs:Element
>
> All the patterns are preserved. The concern about Involvement not
> being abstract has disappeared. In prov, you can't express instance
> of involvement, its' only in provs you can.
>
> Thoughts?
>
> Luc
>
> On 02/23/2012 11:52 AM, Khalid Belhajjame wrote:
>> On 23/02/2012 11:44, Luc Moreau wrote:
>>> Hi Khalid,
>>>
>>> Can the structure and vocabulary be in separate ontologies?
>>> This would allow the vocabulary to be kept as simple as possible, as 
>>> close to the data model as possible.
>>> I don't think it would be a requirement for the structure-part to be 
>>> OWL-RL compatible.
>>
>> I haven't thought about it hard, but I guess one of the issue we may 
>> need to solve in that case is the properties that are common to the 
>> sub-classes and defined at the level of the "abstract" class. For 
>> example, EntityInvolvement has the property "entity" that is used to 
>> specify the involved entity. If we opt for the solution you are 
>> suggesting, then we will need to define such property for every 
>> descendent class that can be instantiated.
>>
>> Khalid
>>> Thoughts?
>>>
>>> Luc
>>>
>>> On 02/23/2012 10:59 AM, Khalid Belhajjame wrote:
>>>>
>>>> In the prov-o ontology, the involvement class is used as a mean for 
>>>> giving a structure to the ontology. There are different types of 
>>>> involvement, e.g., Usage, Generation and Derivation. However, as it 
>>>> is, the ontology allows specifying an instance of Involvement that 
>>>> is not an instance of any of its sub-classes. That should not be 
>>>> allowed.
>>>>
>>>> In OWL, the notion of abstract class does not exist, however, one 
>>>> thing that can be done to avoid the above issue is to ass a 
>>>> constraint specifying that Involvement is equivalent to the class 
>>>> constructed by unionining its sub-class. While this solution is 
>>>> plausible, I am not sure if this constraint is OWL-RL compatible. I 
>>>> suspect so, but we need a confirmation.
>>>>
>>>> The same problem occurs in other cases in the ontology where the 
>>>> classes have been introduced for shaping the structure of the 
>>>> ontology, for example Element, ActivityInvolvement, 
>>>> EntityInvolvement and AgentInvolvement.
>>>>
>>>> khalid
>>>>
>>>
>>
>

Received on Thursday, 23 February 2012 13:10:02 UTC