From 1dcbe2059cf7acf5a0cc74373d8ac47f85db26fb Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 5 Mar 2024 19:11:56 -0500 Subject: [PATCH 1/8] Restructure Software class hierarchy for UCO 1.4.0 References: * https://github.com/ucoProject/UCO/issues/596 Co-authored-by: Sean Barnum Signed-off-by: Alex Nelson --- ontology/uco/observable/observable.ttl | 139 +++++++++++++++++++++++++ 1 file changed, 139 insertions(+) diff --git a/ontology/uco/observable/observable.ttl b/ontology/uco/observable/observable.ttl index 9583efbb..8ddb14d3 100644 --- a/ontology/uco/observable/observable.ttl +++ b/ontology/uco/observable/observable.ttl @@ -420,6 +420,12 @@ observable:Application rdfs:subClassOf observable:ObservableObject ; rdfs:label "Application"@en ; rdfs:comment "An application is a particular software program designed for end users."@en ; + sh:node [ + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Application will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + ] ; sh:targetClass observable:Application ; . @@ -857,6 +863,14 @@ observable:BrowserCookieFacet sh:targetClass observable:BrowserCookieFacet ; . +observable:BuildUtility + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Software ; + . + observable:Calendar a owl:Class , @@ -1196,9 +1210,23 @@ observable:Code rdfs:subClassOf observable:ObservableObject ; rdfs:label "Code"@en ; rdfs:comment "Code is a direct representation (source, byte or binary) of a collection of computer instructions that form software which tell a computer how to work. [based on https://en.wikipedia.org/wiki/Software]"@en ; + sh:node [ + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Code will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + ] ; sh:targetClass observable:Code ; . +observable:Compiler + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Software ; + . + observable:CompressedStreamFacet a owl:Class , @@ -2208,6 +2236,14 @@ observable:DefinedEffectFacet sh:targetClass observable:DefinedEffectFacet ; . +observable:DeploymentScript + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Script ; + . + observable:Device a owl:Class , @@ -3969,6 +4005,12 @@ observable:Library rdfs:subClassOf observable:ObservableObject ; rdfs:label "Library"@en ; rdfs:comment "A library is a suite of data and programming code that is used to develop software programs and applications. [based on https://www.techopedia.com/definition/3828/software-library]"@en ; + sh:node [ + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Library will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + ] ; sh:targetClass observable:Library ; . @@ -3989,6 +4031,25 @@ observable:LibraryFacet sh:targetClass observable:LibraryFacet ; . +observable:LinuxService + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Service ; + rdfs:label "LinuxService"@en ; + rdfs:comment "A Linux service is a specific Linux service (a computer program that operates in the background of a Linux operating system, similar to the way a UNIX daemon runs on UNIX). [based on observable:WindowsService]"@en ; + sh:targetClass observable:LinuxService ; + . + +observable:LinuxTask + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Task ; + . + observable:MACAddress a owl:Class , @@ -5128,6 +5189,12 @@ observable:OperatingSystem rdfs:subClassOf observable:ObservableObject ; rdfs:label "OperatingSystem"@en ; rdfs:comment "An operating system is the software that manages computer hardware, software resources, and provides common services for computer programs. [based on https://en.wikipedia.org/wiki/Operating_system]"@en ; + sh:node [ + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:OperatingSystem will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + ] ; sh:targetClass observable:OperatingSystem ; . @@ -5264,6 +5331,14 @@ observable:PUK rdfs:range xsd:string ; . +observable:Package + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Software ; + . + observable:PathRelationFacet a owl:Class , @@ -5349,6 +5424,12 @@ observable:Process rdfs:subClassOf observable:ObservableObject ; rdfs:label "Process"@en ; rdfs:comment "A process is an instance of a computer program executed on an operating system."@en ; + sh:node [ + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Process will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + ] ; sh:targetClass observable:Process ; . @@ -5444,6 +5525,12 @@ observable:ProcessThread rdfs:subClassOf observable:ObservableObject ; rdfs:label "ProcessThread"@en ; rdfs:comment "A process thread is the smallest sequence of programmed instructions that can be managed independently by a scheduler on a computer, which is typically a part of the operating system. It is a component of a process. Multiple threads can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time. [based on https://en.wikipedia.org/wiki/Thread_(computing)]"@en ; + sh:node [ + a sh:NodeShape ; + sh:class observable:Process ; + sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + ] ; sh:targetClass observable:ProcessThread ; . @@ -6016,6 +6103,14 @@ observable:SQLiteBlobFacet sh:targetClass observable:SQLiteBlobFacet ; . +observable:Script + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Software ; + . + observable:SecurityAppliance a owl:Class , @@ -6066,6 +6161,22 @@ observable:Server sh:targetClass observable:Server ; . +observable:Service + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Process ; + . + +observable:ServicePack + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Software ; + . + observable:ShopListing a owl:Class , @@ -6147,6 +6258,14 @@ observable:Software sh:targetClass observable:Software ; . +observable:SoftwareBuild + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Software ; + . + observable:SoftwareFacet a owl:Class , @@ -6429,6 +6548,14 @@ observable:Tablet sh:targetClass observable:Tablet ; . +observable:Task + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Process ; + . + observable:TaskActionType a owl:Class , @@ -8479,6 +8606,12 @@ observable:WindowsService rdfs:subClassOf observable:ObservableObject ; rdfs:label "WindowsService"@en ; rdfs:comment "A Windows service is a specific Windows service (a computer program that operates in the background of a Windows operating system, similar to the way a UNIX daemon runs on UNIX). [based on https://en.wikipedia.org/wiki/Windows_service]"@en ; + sh:node [ + a sh:NodeShape ; + sh:class observable:Service ; + sh:message "In UCO 2.0.0, uco-observable:WindowsService will be a subclass of uco-observable:Service. In preparation for UCO 2.0.0, the additional type uco-observable:Service should be assigned to this node."@en ; + sh:severity sh:Warning ; + ] ; sh:targetClass observable:WindowsService ; . @@ -8604,6 +8737,12 @@ observable:WindowsTask rdfs:subClassOf observable:ObservableObject ; rdfs:label "WindowsTask"@en ; rdfs:comment "A Windows task is a process that is scheduled to execute on a Windows operating system by the Windows Task Scheduler. [based on http://msdn.microsoft.com/en-us/library/windows/desktop/aa381311(v=vs.85).aspx]"@en ; + sh:node [ + a sh:NodeShape ; + sh:class observable:Task ; + sh:message "In UCO 2.0.0, uco-observable:WindowsTask will be a subclass of uco-observable:Task. In preparation for UCO 2.0.0, the additional type uco-observable:Task should be assigned to this node."@en ; + sh:severity sh:Warning ; + ] ; sh:targetClass observable:WindowsTask ; . From afa9c83b12cb2acf50ae280e12b7f8a9e0714284 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 6 Mar 2024 10:26:33 -0500 Subject: [PATCH 2/8] Fix typo Signed-off-by: Alex Nelson --- ontology/uco/observable/observable.ttl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ontology/uco/observable/observable.ttl b/ontology/uco/observable/observable.ttl index 8ddb14d3..1e76d015 100644 --- a/ontology/uco/observable/observable.ttl +++ b/ontology/uco/observable/observable.ttl @@ -5528,7 +5528,7 @@ observable:ProcessThread sh:node [ a sh:NodeShape ; sh:class observable:Process ; - sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Process should be assigned to this node."@en ; sh:severity sh:Warning ; ] ; sh:targetClass observable:ProcessThread ; From dc24cb7c7cc5e0617c7a4f6b321439be2ae7cb03 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 6 Mar 2024 11:03:41 -0500 Subject: [PATCH 3/8] Separate realignment shapes into anonymous node shapes This patch also updates a test result from one of the to-be-rearranged classes. A follow-on patch will regenerate Make-managed files. References: * https://github.com/RDFLib/pySHACL/issues/222 * https://github.com/ucoProject/UCO/issues/596 * https://www.w3.org/TR/shacl/#NodeConstraintComponent Signed-off-by: Alex Nelson --- ontology/uco/observable/observable.ttl | 112 ++++++++++++++----------- tests/examples/test_validation.py | 4 + 2 files changed, 68 insertions(+), 48 deletions(-) diff --git a/ontology/uco/observable/observable.ttl b/ontology/uco/observable/observable.ttl index 1e76d015..131892f8 100644 --- a/ontology/uco/observable/observable.ttl +++ b/ontology/uco/observable/observable.ttl @@ -420,12 +420,6 @@ observable:Application rdfs:subClassOf observable:ObservableObject ; rdfs:label "Application"@en ; rdfs:comment "An application is a particular software program designed for end users."@en ; - sh:node [ - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:Application will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - ] ; sh:targetClass observable:Application ; . @@ -1210,12 +1204,6 @@ observable:Code rdfs:subClassOf observable:ObservableObject ; rdfs:label "Code"@en ; rdfs:comment "Code is a direct representation (source, byte or binary) of a collection of computer instructions that form software which tell a computer how to work. [based on https://en.wikipedia.org/wiki/Software]"@en ; - sh:node [ - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:Code will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - ] ; sh:targetClass observable:Code ; . @@ -4005,12 +3993,6 @@ observable:Library rdfs:subClassOf observable:ObservableObject ; rdfs:label "Library"@en ; rdfs:comment "A library is a suite of data and programming code that is used to develop software programs and applications. [based on https://www.techopedia.com/definition/3828/software-library]"@en ; - sh:node [ - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:Library will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - ] ; sh:targetClass observable:Library ; . @@ -5189,12 +5171,6 @@ observable:OperatingSystem rdfs:subClassOf observable:ObservableObject ; rdfs:label "OperatingSystem"@en ; rdfs:comment "An operating system is the software that manages computer hardware, software resources, and provides common services for computer programs. [based on https://en.wikipedia.org/wiki/Operating_system]"@en ; - sh:node [ - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:OperatingSystem will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - ] ; sh:targetClass observable:OperatingSystem ; . @@ -5424,12 +5400,6 @@ observable:Process rdfs:subClassOf observable:ObservableObject ; rdfs:label "Process"@en ; rdfs:comment "A process is an instance of a computer program executed on an operating system."@en ; - sh:node [ - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:Process will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - ] ; sh:targetClass observable:Process ; . @@ -5525,12 +5495,6 @@ observable:ProcessThread rdfs:subClassOf observable:ObservableObject ; rdfs:label "ProcessThread"@en ; rdfs:comment "A process thread is the smallest sequence of programmed instructions that can be managed independently by a scheduler on a computer, which is typically a part of the operating system. It is a component of a process. Multiple threads can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time. [based on https://en.wikipedia.org/wiki/Thread_(computing)]"@en ; - sh:node [ - a sh:NodeShape ; - sh:class observable:Process ; - sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Process should be assigned to this node."@en ; - sh:severity sh:Warning ; - ] ; sh:targetClass observable:ProcessThread ; . @@ -8606,12 +8570,6 @@ observable:WindowsService rdfs:subClassOf observable:ObservableObject ; rdfs:label "WindowsService"@en ; rdfs:comment "A Windows service is a specific Windows service (a computer program that operates in the background of a Windows operating system, similar to the way a UNIX daemon runs on UNIX). [based on https://en.wikipedia.org/wiki/Windows_service]"@en ; - sh:node [ - a sh:NodeShape ; - sh:class observable:Service ; - sh:message "In UCO 2.0.0, uco-observable:WindowsService will be a subclass of uco-observable:Service. In preparation for UCO 2.0.0, the additional type uco-observable:Service should be assigned to this node."@en ; - sh:severity sh:Warning ; - ] ; sh:targetClass observable:WindowsService ; . @@ -8737,12 +8695,6 @@ observable:WindowsTask rdfs:subClassOf observable:ObservableObject ; rdfs:label "WindowsTask"@en ; rdfs:comment "A Windows task is a process that is scheduled to execute on a Windows operating system by the Windows Task Scheduler. [based on http://msdn.microsoft.com/en-us/library/windows/desktop/aa381311(v=vs.85).aspx]"@en ; - sh:node [ - a sh:NodeShape ; - sh:class observable:Task ; - sh:message "In UCO 2.0.0, uco-observable:WindowsTask will be a subclass of uco-observable:Task. In preparation for UCO 2.0.0, the additional type uco-observable:Task should be assigned to this node."@en ; - sh:severity sh:Warning ; - ] ; sh:targetClass observable:WindowsTask ; . @@ -13816,3 +13768,67 @@ observable:xOriginatingIP rdfs:range observable:ObservableObject ; . +[] + a sh:NodeShape ; + sh:class observable:Process ; + sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Process should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:ProcessThread ; + . + +[] + a sh:NodeShape ; + sh:class observable:Service ; + sh:message "In UCO 2.0.0, uco-observable:WindowsService will be a subclass of uco-observable:Service. In preparation for UCO 2.0.0, the additional type uco-observable:Service should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:WindowsService ; + . + +[] + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Application will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:Application ; + . + +[] + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Code will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:Code ; + . + +[] + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Library will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:Library ; + . + +[] + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:OperatingSystem will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:OperatingSystem ; + . + +[] + a sh:NodeShape ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Process will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:Process ; + . + +[] + a sh:NodeShape ; + sh:class observable:Task ; + sh:message "In UCO 2.0.0, uco-observable:WindowsTask will be a subclass of uco-observable:Task. In preparation for UCO 2.0.0, the additional type uco-observable:Task should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:WindowsTask ; + . + diff --git a/tests/examples/test_validation.py b/tests/examples/test_validation.py index c714d0c3..7618620b 100644 --- a/tests/examples/test_validation.py +++ b/tests/examples/test_validation.py @@ -388,6 +388,10 @@ def test_observable_creation_time_PASS() -> None: "observable_creation_time_PASS_validation.ttl", True, expected_focus_node_severities={ + ( + "http://example.org/kb/windows-thread-da52a01e-41cc-42d5-85be-ca14bfa10fd6", + str(NS_SH.Warning) + ), ( "http://example.org/kb/windows-thread-facet-4967ae35-f00b-49c8-9dd2-38e3bdf851e1", str(NS_SH.Warning) From 05b6e2fef5b2834fe8277b36db2a33613cd7e3fc Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 6 Mar 2024 11:03:56 -0500 Subject: [PATCH 4/8] Regenerate Make-managed files References: * https://github.com/ucoProject/UCO/issues/596 Signed-off-by: Alex Nelson --- ...servable_creation_time_PASS_validation.ttl | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/tests/examples/observable_creation_time_PASS_validation.ttl b/tests/examples/observable_creation_time_PASS_validation.ttl index 60605c2c..fa0d394b 100644 --- a/tests/examples/observable_creation_time_PASS_validation.ttl +++ b/tests/examples/observable_creation_time_PASS_validation.ttl @@ -8,20 +8,37 @@ [] a sh:ValidationReport ; sh:conforms "true"^^xsd:boolean ; - sh:result [ - a sh:ValidationResult ; - sh:focusNode ; - sh:resultMessage "observable:creationTime is deprecated, and will be an error to use in UCO 2.0.0. observable:observableCreatedTime should be used instead."@en ; - sh:resultPath observable:creationTime ; - sh:resultSeverity sh:Warning ; - sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; - sh:sourceShape [ - a sh:PropertyShape ; - sh:maxCount "0"^^xsd:integer ; - sh:message "observable:creationTime is deprecated, and will be an error to use in UCO 2.0.0. observable:observableCreatedTime should be used instead."@en ; - sh:path observable:creationTime ; - sh:severity sh:Warning ; - ] ; - ] ; + sh:result + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Process should be assigned to this node."@en ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + a sh:NodeShape ; + sh:class observable:Process ; + sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Process should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:ProcessThread ; + ] ; + sh:value ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "observable:creationTime is deprecated, and will be an error to use in UCO 2.0.0. observable:observableCreatedTime should be used instead."@en ; + sh:resultPath observable:creationTime ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape [ + a sh:PropertyShape ; + sh:maxCount "0"^^xsd:integer ; + sh:message "observable:creationTime is deprecated, and will be an error to use in UCO 2.0.0. observable:observableCreatedTime should be used instead."@en ; + sh:path observable:creationTime ; + sh:severity sh:Warning ; + ] ; + ] + ; . From f8c035bedc88752a68c137df5a3c8a356a12e688 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 8 May 2024 16:54:32 -0400 Subject: [PATCH 5/8] Attach anonymous temporary warning node shapes to their corresponding class This applies a practice being tried in Issue 602. A follow-on patch will regenerate Make-managed files. References: * https://github.com/ucoProject/UCO/issues/596 * https://github.com/ucoProject/UCO/issues/602 Signed-off-by: Alex Nelson --- ontology/uco/observable/observable.ttl | 128 ++++++++++++------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/ontology/uco/observable/observable.ttl b/ontology/uco/observable/observable.ttl index 131892f8..3ce1b098 100644 --- a/ontology/uco/observable/observable.ttl +++ b/ontology/uco/observable/observable.ttl @@ -420,6 +420,14 @@ observable:Application rdfs:subClassOf observable:ObservableObject ; rdfs:label "Application"@en ; rdfs:comment "An application is a particular software program designed for end users."@en ; + rdfs:seeAlso [ + a sh:NodeShape ; + rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Application will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:Application ; + ] ; sh:targetClass observable:Application ; . @@ -1204,6 +1212,14 @@ observable:Code rdfs:subClassOf observable:ObservableObject ; rdfs:label "Code"@en ; rdfs:comment "Code is a direct representation (source, byte or binary) of a collection of computer instructions that form software which tell a computer how to work. [based on https://en.wikipedia.org/wiki/Software]"@en ; + rdfs:seeAlso [ + a sh:NodeShape ; + rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Code will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:Code ; + ] ; sh:targetClass observable:Code ; . @@ -3993,6 +4009,14 @@ observable:Library rdfs:subClassOf observable:ObservableObject ; rdfs:label "Library"@en ; rdfs:comment "A library is a suite of data and programming code that is used to develop software programs and applications. [based on https://www.techopedia.com/definition/3828/software-library]"@en ; + rdfs:seeAlso [ + a sh:NodeShape ; + rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Library will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:Library ; + ] ; sh:targetClass observable:Library ; . @@ -5171,6 +5195,14 @@ observable:OperatingSystem rdfs:subClassOf observable:ObservableObject ; rdfs:label "OperatingSystem"@en ; rdfs:comment "An operating system is the software that manages computer hardware, software resources, and provides common services for computer programs. [based on https://en.wikipedia.org/wiki/Operating_system]"@en ; + rdfs:seeAlso [ + a sh:NodeShape ; + rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:OperatingSystem will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:OperatingSystem ; + ] ; sh:targetClass observable:OperatingSystem ; . @@ -5400,6 +5432,14 @@ observable:Process rdfs:subClassOf observable:ObservableObject ; rdfs:label "Process"@en ; rdfs:comment "A process is an instance of a computer program executed on an operating system."@en ; + rdfs:seeAlso [ + a sh:NodeShape ; + rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:Process will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:Process ; + ] ; sh:targetClass observable:Process ; . @@ -5495,6 +5535,14 @@ observable:ProcessThread rdfs:subClassOf observable:ObservableObject ; rdfs:label "ProcessThread"@en ; rdfs:comment "A process thread is the smallest sequence of programmed instructions that can be managed independently by a scheduler on a computer, which is typically a part of the operating system. It is a component of a process. Multiple threads can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time. [based on https://en.wikipedia.org/wiki/Thread_(computing)]"@en ; + rdfs:seeAlso [ + a sh:NodeShape ; + rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; + sh:class observable:Process ; + sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Process should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:ProcessThread ; + ] ; sh:targetClass observable:ProcessThread ; . @@ -8570,6 +8618,14 @@ observable:WindowsService rdfs:subClassOf observable:ObservableObject ; rdfs:label "WindowsService"@en ; rdfs:comment "A Windows service is a specific Windows service (a computer program that operates in the background of a Windows operating system, similar to the way a UNIX daemon runs on UNIX). [based on https://en.wikipedia.org/wiki/Windows_service]"@en ; + rdfs:seeAlso [ + a sh:NodeShape ; + rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; + sh:class observable:Service ; + sh:message "In UCO 2.0.0, uco-observable:WindowsService will be a subclass of uco-observable:Service. In preparation for UCO 2.0.0, the additional type uco-observable:Service should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:WindowsService ; + ] ; sh:targetClass observable:WindowsService ; . @@ -8695,6 +8751,14 @@ observable:WindowsTask rdfs:subClassOf observable:ObservableObject ; rdfs:label "WindowsTask"@en ; rdfs:comment "A Windows task is a process that is scheduled to execute on a Windows operating system by the Windows Task Scheduler. [based on http://msdn.microsoft.com/en-us/library/windows/desktop/aa381311(v=vs.85).aspx]"@en ; + rdfs:seeAlso [ + a sh:NodeShape ; + rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; + sh:class observable:Task ; + sh:message "In UCO 2.0.0, uco-observable:WindowsTask will be a subclass of uco-observable:Task. In preparation for UCO 2.0.0, the additional type uco-observable:Task should be assigned to this node."@en ; + sh:severity sh:Warning ; + sh:targetClass observable:WindowsTask ; + ] ; sh:targetClass observable:WindowsTask ; . @@ -13768,67 +13832,3 @@ observable:xOriginatingIP rdfs:range observable:ObservableObject ; . -[] - a sh:NodeShape ; - sh:class observable:Process ; - sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Process should be assigned to this node."@en ; - sh:severity sh:Warning ; - sh:targetClass observable:ProcessThread ; - . - -[] - a sh:NodeShape ; - sh:class observable:Service ; - sh:message "In UCO 2.0.0, uco-observable:WindowsService will be a subclass of uco-observable:Service. In preparation for UCO 2.0.0, the additional type uco-observable:Service should be assigned to this node."@en ; - sh:severity sh:Warning ; - sh:targetClass observable:WindowsService ; - . - -[] - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:Application will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - sh:targetClass observable:Application ; - . - -[] - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:Code will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - sh:targetClass observable:Code ; - . - -[] - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:Library will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - sh:targetClass observable:Library ; - . - -[] - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:OperatingSystem will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - sh:targetClass observable:OperatingSystem ; - . - -[] - a sh:NodeShape ; - sh:class observable:Software ; - sh:message "In UCO 2.0.0, uco-observable:Process will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; - sh:severity sh:Warning ; - sh:targetClass observable:Process ; - . - -[] - a sh:NodeShape ; - sh:class observable:Task ; - sh:message "In UCO 2.0.0, uco-observable:WindowsTask will be a subclass of uco-observable:Task. In preparation for UCO 2.0.0, the additional type uco-observable:Task should be assigned to this node."@en ; - sh:severity sh:Warning ; - sh:targetClass observable:WindowsTask ; - . - From bc4b68d788ea7f4c13b7ad615bfb35117ed24d58 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 8 May 2024 17:08:16 -0400 Subject: [PATCH 6/8] Regenerate Make-managed files References: * https://github.com/ucoProject/UCO/issues/596 Signed-off-by: Alex Nelson --- tests/examples/observable_creation_time_PASS_validation.ttl | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/examples/observable_creation_time_PASS_validation.ttl b/tests/examples/observable_creation_time_PASS_validation.ttl index fa0d394b..d900aa5f 100644 --- a/tests/examples/observable_creation_time_PASS_validation.ttl +++ b/tests/examples/observable_creation_time_PASS_validation.ttl @@ -17,6 +17,7 @@ sh:sourceConstraintComponent sh:ClassConstraintComponent ; sh:sourceShape [ a sh:NodeShape ; + rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; sh:class observable:Process ; sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Process should be assigned to this node."@en ; sh:severity sh:Warning ; From faae89b337cc1a79550f2c5f3ada3829c6245317 Mon Sep 17 00:00:00 2001 From: Sean Barnum Date: Fri, 25 Oct 2024 13:22:51 -0400 Subject: [PATCH 7/8] Update Software definitions No effects were observed on Make-managed files. AJN: This is my transcription of Sean's Issue Comment (see references), with a few minor grammatical and typographical fixes. References: * https://github.com/ucoProject/UCO/issues/596#issuecomment-2436260199 Signed-off-by: Alex Nelson --- ontology/uco/observable/observable.ttl | 28 +++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/ontology/uco/observable/observable.ttl b/ontology/uco/observable/observable.ttl index 2556424e..16a471c4 100644 --- a/ontology/uco/observable/observable.ttl +++ b/ontology/uco/observable/observable.ttl @@ -879,6 +879,7 @@ observable:BuildUtility sh:NodeShape ; rdfs:subClassOf observable:Software ; + rdfs:comment "A Build Utility is a software-based tool that automates portions or all of the process of creating executable software from source code."@en ; . observable:Calendar @@ -1237,6 +1238,7 @@ observable:Compiler sh:NodeShape ; rdfs:subClassOf observable:Software ; + rdfs:comment "A Compiler is a software program that translates source code written in a high-level language (e.g., C++, Python, Java) into machine code that can be understood and executed by a computer processor."@en ; . observable:CompressedStreamFacet @@ -2254,6 +2256,7 @@ observable:DeploymentScript sh:NodeShape ; rdfs:subClassOf observable:Script ; + rdfs:comment "A Deployment Script is a software script used to deploy artifacts, packages, modules, patches, or other resources into an intended execution environment."@en ; . observable:Device @@ -4060,7 +4063,7 @@ observable:LinuxService ; rdfs:subClassOf observable:Service ; rdfs:label "LinuxService"@en ; - rdfs:comment "A Linux service is a specific Linux service (a computer program that operates in the background of a Linux operating system, similar to the way a UNIX daemon runs on UNIX). [based on observable:WindowsService]"@en ; + rdfs:comment "A Linux Service (often referred to as a daemon) is a Service running within a Linux operating system, similar to the way a Windows Service runs on Windows."@en ; sh:targetClass observable:LinuxService ; . @@ -4070,6 +4073,7 @@ observable:LinuxTask sh:NodeShape ; rdfs:subClassOf observable:Task ; + rdfs:comment "A Linux Task is a set of software computer instructions loaded into memory with the potential to be scheduled for execution within the Linux operating system."@en ; . observable:MACAddress @@ -5375,6 +5379,7 @@ observable:Package sh:NodeShape ; rdfs:subClassOf observable:Software ; + rdfs:comment "A Package is a body of software consisting of a collection of individual software (programs, libraries, files, etc.) packaged together to collectively serve a broader purpose."@en ; . observable:PathRelationFacet @@ -5461,7 +5466,7 @@ observable:Process ; rdfs:subClassOf observable:ObservableObject ; rdfs:label "Process"@en ; - rdfs:comment "A process is an instance of a computer program executed on an operating system."@en ; + rdfs:comment "A Process is an instance of a software program that is being executed within a scope having dedicated memory, address space, execution variables, code instructions, state, security info, file handles, etc. Process execution consists of one or more component threads sharing the process resources."@en ; rdfs:seeAlso [ a sh:NodeShape ; rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; @@ -5564,12 +5569,12 @@ observable:ProcessThread ; rdfs:subClassOf observable:ObservableObject ; rdfs:label "ProcessThread"@en ; - rdfs:comment "A process thread is the smallest sequence of programmed instructions that can be managed independently by a scheduler on a computer, which is typically a part of the operating system. It is a component of a process. Multiple threads can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time. [based on https://en.wikipedia.org/wiki/Thread_(computing)]"@en ; + rdfs:comment "A Process Thread is the smallest sequence of programmed instructions that can be managed independently by a scheduler on a computer, which is typically a part of the operating system. It is a scheduled running instantiation of one or more tasks (including CPU flags, counters, timers, stack, etc.) as a component of a process. Multiple threads can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time. [based on https://en.wikipedia.org/wiki/Thread_(computing)]"@en ; rdfs:seeAlso [ a sh:NodeShape ; rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; - sh:class observable:Process ; - sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Process. In preparation for UCO 2.0.0, the additional type uco-observable:Process should be assigned to this node."@en ; + sh:class observable:Software ; + sh:message "In UCO 2.0.0, uco-observable:ProcessThread will be a subclass of uco-observable:Software. In preparation for UCO 2.0.0, the additional type uco-observable:Software should be assigned to this node."@en ; sh:severity sh:Warning ; sh:targetClass observable:ProcessThread ; ] ; @@ -6151,6 +6156,7 @@ observable:Script sh:NodeShape ; rdfs:subClassOf observable:Software ; + rdfs:comment "A Script is a software consisting of computer instructions that can be interpreted and executed in real-time (typically by an interpreter rather than directly by a computer processor) without requiring advance compilation."@en ; . observable:SecurityAppliance @@ -6209,6 +6215,7 @@ observable:Service sh:NodeShape ; rdfs:subClassOf observable:Process ; + rdfs:comment "A Service is a process that runs in the background rather than under the control of an interactive user. Services are typically long-running and can be configured to start when the operating system starts and continue as long as the operating system is running."@en ; . observable:ServicePack @@ -6217,6 +6224,7 @@ observable:ServicePack sh:NodeShape ; rdfs:subClassOf observable:Software ; + rdfs:comment "A Service Pack is a software consisting of a collection of software updates or fixes (patches) for a software delivered as an aggregated single package for ease of installation."@en ; . observable:ShopListing @@ -6306,6 +6314,7 @@ observable:SoftwareBuild sh:NodeShape ; rdfs:subClassOf observable:Software ; + rdfs:comment "A Software Build is a particular executable version of software that has been created from source code and is ready for testing or deployment."@en ; . observable:SoftwareFacet @@ -6595,7 +6604,8 @@ observable:Task owl:Class , sh:NodeShape ; - rdfs:subClassOf observable:Process ; + rdfs:subClassOf observable:Software ; + rdfs:comment "A Task is a set of software computer instructions loaded into memory with the potential to be scheduled for execution."@en ; . observable:TaskActionType @@ -8647,7 +8657,7 @@ observable:WindowsService ; rdfs:subClassOf observable:ObservableObject ; rdfs:label "WindowsService"@en ; - rdfs:comment "A Windows service is a specific Windows service (a computer program that operates in the background of a Windows operating system, similar to the way a UNIX daemon runs on UNIX). [based on https://en.wikipedia.org/wiki/Windows_service]"@en ; + rdfs:comment "A Windows Service is a Service running within a Windows operating system, similar to the way a UNIX daemon runs on UNIX. [based on https://en.wikipedia.org/wiki/Windows_service]"@en ; rdfs:seeAlso [ a sh:NodeShape ; rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; @@ -8780,7 +8790,7 @@ observable:WindowsTask ; rdfs:subClassOf observable:ObservableObject ; rdfs:label "WindowsTask"@en ; - rdfs:comment "A Windows task is a process that is scheduled to execute on a Windows operating system by the Windows Task Scheduler. [based on http://msdn.microsoft.com/en-us/library/windows/desktop/aa381311(v=vs.85).aspx]"@en ; + rdfs:comment "A Windows Task is a set of software computer instructions loaded into memory with the potential to be scheduled for execution within the Windows operating system."@en ; rdfs:seeAlso [ a sh:NodeShape ; rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ; @@ -9059,7 +9069,7 @@ observable:WindowsThread ; rdfs:subClassOf observable:ProcessThread ; rdfs:label "WindowsThread"@en ; - rdfs:comment "A Windows thread is a single thread of execution within a Windows process."@en ; + rdfs:comment "A Windows thread is a Process Thread within a Windows process."@en ; sh:targetClass observable:WindowsThread ; . From 650a274cd0e7af784751b87a1c2aff0ac07585cc Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 12 Nov 2024 13:52:46 -0500 Subject: [PATCH 8/8] Fix typo No effects were observed on Make-managed files. References: * https://github.com/ucoProject/UCO/issues/596 Signed-off-by: Alex Nelson --- ontology/uco/observable/observable.ttl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ontology/uco/observable/observable.ttl b/ontology/uco/observable/observable.ttl index c5058407..dbffe8db 100644 --- a/ontology/uco/observable/observable.ttl +++ b/ontology/uco/observable/observable.ttl @@ -7936,7 +7936,7 @@ observable:WindowsComputerSpecification ; rdfs:subClassOf observable:ObservableObject ; rdfs:label "WindowsComputerSpecification"@en ; - rdfs:comment "A Windows computer specification is the hardware ans software of a programmable electronic device that can store, retrieve, and process data running a Microsoft Windows operating system. [based on merriam-webster.com/dictionary/computer]"@en ; + rdfs:comment "A Windows computer specification is the hardware and software of a programmable electronic device that can store, retrieve, and process data running a Microsoft Windows operating system. [based on merriam-webster.com/dictionary/computer]"@en ; sh:targetClass observable:WindowsComputerSpecification ; .