Accenture / OSDU-Ontology

An ontology designed for oil and gas, and subsurface energy data based on the industry standards.
Apache License 2.0
18 stars 7 forks source link

many "strings" should become "things" #14

Closed VladimirAlexiev closed 12 months ago

VladimirAlexiev commented 1 year ago

There are 866 data props with rdfs:range xsd:string ("strings"). However, many of them are candidates for converting to object props ("things"):

  1. "ID" props that point to existing classes, but do so indirectly, eg activityLevelID activityTemplateID ... consequenceCategoryID consequenceSubCategoryID ...
  2. Props where the target should perhaps be converted to a class, to capture richer info, eg acquisitionCompanyID acquisitionSite agency businessActivities attributionAuthority ...
  3. Enumerated props where the target could be converted to skos:Concept in its own ConceptScheme, acquisitionTypeID activityCodeID activityLevel activityOutcomeDetailID activityOutcomeID activityTypeID additiveTypeID agreementExternalSystem businessIntentionID ...

Note: in contrast, activityID, agreementExternalID are identifiers inside an object, so should remain strings

ana-tudor commented 12 months ago

Hi Vladimir - including both the ID Datatype properties and "hasA" Object properties was a design choice for this ontology. Most all of these "strings" are also "things" - we opted for leaving the choice to the user as to when they would prefer to use one, the other, or both.

VladimirAlexiev commented 11 months ago

Sorry Ana, but I doubt your claim that "Most all of these "strings" are also "things". Eg what are the object properties corresponding to activityLevelID activityTemplateID and to acquisitionTypeID activityCodeID activityLevel?

ana-tudor commented 11 months ago

osdu:hasActivityLevel, osdu:hasActivityTemplate, and osdu:hasSeismicAcquisitionType all are existing object properties which correspond to the properties above.

osdu:activityLevelID and osdu:activityLevel are likely duplicates here that were present under two different attribute names in the OSDU schema, so we can clean that up at least.

VladimirAlexiev commented 7 months ago

@ana-tudor Ok, there are these:

osdu:hasActivityLevel rdf:type owl:ObjectProperty ;
    rdfs:domain osdu:ActivityCode ;
    rdfs:range osdu:ActivityLevel ;
osdu:activityLevelID rdf:type owl:DatatypeProperty ;
    rdfs:domain osdu:ActivityCode ;
    rdfs:range xsd:string ;
osdu:activityLevel rdf:type owl:DatatypeProperty ;
    rdfs:domain osdu:WellPlanningActivity ;
    rdfs:range xsd:string ;

I find the names of the two datatype props confusing with respect to each other.

But let's take the two props with domain ActivityCode. Consider the following example (presumably ActivityLevel has some ID attribute, let's call it actLevID)

<activityLevel/123> a ActivityLevel; actLevID "123".
<activityCode/345> a ActivityCode; hasActivityLevel <activityLevel/123>; activityLevelID "456".

Now the two literals "123" and "456" are in contradiction.

Many schema.org properties permit a "string vs thing" duality. But that is done using one property, so there is no redundancy/inconsistency, eg:

<paper> s:author "Vladimir Alexiev", <https://orcid.org/1234-5678-9012>.
<https://orcid.org/1234-5678-9012> a s:Person; s:name "A U Thor"; etc etc