Re: [owl changed] PROV-ISSUE-372 (qualified-property-chains): ( prov:qualifedUsage prov:entity ) rdfs:subPropertyOf prov:used

I think it might be a bug in the OWL-API, as far as I understand the
RL specs then property chains should be fine.


If I change:

prov:wasGeneratedBy
    a owl:AsymmetricProperty, owl:FunctionalProperty,
owl:IrreflexiveProperty, owl:ObjectProperty ;

to:

prov:wasGeneratedBy
    a  owl:ObjectProperty ;


the error goes away.

Before:

PS C:\Users\stain\src\prov\ontology> java -jar bin/profilechecker.jar
prov.ttl OWL2RLProfile 2>&1 |grep non-simple|grep wasGener
+ java <<<<  -jar bin/profilechecker.jar prov.ttl OWL2RLProfile 2>&1
|grep non-simple|grep wasGener
Use of non-simple property in IrrefexiveObjectProperty axiom:
[IrreflexiveObjectProperty(<http://www.w3.org/ns/prov#wasGeneratedBy>)
in <http://www.w3.org/ns/prov#><http
Use of non-simple property in AsymmetricObjectProperty axiom:
[AsymmetricObjectProperty(<http://www.w3.org/ns/prov#wasGeneratedBy>)
in <http://www.w3.org/ns/prov#><http:
Use of non-simple property in FunctionalObjectProperty axiom:
[FunctionalObjectProperty(<http://www.w3.org/ns/prov#wasGeneratedBy>)
in <http://www.w3.org/ns/prov#><http:

After:

PS C:\Users\stain\src\prov\ontology> java -jar bin/profilechecker.jar
prov.ttl OWL2RLProfile 2>&1 |grep non-simple|grep wasGener
+ java <<<<  -jar bin/profilechecker.jar prov.ttl OWL2RLProfile 2>&1
|grep non-simple|grep wasGener
PS C:\Users\stain\src\prov\ontology> java -jar bin/profilechecker.jar
prov.ttl OWL2RLProfile 2>&1 |grep wasGener



PS C:\Users\stain\src\prov\ontology> hg diff
diff -r 8eef80481036 ontology/prov.ttl
--- a/ontology/prov.ttl Tue May 15 10:08:12 2012 -0400
+++ b/ontology/prov.ttl Tue May 15 16:01:40 2012 +0100
@@ -1015,7 +1015,7 @@
     rdfs:subPropertyOf rdfs:seeAlso .

 prov:used
-    a owl:AsymmetricProperty, owl:IrreflexiveProperty, owl:ObjectProperty ;
+    a owl:ObjectProperty ;
     rdfs:comment "A prov:Entity that was used by this prov:Activity.
For example, :baking prov:used :spoon, :egg, :oven ."@en ;
     rdfs:domain prov:Activity ;
     rdfs:range prov:Entity ;
@@ -1067,7 +1067,7 @@
     prov:qualifiedForm prov:Attribution, prov:qualifiedAttribution .

 prov:wasDerivedFrom
-    a owl:AsymmetricProperty, owl:IrreflexiveProperty, owl:ObjectProperty ;
+    a owl:ObjectProperty ;
     rdfs:comment "A derivation is a transformation of an entity into
another, a construction of an entity into another, or an update of an
entity, resulting in a new one."@en ;
     rdfs:domain prov:Entity ;
     rdfs:range prov:Entity ;
@@ -1097,7 +1097,7 @@
     prov:qualifiedForm prov:End, prov:qualifiedEnd .

 prov:wasGeneratedBy
-    a owl:AsymmetricProperty, owl:FunctionalProperty,
owl:IrreflexiveProperty, owl:ObjectProperty ;
+    a owl:ObjectProperty ;
     rdfs:comment "wasGeneratedBy links Entitites with Activity
representing that entity was generated as a result of Activity"@en ;
     rdfs:domain prov:Entity ;
     rdfs:range prov:Activity ;
@@ -1117,7 +1117,7 @@
     rdfs:range prov:Activity ;
     rdfs:subPropertyOf prov:involved ;
     owl:propertyChainAxiom (prov:qualifiedCommunication
-        prov:entity
+        prov:activity
     ) ;
     prov:category "starting-point" ;
     prov:component "entities-activities" ;


Now only 2 errors:

PS C:\Users\stain\src\prov\ontology> java -jar bin/profilechecker.jar
prov.ttl OWL2RLProfile

Use of non-superclass expression in position that requires a
superclass expression:
ObjectUnionOf(<http://www.w3.org/ns/prov#Association>
<http://www.w3.org/ns/prov#End>
<http://www.w3.org/ns/prov#Generation>
<http://www.w3.org/ns/prov#Start> <http://www.w3.org/ns/prov#Usage>)
[ObjectPropertyDomain(<http://www.w3.org/ns/prov#hadRole>
ObjectUnionOf(<http://www.w3.org/ns/prov#Association>
<http://www.w3.org/ns/prov#End> <http://www.w3.org/ns/prov#Generation>
<http://www.w3.org/ns/prov#Start> <http://www.w3.org/ns/prov#Usage>))
in <http://www.w3.org/ns/prov#><http://www.w3.org/TR/2012/WD-prov-o-2012MMDD>]

Use of non-superclass expression in position that requires a
superclass expression:
ObjectUnionOf(<http://www.w3.org/ns/prov#Derivation>
<http://www.w3.org/ns/prov#Invalidation>
<http://www.w3.org/ns/prov#Responsibility>
<http://www.w3.org/ns/prov#Start>)
[ObjectPropertyDomain(<http://www.w3.org/ns/prov#hadActivity>
ObjectUnionOf(<http://www.w3.org/ns/prov#Derivation>
<http://www.w3.org/ns/prov#Invalidation>
<http://www.w3.org/ns/prov#Responsibility>
<http://www.w3.org/ns/prov#Start>)) in
<http://www.w3.org/ns/prov#><http://www.w3.org/TR/2012/WD-prov-o-2012MMDD>]


I'm not suggesting we add that patch.

I'll test with the latest snapshot of OWL API and report to their
mailing list. I'll also ask Bijan upstairs.


On Tue, May 8, 2012 at 8:24 AM, Ivan Herman <ivan@w3.org> wrote:
> Well... I do not really understand this; maybe Stian should investigate.
>
> Looking at
>
> http://www.w3.org/TR/owl2-profiles/#OWL_2_RL
>
> the only restriction on properties in the case of OWL 2 RL is that reflexive properties are not in use. Otherwise, it says:
>
> [[[
> 4.2.2 Property Expressions
>
> Property expressions in OWL 2 RL are identical to the property expressions in the structural specification [OWL 2 Specification].
> ]]]
>
> As such, adding a property chains for object properties defined in the Ontology should not affect its RL compliance. That being said, I am not an OWL reasoning expert and I might miss something. However, chains clearly appears in the rule set, so a rule based OWL RL reasoner should be able to handle that without any problems. (I know my implementation does it.)
>
> Stian, could you investigate a little? I know you rely on the OWL API, so you are only a go-between, but nevertheless...
>
> Thanks
>
> Ivan
>
> On May 7, 2012, at 19:54 , Timothy Lebo wrote:
>
>> Ivan,
>>
>> I'm using a RL checker that Stian made for us to use.
>> It is described at [1].
>>
>> I'm not sure what the messages intend to convey.
>>
>> Regards,
>> Tim
>>
>> [1] http://www.w3.org/2011/prov/wiki/PIL_OWL_Ontology#JAR_checker
>>
>> On May 7, 2012, at 1:26 PM, Ivan Herman wrote:
>>
>>> Tim,
>>>
>>> I am not sure I understand thos RL violation errors, actually. I thought property chains are part of RL. Or are these errors independent of the usage of property chains?
>>>
>>> Thanks
>>>
>>> Ivan
>>>
>>> ---
>>> Ivan Herman
>>> Tel:+31 641044153
>>> http://www.ivan-herman.net
>>>
>>> (Written on mobile, sorry for brevity and misspellings...)
>>>
>>>
>>>
>>> On 7 May 2012, at 19:21, Timothy Lebo <lebot@rpi.edu> wrote:
>>>
>>>> I've committed
>>>>
>>>> http://dvcs.w3.org/hg/prov/rev/d59de1d6a8ba
>>>>
>>>> to include chain properties such as:
>>>>
>>>>> (prov:qualifiedUsage prov:entity) rdfs:subPropertyOf prov:used .
>>>>
>>>> Note that Stian's RL checker gives the following "RL violations", which we will need to "justify" in the appendix of the next PROV-O HTML release:
>>>>
>>>> Use of non-simple property in IrrefexiveObjectProperty axiom: [IrreflexiveObjectProperty(<http://www.w3.org/ns/prov#wasGeneratedBy>) in <http://www.w3.org/ns/prov#>]
>>>> Use of non-simple property in IrrefexiveObjectProperty axiom: [IrreflexiveObjectProperty(<http://www.w3.org/ns/prov#used>) in <http://www.w3.org/ns/prov#>]
>>>> Use of non-simple property in AsymmetricObjectProperty axiom: [AsymmetricObjectProperty(<http://www.w3.org/ns/prov#wasDerivedFrom>) in <http://www.w3.org/ns/prov#>]
>>>> Use of non-simple property in AsymmetricObjectProperty axiom: [AsymmetricObjectProperty(<http://www.w3.org/ns/prov#used>) in <http://www.w3.org/ns/prov#>]
>>>> Use of non-simple property in IrrefexiveObjectProperty axiom: [IrreflexiveObjectProperty(<http://www.w3.org/ns/prov#wasDerivedFrom>) in <http://www.w3.org/ns/prov#>]
>>>> Use of non-simple property in FunctionalObjectProperty axiom: [FunctionalObjectProperty(<http://www.w3.org/ns/prov#wasGeneratedBy>) in <http://www.w3.org/ns/prov#>]
>>>> Use of non-simple property in AsymmetricObjectProperty axiom: [AsymmetricObjectProperty(<http://www.w3.org/ns/prov#wasGeneratedBy>) in <http://www.w3.org/ns/prov#>]
>>>>
>>>> Regards,
>>>> Tim
>>>>
>>>>
>>>>
>>>> On May 7, 2012, at 8:28 AM, Provenance Working Group Issue Tracker wrote:
>>>>
>>>>> PROV-ISSUE-372 (qualified-property-chains): ( prov:qualifedUsage prov:entity ) rdfs:subPropertyOf prov:used
>>>>>
>>>>> http://www.w3.org/2011/prov/track/issues/372
>>>>>
>>>>> Raised by: Timothy Lebo
>>>>> On product:
>>>>>
>>>>> http://www.w3.org/mid/D3BF08F5-B11F-4766-919D-FD81DD9D59C7@w3.org
>>>>>
>>>>> (I have not found yet the semantics document, I am not sure whether what I write makes sense...)
>>>>>
>>>>> Looking at the Prov-o and the qualified terms. Taking the first time in the list, ie, qualifiedUsage. Isn't it correct that, at least conceptually, if I have
>>>>>
>>>>> ex:E a prov:Entity;
>>>>> prov:qualifiedUsage [
>>>>> a prov:Usage ;
>>>>> prov:entity ex:E
>>>>> ] .
>>>>>
>>>>> then, again conceptually, I would expect something like
>>>>>
>>>>> ex:E prov:used ex:E .
>>>>>
>>>>> to be 'present'. It strikes me that this is exactly what the OWL 2 property chains do (and those are still OWL RL), by saying:
>>>>>
>>>>> (prov:qualifiedUsage prov:entity) rdfs:subPropertyOf prov:used .
>>>>>
>>>>> Isn't it worth adding it to the OWL ontology? Or do I miss something here?
>>>>>
>>>>> Ivan
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>
> ----
> Ivan Herman, W3C Semantic Web Activity Lead
> Home: http://www.w3.org/People/Ivan/
> mobile: +31-641044153
> FOAF: http://www.ivan-herman.net/foaf.rdf
>
>
>
>
>



-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester

Received on Tuesday, 15 May 2012 15:03:13 UTC