OP-TED / ePO

The eProcurement Ontology provides the formal, semantic foundation for the creation and reuse of linked open data in the domain of public procurement in the EU.
European Union Public License 1.2
58 stars 18 forks source link

multiple inverses are nogood #458

Closed VladimirAlexiev closed 8 months ago

VladimirAlexiev commented 3 years ago

This won't work because you are in effect declaring epo:isReferredToBy , epo:specifies , epo:applies to be equivalent props:

epo:appliesTo         owl:inverseOf  epo:isReferredToBy , epo:specifies , epo:applies .

You need some sort of "local inverse" (not present in OWL) or something equally complicated...

I guess someone quite contravened your UML Conventions with this prop because it's wildly polymorphic:

      rdfs:domain  [ a            owl:Class ;
                              owl:unionOf  ( epo:DesignContestRegimeTerm epo:SecurityClearanceTerm epo:FollowupContractTerm epo:FrameworkAgreementTerm epo:ReviewTerm epo:SelectionCriterion epo:ProcurementCriterionProperty epo:TenderLot epo:ContractTerm )
                            ] ;
        rdfs:range     [ a            owl:Class ;
                         owl:unionOf  ( epo:Lot epo:Document epo:LotGroup <http://www.w3.org/ns/org#Site> epo:Winner )
                       ] ;

But still, that's no excuse to make broken inverses

giorgialodi commented 3 years ago

This is something we noticed and we tried to fix :) I also tag @muricna who coordinates these works and has all the logs of these activities I am referring to.

costezki commented 1 year ago

These controversies on “inverse properties” emerge when properties are used in different places with different meanings. Hence, the semantic errors emerge.

This can be checked and dealt with in the context of ePO modelling context. This issue is transferred to EPO repository.

AchillesDougalis commented 8 months ago

Currently in ePO version 4.0.2, the only owl:inverseOf properties that can be found in ePO_core are in ePO_core_restrictions.rdf. These are:

<rdf:Description rdf:about="http://data.europa.eu/a4g/ontology#hasBeneficialOwner">
<owl:inverseOf rdf:resource="http://data.europa.eu/a4g/ontology#isBeneficialOwnerOf"/>

and

<rdf:Description rdf:about="<http://data.europa.eu/a4g/ontology#isOwnedByAgent>">
<owl:inverseOf rdf:resource="<http://data.europa.eu/a4g/ontology#ownsSystem>"/> 

Also, in ePO version 4.0.2, ePO_core does not include properties such as : epo:appliesTo, epo:isReferredToBy , epo:specifies , epo:applies, epo:isReferredToBy , epo:specifies, epo:applies.

Finally, the declarations below are no longer part of the ontology.

   rdfs:domain  [ a            owl:Class ;
                              owl:unionOf  ( epo:DesignContestRegimeTerm epo:SecurityClearanceTerm epo:FollowupContractTerm epo:FrameworkAgreementTerm epo:ReviewTerm epo:SelectionCriterion epo:ProcurementCriterionProperty epo:TenderLot epo:ContractTerm )
                            ] ;
        rdfs:range     [ a            owl:Class ;
                         owl:unionOf  ( epo:Lot epo:Document epo:LotGroup <http://www.w3.org/ns/org#Site> epo:Winner )
                       ] ;