This is a general modelling question and I wasn't able to find a proper Slack channel or discussion forum for CCO, so sorry for hijacking.
I understand that one of the goals of CCO is integrating several datasources into a common ontology but what happens when we are creating data from "within" CCO that hasn't any provenance attached. Let me illustrate with an example. Say we are modelling the landing on the moon event:
:MoonLanding cco:occurs_on :1969-07-21
so for me the individual :1969-07-21 is a member of class cco:Day and we all agree on that. But then if I need to access associated data I have several alternatives:
- Create a
cco:InformationContentEntity and then a cco:InformationBearingEntity and finally use a cco:has_datetime_value. But for me it is unnatural to have a cco:InforamationBearingEntity because in my domain there isn't any material object bearing that information. It is a pure fact.
- I could use the
cco:is_tokenized_by to the Information Content Entity but since this is an annotation I loose the fact that this is a datetime and I cannot reason about it. And I still have the problem of two individuals (the instance of cco:Day and the instance of cco:InformationContentEntity pointing to the exact same concept in my domain).
- I could import the OWL Time ontology and make
:1969-07-21 both an instance of cco:Day and time:ProperInterval. Then I solve the problem by having a canonical point in time described using OWL Time but then I worry that by deviating from the semantics of CCO I will face problems in the future.
So my question is, what's the best approach for this modelling problem? Or more generally, is the pattern Entity -> InformationContentEntity -> InformationBearingEntity -> data properties just intended for data consolidation from different sources or is it something thought for modelling every piece of information in my domain? When or what is the situation in which I should create a simple owl:DatatypeProperty for storing data related to an individual when working with CCO?
This is a general modelling question and I wasn't able to find a proper Slack channel or discussion forum for CCO, so sorry for hijacking.
I understand that one of the goals of CCO is integrating several datasources into a common ontology but what happens when we are creating data from "within" CCO that hasn't any provenance attached. Let me illustrate with an example. Say we are modelling the landing on the moon event:
so for me the individual
:1969-07-21is a member of classcco:Dayand we all agree on that. But then if I need to access associated data I have several alternatives:cco:InformationContentEntityand then acco:InformationBearingEntityand finally use acco:has_datetime_value. But for me it is unnatural to have acco:InforamationBearingEntitybecause in my domain there isn't any material object bearing that information. It is a pure fact.cco:is_tokenized_byto the Information Content Entity but since this is an annotation I loose the fact that this is a datetime and I cannot reason about it. And I still have the problem of two individuals (the instance ofcco:Dayand the instance ofcco:InformationContentEntitypointing to the exact same concept in my domain).:1969-07-21both an instance ofcco:Dayandtime:ProperInterval. Then I solve the problem by having a canonical point in time described using OWL Time but then I worry that by deviating from the semantics of CCO I will face problems in the future.So my question is, what's the best approach for this modelling problem? Or more generally, is the pattern
Entity -> InformationContentEntity -> InformationBearingEntity -> data propertiesjust intended for data consolidation from different sources or is it something thought for modelling every piece of information in my domain? When or what is the situation in which I should create a simpleowl:DatatypePropertyfor storing data related to an individual when working with CCO?