-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UCO should clarify role of informal type string fields vs. implemented classes #640
Comments
References: * #640 Signed-off-by: Alex Nelson <[email protected]>
No effects were observed on Make-managed files. References: * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
No effects were observed on Make-managed files. References: * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
No effects were observed on Make-managed files. References: * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
No effects were observed on Make-managed files. References: * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
A follow-on patch will regenerate Make-managed files. References: * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
References: * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
No effects were observed on Make-managed files. References: * casework/CASE#162 * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
No effects were observed on Make-managed files. References: * casework/CASE#162 * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
A follow-on patch will regenerate Make-managed files. References: * casework/CASE#162 * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
References: * casework/CASE#162 * ucoProject/UCO#640 Signed-off-by: Alex Nelson <[email protected]>
I realized there is one point that wasn't discussed on the last OCs call, around entailment (/inferencing/knowledge expansion). Using ex:someThingType1
a owl:DatatypeProperty ;
rdfs:subPropertyOf core:informalType ;
.
ex:someThingType2
a owl:DatatypeProperty ;
rdfs:subPropertyOf core:informalType ;
.
kb:Thing-1
ex:someThingType1 "Foo" ;
ex:someThingType2 "Bar" ;
. ... then applying either RDFS or OWL entailment would result in these extra statements being added to the knowledge base: kb:Thing-1
core:informalType
"Bar" ,
"Foo"
;
. So, the end result of kb:Thing-1
ex:someThingType1 "Foo" ;
ex:someThingType2 "Bar" ;
core:informalType
"Bar" ,
"Foo"
;
. I believe this is consistent with I also believe this entailment issue is low-risk to UCO at the moment. It would affect any class that happens to use two or more "informal type" properties simultaneously, but according to this query (run, like the query above, against the monolithic build made in the unit tests), that only happens twice: PREFIX core: <https://ontology.unifiedcyberontology.org/uco/core/>
SELECT DISTINCT ?nClass ?nProperty1 ?nProperty2
WHERE {
?nClass
rdfs:subClassOf* core:UcoThing ;
sh:property / sh:path ?nProperty1 ;
sh:property / sh:path ?nProperty2 ;
.
?nProperty1
rdfs:subPropertyOf+ core:informalType ;
.
?nProperty2
rdfs:subPropertyOf+ core:informalType ;
.
# Casting to strings and using '<' both enforces distinctness, and
# cuts away symmetric matches.
FILTER (STR(?nProperty1) < STR(?nProperty2))
}
ORDER BY ?nClass ?nProperty1 ?nProperty2 Results:
The properties
In summary, there seems to be low risk coming from RDFS or OWL entailment applied to this proposal. |
Background
UCO has several
owl:DatatypeProperty
s 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 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: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:domain
s andrdfs:range
s going up the superproperty hierarchy. Requirement 2 is intended to avoid this situation with the new property, and UCO happens to not userdfs: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
:The result comes from running that query against
test/uco_monolithic.ttl
aftermake check
was run.Solution suggestion
core:informalType
is introduced as a property. Its lengthy documentation string is given here with line-breaks:All properties
P
that 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:informalType
does not have anrdfs:range
. Though all of the child properties have the option ofxsd:string
in their range, some use a union ofxsd:string
with 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:range
statements are interpreted in OWL as an intersection.Coordination
develop
for the next UCO releasedevelop
for the next CASE releasedevelop
state with backwards-compatible implementation merged into UCOdevelop-2.0.0
develop
state with backwards-compatible implementation merged into CASEdevelop-2.0.0
develop-2.0.0
(N/A)The text was updated successfully, but these errors were encountered: