Background
UCO has several owl:DatatypePropertys that are used to house plain strings (sometimes that are part of semi-open vocabularies) which can be used to describe a type. For example, observable:accountType describes a type that is some specialization of observable:Account, and the vocabulary suggests some values (ldap, nis, openid, etc.).
These properties are provided for UCO users to strike a balance between specificity and agility. For instance, an account type might be sufficiently niche in an investigation that there would be little to no benefit to attempting to standardize it. But, less-niche options would suffer from not standardizing. For instance, the "Crossover WMD" CASE example uses the string "Phone" as a value of observable:AccountType - but, the class observable:PhoneAccount is in UCO.
This proposal introduces a property core:informalType to clarify the usage of these plain string fields that proxy formal types, by inlining documentation into one place within the ontology.
Requirements
Requirement 1
String fields that are used as a substitute of OWL-encoded or SHACL-reviewed classes must include a link to documentation on their role in data creation, management, and interchange.
Requirement 2
Any grouping of these informal-typing string fields must not impede usage of semi-open vocabularies.
Risk / Benefit analysis
Benefits
This proposal introduces structural-purpose documentation, and a structural link to that embedded documentation, to many properties throughout UCO.
Risks
Subproperties have the potential to introduce comprehension complexity from multiple rdfs:domains and rdfs:ranges going up the superproperty hierarchy. Requirement 2 is intended to avoid this situation with the new property, and UCO happens to not use rdfs:domain on any of the properties impacted by this proposal. So, no new risks are currently believed to be associated with this change.
Competencies demonstrated
Competency 1
Competency Question 1.1
What are the informal type properties currently in UCO?
Result 1.1
The solution is drawn from the implementing PR (link coming momentarily after posting), and this SPARQL query which assumes introduction of core:informalType:
PREFIX core: <https://ontology.unifiedcyberontology.org/uco/core/>
SELECT ?nProperty
WHERE {
?nProperty
rdfs:subPropertyOf+ core:informalType ;
.
}
ORDER BY ?nProperty
The result comes from running that query against test/uco_monolithic.ttl after make check was run.
| ?nProperty |
| configuration:dependencyType |
| configuration:itemType |
| core:eventType |
| location:addressType |
| marking:definitionType |
| observable:MSISDNType |
| observable:accountLogonType |
| observable:accountType |
| observable:actionType |
| observable:archiveType |
| observable:audioType |
| observable:blockType |
| observable:callType |
| observable:cellSiteType |
| observable:contentType |
| observable:dataType |
| observable:deviceType |
| observable:diskPartitionType |
| observable:diskType |
| observable:driveType |
| observable:eventType |
| observable:extFileType |
| observable:fileSystemType |
| observable:hiveType |
| observable:icmpType |
| observable:imageType |
| observable:libraryType |
| observable:messageType |
| observable:mimeType |
| observable:passwordType |
| observable:peType |
| observable:pictureType |
| observable:rangeOffsetType |
| observable:serviceType |
| observable:startType |
| observable:triggerSessionChangeType |
| observable:triggerType |
| observable:urlTransitionType |
| observable:whoisContactType |
| tool:toolType |
Solution suggestion
core:informalType is introduced as a property. Its lengthy documentation string is given here with line-breaks:
Informal Type serves as a parent property for string-valued properties meant to describe a type without implementing a class design. This property hierarchy supports a balancing point between semantic specificity and operational agility.
The known benefits of describing types rather than implementing them include swift extensibility of some existing, or possibly non-existing, subclass hierarchy in UCO without requiring training in ontological development, taxonomic specification, or OWL, SHACL, or RDF maintenance logistics.
The known detractions of using string-literals for type descriptions include that used vocabularies may require careful maintenance among data-sharing parties;
that vocabularies require independent logistics (external to UCO) for providing definitions (i.e., dictionary-style semantics) to string-literals chosen;
and that string-literals cannot by themselves encode hierarchical structure or entailments, such as the informal device type string 'ExamplePhone 8 P4321' entailing 'ExamplePhone 8', 'ExamplePhone', or 'ExamplePhone models discontinued in 2020'.
Usage of Informal Type to house strings should be weighed against usage of classes when classes are available, and should periodically be reviewed for potential additions to UCO's class hierarchy or downstream extensions thereof.
All properties P that currently house an informal type are set as sub-properties of core:informalType: P rdfs:subPropertyOf core:informalType. Note this includes one property in CASE, investigation:investigationForm.
In satisfaction of Requirement 2, core:informalType does not have an rdfs:range. Though all of the child properties have the option of xsd:string in their range, some use a union of xsd:string with a semi-open vocabulary datatype. Even though Issue 629 will adjust typing of vocabulary members to be xsd:string, the sub-property linkage may interact poorly with owl:unionOf, since multiple rdfs:range statements are interpreted in OWL as an intersection.
Coordination
Background
UCO has several
owl:DatatypePropertys that are used to house plain strings (sometimes that are part of semi-open vocabularies) which can be used to describe a type. For example,observable:accountTypedescribes a type that is some specialization ofobservable:Account, and the vocabulary suggests some values (ldap,nis,openid, etc.).These properties are provided for UCO users to strike a balance between specificity and agility. For instance, an account type might be sufficiently niche in an investigation that there would be little to no benefit to attempting to standardize it. But, less-niche options would suffer from not standardizing. For instance, the "Crossover WMD" CASE example uses the string
"Phone"as a value ofobservable:AccountType- but, the classobservable:PhoneAccountis in UCO.This proposal introduces a property
core:informalTypeto clarify the usage of these plain string fields that proxy formal types, by inlining documentation into one place within the ontology.Requirements
Requirement 1
String fields that are used as a substitute of OWL-encoded or SHACL-reviewed classes must include a link to documentation on their role in data creation, management, and interchange.
Requirement 2
Any grouping of these informal-typing string fields must not impede usage of semi-open vocabularies.
Risk / Benefit analysis
Benefits
This proposal introduces structural-purpose documentation, and a structural link to that embedded documentation, to many properties throughout UCO.
Risks
Subproperties have the potential to introduce comprehension complexity from multiple
rdfs:domains andrdfs:ranges going up the superproperty hierarchy. Requirement 2 is intended to avoid this situation with the new property, and UCO happens to not userdfs:domainon any of the properties impacted by this proposal. So, no new risks are currently believed to be associated with this change.Competencies demonstrated
Competency 1
Competency Question 1.1
What are the informal type properties currently in UCO?
Result 1.1
The solution is drawn from the implementing PR (link coming momentarily after posting), and this SPARQL query which assumes introduction of
core:informalType:The result comes from running that query against
test/uco_monolithic.ttlaftermake checkwas run.Solution suggestion
core:informalTypeis introduced as a property. Its lengthy documentation string is given here with line-breaks:All properties
Pthat currently house an informal type are set as sub-properties ofcore:informalType:P rdfs:subPropertyOf core:informalType. Note this includes one property in CASE,investigation:investigationForm.In satisfaction of Requirement 2,
core:informalTypedoes not have anrdfs:range. Though all of the child properties have the option ofxsd:stringin their range, some use a union ofxsd:stringwith a semi-open vocabulary datatype. Even though Issue 629 will adjust typing of vocabulary members to bexsd:string, the sub-property linkage may interact poorly withowl:unionOf, since multiplerdfs:rangestatements are interpreted in OWL as an intersection.Coordination
developfor the next UCO releasedevelopfor the next CASE releasedevelopstate with backwards-compatible implementation merged into UCOdevelop-2.0.0developstate with backwards-compatible implementation merged into CASEdevelop-2.0.0develop-2.0.0(N/A)