From 6073ee20f4133923a37aebc94cd3031363698be8 Mon Sep 17 00:00:00 2001 From: vulnmaster <17855804+vulnmaster@users.noreply.github.com> Date: Wed, 25 Oct 2023 15:26:47 -0400 Subject: [PATCH 01/10] Add first sketch of Work Ticket concept AJN: This patch transcribes a JSON-LD sketch from @vulnmaster . The only change I made was JSON syntax normalization (4-space indentation). Follow-on patches will adapt and integrate content. References: * https://github.com/ucoProject/UCO/issues/554#issuecomment-1741598246 --- ontology/uco/observable/ActionTicket.jsonld | 121 ++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 ontology/uco/observable/ActionTicket.jsonld diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld new file mode 100644 index 00000000..1e66e185 --- /dev/null +++ b/ontology/uco/observable/ActionTicket.jsonld @@ -0,0 +1,121 @@ +{ + "@context": { + "uco": "https://unifiedcyberontology.org/ontology/uco/", + "observable": "https://unifiedcyberontology.org/ontology/uco/observable#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@id": "observable:ActionTicket", + "@type": "rdfs:Class", + "rdfs:subClassOf": "observable:Observable", + "rdfs:label": "Action Ticket", + "rdfs:comment": "A record in a ticketing system representing a work request or issue.", + "rdfs:isDefinedBy": "https://unifiedcyberontology.org/ontology/uco/observable", + "observable:property": [ + { + "@id": "observable:title", + "@type": "rdfs:Property", + "rdfs:label": "Title", + "rdfs:comment": "A brief description of the issue or request.", + "rdfs:range": "xsd:string" + }, + { + "@id": "observable:description", + "@type": "rdfs:Property", + "rdfs:label": "Description", + "rdfs:comment": "A detailed explanation of the issue or request.", + "rdfs:range": "xsd:string" + }, + { + "@id": "observable:type", + "@type": "rdfs:Property", + "rdfs:label": "Type", + "rdfs:comment": "The nature of the ticket, e.g., Bug, Feature Request, Task.", + "rdfs:range": "xsd:string" + }, + { + "@id": "observable:priority", + "@type": "rdfs:Property", + "rdfs:label": "Priority", + "rdfs:comment": "The level of urgency or importance, categorized as low, normal, high, or urgent.", + "rdfs:range": "xsd:string" + }, + { + "@id": "observable:status", + "@type": "rdfs:Property", + "rdfs:label": "Status", + "rdfs:comment": "The current state of the ticket, e.g., Open, In Progress, Resolved.", + "rdfs:range": "xsd:string" + }, + { + "@id": "observable:assignee", + "@type": "rdfs:Property", + "rdfs:label": "Assignee", + "rdfs:comment": "A URL to the name record of the assigned person responsible for actioning the ticket.", + "rdfs:range": "xsd:anyURI" + }, + { + "@id": "observable:reporter", + "@type": "rdfs:Property", + "rdfs:label": "Reporter", + "rdfs:comment": "The individual or entity that reported the issue or made the request.", + "rdfs:range": "xsd:string" + }, + { + "@id": "observable:requestor", + "@type": "rdfs:Property", + "rdfs:label": "Requestor", + "rdfs:comment": "A URL to the name record of the submitter of the ticket.", + "rdfs:range": "xsd:anyURI" + }, + { + "@id": "observable:ticketID", + "@type": "rdfs:Property", + "rdfs:label": "Ticket ID", + "rdfs:comment": "A unique identifier for the ticket, represented as an integer.", + "rdfs:range": "xsd:integer" + }, + { + "@id": "observable:created", + "@type": "rdfs:Property", + "rdfs:label": "Created", + "rdfs:comment": "The date and time when the ticket was created.", + "rdfs:range": "xsd:dateTime" + }, + { + "@id": "observable:updated", + "@type": "rdfs:Property", + "rdfs:label": "Updated", + "rdfs:comment": "The date and time when the ticket was last updated.", + "rdfs:range": "xsd:dateTime" + }, + { + "@id": "observable:createdVia", + "@type": "rdfs:Property", + "rdfs:label": "Created via", + "rdfs:comment": "The medium through which the ticket was created, e.g., web, email.", + "rdfs:range": "xsd:string" + }, + { + "@id": "observable:organization", + "@type": "rdfs:Property", + "rdfs:label": "Organization", + "rdfs:comment": "The name of the organization of the requestor.", + "rdfs:range": "xsd:string" + }, + { + "@id": "observable:interestedIn", + "@type": "rdfs:Property", + "rdfs:label": "I am interested in", + "rdfs:comment": "Classification assigned by the assignee from a list unique to the organization.", + "rdfs:range": "xsd:string" + }, + { + "@id": "observable:tags", + "@type": "rdfs:Property", + "rdfs:label": "Tags", + "rdfs:comment": "One or more tags assigned by the assignee to further classify the ticket.", + "rdfs:range": "xsd:string" + } + ] +} From ec538c7b4ac26752815e2324df81d4e746e6d9ac Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 25 Oct 2023 15:41:25 -0400 Subject: [PATCH 02/10] Fix JSON-LD syntax issues Signed-off-by: Alex Nelson --- ontology/uco/observable/ActionTicket.jsonld | 71 +++++++++++++++------ 1 file changed, 52 insertions(+), 19 deletions(-) diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld index 1e66e185..7ced997c 100644 --- a/ontology/uco/observable/ActionTicket.jsonld +++ b/ontology/uco/observable/ActionTicket.jsonld @@ -1,121 +1,154 @@ { "@context": { - "uco": "https://unifiedcyberontology.org/ontology/uco/", - "observable": "https://unifiedcyberontology.org/ontology/uco/observable#", + "observable": "https://unifiedcyberontology.org/ontology/uco/observable/", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", "xsd": "http://www.w3.org/2001/XMLSchema#" }, "@id": "observable:ActionTicket", "@type": "rdfs:Class", - "rdfs:subClassOf": "observable:Observable", + "rdfs:subClassOf": { + "@id": "observable:Observable" + }, "rdfs:label": "Action Ticket", "rdfs:comment": "A record in a ticketing system representing a work request or issue.", - "rdfs:isDefinedBy": "https://unifiedcyberontology.org/ontology/uco/observable", + "rdfs:isDefinedBy": { + "@id": "https://unifiedcyberontology.org/ontology/uco/observable" + }, "observable:property": [ { "@id": "observable:title", "@type": "rdfs:Property", "rdfs:label": "Title", "rdfs:comment": "A brief description of the issue or request.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } }, { "@id": "observable:description", "@type": "rdfs:Property", "rdfs:label": "Description", "rdfs:comment": "A detailed explanation of the issue or request.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } }, { "@id": "observable:type", "@type": "rdfs:Property", "rdfs:label": "Type", "rdfs:comment": "The nature of the ticket, e.g., Bug, Feature Request, Task.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } }, { "@id": "observable:priority", "@type": "rdfs:Property", "rdfs:label": "Priority", "rdfs:comment": "The level of urgency or importance, categorized as low, normal, high, or urgent.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } }, { "@id": "observable:status", "@type": "rdfs:Property", "rdfs:label": "Status", "rdfs:comment": "The current state of the ticket, e.g., Open, In Progress, Resolved.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } }, { "@id": "observable:assignee", "@type": "rdfs:Property", "rdfs:label": "Assignee", "rdfs:comment": "A URL to the name record of the assigned person responsible for actioning the ticket.", - "rdfs:range": "xsd:anyURI" + "rdfs:range": { + "@id": "xsd:anyURI" + } }, { "@id": "observable:reporter", "@type": "rdfs:Property", "rdfs:label": "Reporter", "rdfs:comment": "The individual or entity that reported the issue or made the request.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } }, { "@id": "observable:requestor", "@type": "rdfs:Property", "rdfs:label": "Requestor", "rdfs:comment": "A URL to the name record of the submitter of the ticket.", - "rdfs:range": "xsd:anyURI" + "rdfs:range": { + "@id": "xsd:anyURI" + } }, { "@id": "observable:ticketID", "@type": "rdfs:Property", "rdfs:label": "Ticket ID", "rdfs:comment": "A unique identifier for the ticket, represented as an integer.", - "rdfs:range": "xsd:integer" + "rdfs:range": { + "@id": "xsd:integer" + } }, { "@id": "observable:created", "@type": "rdfs:Property", "rdfs:label": "Created", "rdfs:comment": "The date and time when the ticket was created.", - "rdfs:range": "xsd:dateTime" + "rdfs:range": { + "@id": "xsd:dateTime" + } }, { "@id": "observable:updated", "@type": "rdfs:Property", "rdfs:label": "Updated", "rdfs:comment": "The date and time when the ticket was last updated.", - "rdfs:range": "xsd:dateTime" + "rdfs:range": { + "@id": "xsd:dateTime" + } }, { "@id": "observable:createdVia", "@type": "rdfs:Property", "rdfs:label": "Created via", "rdfs:comment": "The medium through which the ticket was created, e.g., web, email.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } }, { "@id": "observable:organization", "@type": "rdfs:Property", "rdfs:label": "Organization", "rdfs:comment": "The name of the organization of the requestor.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } }, { "@id": "observable:interestedIn", "@type": "rdfs:Property", "rdfs:label": "I am interested in", "rdfs:comment": "Classification assigned by the assignee from a list unique to the organization.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } }, { "@id": "observable:tags", "@type": "rdfs:Property", "rdfs:label": "Tags", "rdfs:comment": "One or more tags assigned by the assignee to further classify the ticket.", - "rdfs:range": "xsd:string" + "rdfs:range": { + "@id": "xsd:string" + } } ] } From 279a4f1438c39fdcd5c9de6b9cd57f15b799c324 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 25 Oct 2023 15:44:14 -0400 Subject: [PATCH 03/10] Remove namespace hint This will be moot on folding into observable.ttl. Signed-off-by: Alex Nelson --- ontology/uco/observable/ActionTicket.jsonld | 3 --- 1 file changed, 3 deletions(-) diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld index 7ced997c..19402c0c 100644 --- a/ontology/uco/observable/ActionTicket.jsonld +++ b/ontology/uco/observable/ActionTicket.jsonld @@ -11,9 +11,6 @@ }, "rdfs:label": "Action Ticket", "rdfs:comment": "A record in a ticketing system representing a work request or issue.", - "rdfs:isDefinedBy": { - "@id": "https://unifiedcyberontology.org/ontology/uco/observable" - }, "observable:property": [ { "@id": "observable:title", From 12a8b6ace449970c1fa3de14af6137b4f80f211d Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 25 Oct 2023 15:56:26 -0400 Subject: [PATCH 04/10] Add @graph to group top-of-file concepts This will assist with breaking nodes out of the `observable:property` list and maintaining their tie to the context dictionary. Signed-off-by: Alex Nelson --- ontology/uco/observable/ActionTicket.jsonld | 286 ++++++++++---------- 1 file changed, 145 insertions(+), 141 deletions(-) diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld index 19402c0c..de25f8ca 100644 --- a/ontology/uco/observable/ActionTicket.jsonld +++ b/ontology/uco/observable/ActionTicket.jsonld @@ -4,148 +4,152 @@ "rdfs": "http://www.w3.org/2000/01/rdf-schema#", "xsd": "http://www.w3.org/2001/XMLSchema#" }, - "@id": "observable:ActionTicket", - "@type": "rdfs:Class", - "rdfs:subClassOf": { - "@id": "observable:Observable" - }, - "rdfs:label": "Action Ticket", - "rdfs:comment": "A record in a ticketing system representing a work request or issue.", - "observable:property": [ - { - "@id": "observable:title", - "@type": "rdfs:Property", - "rdfs:label": "Title", - "rdfs:comment": "A brief description of the issue or request.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:description", - "@type": "rdfs:Property", - "rdfs:label": "Description", - "rdfs:comment": "A detailed explanation of the issue or request.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:type", - "@type": "rdfs:Property", - "rdfs:label": "Type", - "rdfs:comment": "The nature of the ticket, e.g., Bug, Feature Request, Task.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:priority", - "@type": "rdfs:Property", - "rdfs:label": "Priority", - "rdfs:comment": "The level of urgency or importance, categorized as low, normal, high, or urgent.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:status", - "@type": "rdfs:Property", - "rdfs:label": "Status", - "rdfs:comment": "The current state of the ticket, e.g., Open, In Progress, Resolved.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:assignee", - "@type": "rdfs:Property", - "rdfs:label": "Assignee", - "rdfs:comment": "A URL to the name record of the assigned person responsible for actioning the ticket.", - "rdfs:range": { - "@id": "xsd:anyURI" - } - }, - { - "@id": "observable:reporter", - "@type": "rdfs:Property", - "rdfs:label": "Reporter", - "rdfs:comment": "The individual or entity that reported the issue or made the request.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:requestor", - "@type": "rdfs:Property", - "rdfs:label": "Requestor", - "rdfs:comment": "A URL to the name record of the submitter of the ticket.", - "rdfs:range": { - "@id": "xsd:anyURI" - } - }, - { - "@id": "observable:ticketID", - "@type": "rdfs:Property", - "rdfs:label": "Ticket ID", - "rdfs:comment": "A unique identifier for the ticket, represented as an integer.", - "rdfs:range": { - "@id": "xsd:integer" - } - }, - { - "@id": "observable:created", - "@type": "rdfs:Property", - "rdfs:label": "Created", - "rdfs:comment": "The date and time when the ticket was created.", - "rdfs:range": { - "@id": "xsd:dateTime" - } - }, - { - "@id": "observable:updated", - "@type": "rdfs:Property", - "rdfs:label": "Updated", - "rdfs:comment": "The date and time when the ticket was last updated.", - "rdfs:range": { - "@id": "xsd:dateTime" - } - }, - { - "@id": "observable:createdVia", - "@type": "rdfs:Property", - "rdfs:label": "Created via", - "rdfs:comment": "The medium through which the ticket was created, e.g., web, email.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:organization", - "@type": "rdfs:Property", - "rdfs:label": "Organization", - "rdfs:comment": "The name of the organization of the requestor.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:interestedIn", - "@type": "rdfs:Property", - "rdfs:label": "I am interested in", - "rdfs:comment": "Classification assigned by the assignee from a list unique to the organization.", - "rdfs:range": { - "@id": "xsd:string" - } - }, + "@graph": [ { - "@id": "observable:tags", - "@type": "rdfs:Property", - "rdfs:label": "Tags", - "rdfs:comment": "One or more tags assigned by the assignee to further classify the ticket.", - "rdfs:range": { - "@id": "xsd:string" - } + "@id": "observable:ActionTicket", + "@type": "rdfs:Class", + "rdfs:subClassOf": { + "@id": "observable:Observable" + }, + "rdfs:label": "Action Ticket", + "rdfs:comment": "A record in a ticketing system representing a work request or issue.", + "observable:property": [ + { + "@id": "observable:title", + "@type": "rdfs:Property", + "rdfs:label": "Title", + "rdfs:comment": "A brief description of the issue or request.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:description", + "@type": "rdfs:Property", + "rdfs:label": "Description", + "rdfs:comment": "A detailed explanation of the issue or request.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:type", + "@type": "rdfs:Property", + "rdfs:label": "Type", + "rdfs:comment": "The nature of the ticket, e.g., Bug, Feature Request, Task.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:priority", + "@type": "rdfs:Property", + "rdfs:label": "Priority", + "rdfs:comment": "The level of urgency or importance, categorized as low, normal, high, or urgent.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:status", + "@type": "rdfs:Property", + "rdfs:label": "Status", + "rdfs:comment": "The current state of the ticket, e.g., Open, In Progress, Resolved.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:assignee", + "@type": "rdfs:Property", + "rdfs:label": "Assignee", + "rdfs:comment": "A URL to the name record of the assigned person responsible for actioning the ticket.", + "rdfs:range": { + "@id": "xsd:anyURI" + } + }, + { + "@id": "observable:reporter", + "@type": "rdfs:Property", + "rdfs:label": "Reporter", + "rdfs:comment": "The individual or entity that reported the issue or made the request.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:requestor", + "@type": "rdfs:Property", + "rdfs:label": "Requestor", + "rdfs:comment": "A URL to the name record of the submitter of the ticket.", + "rdfs:range": { + "@id": "xsd:anyURI" + } + }, + { + "@id": "observable:ticketID", + "@type": "rdfs:Property", + "rdfs:label": "Ticket ID", + "rdfs:comment": "A unique identifier for the ticket, represented as an integer.", + "rdfs:range": { + "@id": "xsd:integer" + } + }, + { + "@id": "observable:created", + "@type": "rdfs:Property", + "rdfs:label": "Created", + "rdfs:comment": "The date and time when the ticket was created.", + "rdfs:range": { + "@id": "xsd:dateTime" + } + }, + { + "@id": "observable:updated", + "@type": "rdfs:Property", + "rdfs:label": "Updated", + "rdfs:comment": "The date and time when the ticket was last updated.", + "rdfs:range": { + "@id": "xsd:dateTime" + } + }, + { + "@id": "observable:createdVia", + "@type": "rdfs:Property", + "rdfs:label": "Created via", + "rdfs:comment": "The medium through which the ticket was created, e.g., web, email.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:organization", + "@type": "rdfs:Property", + "rdfs:label": "Organization", + "rdfs:comment": "The name of the organization of the requestor.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:interestedIn", + "@type": "rdfs:Property", + "rdfs:label": "I am interested in", + "rdfs:comment": "Classification assigned by the assignee from a list unique to the organization.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:tags", + "@type": "rdfs:Property", + "rdfs:label": "Tags", + "rdfs:comment": "One or more tags assigned by the assignee to further classify the ticket.", + "rdfs:range": { + "@id": "xsd:string" + } + } + ] } ] } From 22580af654bd907972bb304f62d6f6a795a26591 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 25 Oct 2023 15:59:30 -0400 Subject: [PATCH 05/10] Replace "observable:property" with "sh:property" `observable:property` does not exist. This patch assumes the intent was to tie with SHACL's `sh:property`. Signed-off-by: Alex Nelson --- ontology/uco/observable/ActionTicket.jsonld | 258 +++++++++++++------- 1 file changed, 167 insertions(+), 91 deletions(-) diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld index de25f8ca..a1ee6f5a 100644 --- a/ontology/uco/observable/ActionTicket.jsonld +++ b/ontology/uco/observable/ActionTicket.jsonld @@ -2,6 +2,7 @@ "@context": { "observable": "https://unifiedcyberontology.org/ontology/uco/observable/", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "sh": "http://www.w3.org/ns/shacl#", "xsd": "http://www.w3.org/2001/XMLSchema#" }, "@graph": [ @@ -13,143 +14,218 @@ }, "rdfs:label": "Action Ticket", "rdfs:comment": "A record in a ticketing system representing a work request or issue.", - "observable:property": [ + "sh:property": [ { - "@id": "observable:title", - "@type": "rdfs:Property", - "rdfs:label": "Title", - "rdfs:comment": "A brief description of the issue or request.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:title" } }, { - "@id": "observable:description", - "@type": "rdfs:Property", - "rdfs:label": "Description", - "rdfs:comment": "A detailed explanation of the issue or request.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:description" } }, { - "@id": "observable:type", - "@type": "rdfs:Property", - "rdfs:label": "Type", - "rdfs:comment": "The nature of the ticket, e.g., Bug, Feature Request, Task.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:type" } }, { - "@id": "observable:priority", - "@type": "rdfs:Property", - "rdfs:label": "Priority", - "rdfs:comment": "The level of urgency or importance, categorized as low, normal, high, or urgent.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:priority" } }, { - "@id": "observable:status", - "@type": "rdfs:Property", - "rdfs:label": "Status", - "rdfs:comment": "The current state of the ticket, e.g., Open, In Progress, Resolved.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:status" } }, { - "@id": "observable:assignee", - "@type": "rdfs:Property", - "rdfs:label": "Assignee", - "rdfs:comment": "A URL to the name record of the assigned person responsible for actioning the ticket.", - "rdfs:range": { - "@id": "xsd:anyURI" + "sh:path": { + "@id": "observable:assignee" } }, { - "@id": "observable:reporter", - "@type": "rdfs:Property", - "rdfs:label": "Reporter", - "rdfs:comment": "The individual or entity that reported the issue or made the request.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:reporter" } }, { - "@id": "observable:requestor", - "@type": "rdfs:Property", - "rdfs:label": "Requestor", - "rdfs:comment": "A URL to the name record of the submitter of the ticket.", - "rdfs:range": { - "@id": "xsd:anyURI" + "sh:path": { + "@id": "observable:requestor" } }, { - "@id": "observable:ticketID", - "@type": "rdfs:Property", - "rdfs:label": "Ticket ID", - "rdfs:comment": "A unique identifier for the ticket, represented as an integer.", - "rdfs:range": { - "@id": "xsd:integer" + "sh:path": { + "@id": "observable:ticketID" } }, { - "@id": "observable:created", - "@type": "rdfs:Property", - "rdfs:label": "Created", - "rdfs:comment": "The date and time when the ticket was created.", - "rdfs:range": { - "@id": "xsd:dateTime" + "sh:path": { + "@id": "observable:created" } }, { - "@id": "observable:updated", - "@type": "rdfs:Property", - "rdfs:label": "Updated", - "rdfs:comment": "The date and time when the ticket was last updated.", - "rdfs:range": { - "@id": "xsd:dateTime" + "sh:path": { + "@id": "observable:updated" } }, { - "@id": "observable:createdVia", - "@type": "rdfs:Property", - "rdfs:label": "Created via", - "rdfs:comment": "The medium through which the ticket was created, e.g., web, email.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:createdVia" } }, { - "@id": "observable:organization", - "@type": "rdfs:Property", - "rdfs:label": "Organization", - "rdfs:comment": "The name of the organization of the requestor.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:organization" } }, { - "@id": "observable:interestedIn", - "@type": "rdfs:Property", - "rdfs:label": "I am interested in", - "rdfs:comment": "Classification assigned by the assignee from a list unique to the organization.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:interestedIn" } }, { - "@id": "observable:tags", - "@type": "rdfs:Property", - "rdfs:label": "Tags", - "rdfs:comment": "One or more tags assigned by the assignee to further classify the ticket.", - "rdfs:range": { - "@id": "xsd:string" + "sh:path": { + "@id": "observable:tags" } } ] + }, + { + "@id": "observable:title", + "@type": "rdfs:Property", + "rdfs:label": "Title", + "rdfs:comment": "A brief description of the issue or request.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:description", + "@type": "rdfs:Property", + "rdfs:label": "Description", + "rdfs:comment": "A detailed explanation of the issue or request.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:type", + "@type": "rdfs:Property", + "rdfs:label": "Type", + "rdfs:comment": "The nature of the ticket, e.g., Bug, Feature Request, Task.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:priority", + "@type": "rdfs:Property", + "rdfs:label": "Priority", + "rdfs:comment": "The level of urgency or importance, categorized as low, normal, high, or urgent.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:status", + "@type": "rdfs:Property", + "rdfs:label": "Status", + "rdfs:comment": "The current state of the ticket, e.g., Open, In Progress, Resolved.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:assignee", + "@type": "rdfs:Property", + "rdfs:label": "Assignee", + "rdfs:comment": "A URL to the name record of the assigned person responsible for actioning the ticket.", + "rdfs:range": { + "@id": "xsd:anyURI" + } + }, + { + "@id": "observable:reporter", + "@type": "rdfs:Property", + "rdfs:label": "Reporter", + "rdfs:comment": "The individual or entity that reported the issue or made the request.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:requestor", + "@type": "rdfs:Property", + "rdfs:label": "Requestor", + "rdfs:comment": "A URL to the name record of the submitter of the ticket.", + "rdfs:range": { + "@id": "xsd:anyURI" + } + }, + { + "@id": "observable:ticketID", + "@type": "rdfs:Property", + "rdfs:label": "Ticket ID", + "rdfs:comment": "A unique identifier for the ticket, represented as an integer.", + "rdfs:range": { + "@id": "xsd:integer" + } + }, + { + "@id": "observable:created", + "@type": "rdfs:Property", + "rdfs:label": "Created", + "rdfs:comment": "The date and time when the ticket was created.", + "rdfs:range": { + "@id": "xsd:dateTime" + } + }, + { + "@id": "observable:updated", + "@type": "rdfs:Property", + "rdfs:label": "Updated", + "rdfs:comment": "The date and time when the ticket was last updated.", + "rdfs:range": { + "@id": "xsd:dateTime" + } + }, + { + "@id": "observable:createdVia", + "@type": "rdfs:Property", + "rdfs:label": "Created via", + "rdfs:comment": "The medium through which the ticket was created, e.g., web, email.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:organization", + "@type": "rdfs:Property", + "rdfs:label": "Organization", + "rdfs:comment": "The name of the organization of the requestor.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:interestedIn", + "@type": "rdfs:Property", + "rdfs:label": "I am interested in", + "rdfs:comment": "Classification assigned by the assignee from a list unique to the organization.", + "rdfs:range": { + "@id": "xsd:string" + } + }, + { + "@id": "observable:tags", + "@type": "rdfs:Property", + "rdfs:label": "Tags", + "rdfs:comment": "One or more tags assigned by the assignee to further classify the ticket.", + "rdfs:range": { + "@id": "xsd:string" + } } ] } From d3b14208c6e2d5acb18d29c81cd96aafbe23522c Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 25 Oct 2023 17:30:11 -0400 Subject: [PATCH 06/10] Replace RDFS design classes with OWL design classes Signed-off-by: Alex Nelson --- ontology/uco/observable/ActionTicket.jsonld | 33 +++++++++++---------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld index a1ee6f5a..cd5b1147 100644 --- a/ontology/uco/observable/ActionTicket.jsonld +++ b/ontology/uco/observable/ActionTicket.jsonld @@ -1,6 +1,7 @@ { "@context": { "observable": "https://unifiedcyberontology.org/ontology/uco/observable/", + "owl": "http://www.w3.org/2002/07/owl#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", "sh": "http://www.w3.org/ns/shacl#", "xsd": "http://www.w3.org/2001/XMLSchema#" @@ -8,7 +9,7 @@ "@graph": [ { "@id": "observable:ActionTicket", - "@type": "rdfs:Class", + "@type": "owl:Class", "rdfs:subClassOf": { "@id": "observable:Observable" }, @@ -94,7 +95,7 @@ }, { "@id": "observable:title", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Title", "rdfs:comment": "A brief description of the issue or request.", "rdfs:range": { @@ -103,7 +104,7 @@ }, { "@id": "observable:description", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Description", "rdfs:comment": "A detailed explanation of the issue or request.", "rdfs:range": { @@ -112,7 +113,7 @@ }, { "@id": "observable:type", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Type", "rdfs:comment": "The nature of the ticket, e.g., Bug, Feature Request, Task.", "rdfs:range": { @@ -121,7 +122,7 @@ }, { "@id": "observable:priority", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Priority", "rdfs:comment": "The level of urgency or importance, categorized as low, normal, high, or urgent.", "rdfs:range": { @@ -130,7 +131,7 @@ }, { "@id": "observable:status", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Status", "rdfs:comment": "The current state of the ticket, e.g., Open, In Progress, Resolved.", "rdfs:range": { @@ -139,7 +140,7 @@ }, { "@id": "observable:assignee", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Assignee", "rdfs:comment": "A URL to the name record of the assigned person responsible for actioning the ticket.", "rdfs:range": { @@ -148,7 +149,7 @@ }, { "@id": "observable:reporter", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Reporter", "rdfs:comment": "The individual or entity that reported the issue or made the request.", "rdfs:range": { @@ -157,7 +158,7 @@ }, { "@id": "observable:requestor", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Requestor", "rdfs:comment": "A URL to the name record of the submitter of the ticket.", "rdfs:range": { @@ -166,7 +167,7 @@ }, { "@id": "observable:ticketID", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Ticket ID", "rdfs:comment": "A unique identifier for the ticket, represented as an integer.", "rdfs:range": { @@ -175,7 +176,7 @@ }, { "@id": "observable:created", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Created", "rdfs:comment": "The date and time when the ticket was created.", "rdfs:range": { @@ -184,7 +185,7 @@ }, { "@id": "observable:updated", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Updated", "rdfs:comment": "The date and time when the ticket was last updated.", "rdfs:range": { @@ -193,7 +194,7 @@ }, { "@id": "observable:createdVia", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Created via", "rdfs:comment": "The medium through which the ticket was created, e.g., web, email.", "rdfs:range": { @@ -202,7 +203,7 @@ }, { "@id": "observable:organization", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Organization", "rdfs:comment": "The name of the organization of the requestor.", "rdfs:range": { @@ -211,7 +212,7 @@ }, { "@id": "observable:interestedIn", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "I am interested in", "rdfs:comment": "Classification assigned by the assignee from a list unique to the organization.", "rdfs:range": { @@ -220,7 +221,7 @@ }, { "@id": "observable:tags", - "@type": "rdfs:Property", + "@type": "owl:DatatypeProperty", "rdfs:label": "Tags", "rdfs:comment": "One or more tags assigned by the assignee to further classify the ticket.", "rdfs:range": { From 790477d08cdeeba48983daeb52acef198ef22f76 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 25 Oct 2023 17:31:04 -0400 Subject: [PATCH 07/10] Restructure - call ActionTicket subclass of ObservableObject Signed-off-by: Alex Nelson --- ontology/uco/observable/ActionTicket.jsonld | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld index cd5b1147..bedf94aa 100644 --- a/ontology/uco/observable/ActionTicket.jsonld +++ b/ontology/uco/observable/ActionTicket.jsonld @@ -11,7 +11,7 @@ "@id": "observable:ActionTicket", "@type": "owl:Class", "rdfs:subClassOf": { - "@id": "observable:Observable" + "@id": "observable:ObservableObject" }, "rdfs:label": "Action Ticket", "rdfs:comment": "A record in a ticketing system representing a work request or issue.", From 867646e29b141d51457a08a89701d1233b43247b Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 25 Oct 2023 17:34:05 -0400 Subject: [PATCH 08/10] Remove already-defined property Signed-off-by: Alex Nelson --- ontology/uco/observable/ActionTicket.jsonld | 9 --------- 1 file changed, 9 deletions(-) diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld index bedf94aa..7236edf8 100644 --- a/ontology/uco/observable/ActionTicket.jsonld +++ b/ontology/uco/observable/ActionTicket.jsonld @@ -120,15 +120,6 @@ "@id": "xsd:string" } }, - { - "@id": "observable:priority", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Priority", - "rdfs:comment": "The level of urgency or importance, categorized as low, normal, high, or urgent.", - "rdfs:range": { - "@id": "xsd:string" - } - }, { "@id": "observable:status", "@type": "owl:DatatypeProperty", From e1adeabeb364b94c1d2370c8183405074ea3901e Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 25 Oct 2023 17:36:19 -0400 Subject: [PATCH 09/10] Rename to avoid colliding with other property Signed-off-by: Alex Nelson --- ontology/uco/observable/ActionTicket.jsonld | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld index 7236edf8..2758f5f0 100644 --- a/ontology/uco/observable/ActionTicket.jsonld +++ b/ontology/uco/observable/ActionTicket.jsonld @@ -38,7 +38,7 @@ }, { "sh:path": { - "@id": "observable:status" + "@id": "observable:ticketStatus" } }, { @@ -121,7 +121,7 @@ } }, { - "@id": "observable:status", + "@id": "observable:ticketStatus", "@type": "owl:DatatypeProperty", "rdfs:label": "Status", "rdfs:comment": "The current state of the ticket, e.g., Open, In Progress, Resolved.", From ab0a2e4708baa40343301468bf74e4a12814f175 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 25 Oct 2023 17:39:01 -0400 Subject: [PATCH 10/10] Transcribe JSON-LD sketch into observable.ttl Signed-off-by: Alex Nelson --- ontology/uco/observable/ActionTicket.jsonld | 223 -------------------- ontology/uco/observable/observable.ttl | 152 +++++++++++++ 2 files changed, 152 insertions(+), 223 deletions(-) delete mode 100644 ontology/uco/observable/ActionTicket.jsonld diff --git a/ontology/uco/observable/ActionTicket.jsonld b/ontology/uco/observable/ActionTicket.jsonld deleted file mode 100644 index 2758f5f0..00000000 --- a/ontology/uco/observable/ActionTicket.jsonld +++ /dev/null @@ -1,223 +0,0 @@ -{ - "@context": { - "observable": "https://unifiedcyberontology.org/ontology/uco/observable/", - "owl": "http://www.w3.org/2002/07/owl#", - "rdfs": "http://www.w3.org/2000/01/rdf-schema#", - "sh": "http://www.w3.org/ns/shacl#", - "xsd": "http://www.w3.org/2001/XMLSchema#" - }, - "@graph": [ - { - "@id": "observable:ActionTicket", - "@type": "owl:Class", - "rdfs:subClassOf": { - "@id": "observable:ObservableObject" - }, - "rdfs:label": "Action Ticket", - "rdfs:comment": "A record in a ticketing system representing a work request or issue.", - "sh:property": [ - { - "sh:path": { - "@id": "observable:title" - } - }, - { - "sh:path": { - "@id": "observable:description" - } - }, - { - "sh:path": { - "@id": "observable:type" - } - }, - { - "sh:path": { - "@id": "observable:priority" - } - }, - { - "sh:path": { - "@id": "observable:ticketStatus" - } - }, - { - "sh:path": { - "@id": "observable:assignee" - } - }, - { - "sh:path": { - "@id": "observable:reporter" - } - }, - { - "sh:path": { - "@id": "observable:requestor" - } - }, - { - "sh:path": { - "@id": "observable:ticketID" - } - }, - { - "sh:path": { - "@id": "observable:created" - } - }, - { - "sh:path": { - "@id": "observable:updated" - } - }, - { - "sh:path": { - "@id": "observable:createdVia" - } - }, - { - "sh:path": { - "@id": "observable:organization" - } - }, - { - "sh:path": { - "@id": "observable:interestedIn" - } - }, - { - "sh:path": { - "@id": "observable:tags" - } - } - ] - }, - { - "@id": "observable:title", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Title", - "rdfs:comment": "A brief description of the issue or request.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:description", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Description", - "rdfs:comment": "A detailed explanation of the issue or request.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:type", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Type", - "rdfs:comment": "The nature of the ticket, e.g., Bug, Feature Request, Task.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:ticketStatus", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Status", - "rdfs:comment": "The current state of the ticket, e.g., Open, In Progress, Resolved.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:assignee", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Assignee", - "rdfs:comment": "A URL to the name record of the assigned person responsible for actioning the ticket.", - "rdfs:range": { - "@id": "xsd:anyURI" - } - }, - { - "@id": "observable:reporter", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Reporter", - "rdfs:comment": "The individual or entity that reported the issue or made the request.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:requestor", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Requestor", - "rdfs:comment": "A URL to the name record of the submitter of the ticket.", - "rdfs:range": { - "@id": "xsd:anyURI" - } - }, - { - "@id": "observable:ticketID", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Ticket ID", - "rdfs:comment": "A unique identifier for the ticket, represented as an integer.", - "rdfs:range": { - "@id": "xsd:integer" - } - }, - { - "@id": "observable:created", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Created", - "rdfs:comment": "The date and time when the ticket was created.", - "rdfs:range": { - "@id": "xsd:dateTime" - } - }, - { - "@id": "observable:updated", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Updated", - "rdfs:comment": "The date and time when the ticket was last updated.", - "rdfs:range": { - "@id": "xsd:dateTime" - } - }, - { - "@id": "observable:createdVia", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Created via", - "rdfs:comment": "The medium through which the ticket was created, e.g., web, email.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:organization", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Organization", - "rdfs:comment": "The name of the organization of the requestor.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:interestedIn", - "@type": "owl:DatatypeProperty", - "rdfs:label": "I am interested in", - "rdfs:comment": "Classification assigned by the assignee from a list unique to the organization.", - "rdfs:range": { - "@id": "xsd:string" - } - }, - { - "@id": "observable:tags", - "@type": "owl:DatatypeProperty", - "rdfs:label": "Tags", - "rdfs:comment": "One or more tags assigned by the assignee to further classify the ticket.", - "rdfs:range": { - "@id": "xsd:string" - } - } - ] -} diff --git a/ontology/uco/observable/observable.ttl b/ontology/uco/observable/observable.ttl index d4fb17ea..02855159 100644 --- a/ontology/uco/observable/observable.ttl +++ b/ontology/uco/observable/observable.ttl @@ -209,6 +209,60 @@ observable:AccountFacet sh:targetClass observable:AccountFacet ; . +observable:ActionTicket + a owl:Class ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Action Ticket" ; + rdfs:comment "A record in a ticketing system representing a work request or issue." ; + sh:property + [ + sh:path observable:assignee ; + ] , + [ + sh:path observable:created ; + ] , + [ + sh:path observable:createdVia ; + ] , + [ + sh:path observable:description ; + ] , + [ + sh:path observable:interestedIn ; + ] , + [ + sh:path observable:organization ; + ] , + [ + sh:path observable:priority ; + ] , + [ + sh:path observable:reporter ; + ] , + [ + sh:path observable:requestor ; + ] , + [ + sh:path observable:tags ; + ] , + [ + sh:path observable:ticketID ; + ] , + [ + sh:path observable:ticketStatus ; + ] , + [ + sh:path observable:title ; + ] , + [ + sh:path observable:type ; + ] , + [ + sh:path observable:updated ; + ] + ; + . + observable:Adaptor a owl:Class , @@ -9586,6 +9640,13 @@ observable:aslrEnabled rdfs:range xsd:boolean ; . +observable:assignee + a owl:DatatypeProperty ; + rdfs:label "Assignee" ; + rdfs:comment "A URL to the name record of the assigned person responsible for actioning the ticket." ; + rdfs:range xsd:anyURI ; + . + observable:attendant a owl:ObjectProperty ; rdfs:label "attendant"@en ; @@ -10211,6 +10272,20 @@ observable:cpuFamily rdfs:range xsd:string ; . +observable:created + a owl:DatatypeProperty ; + rdfs:label "Created" ; + rdfs:comment "The date and time when the ticket was created." ; + rdfs:range xsd:dateTime ; + . + +observable:createdVia + a owl:DatatypeProperty ; + rdfs:label "Created via" ; + rdfs:comment "The medium through which the ticket was created, e.g., web, email." ; + rdfs:range xsd:string ; + . + observable:creationDate a owl:DatatypeProperty ; rdfs:label "creationDate"@en ; @@ -10315,6 +10390,13 @@ observable:depEnabled rdfs:range xsd:boolean ; . +observable:description + a owl:DatatypeProperty ; + rdfs:label "Description" ; + rdfs:comment "A detailed explanation of the issue or request." ; + rdfs:range xsd:string ; + . + observable:descriptions a owl:DatatypeProperty ; rdfs:label "descriptions"@en ; @@ -11192,6 +11274,13 @@ observable:interceptedCallState rdfs:range xsd:string ; . +observable:interestedIn + a owl:DatatypeProperty ; + rdfs:label "I am interested in" ; + rdfs:comment "Classification assigned by the assignee from a list unique to the organization." ; + rdfs:range xsd:string ; + . + observable:ip a owl:ObjectProperty ; rdfs:label "ip"@en ; @@ -12043,6 +12132,13 @@ observable:options rdfs:range xsd:string ; . +observable:organization + a owl:DatatypeProperty ; + rdfs:label "Organization" ; + rdfs:comment "The name of the organization of the requestor." ; + rdfs:range xsd:string ; + . + observable:organizationDepartment a owl:DatatypeProperty ; rdfs:label "organizationDepartment"@en ; @@ -12703,6 +12799,13 @@ observable:remindTime rdfs:range xsd:dateTime ; . +observable:reporter + a owl:DatatypeProperty ; + rdfs:label "Reporter" ; + rdfs:comment "The individual or entity that reported the issue or made the request." ; + rdfs:range xsd:string ; + . + observable:requestMethod a owl:DatatypeProperty ; rdfs:label "requestMethod"@en ; @@ -12725,6 +12828,13 @@ observable:requestVersion rdfs:range xsd:string ; . +observable:requestor + a owl:DatatypeProperty ; + rdfs:label "Requestor" ; + rdfs:comment "A URL to the name record of the submitter of the ticket." ; + rdfs:range xsd:anyURI ; + . + observable:rowCondition a owl:DatatypeProperty ; rdfs:label "rowCondition"@en ; @@ -13246,6 +13356,13 @@ observable:tableSchema rdfs:range xsd:string ; . +observable:tags + a owl:DatatypeProperty ; + rdfs:label "Tags" ; + rdfs:comment "One or more tags assigned by the assignee to further classify the ticket." ; + rdfs:range xsd:string ; + . + observable:targetFile a owl:ObjectProperty ; rdfs:label "targetFile"@en ; @@ -13286,6 +13403,20 @@ observable:thumbprintHash rdfs:range types:Hash ; . +observable:ticketID + a owl:DatatypeProperty ; + rdfs:label "Ticket ID" ; + rdfs:comment "A unique identifier for the ticket, represented as an integer." ; + rdfs:range xsd:integer ; + . + +observable:ticketStatus + a owl:DatatypeProperty ; + rdfs:label "Status" ; + rdfs:comment "The current state of the ticket, e.g., Open, In Progress, Resolved." ; + rdfs:range xsd:string ; + . + observable:timeDateStamp a owl:DatatypeProperty ; rdfs:label "timeDateStamp"@en ; @@ -13314,6 +13445,13 @@ observable:timezoneStandard rdfs:range xsd:string ; . +observable:title + a owl:DatatypeProperty ; + rdfs:label "Title" ; + rdfs:comment "A brief description of the issue or request." ; + rdfs:range xsd:string ; + . + observable:to a owl:ObjectProperty ; rdfs:label "to"@en ; @@ -13430,6 +13568,13 @@ observable:twitterId rdfs:range xsd:string ; . +observable:type + a owl:DatatypeProperty ; + rdfs:label "Type" ; + rdfs:comment "The nature of the ticket, e.g., Bug, Feature Request, Task." ; + rdfs:range xsd:string ; + . + observable:uninstallDate a owl:DatatypeProperty ; rdfs:label "uninstallDate"@en ; @@ -13437,6 +13582,13 @@ observable:uninstallDate rdfs:range xsd:dateTime ; . +observable:updated + a owl:DatatypeProperty ; + rdfs:label "Updated" ; + rdfs:comment "The date and time when the ticket was last updated." ; + rdfs:range xsd:dateTime ; + . + observable:updatedDate a owl:DatatypeProperty ; rdfs:label "updatedDate"@en ;