Skip to content
This repository was archived by the owner on Jun 8, 2023. It is now read-only.

Fix hasEvent, define more rigorous subclasses of Event and Activity#22

Open
EOltmanns wants to merge 2 commits into
FIAF:mainfrom
EOltmanns:dev-one-property-one-definition
Open

Fix hasEvent, define more rigorous subclasses of Event and Activity#22
EOltmanns wants to merge 2 commits into
FIAF:mainfrom
EOltmanns:dev-one-property-one-definition

Conversation

@EOltmanns

Copy link
Copy Markdown
Collaborator

Please see issue #21 for the rationale behind this change set.

If the suggested approach is acceptable, please review the changed as
well as the unchanged definitions of events and activities carefully
as I am not an expert on film cataloguing rules and might well have
got the assignment to WorkVariant vs. Manifestation etc. wrong in
various cases.

@paulduchesne

Copy link
Copy Markdown
Member

Thank you for this work @EOltmanns, the only thing I am wondering about splitting into a different issue is the inverse property isActivityOf, isEventOf. This would absolutely best practise, but would require a bit of work to apply across all relevant properties - would it be possible to remove these from the PR and then we open a branch to address them?

@EOltmanns

Copy link
Copy Markdown
Collaborator Author

Well, I have defined the inverse properties purely for readability's
sake because they simplify the definition of the restrictions right
below them. For that reason, I have used anonymous nodes _:isEventOf
and _:isActivityOf which cannot be referenced from outside the
ontology. In fact, I wonder if data exchange is actually easier if the
ontology does not define inverse properties publicly. What do you
thin? Should I avoid them anyway?

Mind you, I have been wondering whether I should have used
owl:allValuesFrom instead of owl:someValuesFrom, really, so I may
have to fix this pull request anyway before it is accepted.

@paulduchesne

Copy link
Copy Markdown
Member

In fact, I wonder if data exchange is actually easier if the
ontology does not define inverse properties publicly. What do you
thin? Should I avoid them anyway?

This did come up in discussion a bit, not having inverse properties forces a certain direction which your queries have to take. I have never found it a real impediment when SPARQL querying Wikidata for example, which has only single direction properties.

Mind you, I have been wondering whether I should have used
owl:allValuesFrom instead of owl:someValuesFrom, really, so I may
have to fix this pull request anyway before it is accepted.

It would be good to get on a call at some point and discuss the ramifications of adding these statements.

As for another update, I have started by implementing the unionOf wrap for the eight properties with multiple domains in the source repo. Thanks again for pointing these out.

EOltmanns added 2 commits May 22, 2023 12:10
Define the domain of hasEvent as the union rather than the
intersection of Item, Manifestation and WorkVariant. Also, state
explicitly whether a given event type relates to Item, Manifestation,
or (/ and) WorkVariant.
State explicitly whether a given activity type relates to Item,
Manifestation, or (/ and) WorkVariant.
@EOltmanns EOltmanns force-pushed the dev-one-property-one-definition branch from 3d50f2c to 9907a9b Compare May 22, 2023 10:32
@EOltmanns

Copy link
Copy Markdown
Collaborator Author

Alright, I think I stand by my choice of owl:someValuesFrom (as
opposed to ows:allValuesFrom) and we can discuss the matter
tomorrow. Meanwhile, I have rebased the pull request. With regard to
inverse properties, here are the alternatives. Currently suggested
implementation of restriction clases:

_:isEventOf owl:inverseOf fiaf:hasEvent .

<https://fiafcore.org/ontology/ItemEvent> a owl:Restriction ;
    dc:source "FIAF Cataloguing Manual 3.3.2"^^xsd:string ;
    owl:onProperty _:isEventOf ;
    owl:someValuesFrom fiaf:Item .

<https://fiafcore.org/ontology/ManifestationEvent> a owl:Restriction ;
    dc:source "FIAF Cataloguing Manual 2.4.2"^^xsd:string ;
    owl:onProperty _:isEventOf ;
    owl:someValuesFrom fiaf:Manifestation .

<https://fiafcore.org/ontology/WorkVariantEvent> a owl:Restriction ;
    dc:source "FIAF Cataloguing Manual 1.4.2"^^xsd:string ;
    owl:onProperty _:isEventOf ;
    owl:someValuesFrom fiaf:WorkVariant .

Note that _:isEventOf is used here but is not exposed publicly, so
the ontology clearly conveys the sense of a "preferred direction". Of
course, there is always the possibility to define a derived ontology
which adds inverse properties if somebody cannot do without them.

When not defining the inverse property explicitly, the restriction
class definitions just get a little bit more verbose:

<https://fiafcore.org/ontology/ItemEvent> a owl:Restriction ;
    dc:source "FIAF Cataloguing Manual 3.3.2"^^xsd:string ;
    owl:onProperty [
        owl:inverseOf fiaf:hasEvent
    ] ;
    owl:someValuesFrom fiaf:Item .

<https://fiafcore.org/ontology/ManifestationEvent> a owl:Restriction ;
    dc:source "FIAF Cataloguing Manual 2.4.2"^^xsd:string ;
    owl:onProperty [
        owl:inverseOf fiaf:hasEvent
    ] ;
    owl:someValuesFrom fiaf:Manifestation .

<https://fiafcore.org/ontology/WorkVariantEvent> a owl:Restriction ;
    dc:source "FIAF Cataloguing Manual 1.4.2"^^xsd:string ;
    owl:onProperty [
        owl:inverseOf fiaf:hasEvent
    ] ;
    owl:someValuesFrom fiaf:WorkVariant .

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants