ucoProject / UCO

This repository is for development of the Unified Cyber Ontology.
Apache License 2.0
76 stars 34 forks source link

Change minCount from 1 to 0 on multiple properties #428

Closed eoghanscasey closed 2 years ago

eoghanscasey commented 2 years ago

This is proposed as a FastTrack change

Background

Most properties in UCO are optional. Setting minCount = 1 is enforced by SHACL makes a property required. This constraint will create problems in use cases in which a property is known to have existed but the value is not available.

Requirements

Requirement 1

Allow adopters to create an object when the existence of an object is known but an associated property is not known.

Risk / Benefit analysis

The proposed change allows adopters to decide which property is needed, except when it is ontologically necessary.

Benefits

Allow adopters to decide which property is needed.

Risks

The submitter is unaware of risks associated with this change.

Competencies demonstrated

Adopter creates an object when the existence of an object is known but an associated property is not known.

Solution suggestion

Change minCount to 0 from 1 on the following properties:

Class Property
identity/AddressFacet identity/address
observable/AccountFacet observable/accountIdentifier
observable/AlternateDataStreamFacet core/name
observable/ApplicationAccountFacet observable/application
observable/AutonomousSystemFacet observable/number
observable/BluetoothAddressFacet observable/addressValue
observable/ContactAffiliation observable/contactOrganization
observable/ContactListFacet observable/contact
observable/DigitalAddressFacet observable/addressValue
observable/DigitalSignatureInfoFacet observable/signatureExists
observable/DigitalSignatureInfoFacet observable/signatureVerified
observable/DomainNameFacet observable/value
observable/EXIFFacet observable/exifData
observable/EmailAccountFacet observable/emailAddress
observable/EmailAddressFacet observable/addressValue
observable/EnvironmentVariable core/name
observable/EventFacet observable/application
observable/GeoLocationEntryFacet observable/application
observable/GeoLocationLogFacet observable/application
observable/GeoLocationTrackFacet observable/application
observable/HTTPConnectionFacet observable/requestMethod
observable/HTTPConnectionFacet observable/requestValue
observable/IPAddressFacet observable/addressValue
observable/IPv4AddressFacet observable/addressValue
observable/IPv6AddressFacet observable/addressValue
observable/InstantMessagingAddressFacet observable/addressValue
observable/MACAddressFacet observable/addressValue
observable/MemoryFacet observable/isInjected
observable/MemoryFacet observable/isMapped
observable/MemoryFacet observable/isProtected
observable/MemoryFacet observable/isVolatile
observable/MessageThreadFacet observable/message
observable/MutexFacet observable/isNamed
observable/OnlineServiceFacet core/name
observable/PhoneAccountFacet observable/phoneNumber
observable/PropertiesEnumeratedEffectFacet observable/properties
observable/SIPAddressFacet observable/addressValue
observable/SendControlCodeEffectFacet observable/controlCode
observable/StateChangeEffectFacet observable/newObject
observable/SymbolicLinkFacet observable/targetFile
observable/TwitterProfileFacet observable/twitterId
observable/URLFacet observable/fullValue
observable/URLHistoryFacet observable/urlHistoryEntry
observable/ValuesEnumeratedEffectFacet observable/values
observable/WifiAddressFacet observable/addressValue
observable/WindowsActiveDirectoryAccountFacet observable/objectGUID
observable/WindowsPESection core/name
observable/WindowsRegistryKeyFacet observable/key
observable/WindowsRegistryValue core/name
observable/WindowsServiceFacet observable/serviceName
tool/BuildUtilityType tool/buildUtilityName
tool/ConfigurationSettingType tool/itemName
tool/ConfigurationSettingType tool/itemValue
tool/DependencyType tool/dependencyDescription
tool/LibraryType tool/libraryName
tool/LibraryType tool/libraryVersion

Coordination