diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..b6a76fb --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,10 @@ +# This file lists the contributors responsible for the +# repository content. They will also be automatically +# asked to review any pull request made in this repository. + +# Each line is a file pattern followed by one or more owners. +# The sequence matters: later patterns take precedence. + +# FILES OWNERS +* @casework/maintainers-global +* @casework/maintainers-case-python-utilities diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index 38c6e3c..604c1a1 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -23,6 +23,8 @@ on: release: types: - published + schedule: + - cron: '15 5 * * TUE' jobs: build: @@ -31,8 +33,8 @@ jobs: strategy: matrix: python-version: - - '3.7' - - '3.10' + - '3.8' + - '3.11' steps: - uses: actions/checkout@v2 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c952e8e..57e17c2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,14 +1,14 @@ repos: - repo: https://github.com/psf/black - rev: 22.3.0 + rev: 23.1.0 hooks: - id: black - repo: https://github.com/pycqa/flake8 - rev: 4.0.1 + rev: 6.0.0 hooks: - id: flake8 - repo: https://github.com/pycqa/isort - rev: 5.10.1 + rev: 5.12.0 hooks: - id: isort name: isort (python) diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index 2e73b90..ec539b9 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -27,10 +27,12 @@ pushd case_utils/ontology git add case-0.6.0.ttl # Assuming CASE 0.6.0 was just released. # and/or git add uco-0.8.0.ttl # Assuming UCO 0.8.0 was adopted in CASE 0.6.0. + + git add ontology_and_version_iris.txt popd make check # Assuming `make check` passes: -git commit -m "Build CASE 0.6.0 monolithic .ttl files" case_utils/ontology/case-0.6.0-subclasses.ttl case_utils/ontology/case-0.6.0.ttl +git commit -m "Build CASE 0.6.0 monolithic .ttl files" case_utils/ontology/case-0.6.0-subclasses.ttl case_utils/ontology/case-0.6.0.ttl case_utils/ontology/ontology_and_version_iris.txt git commit -m "Update CASE ontology pointer to version 0.6.0" dependencies/CASE case_utils/ontology/version_info.py ``` @@ -43,4 +45,4 @@ pre-commit --version The `pre-commit` tool hooks into Git's commit machinery to run a set of linters and static analyzers over each change. To install `pre-commit` into Git's hooks, run: ```bash pre-commit install -``` \ No newline at end of file +``` diff --git a/README.md b/README.md index 802e678..d1e6ff9 100644 --- a/README.md +++ b/README.md @@ -55,12 +55,17 @@ To produce the validation report as a machine-readable graph output, the `--form case_validate --format turtle input.json > result.ttl ``` -To use one or more supplementary ontology files, the `--ontology-graph` flag can be used, more than once if desired, to supplement the selected CASE version: +To use one or more supplementary ontology or shape files, the `--ontology-graph` flag can be used, more than once if desired, to supplement the selected CASE version: ```bash -case_validate --ontology-graph internal_ontology.ttl --ontology-graph experimental_shapes.ttl input.json +case_validate \ + --ontology-graph internal_ontology.ttl \ + --ontology-graph experimental_shapes.ttl \ + input.json ``` +This tool uses the `--built-version` flag, described [below](#built-versions). + Other flags are reviewable with `case_validate --help`. @@ -87,6 +92,8 @@ These commands can be used with any RDF files to run arbitrary SPARQL queries. Note that prefixes used in the SPARQL queries do not need to be defined in the SPARQL query. Their mapping will be inherited from their first definition in the input graph files. However, input graphs are not required to agree on prefix mappings, so there is potential for confusion from input argument order mattering if two input graph files disagree on what a prefix maps to. If there is concern of ambiguity from inputs, a `PREFIX` statement should be included in the query, such as is shown in [this test query](tests/case_utils/case_sparql_select/subclass.sparql). +These tools use the `--built-version` flag, described [below](#built-versions). + #### `case_sparql_construct` @@ -116,6 +123,15 @@ case_sparql_select output.md input.sparql input.json [input-2.json ...] This [module](case_utils/local_uuid.py) provides a wrapper UUID generator, `local_uuid()`. Its main purpose is making example data generate consistent identifiers, and intentionally includes mechanisms to make it difficult to activate this mode without awareness of the caller. +### Built versions + +Several tools in this package include a flag `--built-version`. This flag tailors the tool's behavior to a certain CASE ontology version; typically, this involves mixing the ontology graph into the data graph for certain necessary knowledge expansion for pattern matching (such as making queries aware of the OWL subclass hierarchy). + +If not provided, the tool will assume a default value of the latest ontology version. + +If the special value `none` is provided, none of the ontology builds this package ships will be included in the data graph. The `none` value supports use cases that are wholly independent of CASE, such as running a test in a specialized vocabulary; and also suports use cases where a non-released CASE version is meant to be used, such as a locally revised version of CASE where some concept revisions are being reviewed. + + ## Development status This repository follows [CASE community guidance on describing development status](https://caseontology.org/resources/software.html#development_status), by adherence to noted support requirements. diff --git a/case_utils/__init__.py b/case_utils/__init__.py index 5fc7116..a9456fb 100644 --- a/case_utils/__init__.py +++ b/case_utils/__init__.py @@ -11,6 +11,6 @@ # # We would appreciate acknowledgement if the software is used. -__version__ = "0.7.0" +__version__ = "0.11.0" from . import local_uuid # noqa: F401 diff --git a/case_utils/case_file/__init__.py b/case_utils/case_file/__init__.py index ec51a85..051e07d 100644 --- a/case_utils/case_file/__init__.py +++ b/case_utils/case_file/__init__.py @@ -15,7 +15,7 @@ This module creates a graph object that provides a basic UCO characterization of a single file. The gathered metadata is among the more "durable" file characteristics, i.e. characteristics that would remain consistent when transferring a file between locations. """ -__version__ = "0.4.0" +__version__ = "0.5.0" import argparse import datetime @@ -27,7 +27,7 @@ import rdflib -import case_utils +import case_utils.inherent_uuid from case_utils.namespace import ( NS_RDF, NS_UCO_CORE, @@ -39,6 +39,7 @@ DEFAULT_PREFIX = "http://example.org/kb/" + # Shortcut syntax for defining an immutable named tuple is noted here: # https://docs.python.org/3/library/typing.html#typing.NamedTuple # via the "See also" box here: https://docs.python.org/3/library/collections.html#collections.namedtuple @@ -48,6 +49,8 @@ class HashDict(typing.NamedTuple): sha1: str sha256: str sha512: str + sha3_256: str + sha3_512: str def create_file_node( @@ -57,6 +60,9 @@ def create_file_node( node_prefix: str = DEFAULT_PREFIX, disable_hashes: bool = False, disable_mtime: bool = False, + *args: typing.Any, + use_deterministic_uuids: bool = False, + **kwargs: typing.Any, ) -> rdflib.URIRef: r""" This function characterizes the file at filepath. @@ -67,7 +73,7 @@ def create_file_node( :param filepath: The path to the file to characterize. Can be relative or absolute. :type filepath: str - :param node_iri: The desired full IRI for the node. If absent, will make an IRI of the pattern ``ns_base + 'file-' + uuid4`` + :param node_iri: The desired full IRI for the node. If absent, will make an IRI of the pattern ``ns_base + 'File-' + uuid`` :type node_iri: str :param node_prefix: The base prefix to use if node_iri is not supplied. @@ -85,7 +91,7 @@ def create_file_node( node_namespace = rdflib.Namespace(node_prefix) if node_iri is None: - node_slug = "file-" + case_utils.local_uuid.local_uuid() + node_slug = "File-" + case_utils.local_uuid.local_uuid() node_iri = node_namespace[node_slug] n_file = rdflib.URIRef(node_iri) graph.add((n_file, NS_RDF.type, NS_UCO_OBSERVABLE.File)) @@ -94,7 +100,15 @@ def create_file_node( literal_basename = rdflib.Literal(basename) file_stat = os.stat(filepath) - n_file_facet = node_namespace["file-facet-" + case_utils.local_uuid.local_uuid()] + + n_file_facet: rdflib.URIRef + if use_deterministic_uuids: + n_file_facet = case_utils.inherent_uuid.get_facet_uriref( + n_file, NS_UCO_OBSERVABLE.FileFacet, namespace=node_namespace + ) + else: + n_file_facet = node_namespace["FileFacet-" + case_utils.local_uuid.local_uuid()] + graph.add( ( n_file_facet, @@ -121,9 +135,16 @@ def create_file_node( graph.add((n_file_facet, NS_UCO_OBSERVABLE.modifiedTime, literal_mtime)) if not disable_hashes: - n_contentdata_facet = node_namespace[ - "content-data-facet-" + case_utils.local_uuid.local_uuid() - ] + n_contentdata_facet: rdflib.URIRef + if use_deterministic_uuids: + n_contentdata_facet = case_utils.inherent_uuid.get_facet_uriref( + n_file, NS_UCO_OBSERVABLE.ContentDataFacet, namespace=node_namespace + ) + else: + n_contentdata_facet = node_namespace[ + "ContentDataFacet-" + case_utils.local_uuid.local_uuid() + ] + graph.add((n_file, NS_UCO_CORE.hasFacet, n_contentdata_facet)) graph.add( (n_contentdata_facet, NS_RDF.type, NS_UCO_OBSERVABLE.ContentDataFacet) @@ -140,6 +161,8 @@ def create_file_node( sha1obj = hashlib.sha1() sha256obj = hashlib.sha256() sha512obj = hashlib.sha512() + sha3_256obj = hashlib.sha3_256() + sha3_512obj = hashlib.sha3_512() stashed_error = None byte_tally = 0 with open(filepath, "rb") as in_fh: @@ -158,6 +181,8 @@ def create_file_node( sha1obj.update(buf) sha256obj.update(buf) sha512obj.update(buf) + sha3_256obj.update(buf) + sha3_512obj.update(buf) if stashed_error is not None: raise stashed_error current_hashdict = HashDict( @@ -166,6 +191,8 @@ def create_file_node( sha1obj.hexdigest(), sha256obj.hexdigest(), sha512obj.hexdigest(), + sha3_256obj.hexdigest(), + sha3_512obj.hexdigest(), ) if last_hashdict == current_hashdict: successful_hashdict = current_hashdict @@ -193,26 +220,48 @@ def create_file_node( # Add confirmed hashes into graph. for key in successful_hashdict._fields: - if key not in ("md5", "sha1", "sha256", "sha512"): + if key not in ("md5", "sha1", "sha256", "sha512", "sha3_256", "sha3_512"): continue - n_hash = node_namespace["hash-" + case_utils.local_uuid.local_uuid()] + + l_hash_method: rdflib.Literal + if key in ("sha3_256", "sha3_512"): + l_hash_method = rdflib.Literal( + key.replace("_", "-").upper(), + datatype=NS_UCO_VOCABULARY.HashNameVocab, + ) + else: + l_hash_method = rdflib.Literal( + key.upper(), datatype=NS_UCO_VOCABULARY.HashNameVocab + ) + + hash_value: str = getattr(successful_hashdict, key) + l_hash_value = rdflib.Literal(hash_value.upper(), datatype=NS_XSD.hexBinary) + + hash_uuid: str + if use_deterministic_uuids: + hash_uuid = str( + case_utils.inherent_uuid.hash_method_value_uuid( + l_hash_method, l_hash_value + ) + ) + else: + hash_uuid = case_utils.local_uuid.local_uuid() + n_hash = node_namespace["Hash-" + hash_uuid] + graph.add((n_contentdata_facet, NS_UCO_OBSERVABLE.hash, n_hash)) graph.add((n_hash, NS_RDF.type, NS_UCO_TYPES.Hash)) graph.add( ( n_hash, NS_UCO_TYPES.hashMethod, - rdflib.Literal( - key.upper(), datatype=NS_UCO_VOCABULARY.HashNameVocab - ), + l_hash_method, ) ) - hash_value = getattr(successful_hashdict, key) graph.add( ( n_hash, NS_UCO_TYPES.hashValue, - rdflib.Literal(hash_value.upper(), datatype=NS_XSD.hexBinary), + l_hash_value, ) ) @@ -225,6 +274,11 @@ def main() -> None: parser.add_argument("--debug", action="store_true") parser.add_argument("--disable-hashes", action="store_true") parser.add_argument("--disable-mtime", action="store_true") + parser.add_argument( + "--use-deterministic-uuids", + action="store_true", + help="Use UUIDs computed using the case_utils.inherent_uuid module.", + ) parser.add_argument( "--output-format", help="Override extension-based format guesser." ) @@ -257,7 +311,7 @@ def main() -> None: context_dictionary = {k: v for (k, v) in graph.namespace_manager.namespaces()} serialize_kwargs["context"] = context_dictionary - node_iri = NS_BASE["file-" + case_utils.local_uuid.local_uuid()] + node_iri = NS_BASE["File-" + case_utils.local_uuid.local_uuid()] create_file_node( graph, args.in_file, @@ -265,6 +319,7 @@ def main() -> None: node_prefix=args.base_prefix, disable_hashes=args.disable_hashes, disable_mtime=args.disable_mtime, + use_deterministic_uuids=args.use_deterministic_uuids, ) graph.serialize(args.out_graph, **serialize_kwargs) diff --git a/case_utils/case_sparql_construct/__init__.py b/case_utils/case_sparql_construct/__init__.py index f8f62b4..2ac367f 100644 --- a/case_utils/case_sparql_construct/__init__.py +++ b/case_utils/case_sparql_construct/__init__.py @@ -15,7 +15,7 @@ This script executes a SPARQL CONSTRUCT query, returning a graph of the generated triples. """ -__version__ = "0.2.3" +__version__ = "0.2.5" import argparse import logging @@ -49,7 +49,7 @@ def main() -> None: "--built-version", choices=tuple(built_version_choices_list), default="case-" + CURRENT_CASE_VERSION, - help="Ontology version to use to supplement query, such as for subclass querying. Does not require networking to use. Default is most recent CASE release.", + help="Ontology version to use to supplement query, such as for subclass querying. Does not require networking to use. Default is most recent CASE release. Passing 'none' will mean no pre-built CASE ontology versions accompanying this tool will be included in the analysis.", ) parser.add_argument( "--disallow-empty-results", @@ -98,10 +98,11 @@ def main() -> None: construct_query_result = in_graph.query(construct_query_object) _logger.debug("type(construct_query_result) = %r." % type(construct_query_result)) _logger.debug("len(construct_query_result) = %d." % len(construct_query_result)) - for (row_no, row) in enumerate(construct_query_result): + for row_no, row in enumerate(construct_query_result): + assert isinstance(row, tuple) if row_no == 0: _logger.debug("row[0] = %r." % (row,)) - out_graph.add(row) + out_graph.add((row[0], row[1], row[2])) output_format = None if args.output_format is None: diff --git a/case_utils/case_sparql_select/__init__.py b/case_utils/case_sparql_select/__init__.py index f609a12..be6268d 100644 --- a/case_utils/case_sparql_select/__init__.py +++ b/case_utils/case_sparql_select/__init__.py @@ -26,13 +26,14 @@ Should a more complex query be necessary, an outer, wrapping SELECT query would let this script continue to function. """ -__version__ = "0.4.3" +__version__ = "0.5.1" import argparse import binascii import logging import os import sys +import typing import pandas as pd # type: ignore import rdflib.plugins.sparql @@ -48,6 +49,146 @@ _logger = logging.getLogger(os.path.basename(__file__)) +def query_text_to_variables(select_query_text: str) -> typing.List[str]: + # Build columns list from SELECT line. + select_query_text_lines = select_query_text.split("\n") + select_line = [ + line for line in select_query_text_lines if line.startswith("SELECT ") + ][0] + variables = select_line.replace(" DISTINCT", "").replace("SELECT ", "").split(" ") + return variables + + +def graph_and_query_to_data_frame( + graph: rdflib.Graph, + select_query_text: str, + *args: typing.Any, + built_version: str = "case-" + CURRENT_CASE_VERSION, + disallow_empty_results: bool = False, + use_prefixes: bool = False, + **kwargs: typing.Any, +) -> pd.DataFrame: + # Inherit prefixes defined in input context dictionary. + nsdict = {k: v for (k, v) in graph.namespace_manager.namespaces()} + + # Avoid side-effects on input parameter. + if "subClassOf" in select_query_text: + _graph = rdflib.Graph() + _graph += graph + case_utils.ontology.load_subclass_hierarchy(_graph, built_version=built_version) + else: + _graph = graph + + variables = query_text_to_variables(select_query_text) + + tally = 0 + records = [] + select_query_object = rdflib.plugins.sparql.processor.prepareQuery( + select_query_text, initNs=nsdict + ) + for row_no, row in enumerate(_graph.query(select_query_object)): + assert isinstance(row, rdflib.query.ResultRow) + tally = row_no + 1 + record = [] + for column_no, column in enumerate(row): + if column is None: + column_value = "" + elif isinstance(column, rdflib.term.Literal): + if column.datatype == NS_XSD.hexBinary: + # Use hexlify to convert xsd:hexBinary to ASCII. + # The render to ASCII is in support of this script rendering results for website viewing. + # .decode() is because hexlify returns bytes. + column_value = binascii.hexlify(column.toPython()).decode() + else: + column_value = column.toPython() + elif isinstance(column, rdflib.URIRef): + if use_prefixes: + column_value = graph.namespace_manager.qname(column.toPython()) + else: + column_value = column.toPython() + elif isinstance(column, rdflib.BNode): + column_value = column.toPython() + if row_no == 0: + _logger.debug("row[0]column[%d] = %r." % (column_no, column_value)) + record.append(column_value) + records.append(record) + + if tally == 0: + if disallow_empty_results: + raise ValueError("Failed to return any results.") + + df = pd.DataFrame(records, columns=variables) + return df + + +def data_frame_to_table_text( + df: pd.DataFrame, + *args: typing.Any, + json_indent: typing.Optional[int] = None, + json_orient: str, + output_mode: str, + use_header: bool, + use_index: bool, + **kwargs: typing.Any, +) -> str: + table_text: typing.Optional[str] = None + + # Set up kwargs dicts. One kwarg behaves slightly differently for Markdown vs. other formats. + general_kwargs: typing.Dict[str, typing.Any] = dict() + md_kwargs: typing.Dict[str, typing.Any] = dict() + + # Note some output modes will drop 'header' from general_kwargs, due to alternate support or lack of support. + if use_header: + general_kwargs["header"] = True + else: + general_kwargs["header"] = False + md_kwargs["headers"] = tuple() + + general_kwargs["index"] = use_index + + if output_mode in {"csv", "tsv"}: + sep: str + if output_mode == "csv": + sep = "," + elif output_mode == "tsv": + sep = "\t" + else: + raise NotImplementedError( + "Output extension not implemented in CSV-style output." + ) + table_text = df.to_csv(sep=sep, **general_kwargs) + elif output_mode == "html": + # https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_html.html + # Add CSS classes for CASE website Bootstrap support. + table_text = df.to_html( + classes=("table", "table-bordered", "table-condensed"), **general_kwargs + ) + elif output_mode == "json": + # https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_json.html + + # Drop unsupported kwarg. + del general_kwargs["header"] + + table_text = df.to_json( + indent=json_indent, orient=json_orient, date_format="iso", **general_kwargs + ) + elif output_mode == "md": + # https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_markdown.html + # https://pypi.org/project/tabulate/ + # Assume Github-flavored Markdown. + + # Drop unsupported kwarg. + del general_kwargs["header"] + + table_text = df.to_markdown(tablefmt="github", **general_kwargs, **md_kwargs) + else: + if table_text is None: + raise NotImplementedError("Unimplemented output mode: %r." % output_mode) + assert table_text is not None + + return table_text + + def main() -> None: parser = argparse.ArgumentParser() @@ -63,96 +204,138 @@ def main() -> None: "--built-version", choices=tuple(built_version_choices_list), default="case-" + CURRENT_CASE_VERSION, - help="Ontology version to use to supplement query, such as for subclass querying. Does not require networking to use. Default is most recent CASE release.", + help="Ontology version to use to supplement query, such as for subclass querying. Does not require networking to use. Default is most recent CASE release. Passing 'none' will mean no pre-built CASE ontology versions accompanying this tool will be included in the analysis.", ) parser.add_argument( "--disallow-empty-results", action="store_true", help="Raise error if no results are returned for query.", ) + parser.add_argument( + "--json-indent", + type=int, + help="Number of whitespace characters to use for indentation. Only applicable for JSON output.", + ) + parser.add_argument( + "--json-orient", + default="columns", + choices=("columns", "index", "records", "split", "table", "values"), + help="Orientation to use for Pandas DataFrame JSON output. Only applicable for JSON output.", + ) + parser.add_argument( + "--use-prefixes", + action="store_true", + help="Abbreviate node IDs according to graph's encoded prefixes. (This will use prefixes in the graph, not the query.)", + ) parser.add_argument( "out_table", - help="Expected extensions are .html for HTML tables or .md for Markdown tables.", + help="Expected extensions are .html for HTML tables, .json for JSON tables, .md for Markdown tables, .csv for comma-separated values, and .tsv for tab-separated values. Note that JSON is a Pandas output JSON format (chosen by '--json-orient'), and not JSON-LD.", ) parser.add_argument( "in_sparql", help="File containing a SPARQL SELECT query. Note that prefixes not mapped with a PREFIX statement will be mapped according to their first occurrence among input graphs.", ) + + parser_header_group = parser.add_mutually_exclusive_group(required=False) + parser_header_group.add_argument( + "--header", + action="store_true", + help="Print column labels. This is the default behavior.", + ) + parser_header_group.add_argument( + "--no-header", + action="store_true", + help="Do not print column labels.", + ) + + parser_index_group = parser.add_mutually_exclusive_group(required=False) + parser_index_group.add_argument( + "--index", + action="store_true", + help="Print index (auto-incrementing row labels as left untitled column). This is the default behavior.", + ) + parser_index_group.add_argument( + "--no-index", + action="store_true", + help="Do not print index. If output is JSON, --json-orient must be 'split' or 'table'.", + ) + parser.add_argument("in_graph", nargs="+") args = parser.parse_args() + output_mode: str + if args.out_table.endswith(".csv"): + output_mode = "csv" + elif args.out_table.endswith(".html"): + output_mode = "html" + elif args.out_table.endswith(".json"): + output_mode = "json" + elif args.out_table.endswith(".md"): + output_mode = "md" + elif args.out_table.endswith(".tsv"): + output_mode = "tsv" + else: + raise NotImplementedError("Output file extension not implemented.") + graph = rdflib.Graph() for in_graph_filename in args.in_graph: graph.parse(in_graph_filename) - # Inherit prefixes defined in input context dictionary. - nsdict = {k: v for (k, v) in graph.namespace_manager.namespaces()} - - select_query_text = None + select_query_text: typing.Optional[str] = None with open(args.in_sparql, "r") as in_fh: select_query_text = in_fh.read().strip() + if select_query_text is None: + raise ValueError("Failed to load query.") _logger.debug("select_query_text = %r." % select_query_text) - if "subClassOf" in select_query_text: - case_utils.ontology.load_subclass_hierarchy( - graph, built_version=args.built_version - ) - - # Build columns list from SELECT line. - select_query_text_lines = select_query_text.split("\n") - select_line = [ - line for line in select_query_text_lines if line.startswith("SELECT ") - ][0] - variables = select_line.replace(" DISTINCT", "").replace("SELECT ", "").split(" ") - - tally = 0 - records = [] - select_query_object = rdflib.plugins.sparql.processor.prepareQuery( - select_query_text, initNs=nsdict - ) - for (row_no, row) in enumerate(graph.query(select_query_object)): - tally = row_no + 1 - record = [] - for (column_no, column) in enumerate(row): - if column is None: - column_value = "" - elif ( - isinstance(column, rdflib.term.Literal) - and column.datatype == NS_XSD.hexBinary - ): - # Use hexlify to convert xsd:hexBinary to ASCII. - # The render to ASCII is in support of this script rendering results for website viewing. - # .decode() is because hexlify returns bytes. - column_value = binascii.hexlify(column.toPython()).decode() - else: - column_value = column.toPython() - if row_no == 0: - _logger.debug("row[0]column[%d] = %r." % (column_no, column_value)) - record.append(column_value) - records.append(record) - if tally == 0: - if args.disallow_empty_results: - raise ValueError("Failed to return any results.") + # Process --header and --no-header. + use_header: bool + if args.header is True: + use_header = True + if args.no_header is True: + use_header = False + else: + use_header = True - df = pd.DataFrame(records, columns=variables) + # Process --index and --no-index. + use_index: bool + if args.index is True: + use_index = True + if args.no_index is True: + use_index = False + else: + use_index = True - table_text = None - if args.out_table.endswith(".html"): - # https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_html.html - # Add CSS classes for CASE website Bootstrap support. - table_text = df.to_html(classes=("table", "table-bordered", "table-condensed")) - elif args.out_table.endswith(".md"): - # https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_markdown.html - # https://pypi.org/project/tabulate/ - # Assume Github-flavored Markdown. - table_text = df.to_markdown(tablefmt="github") - if table_text is None: - raise NotImplementedError( - "Unsupported output extension for output filename %r.", args.out_table + if ( + output_mode == "json" + and use_index is False + and args.json_orient not in {"split", "table"} + ): + raise ValueError( + "For JSON output, --no-index flag requires --json-orient to be either 'split' or 'table'." ) + df = graph_and_query_to_data_frame( + graph, + select_query_text, + built_version=args.built_version, + disallow_empty_results=args.disallow_empty_results is True, + use_prefixes=args.use_prefixes is True, + ) + + table_text = data_frame_to_table_text( + df, + json_indent=args.json_indent, + json_orient=args.json_orient, + output_mode=output_mode, + use_header=use_header, + use_index=use_index, + ) with open(args.out_table, "w") as out_fh: out_fh.write(table_text) + if table_text[-1] != "\n": + # End file with newline. CSV and TSV modes end with a built-in newline. + out_fh.write("\n") if __name__ == "__main__": diff --git a/case_utils/case_validate/__init__.py b/case_utils/case_validate/__init__.py index 5a033eb..a214cf9 100644 --- a/case_utils/case_validate/__init__.py +++ b/case_utils/case_validate/__init__.py @@ -1,13 +1,16 @@ #!/usr/bin/env python3 +# Portions of this file contributed by NIST are governed by the following +# statement: +# # This software was developed at the National Institute of Standards # and Technology by employees of the Federal Government in the course -# of their official duties. Pursuant to title 17 Section 105 of the -# United States Code this software is not subject to copyright -# protection and is in the public domain. NIST assumes no -# responsibility whatsoever for its use by other parties, and makes -# no guarantees, expressed or implied, about its quality, -# reliability, or any other characteristic. +# of their official duties. Pursuant to Title 17 Section 105 of the +# United States Code, this software is not subject to copyright +# protection within the United States. NIST assumes no responsibility +# whatsoever for its use by other parties, and makes no guarantees, +# expressed or implied, about its quality, reliability, or any other +# characteristic. # # We would appreciate acknowledgement if the software is used. @@ -29,19 +32,27 @@ details.) """ -__version__ = "0.1.3" +__version__ = "0.3.0" import argparse -import importlib.resources import logging import os import sys -import typing +import warnings +from typing import Any, Dict, List, Optional, Tuple, Union import pyshacl # type: ignore -import rdflib.util +import rdflib +from rdflib import Graph -import case_utils.ontology +from case_utils.case_validate.validate_types import ( + NonExistentCDOConceptWarning, + ValidationResult, +) +from case_utils.case_validate.validate_utils import ( + get_invalid_cdo_concepts, + get_ontology_graph, +) from case_utils.ontology.version_info import ( CURRENT_CASE_VERSION, built_version_choices_list, @@ -50,6 +61,112 @@ _logger = logging.getLogger(os.path.basename(__file__)) +def validate( + input_file: Union[List[str], str], + *args: Any, + case_version: Optional[str] = None, + supplemental_graphs: Optional[List[str]] = None, + **kwargs: Any, +) -> ValidationResult: + """ + Validate the given data graph against the given CASE ontology version and supplemental graphs. + + :param *args: The positional arguments to pass to the underlying pyshacl.validate function. + :param input_file: The path to the file containing the data graph to validate. This can also be a list of paths to files containing data graphs to pool together. + :param case_version: The version of the CASE ontology to use (e.g. 1.2.0). If None, the most recent version will be used. + :param supplemental_graphs: File paths to supplemental graphs to use. If None, no supplemental graphs will be used. + :param allow_warnings: In addition to affecting the conformance of SHACL validation, this will affect conformance based on unrecognized CDO concepts (likely, misspelled or miscapitalized) in the data graph. If allow_warnings is not True, any unrecognized concept using a CDO IRI prefix will cause conformance to be False. + :param inference: The type of inference to use. If "none" (type str), no inference will be used. If None (type NoneType), pyshacl defaults will be used. Note that at the time of this writing (pySHACL 0.23.0), pyshacl defaults are no inferencing for the data graph, and RDFS inferencing for the SHACL graph, which for case_utils.validate includes the SHACL and OWL graphs. + :param **kwargs: The keyword arguments to pass to the underlying pyshacl.validate function. + :return: The validation result object containing the defined properties. + """ + # Convert the data graph string to a rdflib.Graph object. + data_graph = rdflib.Graph() + if isinstance(input_file, str): + data_graph.parse(input_file) + elif isinstance(input_file, list): + for _data_graph_file in input_file: + _logger.debug("_data_graph_file = %r.", _data_graph_file) + if not isinstance(_data_graph_file, str): + raise TypeError("Expected str, received %s." % type(_data_graph_file)) + data_graph.parse(_data_graph_file) + + # Get the ontology graph from the case_version and supplemental_graphs arguments + ontology_graph: Graph = get_ontology_graph(case_version, supplemental_graphs) + + # Filter the graph pyshacl uses as its ontology mix-in to exclude + # all SHACL-related triples. + # This is done because, at the time of pyshacl 0.20.0, the entirety + # of the ontology graph is mixed into the data graph. UCO 1.0.0 + # includes some mechanisms to cross-check SHACL PropertyShapes + # versus OWL property definitions. Because of the mix-in, all of + # the ontology graph (.validate ont_graph kwarg) is reviewed by the + # SHACL graph (.validate shacl_graph kwarg), so for UCO 1.0.0 that + # adds around 30 seconds to each case_validate call, redundantly + # reviewing UCO. + # The ontology graph (.validate ont_graph kwarg) is currently + # believed to never need to know about SHACL concepts. + ontology_graph_without_shacl = rdflib.Graph() + SH_prefix = str(rdflib.SH) + for triple in ontology_graph.triples((None, None, None)): + skip_triple = False + for triple_part in triple: + if isinstance(triple_part, rdflib.URIRef): + if str(triple_part).startswith(SH_prefix): + skip_triple = True + if skip_triple: + break + if skip_triple: + continue + ontology_graph_without_shacl.add(triple) + # _logger.debug("len(ontology_graph) = %d.", len(ontology_graph)) + # _logger.debug("len(ontology_graph_without_shacl) = %d.", len(ontology_graph_without_shacl)) + # At the time of CASE 1.0.0, this was the debug output: + # DEBUG:__init__.py:len(ontology_graph) = 13499. + # DEBUG:__init__.py:len(ontology_graph_without_shacl) = 7639. + + # Get the undefined CDO concepts. + undefined_cdo_concepts = get_invalid_cdo_concepts(data_graph, ontology_graph) + + # Warn about typo'd concepts before performing SHACL review. + for undefined_cdo_concept in sorted(undefined_cdo_concepts): + warnings.warn(undefined_cdo_concept, NonExistentCDOConceptWarning) + undefined_cdo_concepts_message = ( + "There were %d concepts with CDO IRIs in the data graph that are not in the ontology graph." + % len(undefined_cdo_concepts) + ) + + # Validate data graph against ontology graph. + validate_result: Tuple[ + bool, Union[Exception, bytes, str, rdflib.Graph], str + ] = pyshacl.validate( + data_graph, + *args, + ont_graph=ontology_graph_without_shacl, + shacl_graph=ontology_graph, + **kwargs, + ) + + # Relieve RAM of the data graph after validation has run. + del data_graph + + conforms = validate_result[0] + + if len(undefined_cdo_concepts) > 0: + warnings.warn(undefined_cdo_concepts_message) + if not kwargs.get("allow_warnings"): + undefined_cdo_concepts_alleviation_message = "The data graph is SHACL-conformant with the CDO ontologies, but nonexistent-concept references raise Warnings with this tool. Please either correct the concept names in the data graph; use the --ontology-graph flag to pass a corrected CDO ontology file, also using --built-version none; or, use the --allow-warnings flag." + warnings.warn(undefined_cdo_concepts_alleviation_message) + conforms = False + + return ValidationResult( + conforms, + validate_result[1], + validate_result[2], + undefined_cdo_concepts, + ) + + def main() -> None: parser = argparse.ArgumentParser( description="CASE wrapper to pySHACL command line tool." @@ -72,7 +189,7 @@ def main() -> None: "--built-version", choices=tuple(built_version_choices_list), default="case-" + CURRENT_CASE_VERSION, - help="Monolithic aggregation of CASE ontology files at certain versions. Does not require networking to use. Default is most recent CASE release.", + help="Monolithic aggregation of CASE ontology files at certain versions. Does not require networking to use. Default is most recent CASE release. Passing 'none' will mean no pre-built CASE ontology versions accompanying this tool will be included in the analysis.", ) parser.add_argument( "--ontology-graph", @@ -86,10 +203,20 @@ def main() -> None: action="store_true", help="(As with pyshacl CLI) Abort on first invalid data.", ) + parser.add_argument( + "--allow-info", + "--allow-infos", + dest="allow_infos", + action="store_true", + default=False, + help="(As with pyshacl CLI) Shapes marked with severity of Info will not cause result to be invalid.", + ) parser.add_argument( "-w", + "--allow-warning", "--allow-warnings", action="store_true", + dest="allow_warnings", help="(As with pyshacl CLI) Shapes marked with severity of Warning or Info will not cause result to be invalid.", ) parser.add_argument( @@ -105,12 +232,20 @@ def main() -> None: action="store_true", help="(As with pyshacl CLI) Allow import of sub-graphs defined in statements with owl:imports.", ) + # NOTE: The "ontology graph" in the --inference help is the mix of the SHACL shapes graph and OWL ontology (or RDFS schema) graph. parser.add_argument( "-i", "--inference", choices=("none", "rdfs", "owlrl", "both"), - default="none", - help='(As with pyshacl CLI) Choose a type of inferencing to run against the Data Graph before validating. Default is "none".', + help='(As with pyshacl CLI) Choose a type of inferencing to run against the Data Graph before validating. The default behavior if this flag is not provided is to behave as "none", if not using the --metashacl flag. The default behavior when using the --metashacl flag will apply "rdfs" inferencing to the ontology graph, but the data graph will still have no inferencing applied. If the --inference flag is provided, it will apply to both the ontology graph, and the data graph.', + ) + parser.add_argument( + "-m", + "--metashacl", + dest="metashacl", + action="store_true", + default=False, + help="(As with pyshacl CLI) Validate the SHACL Shapes graph against the shacl-shacl Shapes Graph before validating the Data Graph.", ) parser.add_argument( "-o", @@ -126,84 +261,33 @@ def main() -> None: args = parser.parse_args() - data_graph = rdflib.Graph() - for in_graph in args.in_graph: - _logger.debug("in_graph = %r.", in_graph) - data_graph.parse(in_graph) - - ontology_graph = rdflib.Graph() - if args.built_version != "none": - ttl_filename = args.built_version + ".ttl" - _logger.debug("ttl_filename = %r.", ttl_filename) - ttl_data = importlib.resources.read_text(case_utils.ontology, ttl_filename) - ontology_graph.parse(data=ttl_data, format="turtle") - if args.ontology_graph: - for arg_ontology_graph in args.ontology_graph: - _logger.debug("arg_ontology_graph = %r.", arg_ontology_graph) - ontology_graph.parse(arg_ontology_graph) - - # Filter the graph pyshacl uses as its ontology mix-in to exclude - # all SHACL-related triples. - # This is done because, at the time of pyshacl 0.20.0, the entirety - # of the ontology graph is mixed into the data graph. UCO 1.0.0 - # includes some mechanisms to cross-check SHACL PropertyShapes - # versus OWL property definitions. Because of the mix-in, all of - # the ontology graph (.validate ont_graph kwarg) is reviewed by the - # SHACL graph (.validate shacl_graph kwarg), so for UCO 1.0.0 that - # adds around 30 seconds to each case_validate call, redundantly - # reviewing UCO. - # The ontology graph (.validate ont_graph kwarg) is currently - # believed to never need to know about SHACL concepts. - ontology_graph_without_shacl = rdflib.Graph() - SH_prefix = str(rdflib.SH) - for triple in ontology_graph.triples((None, None, None)): - skip_triple = False - for triple_part in triple: - if isinstance(triple_part, rdflib.URIRef): - if str(triple_part).startswith(SH_prefix): - skip_triple = True - if skip_triple: - break - if skip_triple: - continue - ontology_graph_without_shacl.add(triple) - # _logger.debug("len(ontology_graph) = %d.", len(ontology_graph)) - # _logger.debug("len(ontology_graph_without_shacl) = %d.", len(ontology_graph_without_shacl)) - # At the time of CASE 1.0.0, this was the debug output: - # DEBUG:__init__.py:len(ontology_graph) = 13499. - # DEBUG:__init__.py:len(ontology_graph_without_shacl) = 7639. - # Determine output format. # pySHACL's determination of output formatting is handled solely # through the -f flag. Other CASE CLI tools handle format # determination by output file extension. case_validate will defer # to pySHACL behavior, as other CASE tools don't (at the time of # this writing) have the value "human" as an output format. - validator_kwargs: typing.Dict[str, str] = dict() + validator_kwargs: Dict[str, str] = dict() if args.format != "human": validator_kwargs["serialize_report_graph"] = args.format - validate_result: typing.Tuple[ - bool, typing.Union[Exception, bytes, str, rdflib.Graph], str - ] - validate_result = pyshacl.validate( - data_graph, - shacl_graph=ontology_graph, - ont_graph=ontology_graph_without_shacl, - inference=args.inference, + validation_result: ValidationResult = validate( + args.in_graph, abort_on_first=args.abort, + allow_infos=True if args.allow_infos else False, allow_warnings=True if args.allow_warnings else False, + case_version=args.built_version, debug=True if args.debug else False, do_owl_imports=True if args.imports else False, - **validator_kwargs + inference=args.inference, + meta_shacl=args.metashacl, + supplemental_graphs=args.ontology_graph, + **validator_kwargs, ) - # Relieve RAM of the data graph after validation has run. - del data_graph - - conforms = validate_result[0] - validation_graph = validate_result[1] - validation_text = validate_result[2] + conforms = validation_result.conforms + validation_graph = validation_result.graph + validation_text = validation_result.text # NOTE: The output logistics code is adapted from pySHACL's file # pyshacl/cli.py. This section should be monitored for code drift. diff --git a/case_utils/case_validate/validate_types.py b/case_utils/case_validate/validate_types.py new file mode 100644 index 0000000..1625963 --- /dev/null +++ b/case_utils/case_validate/validate_types.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +# Portions of this file contributed by NIST are governed by the following +# statement: +# +# This software was developed at the National Institute of Standards +# and Technology by employees of the Federal Government in the course +# of their official duties. Pursuant to Title 17 Section 105 of the +# United States Code, this software is not subject to copyright +# protection within the United States. NIST assumes no responsibility +# whatsoever for its use by other parties, and makes no guarantees, +# expressed or implied, about its quality, reliability, or any other +# characteristic. +# +# We would appreciate acknowledgement if the software is used. + +from typing import Set, Union + +import rdflib + + +class ValidationResult: + def __init__( + self, + conforms: bool, + graph: Union[Exception, bytes, str, rdflib.Graph], + text: str, + undefined_concepts: Set[rdflib.URIRef], + ) -> None: + self.conforms = conforms + self.graph = graph + self.text = text + self.undefined_concepts = undefined_concepts + + +class NonExistentCDOConceptWarning(UserWarning): + """ + This class is used when a concept is encountered in the data graph that is not part of CDO ontologies, according to the --built-version flags and --ontology-graph flags. + """ + + pass + + +class NonExistentCASEVersionError(Exception): + """ + This class is used when an invalid CASE version is requested that is not supported by the library. + """ + + pass diff --git a/case_utils/case_validate/validate_utils.py b/case_utils/case_validate/validate_utils.py new file mode 100644 index 0000000..b7ed317 --- /dev/null +++ b/case_utils/case_validate/validate_utils.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python3 + +# Portions of this file contributed by NIST are governed by the following +# statement: +# +# This software was developed at the National Institute of Standards +# and Technology by employees of the Federal Government in the course +# of their official duties. Pursuant to Title 17 Section 105 of the +# United States Code, this software is not subject to copyright +# protection within the United States. NIST assumes no responsibility +# whatsoever for its use by other parties, and makes no guarantees, +# expressed or implied, about its quality, reliability, or any other +# characteristic. +# +# We would appreciate acknowledgement if the software is used. + +import importlib +import logging +import os +from typing import List, Optional, Set + +import rdflib + +import case_utils +from case_utils.case_validate.validate_types import NonExistentCASEVersionError +from case_utils.ontology.version_info import CURRENT_CASE_VERSION + +NS_OWL = rdflib.OWL +NS_RDF = rdflib.RDF +NS_RDFS = rdflib.RDFS +NS_SH = rdflib.SH + +_logger = logging.getLogger(os.path.basename(__file__)) + + +def concept_is_cdo_concept(n_concept: rdflib.URIRef) -> bool: + """ + Determine if a concept is part of the CDO ontology. + + :param n_concept: The concept to check. + :return: whether the concept is part of the CDO ontologies. + """ + concept_iri = str(n_concept) + return concept_iri.startswith( + "https://ontology.unifiedcyberontology.org/" + ) or concept_iri.startswith("https://ontology.caseontology.org/") + + +def get_invalid_cdo_concepts( + data_graph: rdflib.Graph, ontology_graph: rdflib.Graph +) -> Set[rdflib.URIRef]: + """ + Get the set of concepts in the data graph that are not part of the CDO ontologies as specified with the ontology_graph argument. + + :param data_graph: The data graph to validate. + :param ontology_graph: The ontology graph to use for validation. + :return: The list of concepts in the data graph that are not part of the CDO ontology. + + >>> from case_utils.namespace import NS_RDF, NS_OWL, NS_UCO_CORE + >>> from rdflib import Graph, Literal, Namespace, URIRef + >>> # Define a namespace for a knowledge base, and a namespace for custom extensions. + >>> ns_kb = Namespace("http://example.org/kb/") + >>> ns_ex = Namespace("http://example.org/ontology/") + >>> dg = Graph() + >>> og = Graph() + >>> # Use an ontology graph in review that includes only a single class and a single property excerpted from UCO, but also a single custom property. + >>> _ = og.add((NS_UCO_CORE.UcoObject, NS_RDF.type, NS_OWL.Class)) + >>> _ = og.add((NS_UCO_CORE.name, NS_RDF.type, NS_OWL.DatatypeProperty)) + >>> _ = og.add((ns_ex.ourCustomProperty, NS_RDF.type, NS_OWL.DatatypeProperty)) + >>> # Define an individual. + >>> n_uco_object = ns_kb["UcoObject-f494d239-d9fd-48da-bc07-461ba86d8c6c"] + >>> n_uco_object + rdflib.term.URIRef('http://example.org/kb/UcoObject-f494d239-d9fd-48da-bc07-461ba86d8c6c') + >>> # Review a data graph that includes only the single individual, class typo'd (capitalized incorrectly), but property OK. + >>> _ = dg.add((n_uco_object, NS_RDF.type, NS_UCO_CORE.UCOObject)) + >>> _ = dg.add((n_uco_object, NS_UCO_CORE.name, Literal("Test"))) + >>> _ = dg.add((n_uco_object, ns_ex.customProperty, Literal("Custom Value"))) + >>> invalid_cdo_concepts = get_invalid_cdo_concepts(dg, og) + >>> invalid_cdo_concepts + {rdflib.term.URIRef('https://ontology.unifiedcyberontology.org/uco/core/UCOObject')} + >>> # Note that the property "ourCustomProperty" was typo'd in the data graph, but this was not reported. + >>> assert ns_ex.ourCustomProperty not in invalid_cdo_concepts + """ + # Construct set of CDO concepts for data graph concept-existence review. + cdo_concepts: Set[rdflib.URIRef] = set() + + for n_structural_class in [ + NS_OWL.Class, + NS_OWL.AnnotationProperty, + NS_OWL.DatatypeProperty, + NS_OWL.ObjectProperty, + NS_RDFS.Datatype, + NS_SH.NodeShape, + NS_SH.PropertyShape, + NS_SH.Shape, + ]: + for ontology_triple in ontology_graph.triples( + (None, NS_RDF.type, n_structural_class) + ): + if not isinstance(ontology_triple[0], rdflib.URIRef): + continue + if concept_is_cdo_concept(ontology_triple[0]): + cdo_concepts.add(ontology_triple[0]) + for n_ontology_predicate in [ + NS_OWL.backwardCompatibleWith, + NS_OWL.imports, + NS_OWL.incompatibleWith, + NS_OWL.priorVersion, + NS_OWL.versionIRI, + ]: + for ontology_triple in ontology_graph.triples( + (None, n_ontology_predicate, None) + ): + assert isinstance(ontology_triple[0], rdflib.URIRef) + assert isinstance(ontology_triple[2], rdflib.URIRef) + cdo_concepts.add(ontology_triple[0]) + cdo_concepts.add(ontology_triple[2]) + for ontology_triple in ontology_graph.triples((None, NS_RDF.type, NS_OWL.Ontology)): + if not isinstance(ontology_triple[0], rdflib.URIRef): + continue + cdo_concepts.add(ontology_triple[0]) + + # Also load historical ontology and version IRIs. + ontology_and_version_iris_data = importlib.resources.read_text( + case_utils.ontology, "ontology_and_version_iris.txt" + ) + for line in ontology_and_version_iris_data.split("\n"): + cleaned_line = line.strip() + if cleaned_line == "": + continue + cdo_concepts.add(rdflib.URIRef(cleaned_line)) + + data_cdo_concepts: Set[rdflib.URIRef] = set() + for data_triple in data_graph.triples((None, None, None)): + for data_triple_member in data_triple: + if isinstance(data_triple_member, rdflib.URIRef): + if concept_is_cdo_concept(data_triple_member): + data_cdo_concepts.add(data_triple_member) + elif isinstance(data_triple_member, rdflib.Literal): + if isinstance(data_triple_member.datatype, rdflib.URIRef): + if concept_is_cdo_concept(data_triple_member.datatype): + data_cdo_concepts.add(data_triple_member.datatype) + + return data_cdo_concepts - cdo_concepts + + +def get_ontology_graph( + case_version: Optional[str] = None, supplemental_graphs: Optional[List[str]] = None +) -> rdflib.Graph: + """ + Get the ontology graph for the given case_version and any supplemental graphs. + + :param case_version: the version of the CASE ontology to use. If None (i.e. null), the most recent version will be used. If "none" (the string), no pre-built version of CASE will be used. + :param supplemental_graphs: a list of supplemental graphs to use. If None, no supplemental graphs will be used. + :return: the ontology graph against which to validate the data graph. + """ + ontology_graph = rdflib.Graph() + + if case_version != "none": + # Load bundled CASE ontology at requested version. + if case_version is None or case_version == "": + case_version = CURRENT_CASE_VERSION + # If the first character case_version is numeric, prepend case- to it. This allows for the version to be passed + # by the library as both case-1.2.0 and 1.2.0 + if case_version[0].isdigit(): + case_version = "case-" + case_version + ttl_filename = case_version + ".ttl" + _logger.debug("ttl_filename = %r.", ttl_filename) + # Ensure the requested version of the CASE ontology is available and if not, throw an appropriate exception + # that can be returned in a user-friendly message. + if not importlib.resources.is_resource(case_utils.ontology, ttl_filename): + raise NonExistentCASEVersionError( + f"The requested version ({case_version}) of the CASE ontology is not available. Please choose a " + f"different version. The latest supported version is: {CURRENT_CASE_VERSION}" + ) + ttl_data = importlib.resources.read_text(case_utils.ontology, ttl_filename) + ontology_graph.parse(data=ttl_data, format="turtle") + + if supplemental_graphs: + for arg_ontology_graph in supplemental_graphs: + _logger.debug("arg_ontology_graph = %r.", arg_ontology_graph) + ontology_graph.parse(arg_ontology_graph) + + return ontology_graph diff --git a/case_utils/inherent_uuid.py b/case_utils/inherent_uuid.py new file mode 100644 index 0000000..667a8d1 --- /dev/null +++ b/case_utils/inherent_uuid.py @@ -0,0 +1,205 @@ +#!/usr/bin/env python3 + +# This software was developed at the National Institute of Standards +# and Technology by employees of the Federal Government in the course +# of their official duties. Pursuant to title 17 Section 105 of the +# United States Code this software is not subject to copyright +# protection and is in the public domain. NIST assumes no +# responsibility whatsoever for its use by other parties, and makes +# no guarantees, expressed or implied, about its quality, +# reliability, or any other characteristic. +# +# We would appreciate acknowledgement if the software is used. + +""" +This library provides supporting constants and functions for generating deterministic UUIDs (version 5) for UCO Hash and Facet nodes. + +There are two general patterns implemented: + +1. Some objects are "wholly specified" by their properties. The leading example of this is uco-types:Hash, which has only the properties hashMethod and hashValue, and both are required to be provided in order to be conformant with UCO. The function `hash_method_value_uuid` implements a scheme to generate UUIDs for uco-types:Hash nodes based on this pattern. +2. A pattern based on inherence generates UUIDv5s based on how an inherent object (a.k.a. UcoInherentCharacterizationThing) structurally relates to the object in which it inheres. For instance, a Facet is understood to only relate to its UcoObject by linking with the uco-core:hasFacet property. So, a Facet's UUID is determined uniquely by (1) the "UUID namespace" of its corresponding UcoObject, and (2) its OWL Class. + A. The term "UUID namespace" is described in RFC 4122 Section 4.3 [#rfc4122s43]_ , and is not intended be confused with `rdflib.term.Namespace`. For any uco-core:UcoThing (or even owl:Thing), the function `inherence_uuid` defines the procedure for either extracting or generating a UUID for use as a namespace. + +This module is independent of, and complements, `case_utils.local_uuid`, which provides deterministic UUIDs based on calling process's environment. + +References +========== + +.. [#rfc4122s43] https://datatracker.ietf.org/doc/html/rfc4122#section-4.3 + + +Examples +======== + +A knowledge base ontology currently uses a prefix 'kb:', expanding to 'http://example.org/kb/'. This knowledge base has a node kb:File-ac6b44cf-dc6b-4f2c-a09d-c9beb0a345a9. What is the IRI of its FileFacet? + +>>> from case_utils.namespace import NS_UCO_OBSERVABLE +>>> ns_kb = Namespace("http://example.org/kb/") +>>> n_file = ns_kb["File-ac6b44cf-dc6b-4f2c-a09d-c9beb0a345a9"] +>>> n_file_facet = get_facet_uriref(n_file, NS_UCO_OBSERVABLE.FileFacet, namespace=ns_kb) +>>> n_file_facet +rdflib.term.URIRef('http://example.org/kb/FileFacet-01d292e3-0f38-5974-868d-006ef07f5186') + +A documentation policy change has been enacted, and now all knowledge base individuals need to use the URN example form. What is the FileFacet IRI now? + +>>> ns_kb_2 = Namespace("urn:example:kb:") +>>> file_iri_2: str = "urn:example:kb:File-ac6b44cf-dc6b-4f2c-a09d-c9beb0a345a9" +>>> n_file_2 = URIRef(file_iri_2) +>>> n_file_facet_2 = get_facet_uriref(n_file_2, NS_UCO_OBSERVABLE.FileFacet, namespace=ns_kb_2) +>>> n_file_facet_2 +rdflib.term.URIRef('urn:example:kb:FileFacet-01d292e3-0f38-5974-868d-006ef07f5186') + +The two IRIs end with the same UUID. + +>>> assert str(n_file_facet)[-36:] == str(n_file_facet_2)[-36:] +""" + +__version__ = "0.1.0" + +import binascii +import re +import uuid +from typing import Any, Dict, Optional, Tuple + +from rdflib import Literal, Namespace, URIRef + +from case_utils.namespace import NS_UCO_CORE, NS_UCO_VOCABULARY, NS_XSD + +L_MD5 = Literal("MD5", datatype=NS_UCO_VOCABULARY.HashNameVocab) +L_SHA1 = Literal("SHA1", datatype=NS_UCO_VOCABULARY.HashNameVocab) +L_SHA256 = Literal("SHA256", datatype=NS_UCO_VOCABULARY.HashNameVocab) +L_SHA3_256 = Literal("SHA3-256", datatype=NS_UCO_VOCABULARY.HashNameVocab) +L_SHA3_512 = Literal("SHA3-512", datatype=NS_UCO_VOCABULARY.HashNameVocab) +L_SHA384 = Literal("SHA384", datatype=NS_UCO_VOCABULARY.HashNameVocab) +L_SHA512 = Literal("SHA512", datatype=NS_UCO_VOCABULARY.HashNameVocab) +L_SSDEEP = Literal("SSDEEP", datatype=NS_UCO_VOCABULARY.HashNameVocab) + +# Key: hashMethod literal. +# Value: Tuple. +# * Lowercase spelling +HASH_METHOD_CASTINGS: Dict[Literal, Tuple[str, Optional[int]]] = { + L_MD5: ("md5", 32), + L_SHA1: ("sha1", 40), + L_SHA256: ("sha256", 64), + L_SHA3_256: ("sha3-256", 64), + L_SHA3_512: ("sha3-512", 128), + L_SHA384: ("sha384", 96), + L_SHA512: ("sha512", 128), + L_SSDEEP: ("ssdeep", None), +} + +RX_UUID = re.compile( + "[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$", re.IGNORECASE +) + + +def inherence_uuid(n_thing: URIRef, *args: Any, **kwargs: Any) -> uuid.UUID: + """ + This function returns a UUIDv5 for any OWL Thing, that can be used as a UUID Namespace in further `uuid.uuidv5` calls. + + In the case that the Thing is a UcoThing that ends with a UUID, that UUID string will be returned wrapped in a UUID object. In all other cases, a UUID version 5 object will be returned for the Thing as a name under the URL namespace [#rfc4122ac]_. + + References + ========== + + .. [#rfc4122ac] https://datatracker.ietf.org/doc/html/rfc4122#appendix-C + + Examples + ======== + + A File node will need its FileFacet IRI determined. What will be the base UUID namespace for determining this IRI as well as other inherent graph objects? + + >>> file_iri: str = "http://example.org/kb/File-ac6b44cf-dc6b-4f2c-a09d-c9beb0a345a9" + >>> n_file = URIRef(file_iri) + >>> file_uuid_namespace: uuid.UUID = inherence_uuid(n_file) + >>> file_uuid_namespace + UUID('ac6b44cf-dc6b-4f2c-a09d-c9beb0a345a9') + + The CASE homepage is being treated as an OWL NamedIndividual in this knowledge base, with its URL as its IRI. What is its base UUID namespace? + + >>> case_homepage_url: str = "https://caseontology.org/" + >>> n_case_homepage = URIRef(case_homepage_url) + >>> case_homepage_uuid_namespace = inherence_uuid(n_case_homepage) + >>> case_homepage_uuid_namespace + UUID('2c6406b7-3396-5fdd-b9bf-c6e21273e40a') + """ + node_iri = str(n_thing) + if len(node_iri) < 40 or RX_UUID.search(node_iri) is None: + # <40 -> Too short to have a UUID and scheme. + return uuid.uuid5(uuid.NAMESPACE_URL, node_iri) + else: + return uuid.UUID(node_iri[-36:]) + + +def facet_inherence_uuid( + uco_object_inherence_uuid: uuid.UUID, + n_facet_class: URIRef, + *args: Any, + **kwargs: Any +) -> uuid.UUID: + """ + :param n_facet_class: This node is expected to be the `rdflib.term.URIRef` for an OWL Class that is either in UCO or extends a class in UCO, such as `case_utils.namespace.NS_UCO_OBSERVABLE.FileFacet`. The Facet class SHOULD be a 'leaf' class - that is, it should have no OWL subclasses. (This 'SHOULD' might become a more stringent requirement in the future. uco-core:Facet MUST not be used. There is some question on how this rule should apply for uco-observable:WifiAddressFacet and its parent class uco-observable:MACAddressFacet.) + :type n_facet_class: rdflib.term.URIRef + """ + + if n_facet_class == NS_UCO_CORE.Facet: + raise ValueError("Requested Facet class is not a leaf Facet class.") + # NOTE: Further reviewing whether n_facet_class pertains to a Facet subclass is not done in this library. Both a set of all such known classes, as well as an extension mechanism for non-standard Facet subclasses (probably either a Set or Graph as an extra parameter), would need to be implemented. + + return uuid.uuid5(uco_object_inherence_uuid, str(n_facet_class)) + + +def get_facet_uriref( + n_uco_object: URIRef, + n_facet_class: URIRef, + *args: Any, + namespace: Namespace, + **kwargs: Any +) -> URIRef: + """ + :param namespace: An RDFLib Namespace object to use for prefixing the Facet IRI with a knowledge base prefix IRI. + :type namespace rdflib.Namespace: + + Examples + ======== + + What is the URLFacet pertaining to the Nitroba University Scenario's PCAP file, when being interpreted as a Simple Storage Service (S3) object? + + >>> from case_utils.namespace import NS_UCO_OBSERVABLE + >>> pcap_url: str = "s3://digitalcorpora/corpora/scenarios/2008-nitroba/nitroba.pcap" + >>> n_pcap = URIRef(pcap_url) + >>> ns_kb = Namespace("http://example.org/kb/") + >>> n_pcap_url_facet = get_facet_uriref(n_pcap, NS_UCO_OBSERVABLE.URLFacet, namespace=ns_kb) + >>> n_pcap_url_facet + rdflib.term.URIRef('http://example.org/kb/URLFacet-4b6023da-dbc4-5e1e-9a2f-aca2a6f6405c') + """ + uco_object_uuid_namespace: uuid.UUID = inherence_uuid(n_uco_object) + facet_uuid = facet_inherence_uuid(uco_object_uuid_namespace, n_facet_class) + + # NOTE: This encodes an assumption that Facets (including extension Facets) use the "Slash" IRI style. + facet_class_local_name = str(n_facet_class).rsplit("/")[-1] + + return namespace[facet_class_local_name + "-" + str(facet_uuid)] + + +def hash_method_value_uuid(l_hash_method: Literal, l_hash_value: Literal) -> uuid.UUID: + """ + This function generates a UUID for a UCO Hash object, solely based on its two required properties: uco-types:hashMethod and uco-types:hashValue. + + The UUIDv5 seed data for Hash nodes is a URN following the scheme in this draft IETF memo: + + https://datatracker.ietf.org/doc/html/draft-thiemann-hash-urn-01 + + Note that at the time of this writing, that memo was expired (expiration date 2004-03-04) and did not have a linked superseding document. + """ + + if l_hash_value.datatype != NS_XSD.hexBinary: + raise ValueError("Expected hexBinary datatype for l_hash_value.") + hash_value_str: str = binascii.hexlify(l_hash_value.toPython()).decode().lower() + + hash_method_str = HASH_METHOD_CASTINGS[l_hash_method][0] + + urn_template = "urn:hash::%s:%s" + urn_populated = urn_template % (hash_method_str, hash_value_str) + + return uuid.uuid5(uuid.NAMESPACE_URL, urn_populated) diff --git a/case_utils/local_uuid.py b/case_utils/local_uuid.py index f526191..881c577 100644 --- a/case_utils/local_uuid.py +++ b/case_utils/local_uuid.py @@ -13,9 +13,13 @@ """ This library is a wrapper for uuid, provided to generate repeatable UUIDs if requested. + +The function local_uuid() should be used in code where a user could be expected to opt in to non-random UUIDs. """ -__version__ = "0.3.0" +__version__ = "0.3.2" + +__all__ = ["configure", "local_uuid"] import logging import os @@ -33,12 +37,15 @@ def configure() -> None: + """ + This function is part of setting up _demo_uuid() to generate non-random UUIDs. See _demo_uuid() documentation for further setup notes. + """ global DEMO_UUID_BASE if os.getenv("DEMO_UUID_REQUESTING_NONRANDOM") == "NONRANDOM_REQUESTED": warnings.warn( - "Environment variable DEMO_UUID_REQUESTING_NONRANDOM is deprecated. See case_utils.local_uuid.demo_uuid for usage notes on its replacement, CASE_DEMO_NONRANDOM_UUID_BASE. Proceeding with random UUIDs.", - DeprecationWarning, + "Environment variable DEMO_UUID_REQUESTING_NONRANDOM is deprecated. See case_utils.local_uuid._demo_uuid for usage notes on its replacement, CASE_DEMO_NONRANDOM_UUID_BASE. Proceeding with random UUIDs.", + FutureWarning, ) return @@ -49,12 +56,14 @@ def configure() -> None: base_dir_original_path = pathlib.Path(env_base_dir_name) if not base_dir_original_path.exists(): warnings.warn( - "Environment variable CASE_DEMO_NONRANDOM_UUID_BASE is expected to refer to an existing directory. Proceeding with random UUIDs." + "Environment variable CASE_DEMO_NONRANDOM_UUID_BASE is expected to refer to an existing directory. Proceeding with random UUIDs.", + RuntimeWarning, ) return if not base_dir_original_path.is_dir(): warnings.warn( - "Environment variable CASE_DEMO_NONRANDOM_UUID_BASE is expected to refer to a directory. Proceeding with random UUIDs." + "Environment variable CASE_DEMO_NONRANDOM_UUID_BASE is expected to refer to a directory. Proceeding with random UUIDs.", + RuntimeWarning, ) return @@ -104,13 +113,18 @@ def configure() -> None: DEMO_UUID_BASE = "/".join(demo_uuid_base_parts) -def demo_uuid() -> str: +def _demo_uuid() -> str: """ This function generates a repeatable UUID, drawing on non-varying elements of the environment and process call for entropy. - WARNING: This function was developed for use ONLY for reducing (but not eliminating) version-control edits to identifiers in sample data. It creates UUIDs that are decidedly NOT random, and should remain consistent on repeated calls to the importing script. + This function is not intended to be called outside of this module. Instead, local_uuid() should be called. + + WARNING: This function was developed for use ONLY for reducing (but not eliminating) version-control edits to identifiers when generating sample data. It creates UUIDs that are decidedly NOT random, and should remain consistent on repeated calls to the importing script. + + To prevent accidental non-random UUID usage, two setup steps need to be done before calling this function: - To prevent accidental non-random UUID usage, an environment variable must be set to a string provided by the caller. The variable's required value is the path to some directory. The variable's recommended value is the equivalent of the Make variable "top_srcdir" - that is, the root directory of the containing Git repository, some parent of the current process's current working directory. + * An environment variable, CASE_DEMO_NONRANDOM_UUID_BASE, must be set to a string provided by the caller. The variable's required value is the path to some directory. The variable's recommended value is the equivalent of the Make variable "top_srcdir" - that is, the root directory of the containing Git repository, some parent of the current process's current working directory. + * The configure() function in this module must be called. """ global DEMO_UUID_BASE global DEMO_UUID_COUNTER @@ -140,4 +154,4 @@ def local_uuid() -> str: if DEMO_UUID_BASE is None: return str(uuid.uuid4()) else: - return demo_uuid() + return _demo_uuid() diff --git a/case_utils/namespace.py b/case_utils/namespace.py index aab1803..0e02b9c 100644 --- a/case_utils/namespace.py +++ b/case_utils/namespace.py @@ -17,7 +17,7 @@ To use, add "from case_utils.namespace import *". Namespace variables starting with "NS_" are imported. As needs are demonstrated in CASE tooling (both in case_utils and from downstream requests), namespaces will also be imported from rdflib for a consistent "NS_*" spelling. """ -__version__ = "0.2.0" +__version__ = "0.2.1" import rdflib @@ -37,6 +37,9 @@ NS_UCO_ACTION = rdflib.Namespace( "https://ontology.unifiedcyberontology.org/uco/action/" ) +NS_UCO_ANALYSIS = rdflib.Namespace( + "https://ontology.unifiedcyberontology.org/uco/analysis/" +) NS_UCO_CONFIGURATION = rdflib.Namespace( "https://ontology.unifiedcyberontology.org/uco/configuration/" ) diff --git a/case_utils/ontology/Makefile b/case_utils/ontology/Makefile index a01b9a7..c4cd60d 100644 --- a/case_utils/ontology/Makefile +++ b/case_utils/ontology/Makefile @@ -24,29 +24,28 @@ RDF_TOOLKIT_JAR := $(uco_srcdir)/lib/rdf-toolkit.jar case_version := $(shell python3 version_info.py) all: \ - case-$(case_version)-subclasses.ttl + ontology_and_version_iris.txt .PRECIOUS: \ case-$(case_version).ttl +$(case_srcdir)/.venv.done.log: \ + $(top_srcdir)/.git_submodule_init.done.log + $(MAKE) \ + --directory $(case_srcdir) \ + .venv.done.log + touch -c $@ + test -r $@ + case-$(case_version).ttl: \ - $(top_srcdir)/.git_submodule_init.done.log \ + $(case_srcdir)/.venv.done.log \ $(RDF_TOOLKIT_JAR) $(MAKE) \ --directory $(case_srcdir)/tests \ case_monolithic.ttl - #TODO This cleanup step should be removed after the 0.3.0 release of CASE-Utility-SHACL-Inheritance-Reviewer. - test ! -d $(uco_srcdir)/dependencies/CASE-Utility-SHACL-Inheritance-Reviewer/build \ - || rm -rf \ - $(uco_srcdir)/dependencies/CASE-Utility-SHACL-Inheritance-Reviewer/build - #TODO This normalization step will not be needed after resolution of ONT-445. - java -jar $(RDF_TOOLKIT_JAR) \ - --inline-blank-nodes \ - --source $(case_srcdir)/tests/case_monolithic.ttl \ - --source-format turtle \ - --target _$@ \ - --target-format turtle - mv _$@ $@ + cp \ + $(case_srcdir)/tests/case_monolithic.ttl \ + $@ case-$(case_version)-subclasses.ttl: \ case-$(case_version).ttl \ @@ -56,14 +55,7 @@ case-$(case_version)-subclasses.ttl: \ # release is being made, that step will have been skipped. # This recursive Make call guarantees the virtual environment is # set up. - $(MAKE) \ - --directory $(case_srcdir)/tests \ - .venv.done.log - #TODO This cleanup step should be removed after the 0.3.0 release of CASE-Utility-SHACL-Inheritance-Reviewer. - test ! -d $(uco_srcdir)/dependencies/CASE-Utility-SHACL-Inheritance-Reviewer/build \ - || rm -rf \ - $(uco_srcdir)/dependencies/CASE-Utility-SHACL-Inheritance-Reviewer/build - source $(case_srcdir)/tests/venv/bin/activate \ + source $(case_srcdir)/venv/bin/activate \ && python3 src/subclasses_ttl.py \ __$@ \ $< @@ -79,3 +71,12 @@ case-$(case_version)-subclasses.ttl: \ clean: @rm -f \ case-$(case_version)*.ttl + +ontology_and_version_iris.txt: \ + src/ontology_and_version_iris.py \ + case-$(case_version)-subclasses.ttl + source $(case_srcdir)/venv/bin/activate \ + && python3 src/ontology_and_version_iris.py \ + _$@ \ + case-*.ttl + mv _$@ $@ diff --git a/case_utils/ontology/case-1.1.0-subclasses.ttl b/case_utils/ontology/case-1.1.0-subclasses.ttl new file mode 100644 index 0000000..e022e71 --- /dev/null +++ b/case_utils/ontology/case-1.1.0-subclasses.ttl @@ -0,0 +1,1744 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xs: . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf owl:Thing ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + diff --git a/case_utils/ontology/case-1.1.0.ttl b/case_utils/ontology/case-1.1.0.ttl new file mode 100644 index 0000000..7423ae0 --- /dev/null +++ b/case_utils/ontology/case-1.1.0.ttl @@ -0,0 +1,19156 @@ +# imports: http://purl.org/co +# imports: https://ontology.caseontology.org/case/investigation/1.1.0 +# imports: https://ontology.caseontology.org/case/vocabulary/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/co/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/owl/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/action/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/analysis/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/configuration/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/core/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/identity/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/location/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/marking/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/observable/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/pattern/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/role/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/time/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/tool/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/types/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/uco/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/victim/1.1.0 +# imports: https://ontology.unifiedcyberontology.org/uco/vocabulary/1.1.0 + +@prefix action: . +@prefix analysis: . +@prefix co: . +@prefix configuration: . +@prefix core: . +@prefix dct: . +@prefix identity: . +@prefix investigation: . +@prefix location: . +@prefix marking: . +@prefix observable: . +@prefix owl: . +@prefix pattern: . +@prefix rdf: . +@prefix rdfs: . +@prefix role: . +@prefix sh: . +@prefix time: . +@prefix tool: . +@prefix types: . +@prefix uco-co: . +@prefix uco-owl: . +@prefix victim: . +@prefix vocab: . +@prefix vocabulary: . +@prefix xsd: . + + + a owl:Ontology ; + rdfs:label "case-master"@en ; + rdfs:comment "The Cyber-investigation Analysis Standard Expression (CASE) ontology is a community-developed standard that defines concepts used in a broad range of cyber-investigation domains, including digital forensic science, incident response, counter-terrorism, criminal justice, forensic intelligence, and situational awareness. CASE includes all aspects of the digital forensic process, from evidence-gathering and chain of custody, to generating a final report. The goal is to increase sharing and interoperability of cyber-investigation information among organizations and between forensic analytic tools. CASE aligns with and extends the Unified Cyber Ontology (UCO). The preferred namespace abbreviation for this ontology is: case-master."@en ; + dct:title "Cyber-investigation Analysis Standard Expression (CASE)"@en ; + owl:backwardCompatibleWith ; + owl:imports + investigation:1.1.0 , + vocab:1.1.0 , + + ; + owl:priorVersion ; + owl:versionIRI ; + owl:versionInfo "1.1.0" ; + . + + + a owl:Ontology ; + rdfs:label "investigation"@en ; + rdfs:comment "This ontology defines key concepts, and their associated properties and relationships, for characterizing cyber-investigations in the broadest range of contexts, including security incidents, criminal investigations, civil and regulatory matters, intelligence operations, international disputes, accident inquiries, policy violations, and others." ; + owl:backwardCompatibleWith investigation:1.0.0 ; + owl:imports + vocab:1.1.0 , + action:1.1.0 , + role:1.1.0 + ; + owl:priorVersion investigation:1.0.0 ; + owl:versionIRI investigation:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "vocabularies"@en ; + owl:backwardCompatibleWith vocab:1.0.0 ; + owl:priorVersion vocab:1.0.0 ; + owl:versionIRI vocab:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-co"@en ; + rdfs:comment "This ontology defines SHACL shapes to supplement the OWL 2 DL definitions in the Collections Ontology."@en ; + owl:backwardCompatibleWith uco-co:1.0.0 ; + owl:imports ; + owl:priorVersion uco-co:1.0.0 ; + owl:versionIRI uco-co:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-owl"@en ; + rdfs:comment "This ontology defines SHACL shapes to perform conformance testing of OWL 2 DL. Some of these shapes follow rules specified from the canonical, subtractive parsing process of Section 3 of the OWL 2 mapping to RDF. From the last line of that document's Section 3, 'At the end of this process, the graph G MUST be empty,' anything not strictly matching patterns specified in that section cause the input graph to be non-conformant with OWL 2 DL."@en ; + rdfs:seeAlso ; + owl:backwardCompatibleWith uco-owl:1.0.0 ; + owl:priorVersion uco-owl:1.0.0 ; + owl:versionIRI uco-owl:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-action"@en ; + rdfs:comment "This ontology defines classes and properties for characterizing actions."@en-US ; + owl:backwardCompatibleWith action:1.0.0 ; + owl:imports + core:1.1.0 , + location:1.1.0 , + pattern:1.1.0 , + types:1.1.0 , + vocabulary:1.1.0 + ; + owl:priorVersion action:1.0.0 ; + owl:versionIRI action:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-analysis"@en ; + rdfs:comment "This ontology defines classes and properties for characterizing analytic actions and results."@en-US ; + rdfs:seeAlso ; + owl:imports action:1.1.0 ; + owl:versionIRI analysis:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-configuration"@en ; + rdfs:comment "This ontology defines classes and properties for characterizing configurations."@en-US ; + rdfs:seeAlso ; + owl:backwardCompatibleWith configuration:1.0.0 ; + owl:imports core:1.1.0 ; + owl:priorVersion configuration:1.0.0 ; + owl:versionIRI configuration:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-core"@en ; + rdfs:comment "This ontology defines classes and properties that are shared across the various UCO ontologies. At a high-level, the UCO core ontology provides base classes, relationship-oriented classes, content-aggregation classes, and shared classes."@en ; + owl:backwardCompatibleWith core:1.0.0 ; + owl:priorVersion core:1.0.0 ; + owl:versionIRI core:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-identity"@en ; + owl:backwardCompatibleWith identity:1.0.0 ; + owl:imports + core:1.1.0 , + location:1.1.0 + ; + owl:priorVersion identity:1.0.0 ; + owl:versionIRI identity:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-location"@en ; + owl:backwardCompatibleWith location:1.0.0 ; + owl:imports core:1.1.0 ; + owl:priorVersion location:1.0.0 ; + owl:versionIRI location:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-marking"@en ; + rdfs:comment "Data markings represent restrictions, permissions, and other guidance for how data can be used and shared."@en ; + owl:backwardCompatibleWith marking:1.0.0 ; + owl:imports core:1.1.0 ; + owl:priorVersion marking:1.0.0 ; + owl:versionIRI marking:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-observable"@en ; + owl:backwardCompatibleWith observable:1.0.0 ; + owl:imports + action:1.1.0 , + configuration:1.1.0 , + core:1.1.0 , + identity:1.1.0 , + location:1.1.0 , + types:1.1.0 , + vocabulary:1.1.0 + ; + owl:priorVersion observable:1.0.0 ; + owl:versionIRI observable:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-pattern"@en ; + owl:backwardCompatibleWith pattern:1.0.0 ; + owl:imports core:1.1.0 ; + owl:priorVersion pattern:1.0.0 ; + owl:versionIRI pattern:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-role"@en ; + owl:backwardCompatibleWith role:1.0.0 ; + owl:imports core:1.1.0 ; + owl:priorVersion role:1.0.0 ; + owl:versionIRI role:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-time"@en ; + owl:backwardCompatibleWith time:1.0.0 ; + owl:imports core:1.1.0 ; + owl:priorVersion time:1.0.0 ; + owl:versionIRI time:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-tool"@en ; + owl:backwardCompatibleWith tool:1.0.0 ; + owl:imports + configuration:1.1.0 , + identity:1.1.0 + ; + owl:priorVersion tool:1.0.0 ; + owl:versionIRI tool:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-types"@en ; + owl:backwardCompatibleWith types:1.0.0 ; + owl:imports + uco-co:1.1.0 , + core:1.1.0 , + vocabulary:1.1.0 + ; + owl:priorVersion types:1.0.0 ; + owl:versionIRI types:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-master"@en ; + owl:backwardCompatibleWith ; + owl:imports + uco-co:1.1.0 , + uco-owl:1.1.0 , + action:1.1.0 , + analysis:1.1.0 , + configuration:1.1.0 , + core:1.1.0 , + identity:1.1.0 , + location:1.1.0 , + marking:1.1.0 , + observable:1.1.0 , + pattern:1.1.0 , + role:1.1.0 , + time:1.1.0 , + tool:1.1.0 , + types:1.1.0 , + victim:1.1.0 , + vocabulary:1.1.0 + ; + owl:priorVersion ; + owl:versionIRI ; + owl:versionInfo "1.1.0" ; + . + + + a owl:Ontology ; + rdfs:label "uco-victim"@en ; + owl:backwardCompatibleWith victim:1.0.0 ; + owl:imports role:1.1.0 ; + owl:priorVersion victim:1.0.0 ; + owl:versionIRI victim:1.1.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-vocabularies"@en ; + owl:backwardCompatibleWith vocabulary:1.0.0 ; + owl:priorVersion vocabulary:1.0.0 ; + owl:versionIRI vocabulary:1.1.0 ; + . + +co:ListItem + rdfs:subClassOf co:Item ; + . + +investigation:Attorney + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "Attorney"@en ; + rdfs:comment "Attorney is a role involved in preparing, interpreting, and applying law."@en ; + sh:targetClass investigation:Attorney ; + . + +investigation:Authorization + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Authorization"@en ; + rdfs:comment "An authorization is a grouping of characteristics unique to some form of authoritative permission identified for investigative action."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path investigation:authorizationType ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path investigation:authorizationIdentifier ; + ] + ; + sh:targetClass investigation:Authorization ; + . + +investigation:Examiner + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "Examiner"@en ; + rdfs:comment "Examiner is a role involved in providing scientific evaluations of evidence that are used to aid law enforcement investigations and court cases."@en ; + sh:targetClass investigation:Examiner ; + . + +investigation:ExaminerActionLifecycle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:ActionLifecycle ; + rdfs:label "ExaminerActionLifecycle"@en ; + rdfs:comment "An examiner action lifecycle is an action pattern consisting of an ordered set of actions or subordinate action-lifecycles performed by an entity acting in a role involved in providing scientific evaluations of evidence that is used to aid law enforcement investigations and court cases."@en ; + sh:targetClass investigation:ExaminerActionLifecylce ; + . + +investigation:Investigation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:ContextualCompilation ; + rdfs:label "Investigation"@en ; + rdfs:comment "An investigation is a grouping of characteristics unique to an exploration of the facts involved in a cyber-relevant set of suspicious activity."@en ; + sh:property + [ + sh:class investigation:Authorization ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path investigation:relevantAuthorization ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path investigation:investigationStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path investigation:focus ; + ] , + [ + sh:datatype vocab:InvestigationFormVocab ; + sh:message "Value is outside the default vocabulary InvestigationFormVocab." ; + sh:path investigation:investigationForm ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocab:InvestigationFormVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path investigation:investigationForm ; + ] , + [ + sh:message "Value is not member of the vocabulary InvestigationFormVocab." ; + sh:or ( + [ + sh:datatype vocab:InvestigationFormVocab ; + sh:in ( + "case"^^vocab:InvestigationFormVocab + "incident"^^vocab:InvestigationFormVocab + "suspicious-activity"^^vocab:InvestigationFormVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path investigation:investigationForm ; + ] + ; + sh:targetClass investigation:Investigation ; + . + +investigation:InvestigativeAction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:Action ; + rdfs:label "InvestigativeAction"@en ; + rdfs:comment "An investigative action is something that may be done or performed within the context of an investigation, typically to examine or analyze evidence or other data."@en ; + sh:property [ + sh:class investigation:InvestigativeAction ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path investigation:wasInformedBy ; + ] ; + sh:targetClass investigation:InvestigativeAction ; + . + +investigation:Investigator + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "Investigator"@en ; + rdfs:comment "Investigator is a role involved in coordinating an investigation."@en ; + sh:targetClass investigation:Investigator ; + . + +investigation:ProvenanceRecord + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:ContextualCompilation ; + rdfs:label "ProvenanceRecord"@en ; + rdfs:comment "A provenance record is a grouping of characteristics unique to the provenantial (chronology of the ownership, custody or location) connection between an investigative action and a set of observations (items and/or actions) or interpretations that result from it."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path investigation:exhibitNumber ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path investigation:rootExhibitNumber ; + ] + ; + sh:targetClass investigation:ProvenanceRecord ; + . + +investigation:Subject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "Subject"@en ; + rdfs:comment "Subject is a role whose conduct is within the scope of an investigation."@en ; + sh:targetClass investigation:Subject ; + . + +investigation:SubjectActionLifecycle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:ActionLifecycle ; + rdfs:label "SubjectActionLifecycle"@en ; + rdfs:comment "A subject action lifecycle is an action pattern consisting of an ordered set of multiple actions or subordinate action-lifecycles performed by an entity acting in a role whose conduct may be within the scope of an investigation."@en ; + sh:targetClass investigation:SubjectActionLifecycle ; + . + +investigation:VictimActionLifecycle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:ActionLifecycle ; + rdfs:label "VictimActionLifecycle"@en ; + rdfs:comment "A victim action lifecycle is an action pattern consisting of an ordered set of multiple actions or subordinate action-lifecycles performed by an entity acting in a role characterized by its potential to be harmed as a result of a crime, accident, or other event or action."@en ; + sh:targetClass investigation:VictimActionLifecycle ; + . + +investigation:authorizationIdentifier + a owl:DatatypeProperty ; + rdfs:label "authorizationIdentifier"@en ; + rdfs:comment "The identifier for a particular authorization (e.g. warrant number)"@en ; + rdfs:range xsd:string ; + . + +investigation:authorizationType + a owl:DatatypeProperty ; + rdfs:label "authorizationType"@en ; + rdfs:comment "A label categorizing a type of authorization (e.g. warrant)"@en ; + rdfs:range xsd:string ; + . + +investigation:exhibitNumber + a owl:DatatypeProperty ; + rdfs:label "exhibitNumber"@en ; + rdfs:comment "The exhibit number specifies an identifier assigned to a set of objects, unique within the scope of an investigation."@en ; + rdfs:range xsd:string ; + . + +investigation:focus + a owl:DatatypeProperty ; + rdfs:label "focus"@en ; + rdfs:comment "Specifies the topical focus of an investigation."@en ; + rdfs:range xsd:string ; + . + +investigation:investigationForm + a owl:DatatypeProperty ; + rdfs:label "investigationForm"@en ; + rdfs:comment "A label categorizing a type of investigation (case, incident, suspicious-activity, etc.)"@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocab:InvestigationFormVocab + xsd:string + ) ; + ] ; + . + +investigation:investigationStatus + a owl:DatatypeProperty ; + rdfs:label "investigationStatus"@en ; + rdfs:comment "A label characterizing the status of an investigation (open, closed, etc.)."@en ; + rdfs:range xsd:string ; + . + +investigation:relevantAuthorization + a owl:ObjectProperty ; + rdfs:label "relevantAuthorization"@en ; + rdfs:comment "Specifies an authorization relevant to a particular investigation."@en ; + rdfs:range investigation:Authorization ; + . + +investigation:rootExhibitNumber + a owl:DatatypeProperty ; + rdfs:label "rootExhibitNumber"@en ; + rdfs:comment "The root exhibit number specifies a unique identifier assigned to a set of objects at the start of their treatment as part of an investigation. When found on a provenance record that comes after initial investigative treatment, the root exhibit number is a reference to the initial provenance record."@en ; + rdfs:range xsd:string ; + . + +investigation:wasDerivedFrom + a owl:ObjectProperty ; + rdfs:label "wasDerivedFrom"@en ; + rdfs:comment "A re-implementation of the wasDerivedFrom property in W3C PROV-O. The definition of this property is 'A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.' [Ref: https://www.w3.org/TR/prov-o/#wasDerivedFrom]"@en ; + rdfs:domain core:UcoObject ; + rdfs:range core:UcoObject ; + . + +investigation:wasInformedBy + a owl:ObjectProperty ; + rdfs:label "wasInformedBy"@en ; + rdfs:comment "A re-implementation of the wasInformedBy property in W3C PROV-O, where an entity is exchanged by two activities, 'one activity using the entity generated by the other'. [Ref: https://www.w3.org/TR/prov-o/#wasInformedBy]"@en ; + rdfs:domain investigation:InvestigativeAction ; + rdfs:range investigation:InvestigativeAction ; + . + +vocab:InvestigationFormVocab + a rdfs:Datatype ; + rdfs:label "Investigation Form Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of investigation forms."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "case"^^vocab:InvestigationFormVocab + "incident"^^vocab:InvestigationFormVocab + "suspicious-activity"^^vocab:InvestigationFormVocab + ) ; + ] ; + . + +uco-co:List-shape + a sh:NodeShape ; + sh:property [ + sh:class co:ListItem ; + sh:path co:item ; + ] ; + sh:targetClass co:List ; + . + +uco-co:ListItem-shape + a sh:NodeShape ; + sh:property [ + rdfs:comment "Adapted from restriction on co:ListItem."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:path co:index ; + ] ; + sh:targetClass co:ListItem ; + . + +uco-co:firstItem-subjects-previousItem-shape + a sh:PropertyShape ; + sh:description "The first item in a list must not have a previous item."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:path ( + co:firstItem + co:previousItem + ) ; + sh:targetSubjectsOf co:firstItem ; + . + +uco-co:firstItem-subjects-shape + a sh:PropertyShape ; + sh:class co:ListItem ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:firstItem ; + sh:targetSubjectsOf co:firstItem ; + . + +uco-co:followedBy-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that co:followedBy has range co:Item (induced via the propertyChainAxiom on co:item and superproperty relationship with co:nextItem)."@en ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:followedBy ; + sh:targetSubjectsOf co:followedBy ; + . + +uco-co:index-subjects-shape + a sh:PropertyShape ; + sh:datatype xsd:positiveInteger ; + sh:nodeKind sh:Literal ; + sh:path co:index ; + sh:targetSubjectsOf co:index ; + . + +uco-co:item-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:item ; + sh:targetSubjectsOf co:item ; + . + +uco-co:itemContent-subjects-shape + a sh:NodeShape ; + sh:not [ + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that the range of co:itemContent is the complement of co:Item."@en ; + sh:path co:itemContent ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:description "This shape encodes in SHACL that co:itemContent is an OWL FunctionalProperty (giving the sh:maxCount constraint)."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:itemContent ; + ] ; + sh:targetSubjectsOf co:itemContent ; + . + +uco-co:lastItem-subjects-shape + sh:class co:ListItem ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:lastItem ; + sh:targetSubjectsOf co:lastItem ; + . + +uco-co:nextItem-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that co:nextItem is a FunctionalProperty (giving the sh:maxCount constraint), and has range co:Item (induced via the propertyChainAxiom on co:item)."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:nextItem ; + sh:targetSubjectsOf co:nextItem ; + . + +uco-co:precededBy-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that co:precededBy has range co:Item (induced via the propertyChainAxiom on co:item and superproperty relationship with co:previousItem)."@en ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:precededBy ; + sh:targetSubjectsOf co:precededBy ; + . + +uco-co:previousItem-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that co:previousItem is a FunctionalProperty (giving the sh:maxCount constraint), and has range co:Item (induced via the propertyChainAxiom on co:item)."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:previousItem ; + sh:targetSubjectsOf co:previousItem ; + . + +uco-co:size-subjects-shape + a sh:PropertyShape ; + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path co:size ; + sh:targetSubjectsOf co:size ; + . + +uco-owl:Axiom-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:comment "This requirement is determined from review of the canonical parsing process in Section 3 of the OWL 2 mapping to RDF. All references to owl:Axioms are identified as blank nodes. Therefore, any non-blank node that is an owl:Axiom will not be mapped and consumed by the mapping process."@en ; + rdfs:seeAlso ; + sh:message "An owl:Axiom must be a blank node."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:Axiom . + FILTER isIRI($this) + } + """ ; + ] ; + sh:targetClass owl:Axiom ; + . + +uco-owl:DataOneOf-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:comment "This requirement is determined from review of the canonical parsing process in Section 3.2.4, Table 12, row 4 of the OWL 2 mapping to RDF. All datatypes using owl:oneOf must be blank nodes. Any non-blank node will not be mapped and consumed by the mapping process. See also DataOneOf in the OWL 2 Syntax document, especially with 'Show RDF in Examples' turned on."@en ; + rdfs:seeAlso + , + + ; + sh:message "For data ranges that are sets of literals, owl:oneOf must only be used on blank nodes." ; + sh:select """ + PREFIX rdfs: + SELECT $this + WHERE { + $this a rdfs:Datatype . + FILTER ( isIRI($this) ) + } + """ ; + ] ; + sh:targetSubjectsOf owl:oneOf ; + . + +uco-owl:DatatypeProperty-shacl-constraints-shape + a sh:NodeShape ; + sh:sparql + [ + a sh:SPARQLConstraint ; + sh:message "An OWL Datatype Property cannot use a SHACL ClassConstraintComponent."@en ; + sh:select """ + PREFIX rdf: + PREFIX sh: + SELECT $this ?value + WHERE { + ?value + sh:class ?nClass ; + sh:path / rdf:rest* ?nLastSequenceMember ; + . + ?nLastSequenceMember + rdf:first $this ; + rdf:rest rdf:nil ; + . + } + """ ; + ] , + [ + a sh:SPARQLConstraint ; + sh:message "An OWL Datatype Property must not permit a non-Literal value via SHACL constraints."@en ; + sh:select """ + PREFIX rdf: + PREFIX sh: + SELECT $this ?value + WHERE { + ?value + sh:path / rdf:rest* ?nLastSequenceMember ; + . + ?nLastSequenceMember + rdf:first $this ; + rdf:rest rdf:nil ; + . + + { ?value sh:nodeKind sh:BlankNode . } + UNION + { ?value sh:nodeKind sh:BlankNodeOrIRI . } + UNION + { ?value sh:nodeKind sh:BlankNodeOrLiteral . } + UNION + { ?value sh:nodeKind sh:IRI . } + UNION + { ?value sh:nodeKind sh:IRIOrLiteral . } + } + """ ; + ] + ; + sh:targetClass owl:DatatypeProperty ; + . + +uco-owl:Disjointedness-AP-DP-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "An IRI may not be a member of both an owl:AnnotationProperty and owl:DatatypeProperty."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:DatatypeProperty ; + } + """ ; + ] ; + sh:targetClass owl:AnnotationProperty ; + . + +uco-owl:Disjointedness-AP-OP-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "An IRI may not be a member of both an owl:AnnotationProperty and owl:ObjectProperty."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:ObjectProperty ; + } + """ ; + ] ; + sh:targetClass owl:AnnotationProperty ; + . + +uco-owl:Disjointedness-C-DT-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "An IRI may not be a member of both an owl:Class and owl:Datatype."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:Datatype ; + } + """ ; + ] ; + sh:targetClass owl:Class ; + . + +uco-owl:Disjointedness-DP-OP-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "An IRI may not be a member of both owl:DatatypeProperty and owl:ObjectProperty."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:ObjectProperty ; + } + """ ; + ] ; + sh:targetClass owl:DatatypeProperty ; + . + +uco-owl:List-shape + a sh:NodeShape ; + sh:property [ + a sh:PropertyShape ; + sh:maxCount "1"^^xsd:integer ; + sh:path rdf:first ; + ] ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:comment "This requirement is determined from review of the canonical parsing process in Section 3 of the OWL 2 mapping to RDF. Table 5 removes any triple matching the pattern 'x a rdf:List`. All other references throughout Section 3 to rdf:first are identified as blank nodes. Therefore, any non-blank node that is an rdf:List will not be mapped and consumed by the mapping process, making the graph non-conformant with OWL 2 DL."@en ; + rdfs:seeAlso ; + sh:message "The subject of a triple with rdf:first as predicate must be a blank node."@en ; + sh:select """ + SELECT $this + WHERE { + FILTER isIRI($this) + } + """ ; + ] ; + sh:targetSubjectsOf rdf:first ; + . + +uco-owl:ObjectProperty-shacl-constraints-shape + a sh:NodeShape ; + sh:sparql + [ + a sh:SPARQLConstraint ; + sh:message "An OWL Object Property cannot use a SHACL DatatypeConstraintComponent."@en ; + sh:select """ + PREFIX rdf: + PREFIX sh: + SELECT $this ?value + WHERE { + ?value + sh:datatype ?nDatatype ; + sh:path / rdf:rest* ?nLastSequenceMember ; + . + ?nLastSequenceMember + rdf:first $this ; + rdf:rest rdf:nil ; + . + } + """ ; + ] , + [ + a sh:SPARQLConstraint ; + sh:message "An OWL Object Property must not permit a Literal value via SHACL consraints."@en ; + sh:select """ + PREFIX sh: + SELECT $this ?value + WHERE { + ?value + sh:path / rdf:rest* ?nLastSequenceMember ; + . + ?nLastSequenceMember + rdf:first $this ; + rdf:rest rdf:nil ; + . + + { ?value sh:nodeKind sh:BlankNodeOrLiteral . } + UNION + { ?value sh:nodeKind sh:IRIOrLiteral . } + UNION + { ?value sh:nodeKind sh:Literal . } + } + """ ; + ] + ; + sh:targetClass owl:ObjectProperty ; + . + +uco-owl:incompatibleWith-direct-import-shape + a sh:PropertyShape ; + rdfs:seeAlso ; + sh:disjoint owl:incompatibleWith ; + sh:message "'The import closure of [ontology] O SHOULD NOT contain ontologies O_1 and O_2 such that ... O_1 contains an ontology annotation owl:incompatibleWith with the value equal to either the ontology IRI or the version IRI of O_2.' The focusNode directly imported an incompatibility it declared (the value node)."@en ; + sh:path owl:imports ; + sh:severity sh:Warning ; + sh:targetClass owl:Ontology ; + . + +uco-owl:incompatibleWith-imported-ontology-iri-shape + a sh:NodeShape ; + rdfs:seeAlso ; + sh:message "'The import closure of [ontology] O SHOULD NOT contain ontologies O_1 and O_2 such that ... O_1 contains an ontology annotation owl:incompatibleWith with the value equal to either the ontology IRI or the version IRI of O_2.' The focusNode, or a versionIRI of it, is imported within the transitive closure of some O, but is incompatible with some O_1 also within the transitive closure of O."@en ; + sh:not [ + a sh:NodeShape ; + sh:class owl:Ontology ; + sh:description "This node having a class-designation of owl:Ontology implies it is an ontology 'O_2' defined in the transitive closure of an ontology 'O_1' that declared itself incompatible with 'O_2'."@en ; + ] ; + sh:severity sh:Warning ; + sh:targetObjectsOf owl:incompatibleWith ; + . + +uco-owl:incompatibleWith-imported-version-iri-shape + a sh:PropertyShape ; + rdfs:seeAlso ; + sh:maxCount "0"^^xsd:integer ; + sh:message "'The import closure of [ontology] O SHOULD NOT contain ontologies O_1 and O_2 such that ... O_1 contains an ontology annotation owl:incompatibleWith with the value equal to ... the version IRI of O_2.' The focusNode is incompatible with some O_1 within the transitive closure of some O."@en ; + sh:path [ + sh:inversePath owl:versionIRI ; + ] ; + sh:severity sh:Warning ; + sh:targetObjectsOf owl:incompatibleWith ; + . + +uco-owl:ontologyIRI-versionIRI-prerequisite-shape + a sh:NodeShape ; + rdfs:seeAlso ; + sh:message "'An ontology without an ontology IRI MUST NOT contain a version IRI.'"@en ; + sh:nodeKind sh:IRI ; + sh:targetSubjectsOf owl:versionIRI ; + . + +uco-owl:versionIRI-multiversion-shape + a sh:PropertyShape ; + rdfs:seeAlso ; + sh:maxCount "1"^^xsd:integer ; + sh:message "'The import closure of [ontology] O SHOULD NOT contain ontologies O_1 and O_2 such that O_1 and O_2 are different ontology versions from the same ontology series.'"@en ; + sh:path owl:versionIRI ; + sh:severity sh:Warning ; + sh:targetSubjectsOf owl:versionIRI ; + . + +uco-owl:versionIRI-nodeKind-shape + a sh:PropertyShape ; + sh:nodeKind sh:IRI ; + sh:path owl:versionIRI ; + sh:targetSubjectsOf owl:versionIRI ; + . + +action:Action + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Action"@en ; + rdfs:comment "An action is something that may be done or performed."@en ; + sh:property + [ + sh:class action:Action ; + sh:nodeKind sh:IRI ; + sh:path action:subaction ; + ] , + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:environment ; + ] , + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:performer ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:error ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:instrument ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:object ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:participant ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:result ; + ] , + [ + sh:class location:Location ; + sh:nodeKind sh:IRI ; + sh:path action:location ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:startTime ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:actionCount ; + ] , + [ + sh:datatype vocabulary:ActionStatusTypeVocab ; + sh:message "Value is outside the default vocabulary ActionStatusTypeVocab." ; + sh:path action:actionStatus ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ActionStatusTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path action:actionStatus ; + ] , + [ + sh:message "Value is not member of the vocabulary ActionStatusTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ActionStatusTypeVocab ; + sh:in ( + "Complete/Finish"^^vocabulary:ActionStatusTypeVocab + "Error"^^vocabulary:ActionStatusTypeVocab + "Fail"^^vocabulary:ActionStatusTypeVocab + "Ongoing"^^vocabulary:ActionStatusTypeVocab + "Pending"^^vocabulary:ActionStatusTypeVocab + "Success"^^vocabulary:ActionStatusTypeVocab + "Unknown"^^vocabulary:ActionStatusTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path action:actionStatus ; + ] + ; + sh:targetClass action:Action ; + . + +action:ActionArgumentFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ActionArgumentFacet"@en ; + rdfs:comment "An action argument facet is a grouping of characteristics unique to a single parameter of an action."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:argumentName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:value ; + ] + ; + sh:targetClass action:ActionArgumentFacet ; + . + +action:ActionEstimationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ActionEstimationFacet"@en ; + rdfs:comment "An action estimation facet is a grouping of characteristics unique to decision-focused approximation aspects for an action that may potentially be performed."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:estimatedCost ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:estimatedEfficacy ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:estimatedImpact ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:objective ; + ] + ; + sh:targetClass action:ActionEstimationFacet ; + . + +action:ActionFrequencyFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ActionFrequencyFacet"@en ; + rdfs:comment "An action frequency facet is a grouping of characteristics unique to the frequency of occurrence for an action."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:rate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:scale ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:units ; + ] , + [ + sh:datatype vocabulary:TrendVocab ; + sh:message "Value is outside the default vocabulary TrendVocab." ; + sh:path action:trend ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TrendVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path action:trend ; + ] , + [ + sh:message "Value is not member of the vocabulary TrendVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TrendVocab ; + sh:in ( + "Decreasing"^^vocabulary:TrendVocab + "Increasing"^^vocabulary:TrendVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path action:trend ; + ] + ; + sh:targetClass action:ActionFrequencyFacet ; + . + +action:ActionLifecycle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:Action ; + rdfs:label "ActionLifecycle"@en ; + rdfs:comment "An action lifecycle is an action pattern consisting of an ordered set of multiple actions or subordinate action lifecycles."@en ; + sh:property + [ + sh:class action:ArrayOfAction ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:phase ; + ] , + [ + sh:class core:UcoObject ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:error ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:startTime ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:actionCount ; + ] , + [ + sh:maxCount "0"^^xsd:integer ; + sh:path action:actionStatus ; + ] + ; + sh:targetClass action:ActionLifecycle ; + . + +action:ActionPattern + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + action:Action , + pattern:Pattern + ; + rdfs:label "ActionPattern"@en ; + rdfs:comment "An action pattern is a grouping of characteristics unique to a combination of actions forming a consistent or characteristic arrangement."@en ; + sh:targetClass action:ActionPattern ; + . + +action:ArrayOfAction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ArrayOfAction"@en ; + rdfs:comment "An array of action is an ordered list of references to things that may be done or performed."@en ; + sh:property [ + sh:class action:Action ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:action ; + ] ; + sh:targetClass action:ArrayOfAction ; + . + +action:action + a owl:ObjectProperty ; + rdfs:label "action"@en ; + rdfs:comment "A characterization of a single action."@en ; + rdfs:range action:Action ; + . + +action:actionCount + a owl:DatatypeProperty ; + rdfs:label "actionCount"@en ; + rdfs:comment "The number of times that the action was performed."@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +action:actionStatus + a owl:DatatypeProperty ; + rdfs:label "actionStatus"@en ; + rdfs:comment "The current state of the action."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:ActionStatusTypeVocab + xsd:string + ) ; + ] ; + . + +action:argumentName + a owl:DatatypeProperty ; + rdfs:label "argumentName"@en ; + rdfs:comment "The identifying label of an argument."@en ; + rdfs:range xsd:string ; + . + +action:endTime + a owl:DatatypeProperty ; + rdfs:label "endTime"@en ; + rdfs:comment "The time at which performance of the action ended."@en ; + rdfs:range xsd:dateTime ; + . + +action:environment + a owl:ObjectProperty ; + rdfs:label "environment"@en ; + rdfs:comment "The environment wherein an action occurs."@en ; + rdfs:range core:UcoObject ; + . + +action:error + a owl:ObjectProperty ; + rdfs:label "error"@en ; + rdfs:comment "A characterization of the differences between the expected and the actual performance of the action."@en ; + rdfs:range core:UcoObject ; + . + +action:estimatedCost + a owl:DatatypeProperty ; + rdfs:label "estimatedCost"@en ; + rdfs:comment "An estimation of the cost if the action is performed."@en ; + rdfs:range xsd:string ; + . + +action:estimatedEfficacy + a owl:DatatypeProperty ; + rdfs:label "estimatedEfficacy"@en ; + rdfs:comment "An estimation of the effectiveness of the action at achieving its objective if the action is performed."@en ; + rdfs:range xsd:string ; + . + +action:estimatedImpact + a owl:DatatypeProperty ; + rdfs:label "estimatedImpact"@en ; + rdfs:comment "An estimation of the impact if the action is performed."@en ; + rdfs:range xsd:string ; + . + +action:instrument + a owl:ObjectProperty ; + rdfs:label "instrument"@en ; + rdfs:comment "The things used to perform an action."@en ; + rdfs:range core:UcoObject ; + . + +action:location + a owl:ObjectProperty ; + rdfs:label "location"@en ; + rdfs:comment "The locations where an action occurs."@en ; + rdfs:range location:Location ; + . + +action:object + a owl:ObjectProperty ; + rdfs:label "object"@en ; + rdfs:comment "The things that the action is performed on/against."@en ; + rdfs:range core:UcoObject ; + . + +action:objective + a owl:DatatypeProperty ; + rdfs:label "objective"@en ; + rdfs:comment "The intended purpose for performing the action."@en ; + rdfs:range xsd:string ; + . + +action:participant + a owl:ObjectProperty ; + rdfs:label "participant"@en ; + rdfs:comment "The supporting (non-primary) performers of an action."@en ; + rdfs:range core:UcoObject ; + . + +action:performer + a owl:ObjectProperty ; + rdfs:label "performer"@en ; + rdfs:comment "The primary performer of an action."@en ; + rdfs:range core:UcoObject ; + . + +action:phase + a owl:ObjectProperty ; + rdfs:subPropertyOf action:subaction ; + rdfs:label "phase"@en ; + rdfs:comment "The ordered set of actions or sub action-lifecycles that represent the action lifecycle."@en ; + rdfs:range action:ArrayOfAction ; + . + +action:rate + a owl:DatatypeProperty ; + rdfs:label "rate"@en ; + rdfs:comment "The frequency rate for the occurence of an action."@en ; + rdfs:range xsd:decimal ; + . + +action:result + a owl:ObjectProperty ; + rdfs:label "result"@en ; + rdfs:comment "The things resulting from performing an action."@en ; + rdfs:range core:UcoObject ; + . + +action:scale + a owl:DatatypeProperty ; + rdfs:label "scale"@en ; + rdfs:comment "The time scale utilized for the frequency rate count for the occurence of an action."@en ; + rdfs:range xsd:string ; + . + +action:startTime + a owl:DatatypeProperty ; + rdfs:label "startTime"@en ; + rdfs:comment "The time at which performance of the action began."@en ; + rdfs:range xsd:dateTime ; + . + +action:subaction + a owl:ObjectProperty ; + rdfs:label "subaction"@en ; + rdfs:comment "References to other actions that make up part of a larger more complex action."@en ; + rdfs:range action:Action ; + . + +action:trend + a owl:DatatypeProperty ; + rdfs:label "trend"@en ; + rdfs:comment "A characterization of the frequency trend for the occurence of an action."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TrendVocab + xsd:string + ) ; + ] ; + . + +action:units + a owl:DatatypeProperty ; + rdfs:label "units"@en ; + rdfs:comment "The units of measure utilized for the frequency rate count for the occurence of an action."@en ; + rdfs:range xsd:string ; + . + +action:value + a owl:DatatypeProperty ; + rdfs:label "value"@en ; + rdfs:comment "The value of an action parameter."@en ; + rdfs:range xsd:string ; + . + +analysis:Analysis + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:Action ; + rdfs:label "Analysis"@en ; + rdfs:comment "An analysis is an action of detailed examination of something in order to understand its nature, context or essential features."@en ; + sh:targetClass action:Analysis ; + . + +analysis:AnalyticResult + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Assertion ; + rdfs:label "AnalyticResult"@en ; + rdfs:comment "An analytic result is a characterization of the understanding resulting from an analysis action."@en ; + sh:property + [ + sh:class analysis:Analysis ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path analysis:originatingAnalysis ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path analysis:resultContent ; + ] + ; + sh:targetClass analysis:AnalysicResult ; + . + +analysis:AnalyticResultFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AnalyticResultFacet"@en ; + rdfs:comment "An analytic result facet is a grouping of characteristics unique to the results of an analysis action."@en ; + sh:targetClass analysis:AnalyticResultFacet ; + . + +analysis:ArtifactClassification + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ArtifactClassification"@en ; + rdfs:comment "An artifact classification is a single specific assertion that a particular class of a classification taxonomy applies to something."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path analysis:classificationConfidence ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path analysis:class ; + ] + ; + sh:targetClass analysis:ArtifactClassification ; + . + +analysis:ArtifactClassificationResultFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf analysis:AnalyticResultFacet ; + rdfs:label "ArtifactClassificationResultFacet"@en ; + rdfs:comment "An artifact classification result facet is a grouping of characteristics unique to the results of an artifact classification analysis action."@en ; + sh:property [ + sh:class analysis:ArtifactClassification ; + sh:nodeKind sh:IRI ; + sh:path analysis:classification ; + ] ; + sh:targetClass analysis:ArtifactClassificationResultFacet ; + . + +analysis:class + a owl:DatatypeProperty ; + rdfs:label "class"@en ; + rdfs:comment "A specific classification class."@en ; + rdfs:range xsd:string ; + . + +analysis:classification + a owl:ObjectProperty ; + rdfs:label "classification"@en ; + rdfs:comment "An asserted classification of an analyzed artifact resulting from the analysis."@en ; + rdfs:range analysis:ArtifactClassification ; + . + +analysis:classificationConfidence + a owl:DatatypeProperty ; + rdfs:label "classificationConfidence"@en ; + rdfs:comment "The level of confidence that a classification assertion is correct."@en ; + rdfs:range xsd:decimal ; + . + +analysis:originatingAnalysis + a owl:ObjectProperty ; + rdfs:label "originatingAnalysis"@en ; + rdfs:comment "The analysis action that resulted in an analytic result."@en ; + rdfs:range analysis:Analysis ; + . + +analysis:resultContent + a owl:ObjectProperty ; + rdfs:label "resultContent"@en ; + rdfs:comment "Structured content expressing the results of an analysis action."@en ; + rdfs:range core:UcoObject ; + . + +configuration:Configuration + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Configuration"@en ; + rdfs:comment "A configuration is a grouping of characteristics unique to a set of parameters or initial settings for the use of a tool, application, software, or other cyber object."@en ; + rdfs:seeAlso ; + sh:property + [ + sh:class configuration:ConfigurationEntry ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:configurationEntry ; + ] , + [ + sh:class configuration:Dependency ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:dependencies ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path configuration:usageContextAssumptions ; + ] + ; + sh:targetClass configuration:Configuration ; + . + +configuration:ConfigurationEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ConfigurationEntry"@en ; + rdfs:comment "A configuration entry is a grouping of characteristics unique to a particular parameter or initial setting for the use of a tool, application, software, or other cyber object."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:itemObject ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:itemDescription ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:itemName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:itemType ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path configuration:itemValue ; + ] + ; + sh:targetClass configuration:ConfigurationEntry ; + sh:xone ( + [ + sh:property + [ + sh:maxCount "0"^^xsd:integer ; + sh:path configuration:itemObject ; + ] , + [ + sh:maxCount "0"^^xsd:integer ; + sh:path configuration:itemValue ; + ] + ; + ] + [ + sh:property [ + sh:minCount "1"^^xsd:integer ; + sh:path configuration:itemObject ; + ] ; + ] + [ + sh:property [ + sh:minCount "1"^^xsd:integer ; + sh:path configuration:itemValue ; + ] ; + ] + ) ; + . + +configuration:Dependency + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "Dependency"@en ; + rdfs:comment "A dependency is a grouping of characteristics unique to something that a tool or other software relies on to function as intended."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:dependencyDescription ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:dependencyType ; + ] + ; + sh:targetClass configuration:Dependency ; + . + +configuration:configurationEntry + a owl:ObjectProperty ; + rdfs:comment "A single configuration setting entry item for a tool or other software."@en ; + rdfs:range configuration:ConfigurationEntry ; + rdfs:seeAlso ; + . + +configuration:dependencies + a owl:ObjectProperty ; + rdfs:label "dependencies"@en ; + rdfs:comment "The relevant configuration dependencies for a tool, application, software, or other cyber object."@en ; + rdfs:range configuration:Dependency ; + . + +configuration:dependencyDescription + a owl:DatatypeProperty ; + rdfs:label "dependencyDescription"@en ; + rdfs:comment "A description of a tool or other software dependency."@en ; + rdfs:range xsd:string ; + . + +configuration:dependencyType + a owl:DatatypeProperty ; + rdfs:label "dependencyType"@en ; + rdfs:comment "The type of a tool or other software dependency."@en ; + rdfs:range xsd:string ; + . + +configuration:isConfigurationOf + a + owl:ObjectProperty , + owl:IrreflexiveProperty + ; + rdfs:label "isConfigurationOf"@en ; + rdfs:comment "The object which has been configured to run in a more specified manner than another object. This property is expected to have a more specific range when associated with a class, such as a configured Tool having this property have a range of a Tool."@en ; + rdfs:range core:UcoObject ; + . + +configuration:itemDescription + a owl:DatatypeProperty ; + rdfs:label "itemDescription"@en ; + rdfs:comment "A description of a configuration setting entry item."@en ; + rdfs:range xsd:string ; + . + +configuration:itemName + a owl:DatatypeProperty ; + rdfs:label "itemName"@en ; + rdfs:comment "The name of a configuration setting entry item."@en ; + rdfs:range xsd:string ; + . + +configuration:itemObject + a owl:ObjectProperty ; + rdfs:comment "The structured value of a configuration setting entry instance."@en ; + rdfs:range core:UcoObject ; + rdfs:seeAlso ; + . + +configuration:itemType + a owl:DatatypeProperty ; + rdfs:label "itemType"@en ; + rdfs:comment "The type of a configuration setting entry item."@en ; + rdfs:range xsd:string ; + . + +configuration:itemValue + a owl:DatatypeProperty ; + rdfs:label "itemValue"@en ; + rdfs:comment "The value of a configuration setting entry instance."@en ; + rdfs:range xsd:string ; + . + +configuration:usageContextAssumptions + a owl:DatatypeProperty ; + rdfs:label "usageContextAssumptions"@en ; + rdfs:comment "Description of the various relevant usage context assumptions for a tool or other software ."@en ; + rdfs:range xsd:string ; + . + +configuration:usesConfiguration + a owl:ObjectProperty ; + rdfs:label "usesConfiguration"@en ; + rdfs:comment "A configuration used by an object."@en ; + rdfs:range configuration:Configuration ; + . + +core:Annotation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Assertion ; + rdfs:label "Annotation"@en ; + rdfs:comment "An annotation is an assertion made in relation to one or more objects."@en ; + sh:property [ + sh:class core:UcoObject ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:object ; + ] ; + sh:targetClass core:Annotation ; + . + +core:Assertion + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Assertion"@en ; + rdfs:comment "An assertion is a statement declared to be true."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path core:statement ; + ] ; + sh:targetClass core:Assertion ; + . + +core:AttributedName + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "AttributedName"@en ; + rdfs:comment "An attributed name is a name of an entity issued by some attributed naming authority."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:namingAuthority ; + ] ; + sh:targetClass core:AttributedName ; + . + +core:Bundle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:EnclosingCompilation ; + rdfs:label "Bundle"@en ; + rdfs:comment "A bundle is a container for a grouping of UCO content with no presumption of shared context."@en ; + sh:targetClass core:Bundle ; + . + +core:Compilation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Compilation"@en ; + rdfs:comment "A compilation is a grouping of things."@en ; + sh:targetClass core:Compilation ; + . + +core:ConfidenceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ConfidenceFacet"@en ; + rdfs:comment "A confidence is a grouping of characteristics unique to an asserted level of certainty in the accuracy of some information."@en ; + sh:property [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:confidence ; + ] ; + sh:targetClass core:ConfidenceFacet ; + . + +core:ContextualCompilation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Compilation ; + rdfs:label "ContextualCompilation"@en ; + rdfs:comment "A contextual compilation is a grouping of things sharing some context (e.g., a set of network connections observed on a given day, all accounts associated with a given person)."@en ; + sh:property [ + sh:class core:UcoObject ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:object ; + ] ; + sh:targetClass core:ContextualCompilation ; + . + +core:ControlledVocabulary + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "ControlledVocabulary"@en ; + rdfs:comment "A controlled vocabulary is an explicitly constrained set of string values."@en ; + sh:property + [ + sh:datatype xsd:anyURI ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:constrainingVocabularyReference ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:value ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:constrainingVocabularyName ; + ] + ; + sh:targetClass core:ControlledVocabulary ; + . + +core:EnclosingCompilation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Compilation ; + rdfs:label "EnclosingCompilation"@en ; + rdfs:comment "An enclosing compilation is a container for a grouping of things."@en ; + sh:property [ + sh:class core:UcoObject ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:object ; + ] ; + sh:targetClass core:EnclosingCompilation ; + . + +core:ExternalReference + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ExternalReference"@en ; + rdfs:comment "Characteristics of a reference to a resource outside of the UCO."@en ; + sh:property + [ + sh:datatype xsd:anyURI ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:referenceURL ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:definingContext ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:externalIdentifier ; + ] + ; + sh:targetClass core:ExternalReference ; + . + +core:Facet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "Facet"@en ; + rdfs:comment "A facet is a grouping of characteristics singularly unique to a particular inherent aspect of a UCO domain object."@en ; + sh:targetClass core:Facet ; + . + +core:Grouping + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:ContextualCompilation ; + rdfs:label "Grouping"@en ; + rdfs:comment "A grouping is a compilation of referenced UCO content with a shared context."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path core:context ; + ] ; + sh:targetClass core:Grouping ; + . + +core:IdentityAbstraction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "IdentityAbstraction"@en ; + rdfs:comment "An identity abstraction is a grouping of identifying characteristics unique to an individual or organization. This class is an ontological structural abstraction for this concept. Implementations of this concept should utilize the identity:Identity class."@en ; + sh:targetClass core:IdentityAbstraction ; + . + +core:Item + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Item"@en ; + rdfs:comment "An item is a distinct article or unit."@en ; + sh:targetClass core:Item ; + . + +core:MarkingDefinitionAbstraction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "MarkingDefinitionAbstraction"@en ; + rdfs:comment "A marking definition abstraction is a grouping of characteristics unique to the expression of a specific data marking conveying restrictions, permissions, and other guidance for how marked data can be used and shared. This class is an ontological structural abstraction for this concept. Implementations of this concept should utilize the marking:MarkingDefinition class."@en ; + sh:targetClass core:MarkingDefinitionAbstraction ; + . + +core:ModusOperandi + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "ModusOperandi"@en ; + rdfs:comment "A modus operandi is a particular method of operation (how a particular entity behaves or the resources they use)."@en ; + sh:targetClass core:ModusOperandi ; + . + +core:Relationship + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Relationship"@en ; + rdfs:comment "A relationship is a grouping of characteristics unique to an assertion that one or more objects are related to another object in some way."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:target ; + ] , + [ + sh:class core:UcoObject ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:source ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:isDirectional ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:nodeKind sh:Literal ; + sh:path core:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:nodeKind sh:Literal ; + sh:path core:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:kindOfRelationship ; + ] + ; + sh:targetClass core:Relationship ; + . + +core:UcoInherentCharacterizationThing + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoThing ; + rdfs:label "UcoInherentCharacterizationThing"@en ; + rdfs:comment "A UCO inherent characterization thing is a grouping of characteristics unique to a particular inherent aspect of a UCO domain object."@en ; + sh:targetClass core:UcoInherentCharacterizationThing ; + . + +core:UcoObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoThing ; + rdfs:label "UcoObject"@en ; + rdfs:comment "A UCO object is a representation of a fundamental concept either directly inherent to the cyber domain or indirectly related to the cyber domain and necessary for contextually characterizing cyber domain concepts and relationships. Within the Unified Cyber Ontology (UCO) structure this is the base class acting as a consistent, unifying and interoperable foundation for all explicit and inter-relatable content objects."@en ; + sh:property + [ + sh:class core:ExternalReference ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:externalReference ; + ] , + [ + sh:class core:Facet ; + sh:nodeKind sh:IRI ; + sh:path core:hasFacet ; + ] , + [ + sh:class core:IdentityAbstraction ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:createdBy ; + ] , + [ + sh:class core:MarkingDefinitionAbstraction ; + sh:nodeKind sh:IRI ; + sh:path core:objectMarking ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:objectCreatedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:nodeKind sh:Literal ; + sh:path core:modifiedTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:specVersion ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path core:description ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path core:tag ; + ] + ; + sh:targetClass core:UcoObject ; + . + +core:UcoThing + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf owl:Thing ; + rdfs:label "UcoThing"@en ; + rdfs:comment "UcoThing is the top-level class within UCO."@en ; + rdfs:seeAlso core:UcoThing-identifier-shape ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "UcoThings are required to not be blank nodes."@en ; + sh:select """ + PREFIX uco-core: + SELECT $this + WHERE { + $this a/rdfs:subClassOf* uco-core:UcoThing . + FILTER isBlank ($this) + } + """ ; + ] ; + sh:targetClass core:UcoThing ; + . + +core:UcoThing-identifier-regex-shape + a sh:NodeShape ; + rdfs:comment "This shape is given an independent IRI for applications that have sufficient controls in place to deactivate this advisory of node identification practice."@en ; + rdfs:seeAlso sh:deactivated ; + sh:severity sh:Info ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "UcoThings are suggested to end with a UUID."@en ; + sh:select ''' + PREFIX uco-core: + SELECT $this + WHERE { + $this a/rdfs:subClassOf* uco-core:UcoThing . + FILTER ( + ! REGEX ( + STR($this), + "[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$", + "i" + ) + ) + } + ''' ; + ] ; + sh:targetClass core:UcoThing ; + . + +core:confidence + a owl:DatatypeProperty ; + rdfs:label "confidence"@en ; + rdfs:comment "An asserted level of certainty in the accuracy of some information."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:onDatatype xsd:nonNegativeInteger ; + owl:withRestrictions ( + [ + xsd:maxInclusive "100"^^xsd:nonNegativeInteger ; + ] + ) ; + ] ; + . + +core:constrainingVocabularyName + a owl:DatatypeProperty ; + rdfs:label "constrainingVocabularyName"@en ; + rdfs:comment "The name of an explicitly constrained set of string values."@en ; + rdfs:range xsd:string ; + . + +core:constrainingVocabularyReference + a owl:DatatypeProperty ; + rdfs:label "constrainingVocabularyReference"@en ; + rdfs:comment "A reference to a specification for an explicitly constrained set of string values. The specification may be unstructured (e.g., web page listing string values) or structured (e.g. RDF/OWL enumeration)."@en ; + rdfs:range xsd:anyURI ; + . + +core:context + a owl:DatatypeProperty ; + rdfs:label "context"@en ; + rdfs:comment "A description of particular contextual affinity."@en ; + rdfs:range xsd:string ; + . + +core:createdBy + a owl:ObjectProperty ; + rdfs:label "createdBy"@en ; + rdfs:comment "The identity that created a characterization of a concept."@en ; + rdfs:range core:IdentityAbstraction ; + . + +core:definingContext + a owl:DatatypeProperty ; + rdfs:label "definingContext"@en ; + rdfs:comment "A description of the context relevant to the definition of a particular external reference identifier."@en ; + rdfs:range xsd:string ; + . + +core:description + a owl:DatatypeProperty ; + rdfs:label "description"@en ; + rdfs:comment "A description of a particular concept characterization."@en ; + rdfs:range xsd:string ; + . + +core:endTime + a owl:DatatypeProperty ; + rdfs:label "endTime"@en ; + rdfs:comment "The ending time of a time range."@en ; + rdfs:range xsd:dateTime ; + . + +core:externalIdentifier + a owl:DatatypeProperty ; + rdfs:label "externalIdentifier"@en ; + rdfs:comment "An identifier for some information defined external to the UCO context."@en ; + rdfs:range xsd:string ; + . + +core:externalReference + a owl:ObjectProperty ; + rdfs:label "External Reference"@en-US ; + rdfs:comment "Specifies a reference to a resource outside of the UCO."@en-US ; + rdfs:range core:ExternalReference ; + . + +core:hasFacet + a + owl:ObjectProperty , + owl:InverseFunctionalProperty + ; + rdfs:label "hasFacet"@en ; + rdfs:comment "Further sets of properties characterizing a concept based on the particular context of the class and of the particular instance of the concept being characterized."@en ; + rdfs:range core:Facet ; + . + +core:hasFacet-shape + a sh:PropertyShape ; + sh:path core:hasFacet ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "hasFacet must not be used to link two objects to one Facet."@en ; + sh:select """ + PREFIX core: + PREFIX owl: + SELECT $this ?value + WHERE { + ?value core:hasFacet $this . + ?nOtherValue core:hasFacet $this . + FILTER ( ?value != ?nOtherValue ) + FILTER NOT EXISTS { + ?value owl:sameAs|^owl:sameAs ?nOtherValue . + } + } + """ ; + ] ; + sh:targetObjectsOf core:hasFacet ; + . + +core:isDirectional + a owl:DatatypeProperty ; + rdfs:label "isDirectional"@en ; + rdfs:comment "A specification whether or not a relationship assertion is limited to the context FROM a source object(s) TO a target object."@en ; + rdfs:range xsd:boolean ; + . + +core:kindOfRelationship + a owl:DatatypeProperty ; + rdfs:label "kindOfRelationship"@en ; + rdfs:comment "A characterization of the nature of a relationship between objects."@en ; + rdfs:range xsd:string ; + . + +core:modifiedTime + a owl:DatatypeProperty ; + rdfs:label "modifiedTime"@en ; + rdfs:comment "Specifies the time that this particular version of the object was modified. The object creator can use the time it deems most appropriate as the time this version of the object was modified. The value of the modified property for a given object version MUST be later than or equal to the value of the created property. Object creators MUST update the modified property when creating a new version of an object. The modified timestamp MUST be precise to the nearest millisecond (exactly three digits after the decimal place in seconds)."@en-us ; + rdfs:range xsd:dateTime ; + . + +core:name + a owl:DatatypeProperty ; + rdfs:label "name"@en ; + rdfs:comment "The name of a particular concept characterization."@en ; + rdfs:range xsd:string ; + . + +core:namingAuthority + a owl:DatatypeProperty ; + rdfs:label "namingAuthority"@en ; + rdfs:comment "Specifies the naming authority that issued the name of the entity."@en ; + rdfs:range xsd:string ; + . + +core:object + a owl:ObjectProperty ; + rdfs:label "object"@en ; + rdfs:comment "Specifies one or more UcoObjects."@en ; + rdfs:range core:UcoObject ; + . + +core:objectCreatedTime + a owl:DatatypeProperty ; + rdfs:label "objectCreatedTime"@en ; + rdfs:comment "The time at which a characterization of a concept is created. This time pertains to the time of creating the record object, and is not an intrinsic characteristic of the concept."@en ; + rdfs:range xsd:dateTime ; + . + +core:objectMarking + a owl:ObjectProperty ; + rdfs:label "objectMarking"@en ; + rdfs:comment "Marking definitions to be applied to a particular concept characterization in its entirety."@en ; + rdfs:range core:MarkingDefinitionAbstraction ; + . + +core:referenceURL + a owl:DatatypeProperty ; + rdfs:label "referenceURL"@en ; + rdfs:comment "A URL for some information defined external to the UCO context."@en ; + rdfs:range xsd:anyURI ; + . + +core:source + a owl:ObjectProperty ; + rdfs:label "source"@en ; + rdfs:comment "The originating node of a specified relationship."@en ; + rdfs:range core:UcoObject ; + . + +core:specVersion + a owl:DatatypeProperty ; + rdfs:label "specVersion"@en ; + rdfs:comment "The version of UCO ontology or subontology specification used to characterize a concept."@en ; + rdfs:range xsd:string ; + . + +core:startTime + a owl:DatatypeProperty ; + rdfs:label "startTime"@en ; + rdfs:comment "The initial time of a time range."@en ; + rdfs:range xsd:dateTime ; + . + +core:statement + a owl:DatatypeProperty ; + rdfs:label "statement"@en ; + rdfs:comment "A textual statement of an assertion."@en ; + rdfs:range xsd:string ; + . + +core:tag + a owl:DatatypeProperty ; + rdfs:label "tag"@en ; + rdfs:comment "A generic tag/label."@en ; + rdfs:range xsd:string ; + . + +core:target + a owl:ObjectProperty ; + rdfs:label "target"@en ; + rdfs:comment "The terminating node of a specified relationship."@en ; + rdfs:range core:UcoObject ; + . + +core:value + a owl:DatatypeProperty ; + rdfs:label "value"@en ; + rdfs:comment "A string value."@en ; + rdfs:range xsd:string ; + . + +identity:AddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "AddressFacet"@en ; + rdfs:comment "An address facet is a grouping of characteristics unique to an administrative identifier for a geolocation associated with a specific identity."@en ; + sh:property [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path identity:address ; + ] ; + sh:targetClass identity:AddressFacet ; + . + +identity:AffiliationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "AffiliationFacet"@en ; + rdfs:comment "An affiliation is a grouping of characteristics unique to the established affiliations of an entity."@en ; + sh:targetClass identity:AffiliationFacet ; + . + +identity:BirthInformationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "BirthInformationFacet"@en ; + rdfs:comment "Birth information is a grouping of characteristics unique to information pertaining to the birth of an entity."@en ; + sh:property [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path identity:birthdate ; + ] ; + sh:targetClass identity:BirthInformationFacet ; + . + +identity:CountryOfResidenceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "CountryOfResidenceFacet"@en ; + rdfs:comment "Country of residence is a grouping of characteristics unique to information related to the country, or countries, where an entity resides."@en ; + sh:targetClass identity:CountryOfResidenceFacet ; + . + +identity:EventsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "EventsFacet"@en ; + rdfs:comment "Events is a grouping of characteristics unique to information related to specific relevant things that happen in the lifetime of an entity."@en ; + sh:targetClass identity:EventsFacet ; + . + +identity:IdentifierFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "IdentifierFacet"@en ; + rdfs:comment "Identifier is a grouping of characteristics unique to information that uniquely and specifically identities an entity."@en ; + sh:targetClass identity:IdentifierFacet ; + . + +identity:Identity + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:IdentityAbstraction ; + rdfs:label "Identity"@en ; + rdfs:comment "An identity is a grouping of identifying characteristics unique to an individual or organization."@en ; + sh:targetClass identity:Identity ; + . + +identity:IdentityFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "IdentityFacet"@en ; + rdfs:comment "An identity facet is a grouping of characteristics unique to a particular aspect of an identity."@en ; + sh:targetClass identity:IdentityFacet ; + . + +identity:LanguagesFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "LanguagesFacet"@en ; + rdfs:comment "Languages is a grouping of characteristics unique to specific syntactically and grammatically standardized forms of communication (human or computer) in which an entity has proficiency (comprehends, speaks, reads, or writes)."@en ; + sh:targetClass identity:LanguagesFacet ; + . + +identity:NationalityFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "NationalityFacet"@en ; + rdfs:comment "Nationality is a grouping of characteristics unique to the condition of an entity belonging to a particular nation."@en ; + sh:targetClass identity:NationalityFacet ; + . + +identity:OccupationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "OccupationFacet"@en ; + rdfs:comment "Occupation is a grouping of characteristics unique to the job or profession of an entity."@en ; + sh:targetClass identity:OccupationFacet ; + . + +identity:Organization + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:Identity ; + rdfs:label "Organization"@en ; + rdfs:comment "An organization is a grouping of identifying characteristics unique to a group of people who work together in an organized way for a shared purpose. [based on https://dictionary.cambridge.org/us/dictionary/english/organization]"@en ; + sh:targetClass identity:Organization ; + . + +identity:OrganizationDetailsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "OrganizationDetailsFacet"@en ; + rdfs:comment "Organization details is a grouping of characteristics unique to an identity representing an administrative and functional structure."@en ; + sh:targetClass identity:OrganizationDetailsFacet ; + . + +identity:Person + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:Identity ; + rdfs:label "Person"@en ; + rdfs:comment "A person is a grouping of identifying characteristics unique to a human being regarded as an individual. [based on https://www.lexico.com/en/definition/person]"@en ; + sh:targetClass identity:Person ; + . + +identity:PersonalDetailsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "PersonalDetailsFacet"@en ; + rdfs:comment "Personal details is a grouping of characteristics unique to an identity representing an individual person."@en ; + sh:targetClass identity:PersonalDetailsFacet ; + . + +identity:PhysicalInfoFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "PhysicalInfoFacet"@en ; + rdfs:comment "Physical info is a grouping of characteristics unique to the outwardly observable nature of an individual person."@en ; + sh:targetClass identity:PhysicalInfoFacet ; + . + +identity:QualificationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "QualificationFacet"@en ; + rdfs:comment "Qualification is a grouping of characteristics unique to particular skills, capabilities or their related achievements (educational, professional, etc.) of an entity."@en ; + sh:targetClass identity:QualificationFacet ; + . + +identity:RelatedIdentityFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "RelatedIdentityFacet"@en ; + rdfs:comment ""@en ; + sh:targetClass identity:RelatedIdentityFacet ; + . + +identity:SimpleNameFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "SimpleNameFacet"@en ; + rdfs:comment "A simple name facet is a grouping of characteristics unique to the personal name (e.g., Dr. John Smith Jr.) held by an identity."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path identity:familyName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path identity:givenName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path identity:honorificPrefix ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path identity:honorificSuffix ; + ] + ; + sh:targetClass identity:SimpleNameFacet ; + . + +identity:VisaFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "VisaFacet"@en ; + rdfs:comment "Visa is a grouping of characteristics unique to information related to a person's ability to enter, leave, or stay for a specified period of time in a country."@en ; + sh:targetClass identity:VisaFacet ; + . + +identity:address + a owl:ObjectProperty ; + rdfs:label "address"@en ; + rdfs:comment ""@en ; + rdfs:range location:Location ; + . + +identity:birthdate + a owl:DatatypeProperty ; + rdfs:label "birthdate"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:dateTime ; + . + +identity:familyName + a owl:DatatypeProperty ; + rdfs:label "familyName"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:string ; + . + +identity:givenName + a owl:DatatypeProperty ; + rdfs:label "givenName"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:string ; + . + +identity:honorificPrefix + a owl:DatatypeProperty ; + rdfs:label "honorificPrefix"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:string ; + . + +identity:honorificSuffix + a owl:DatatypeProperty ; + rdfs:label "honorificSuffix"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:string ; + . + +location:GPSCoordinatesFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "GPSCoordinatesFacet"@en ; + rdfs:comment "A GPS coordinates facet is a grouping of characteristics unique to the expression of quantified dilution of precision (DOP) for an asserted set of geolocation coordinates typically associated with satellite navigation such as the Global Positioning System (GPS)."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:hdop ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:pdop ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:tdop ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:vdop ; + ] + ; + sh:targetClass location:GPSCoordinatesFacet ; + . + +location:LatLongCoordinatesFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "LatLongCoordinatesFacet"@en ; + rdfs:comment "A lat long coordinates facet is a grouping of characteristics unique to the expression of a geolocation as the intersection of specific latitude, longitude, and altitude values."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:altitude ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:latitude ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:longitude ; + ] + ; + sh:targetClass location:LatLongCoordinatesFacet ; + . + +location:Location + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Location"@en ; + rdfs:comment "A location is a geospatial place, site, or position."@en ; + sh:targetClass location:Location ; + . + +location:SimpleAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SimpleAddressFacet"@en ; + rdfs:comment "A simple address facet is a grouping of characteristics unique to a geolocation expressed as an administrative address."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:addressType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:country ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:locality ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:postalCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:region ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:street ; + ] + ; + sh:targetClass location:SimpleAddressFacet ; + . + +location:addressType + a owl:DatatypeProperty ; + rdfs:label "addressType"@en ; + rdfs:comment "The type of the address, for instance home or work."@en ; + rdfs:range xsd:string ; + . + +location:altitude + a owl:DatatypeProperty ; + rdfs:label "altitude"@en ; + rdfs:comment "The altitude coordinate of a geolocation."@en ; + rdfs:range xsd:decimal ; + . + +location:country + a owl:DatatypeProperty ; + rdfs:label "country"@en ; + rdfs:comment "The name of the geolocation country."@en ; + rdfs:range xsd:string ; + . + +location:hdop + a owl:DatatypeProperty ; + rdfs:label "hdop"@en ; + rdfs:comment "The horizontal dilution of precision of the GPS location."@en ; + rdfs:range xsd:decimal ; + . + +location:latitude + a owl:DatatypeProperty ; + rdfs:label "latitude"@en ; + rdfs:comment "The latitude coordinate of a geolocation."@en ; + rdfs:range xsd:decimal ; + . + +location:locality + a owl:DatatypeProperty ; + rdfs:label "locality"@en ; + rdfs:comment "The name of the geolocation locality (e.g., city)."@en ; + rdfs:range xsd:string ; + . + +location:longitude + a owl:DatatypeProperty ; + rdfs:label "longitude"@en ; + rdfs:comment "The longitude coordinate of a geolocation."@en ; + rdfs:range xsd:decimal ; + . + +location:pdop + a owl:DatatypeProperty ; + rdfs:label "pdop"@en ; + rdfs:comment "The positional (3D) dilution of precision of the GPS location."@en ; + rdfs:range xsd:decimal ; + . + +location:postalCode + a owl:DatatypeProperty ; + rdfs:label "postalCode"@en ; + rdfs:comment "The zip-code."@en ; + rdfs:range xsd:string ; + . + +location:region + a owl:DatatypeProperty ; + rdfs:label "region"@en ; + rdfs:comment "The name of the geolocation region (e.g., state)."@en ; + rdfs:range xsd:string ; + . + +location:street + a owl:DatatypeProperty ; + rdfs:label "street"@en ; + rdfs:comment "The name of the street."@en ; + rdfs:range xsd:string ; + . + +location:tdop + a owl:DatatypeProperty ; + rdfs:label "tdop"@en ; + rdfs:comment "The temporal dilution of precision of the GPS location."@en ; + rdfs:range xsd:decimal ; + . + +location:vdop + a owl:DatatypeProperty ; + rdfs:label "vdop"@en ; + rdfs:comment "The vertical dilution of precision of the GPS location."@en ; + rdfs:range xsd:decimal ; + . + +marking:GranularMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "GranularMarking"@en ; + rdfs:comment "A granular marking is a grouping of characteristics unique to specification of marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) that apply to particular portions of a particular UCO object."@en ; + sh:property + [ + sh:class marking:MarkingDefinition ; + sh:nodeKind sh:IRI ; + sh:path marking:marking ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path marking:contentSelectors ; + ] + ; + sh:targetClass marking:GranularMarking ; + . + +marking:LicenseMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf marking:MarkingModel ; + rdfs:label "License Marking"@en ; + rdfs:comment "A license marking is a grouping of characteristics unique to the expression of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) to convey details of license restrictions that apply to the data."@en-US ; + sh:property + [ + sh:datatype xsd:string ; + sh:hasValue "license" ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:license ; + ] + ; + sh:targetClass marking:LicenseMarking ; + . + +marking:MarkingDefinition + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:MarkingDefinitionAbstraction ; + rdfs:label "MarkingDefinition"@en ; + rdfs:comment "A marking definition is a grouping of characteristics unique to the expression of a specific data marking conveying restrictions, permissions, and other guidance for how marked data can be used and shared."@en ; + sh:property + [ + sh:class marking:MarkingModel ; + sh:nodeKind sh:IRI ; + sh:path marking:definition ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] + ; + sh:targetClass marking:MarkingDefinition ; + . + +marking:MarkingModel + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "MarkingModel"@en ; + rdfs:comment "A marking model is a grouping of characteristics unique to the expression of a particular form of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared)."@en ; + sh:targetClass marking:MarkingModel ; + . + +marking:ReleaseToMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf marking:MarkingModel ; + rdfs:label "Release-To Marking"@en ; + rdfs:comment "A release-to marking is a grouping of characteristics unique to the expression of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) to convey details of authorized persons and/or organizations to which to the associated content may be released. The existence of the Release-To marking restricts access to ONLY those identities explicitly listed, regardless of whether another data marking exists that allows sharing with other members of the community."@en-US ; + sh:property + [ + sh:datatype xsd:string ; + sh:hasValue "release-to" ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:authorizedIdentities ; + ] + ; + sh:targetClass marking:ReleaseToMarking ; + . + +marking:StatementMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf marking:MarkingModel ; + rdfs:label "Statement Marking"@en ; + rdfs:comment "A statement marking is a grouping of characteristics unique to the expression of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) to convey details of a textual marking statement, (e.g., copyright) whose semantic meaning should apply to the associated content. Statement markings are generally not machine-readable. An example of this would be a simple marking to apply copyright information, such as 'Copyright 2014 Acme Inc.'."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:hasValue "statement" ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:statement ; + ] + ; + sh:targetClass marking:StatementMarking ; + . + +marking:TermsOfUseMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf marking:MarkingModel ; + rdfs:label "Terms Of Use Marking"@en ; + rdfs:comment "A terms of use marking is a grouping of characteristics unique to the expression of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) to convey details of a textual statement specifying the Terms of Use (that is, the conditions under which the content may be shared, applied, or otherwise used) of the marked content. An example of this would be used to communicate a simple statement, such as 'Acme Inc. is not responsible for the content of this file'."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:hasValue "terms-of-use" ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:termsOfUse ; + ] + ; + sh:targetClass marking:TermsOfUseMarking ; + . + +marking:authorizedIdentities + a owl:DatatypeProperty ; + rdfs:label "Authorized Identities"@en ; + rdfs:comment "Specifies the identities that are authorized to access the data to which the data marking is associated. The list of authorized identities are represented as UUIDs."@en ; + rdfs:range xsd:string ; + . + +marking:contentSelectors + a owl:DatatypeProperty ; + rdfs:label "contentSelectors"@en ; + rdfs:comment """Explicit specification of exactly which portions of a UCO object to apply marking definitions to. + Specific syntax for how to specify the UCO object portions is dependent on the particular syntactic serialization implementation (XML, JSON, etc.) of UCO and MUST be explicitly specified in a separate binding specification for that syntactic serialization implementation (e.g. a UCO XML Binding Specification). """@en ; + rdfs:range xsd:string ; + . + +marking:definition + a owl:ObjectProperty ; + rdfs:label "definition"@en ; + rdfs:comment "Explicit specification of a data marking instance."@en ; + rdfs:range marking:MarkingModel ; + . + +marking:definitionType + a owl:DatatypeProperty ; + rdfs:label "definitionType"@en ; + rdfs:comment "Specifies the Marking Model for a Marking Definition."@en ; + rdfs:range xsd:string ; + . + +marking:license + a owl:DatatypeProperty ; + rdfs:label "License" ; + rdfs:comment "Specifies the identifier for the type of license" ; + rdfs:range xsd:string ; + . + +marking:marking + a owl:ObjectProperty ; + rdfs:label "marking"@en ; + rdfs:comment "Represents specific marking definitions to be applied to UCO data."@en ; + rdfs:range marking:MarkingDefinition ; + . + +marking:statement + a owl:DatatypeProperty ; + rdfs:label "Statement"@en-US ; + rdfs:comment "Specifies the statement to apply to the structure for which the Marking is to be applied."@en-US ; + rdfs:range xsd:string ; + . + +marking:termsOfUse + a owl:DatatypeProperty ; + rdfs:label "Terms of Use"@en-US ; + rdfs:comment "Specifies the terms of use that apply to the structure for which the Marking is to be applied."@en-US ; + rdfs:range xsd:string ; + . + +observable:API + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "API"@en ; + rdfs:comment "An API (application programming interface) is a computing interface that defines interactions between multiple software or mixed hardware-software intermediaries. It defines the kinds of calls or requests that can be made, how to make them, the data formats that should be used, the conventions to follow, etc. [based on https://en.wikipedia.org/wiki/API]"@en ; + sh:targetClass observable:API ; + . + +observable:ARPCache + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ARPCache"@en ; + rdfs:comment "An ARP cache is a collection of Address Resolution Protocol (ARP) entries (mostly dynamic) that are created when an IP address is resolved to a MAC address (so the computer can effectively communicate with the IP address). [based on https://en.wikipedia.org/wiki/ARP_cache]"@en ; + sh:targetClass observable:ARPCache ; + . + +observable:ARPCacheEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ARPCacheEntry"@en ; + rdfs:comment "An ARP cache entry is a single Address Resolution Protocol (ARP) response record that is created when an IP address is resolved to a MAC address (so the computer can effectively communicate with the IP address). [based on https://en.wikipedia.org/wiki/ARP_cache]"@en ; + sh:targetClass observable:ARPCacheEntry ; + . + +observable:Account + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Account"@en ; + rdfs:comment "An account is an arrangement with an entity to enable and control the provision of some capability or service."@en ; + sh:targetClass observable:Account ; + . + +observable:AccountAuthenticationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AccountAuthenticationFacet"@en ; + rdfs:comment "An account authentication facet is a grouping of characteristics unique to the mechanism of accessing an account."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:passwordLastChanged ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:password ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:passwordType ; + ] + ; + sh:targetClass observable:AccountAuthenticationFacet ; + . + +observable:AccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AccountFacet"@en ; + rdfs:comment "An account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of some capability or service."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:accountIssuer ; + ] , + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:owner ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isActive ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:expirationTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accountIdentifier ; + ] , + [ + sh:datatype vocabulary:AccountTypeVocab ; + sh:message "Value is outside the default vocabulary AccountTypeVocab." ; + sh:path observable:accountType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:AccountTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:accountType ; + ] , + [ + sh:message "Value is not member of the vocabulary AccountTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:AccountTypeVocab ; + sh:in ( + "ldap"^^vocabulary:AccountTypeVocab + "nis"^^vocabulary:AccountTypeVocab + "openid"^^vocabulary:AccountTypeVocab + "radius"^^vocabulary:AccountTypeVocab + "tacacs"^^vocabulary:AccountTypeVocab + "unix"^^vocabulary:AccountTypeVocab + "windows_domain"^^vocabulary:AccountTypeVocab + "windows_local"^^vocabulary:AccountTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:accountType ; + ] + ; + sh:targetClass observable:AccountFacet ; + . + +observable:Adaptor + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "Adaptor"@en-US ; + rdfs:comment "An adaptor is a device that physically converts the pin outputs but does not alter the underlying protocol (e.g. uSD to SD, CF to ATA, etc.)"@en-US ; + sh:targetClass observable:Adaptor ; + . + +observable:Address + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Address"@en ; + rdfs:comment "An address is an identifier assigned to enable routing and management of information."@en ; + sh:targetClass observable:Address ; + . + +observable:AlternateDataStream + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "AlternateDataStream"@en ; + rdfs:comment "An alternate data stream is data content stored within an NTFS file that is independent of the standard content stream of the file and is hidden from access by default NTFS file viewing mechanisms."@en ; + sh:targetClass observable:AlternateDataStream ; + . + +observable:AlternateDataStreamFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AlternateDataStreamFacet"@en ; + rdfs:comment "An alternate data stream facet is a grouping of characteristics unique to data content stored within an NTFS file that is independent of the standard content stream of the file and is hidden from access by default NTFS file viewing mechanisms."@en ; + sh:property + [ + sh:class types:Hash ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:hashes ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:size ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] + ; + sh:targetClass observable:AlternateDataStreamFacet ; + . + +observable:AndroidDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "AndroidDevice"@en ; + rdfs:comment "An Android device is a device running the Android operating system. [based on https://en.wikipedia.org/wiki/Android_(operating_system)]"@en ; + sh:targetClass observable:AndroidDevice ; + . + +observable:AndroidDeviceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AndroidDeviceFacet"@en ; + rdfs:comment "An Android device facet is a grouping of characteristics unique to an Android device. [based on https://en.wikipedia.org/wiki/Android_(operating_system)]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isADBRootEnabled ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isSURootEnabled ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:androidID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:androidFingerprint ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:androidVersion ; + ] + ; + sh:targetClass observable:AndroidDeviceFacet ; + . + +observable:AndroidPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + observable:AndroidDevice , + observable:SmartPhone + ; + rdfs:label "AndroidPhone"@en-US ; + rdfs:comment "An android phone is a smart phone that applies the Android mobile operating system."@en-US ; + sh:targetClass observable:AndroidPhone ; + . + +observable:AntennaFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AntennaFacet"@en ; + rdfs:comment "An antenna alignment facet contains the metadata surrounding the cell tower's antenna position."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:antennaHeight ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:azimuth ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:elevation ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:horizontalBeamWidth ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signalStrength ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:skew ; + ] + ; + sh:targetClass observable:AntennaFacet ; + . + +observable:AppleDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "AppleDevice"@en-US ; + rdfs:comment "An apple device is a smart device that applies either the MacOS or iOS operating system."@en-US ; + sh:targetClass observable:AppleDevice ; + . + +observable:Appliance + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "Appliance"@en ; + rdfs:comment "An appliance is a purpose-built computer with software or firmware that is designed to provide a specific computing capability or resource. [based on https://en.wikipedia.org/wiki/Computer_appliance]"@en ; + sh:targetClass observable:Appliance ; + . + +observable:Application + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Application"@en ; + rdfs:comment "An application is a particular software program designed for end users."@en ; + sh:targetClass observable:Application ; + . + +observable:ApplicationAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "ApplicationAccount"@en ; + rdfs:comment "An application account is an account within a particular software program designed for end users."@en ; + sh:targetClass observable:ApplicationAccount ; + . + +observable:ApplicationAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ApplicationAccountFacet"@en ; + rdfs:comment "An application account facet is a grouping of characteristics unique to an account within a particular software program designed for end users."@en ; + sh:property [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] ; + sh:targetClass observable:ApplicationAccountFacet ; + . + +observable:ApplicationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ApplicationFacet"@en ; + rdfs:comment "An application facet is a grouping of characteristics unique to a particular software program designed for end users."@en ; + sh:property + [ + sh:class observable:ApplicationVersion ; + sh:nodeKind sh:IRI ; + sh:path observable:installedVersionHistory ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:operatingSystem ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfLaunches ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:applicationIdentifier ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:ApplicationFacet ; + . + +observable:ApplicationVersion + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ApplicationVersion"@en ; + rdfs:comment "An application version is a grouping of characteristics unique to a particular software program version."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:installDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:uninstallDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:ApplicationVersion ; + . + +observable:ArchiveFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "ArchiveFile"@en ; + rdfs:comment "An archive file is a file that is composed of one or more computer files along with metadata."@en ; + sh:targetClass observable:ArchiveFile ; + . + +observable:ArchiveFileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ArchiveFileFacet"@en ; + rdfs:comment "An archive file facet is a grouping of characteristics unique to a file that is composed of one or more computer files along with metadata."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:archiveType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:comment ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:ArchiveFileFacet ; + . + +observable:Audio + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Audio"@en ; + rdfs:comment "Audio is a digital representation of sound."@en ; + sh:targetClass observable:Audio ; + . + +observable:AudioFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AudioFacet"@en ; + rdfs:comment "An audio facet is a grouping of characteristics unique to a digital representation of sound."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bitRate ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:duration ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:audioType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:format ; + ] + ; + sh:targetClass observable:AudioFacet ; + . + +observable:AutonomousSystem + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "AutonomousSystem"@en ; + rdfs:comment "An autonomous system is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain that presents a common, clearly defined routing policy to the Internet. [based on https://en.wikipedia.org/wiki/Autonomous_system_(Internet)]"@en ; + sh:targetClass observable:AutonomousSystem ; + . + +observable:AutonomousSystemFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AutonomousSystemFacet"@en ; + rdfs:comment "An autonomous system facet is a grouping of characteristics unique to a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain that presents a common, clearly defined routing policy to the Internet. [based on https://en.wikipedia.org/wiki/Autonomous_system_(Internet)]"@en ; + sh:property + observable:regionalInternetRegistry-shape-value-not-vocabulary-member , + observable:regionalInternetRegistry-shape-value-outside-default-vocabulary , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:number ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:asHandle ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RegionalRegistryTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:regionalInternetRegistry ; + ] + ; + sh:targetClass observable:AutonomousSystemFacet ; + . + +observable:BlackberryPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:SmartPhone ; + rdfs:label "BlackberryPhone"@en-US ; + rdfs:comment "A blackberry phone is a smart phone that applies the Blackberry OS mobile operating system. (Blackberry 10 re-introduces Blackberry OS, prior to that the OS was Android.)"@en-US ; + sh:targetClass observable:BlackberryPhone ; + . + +observable:BlockDeviceNode + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "BlockDeviceNode"@en ; + rdfs:comment "A block device node is a UNIX filesystem special file that serves as a conduit to communicate with devices, providing buffered randomly accesible input and output. Block device nodes are used to apply access rights to the devices and to direct operations on the files to the appropriate device drivers. [based on https://en.wikipedia.org/wiki/Unix_file_types]"@en ; + sh:targetClass observable:BlockDeviceNode ; + . + +observable:BluetoothAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MACAddress ; + rdfs:label "BluetoothAddress"@en ; + rdfs:comment "A Bluetooth address is a Bluetooth standard conformant identifier assigned to a Bluetooth device to enable routing and management of Bluetooth standards conformant communication to or from that device."@en ; + sh:targetClass observable:BluetoothAddress ; + . + +observable:BluetoothAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MACAddressFacet ; + rdfs:label "BluetoothAddressFacet"@en ; + rdfs:comment "A Bluetooth address facet is a grouping of characteristics unique to a Bluetooth standard conformant identifier assigned to a Bluetooth device to enable routing and management of Bluetooth standards conformant communication to or from that device."@en ; + sh:targetClass observable:BluetoothAddressFacet ; + . + +observable:BotConfiguration + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "BotConfiguration"@en ; + rdfs:comment "A bot configuration is a set of contextual settings for a software application that runs automated tasks (scripts) over the Internet at a much higher rate than would be possible for a human alone."@en ; + sh:targetClass observable:BotConfiguration ; + . + +observable:BrowserBookmark + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "BrowserBookmark"@en ; + rdfs:comment "A browser bookmark is a saved shortcut that directs a WWW (World Wide Web) browser software program to a particular WWW accessible resource. [based on https://techterms.com/definition/bookmark]"@en ; + sh:targetClass observable:BrowserBookmark ; + . + +observable:BrowserBookmarkFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "BrowserBookmarkFacet"@en ; + rdfs:comment "A browser bookmark facet is a grouping of characteristics unique to a saved shortcut that directs a WWW (World Wide Web) browser software program to a particular WWW accessible resource. [based on https://techterms.com/definition/bookmark]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:anyURI ; + sh:nodeKind sh:Literal ; + sh:path observable:urlTargeted ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accessedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visitCount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bookmarkPath ; + ] + ; + sh:targetClass observable:BrowserBookmarkFacet ; + . + +observable:BrowserCookie + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "BrowserCookie"@en ; + rdfs:comment "A browser cookie is a piece of of data sent from a website and stored on the user's computer by the user's web browser while the user is browsing. [based on https://en.wikipedia.org/wiki/HTTP_cookie]"@en ; + sh:targetClass observable:BrowserCookie ; + . + +observable:BrowserCookieFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "BrowserCookieFacet"@en ; + rdfs:comment "A browser cookie facet is a grouping of characteristics unique to a piece of data sent from a website and stored on the user's computer by the user's web browser while the user is browsing. [based on https://en.wikipedia.org/wiki/HTTP_cookie]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:cookieDomain ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isSecure ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accessedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:expirationTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cookieName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cookiePath ; + ] + ; + sh:targetClass observable:BrowserCookieFacet ; + . + +observable:Calendar + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Calendar"@en ; + rdfs:comment "A calendar is a collection of appointments, meetings, and events."@en ; + sh:targetClass observable:Calendar ; + . + +observable:CalendarEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CalendarEntry"@en ; + rdfs:comment "A calendar entry is an appointment, meeting or event within a collection of appointments, meetings and events."@en ; + sh:targetClass observable:CalendarEntry ; + . + +observable:CalendarEntryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CalendarEntryFacet"@en ; + rdfs:comment "A calendar entry facet is a grouping of characteristics unique to an appointment, meeting, or event within a collection of appointments, meetings, and events."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:owner ; + ] , + [ + sh:class identity:Identity ; + sh:nodeKind sh:IRI ; + sh:path observable:attendant ; + ] , + [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:location ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isPrivate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:remindTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:duration ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:recurrence ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subject ; + ] + ; + sh:targetClass observable:CalendarEntryFacet ; + . + +observable:CalendarFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CalendarFacet"@en ; + rdfs:comment "A calendar facet is a grouping of characteristics unique to a collection of appointments, meetings, and events."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:owner ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] + ; + sh:targetClass observable:CalendarFacet ; + . + +observable:Call + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Call"@en ; + rdfs:comment "A call is a connection as part of a realtime cyber communication between one or more parties."@en ; + sh:targetClass observable:Call ; + . + +observable:CallFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CallFacet"@en ; + rdfs:comment "A call facet is a grouping of characteristics unique to a connection as part of a realtime cyber communication between one or more parties."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:from ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:participant ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:to ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:duration ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:callType ; + ] + ; + sh:targetClass observable:CallFacet ; + . + +observable:CapturedTelecommunicationsInformation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CapturedTelecommunicationsInformation"@en ; + sh:targetClass observable:CapturedTelecommunicationsInformation ; + . + +observable:CapturedTelecommunicationsInformationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CapturedTelecommunicationsInformationFacet"@en ; + rdfs:comment "A captured telecommunications information facet represents certain information within captured or intercepted telecommunications data."@en ; + sh:property + [ + sh:class observable:CellSite ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:captureCellSite ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:interceptedCallState ; + ] + ; + sh:targetClass observable:CapturedTelecommunicationsInformationFacet ; + . + +observable:CellSite + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CellSite"@en ; + sh:targetClass observable:CellSite ; + . + +observable:CellSiteFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CellSiteFacet"@en ; + rdfs:comment "A cell site facet contains the metadata surrounding the cell site."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteCountryCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteIdentifier ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteLocationAreaCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteNetworkCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteType ; + ] + ; + sh:targetClass observable:CellSiteFacet ; + . + +observable:CharacterDeviceNode + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "CharacterDeviceNode"@en ; + rdfs:comment "A character device node is a UNIX filesystem special file that serves as a conduit to communicate with devices, providing only a serial stream of input or accepting a serial stream of output. Character device nodes are used to apply access rights to the devices and to direct operations on the files to the appropriate device drivers. [based on https://en.wikipedia.org/wiki/Unix_file_types]"@en ; + sh:targetClass observable:CharacterDeviceNode ; + . + +observable:Code + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:Code ; + . + +observable:CompressedStreamFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CompressedStreamFacet"@en ; + rdfs:comment "A compressed stream facet is a grouping of characteristics unique to the application of a size-reduction process to a body of data content."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:compressionRatio ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:compressionMethod ; + ] + ; + sh:targetClass observable:CompressedStreamFacet ; + . + +observable:Computer + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "Computer"@en-US ; + rdfs:comment "A computer is an electronic device for storing and processing data, typically in binary, according to instructions given to it in a variable program. [based on 'Computer.' Oxford English Dictionary, Oxford University Press, 2022.]"@en-US ; + sh:targetClass observable:Computer ; + . + +observable:ComputerSpecification + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ComputerSpecification"@en ; + rdfs:comment "A computer specification is the hardware and software of a programmable electronic device that can store, retrieve, and process data. {based on merriam-webster.com/dictionary/computer]"@en ; + sh:targetClass observable:ComputerSpecification ; + . + +observable:ComputerSpecificationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ComputerSpecificationFacet"@en ; + rdfs:comment "A computer specificaiton facet is a grouping of characteristics unique to the hardware and software of a programmable electronic device that can store, retrieve, and process data. [based on merriam-webster.com/dictionary/computer]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:networkInterface ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosReleaseDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:currentSystemDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:localTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:systemTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:availableRam ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:totalRam ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosManufacturer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosSerialNumber ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosVersion ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cpu ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cpuFamily ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:gpu ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:gpuFamily ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:hostname ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:processorArchitecture ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timezoneDST ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timezoneStandard ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:uptime ; + ] + ; + sh:targetClass observable:ComputerSpecificationFacet ; + . + +observable:ConfiguredSoftware + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Software ; + rdfs:label "ConfiguredSoftware"@en ; + rdfs:comment "A ConfiguredSoftware is a Software that is known to be configured to run in a more specified manner than some unconfigured or less-configured Software."@en ; + sh:property + [ + sh:class configuration:Configuration ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path configuration:usesConfiguration ; + ] , + [ + sh:class observable:Software ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path configuration:isConfigurationOf ; + ] + ; + sh:targetClass observable:ConfiguredSoftware ; + . + +observable:Contact + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Contact"@en ; + rdfs:comment "A contact is a set of identification and communication related details for a single entity."@en ; + sh:targetClass observable:Contact ; + . + +observable:ContactAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactAddress"@en ; + rdfs:comment "A contact address is a grouping of characteristics unique to a geolocation address of a contact entity."@en ; + sh:property + [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:geolocationAddress ; + ] , + [ + sh:datatype vocabulary:ContactAddressScopeVocab ; + sh:message "Value is outside the default vocabulary ContactAddressScopeVocab." ; + sh:path observable:contactAddressScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactAddressScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactAddressScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactAddressScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactAddressScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactAddressScopeVocab + "work"^^vocabulary:ContactAddressScopeVocab + "school"^^vocabulary:ContactAddressScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactAddressScope ; + ] + ; + sh:targetClass observable:ContactAddress ; + . + +observable:ContactAffiliation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactListAffiliation"@en ; + rdfs:comment "A contact affiliation is a grouping of characteristics unique to details of an organizational affiliation for a single contact entity."@en ; + sh:property + [ + sh:class identity:Organization ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactOrganization ; + ] , + [ + sh:class observable:ContactAddress ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:organizationLocation ; + ] , + [ + sh:class observable:ContactEmail ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactEmail ; + ] , + [ + sh:class observable:ContactMessaging ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactMessaging ; + ] , + [ + sh:class observable:ContactPhone ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhone ; + ] , + [ + sh:class observable:ContactProfile ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactProfile ; + ] , + [ + sh:class observable:ContactURL ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactURL ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:organizationDepartment ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:organizationPosition ; + ] + ; + sh:targetClass observable:ContactAffiliation ; + . + +observable:ContactEmail + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactEmail"@en ; + rdfs:comment "A contact email is a grouping of characteristics unique to details for contacting a contact entity by email."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:emailAddress ; + ] , + [ + sh:datatype vocabulary:ContactEmailScopeVocab ; + sh:message "Value is outside the default vocabulary ContactEmailScopeVocab." ; + sh:path observable:contactEmailScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactEmailScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactEmailScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactEmailScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactEmailScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactEmailScopeVocab + "work"^^vocabulary:ContactEmailScopeVocab + "school"^^vocabulary:ContactEmailScopeVocab + "cloud"^^vocabulary:ContactEmailScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactEmailScope ; + ] + ; + sh:targetClass observable:ContactEmail ; + . + +observable:ContactFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ContactFacet"@en ; + rdfs:comment "A contact facet is a grouping of characteristics unique to a set of identification and communication related details for a single entity."@en ; + sh:property + [ + sh:class observable:ContactAddress ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactAddress ; + ] , + [ + sh:class observable:ContactAffiliation ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactAffiliation ; + ] , + [ + sh:class observable:ContactEmail ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactEmail ; + ] , + [ + sh:class observable:ContactMessaging ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactMessaging ; + ] , + [ + sh:class observable:ContactPhone ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhone ; + ] , + [ + sh:class observable:ContactProfile ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactProfile ; + ] , + [ + sh:class observable:ContactSIP ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactSIP ; + ] , + [ + sh:class observable:ContactURL ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactURL ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:sourceApplication ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path identity:birthdate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastTimeContacted ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberTimesContacted ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contactID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:firstName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:middleName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:namePhonetic ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:namePrefix ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:nameSuffix ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contactGroup ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contactNote ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:nickname ; + ] + ; + sh:targetClass observable:ContactFacet ; + . + +observable:ContactList + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ContactList"@en ; + rdfs:comment "A contact list is a set of multiple individual contacts such as that found in a digital address book."@en ; + sh:targetClass observable:ContactList ; + . + +observable:ContactListFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ContactListFacet"@en ; + rdfs:comment "A contact list facet is a grouping of characteristics unique to a set of multiple individual contacts such as that found in a digital address book."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:sourceApplication ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:contact ; + ] + ; + sh:targetClass observable:ContactListFacet ; + . + +observable:ContactMessaging + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactMessaging"@en ; + rdfs:comment "A contact messaging is a grouping of characteristics unique to details for contacting a contact entity by digital messaging."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactMessagingPlatform ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:messagingAddress ; + ] + ; + sh:targetClass observable:ContactMessaging ; + . + +observable:ContactPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactPhone"@en ; + rdfs:comment "A contact phone is a grouping of characteristics unique to details for contacting a contact entity by telephone."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhoneNumber ; + ] , + [ + sh:datatype vocabulary:ContactPhoneScopeVocab ; + sh:message "Value is outside the default vocabulary ContactPhoneScopeVocab." ; + sh:path observable:contactPhoneScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactPhoneScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactPhoneScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactPhoneScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactPhoneScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactPhoneScopeVocab + "work"^^vocabulary:ContactPhoneScopeVocab + "school"^^vocabulary:ContactPhoneScopeVocab + "mobile"^^vocabulary:ContactPhoneScopeVocab + "main"^^vocabulary:ContactPhoneScopeVocab + "home fax"^^vocabulary:ContactPhoneScopeVocab + "work fax"^^vocabulary:ContactPhoneScopeVocab + "pager"^^vocabulary:ContactPhoneScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactPhoneScope ; + ] + ; + sh:targetClass observable:ContactPhone ; + . + +observable:ContactProfile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactProfile"@en ; + rdfs:comment "A contact profile is a grouping of characteristics unique to details for contacting a contact entity by online service."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactProfilePlatform ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profile ; + ] + ; + sh:targetClass observable:ContactProfile ; + . + +observable:ContactSIP + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactSIP"@en ; + rdfs:comment "A contact SIP is a grouping of characteristics unique to details for contacting a contact entity by Session Initiation Protocol (SIP)."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:sipAddress ; + ] , + [ + sh:datatype vocabulary:ContactSIPScopeVocab ; + sh:message "Value is outside the default vocabulary ContactSIPScopeVocab." ; + sh:path observable:contactSIPScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactSIPScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactSIPScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactSIPScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactSIPScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactSIPScopeVocab + "work"^^vocabulary:ContactSIPScopeVocab + "school"^^vocabulary:ContactSIPScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactSIPScope ; + ] + ; + sh:targetClass observable:ContactSIP ; + . + +observable:ContactURL + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactURL"@en ; + rdfs:comment "A contact URL is a grouping of characteristics unique to details for contacting a contact entity by Uniform Resource Locator (URL)."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:url ; + ] , + [ + sh:datatype vocabulary:ContactURLScopeVocab ; + sh:message "Value is outside the default vocabulary ContactURLScopeVocab." ; + sh:path observable:contactURLScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactURLScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactURLScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactURLScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactURLScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactURLScopeVocab + "work"^^vocabulary:ContactURLScopeVocab + "school"^^vocabulary:ContactURLScopeVocab + "homepage"^^vocabulary:ContactURLScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactURLScope ; + ] + ; + sh:targetClass observable:ContactURL ; + . + +observable:ContentData + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ContentData"@en ; + rdfs:comment "Content data is a block of digital data."@en ; + sh:targetClass observable:ContentData ; + . + +observable:ContentDataFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ContentDataFacet"@en ; + rdfs:comment "A content data facet is a grouping of characteristics unique to a block of digital data."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:dataPayloadReferenceURL ; + ] , + [ + sh:class types:Hash ; + sh:nodeKind sh:IRI ; + sh:path observable:hash ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isEncrypted ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:entropy ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeInBytes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dataPayload ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:magicNumber ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mimeClass ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:mimeType ; + ] , + [ + sh:datatype vocabulary:EndiannessTypeVocab ; + sh:message "Value is outside the default vocabulary EndiannessTypeVocab." ; + sh:path observable:byteOrder ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:EndiannessTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:byteOrder ; + ] , + [ + sh:message "Value is not member of the vocabulary EndiannessTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:EndiannessTypeVocab ; + sh:in ( + "Big-endian"^^vocabulary:EndiannessTypeVocab + "Little-endian"^^vocabulary:EndiannessTypeVocab + "Middle-endian"^^vocabulary:EndiannessTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:byteOrder ; + ] + ; + sh:targetClass observable:ContentDataFacet ; + . + +observable:CookieHistory + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CookieHistory"@en ; + rdfs:comment "A cookie history is the stored web cookie history for a particular web browser."@en ; + sh:targetClass observable:CookieHistory ; + . + +observable:Credential + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Credential"@en ; + rdfs:comment "A credential is a single specific login and password combination for authorization of access to a digital account or system."@en ; + sh:targetClass observable:Credential ; + . + +observable:CredentialDump + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CredentialDump"@en ; + rdfs:comment "A credential dump is a collection (typically forcibly extracted from a system) of specific login and password combinations for authorization of access to a digital account or system."@en ; + sh:targetClass observable:CredentialDump ; + . + +observable:DNSCache + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DNSCache"@en ; + rdfs:comment "An DNS cache is a temporary locally stored collection of previous Domain Name System (DNS) query results (created when an domain name is resolved to a IP address) for a particular computer."@en ; + sh:targetClass observable:DNSCache ; + . + +observable:DNSRecord + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DNSRecord"@en ; + rdfs:comment "A DNS record is a single Domain Name System (DNS) artifact specifying information of a particular type (routing, authority, responsibility, security, etc.) for a specific Internet domain name."@en ; + sh:targetClass observable:DNSRecord ; + . + +observable:DataRangeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DataRangeFacet"@en ; + rdfs:comment "A data range facet is a grouping of characteristics unique to a particular contiguous scope within a block of digital data."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:rangeOffset ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:rangeSize ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:rangeOffsetType ; + ] + ; + sh:targetClass observable:DataRangeFacet ; + . + +observable:DefinedEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DefinedEffectFacet"@en ; + rdfs:comment "A defined effect facet is a grouping of characteristics unique to the effect of an observable action in relation to one or more observable objects."@en ; + sh:targetClass observable:DefinedEffectFacet ; + . + +observable:Device + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Device"@en ; + rdfs:comment "A device is a piece of equipment or a mechanism designed to serve a special purpose or perform a special function. [based on https://www.merriam-webster.com/dictionary/device]"@en ; + sh:targetClass observable:Device ; + . + +observable:DeviceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DeviceFacet"@en ; + rdfs:comment "A device facet is a grouping of characteristics unique to a piece of equipment or a mechanism designed to serve a special purpose or perform a special function. [based on https://www.merriam-webster.com/dictionary/device]"@en ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:manufacturer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:deviceType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:model ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serialNumber ; + ] + ; + sh:targetClass observable:DeviceFacet ; + . + +observable:DigitalAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Account ; + rdfs:label "DigitalAccount"@en ; + rdfs:comment "A digital account is an arrangement with an entity to enable and control the provision of some capability or service within the digital domain."@en ; + sh:targetClass observable:DigitalAccount ; + . + +observable:DigitalAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DigitalAccountFacet"@en ; + rdfs:comment "A digital account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of some capability or service within the digital domain."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isDisabled ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:firstLoginTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastLoginTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:accountLogin ; + ] + ; + sh:targetClass observable:DigitalAccountFacet ; + . + +observable:DigitalAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Address ; + rdfs:label "DigitalAddress"@en ; + rdfs:comment "A digital address is an identifier assigned to enable routing and management of digital communication."@en ; + sh:targetClass observable:DigitalAddress ; + . + +observable:DigitalAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DigitalAddressFacet"@en ; + rdfs:comment "A digital address facet is a grouping of characteristics unique to an identifier assigned to enable routing and management of digital communication."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:addressValue ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] + ; + sh:targetClass observable:DigitalAddressFacet ; + . + +observable:DigitalCamera + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "DigitalCamera"@en-US ; + rdfs:comment "A digital camera is a camera that captures photographs in digital memory as opposed to capturing images on photographic film."@en-US ; + sh:targetClass observable:DigitalCamera ; + . + +observable:DigitalSignatureInfo + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DigitalSignatureInfo"@en ; + rdfs:comment "A digital signature info is a value calculated via a mathematical scheme for demonstrating the authenticity of an electronic message or document."@en ; + sh:targetClass observable:DigitalSignatureInfo ; + . + +observable:DigitalSignatureInfoFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DigitalSignatureInfoFacet"@en ; + rdfs:comment "A digital signature info facet is a grouping of characteristics unique to a value calculated via a mathematical scheme for demonstrating the authenticity of an electronic message or document."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:certificateSubject ; + ] , + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:certificateIssuer ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signatureExists ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signatureVerified ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signatureDescription ; + ] + ; + sh:targetClass observable:DigitalSignatureInfoFacet ; + . + +observable:Directory + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "Directory"@en ; + rdfs:comment "A directory is a file system cataloging structure which contains references to other computer files, and possibly other directories. On many computers, directories are known as folders, or drawers, analogous to a workbench or the traditional office filing cabinet. In UNIX a directory is implemented as a special file. [based on https://en.wikipedia.org/wiki/Directory_(computing)]"@en ; + sh:targetClass observable:Directory ; + . + +observable:Disk + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Disk"@en ; + rdfs:comment "A disk is a storage mechanism where data is recorded by various electronic, magnetic, optical, or mechanical changes to a surface layer of one or more rotating disks."@en ; + sh:targetClass observable:Disk ; + . + +observable:DiskFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DiskFacet"@en ; + rdfs:comment "A disk facet is a grouping of characteristics unique to a storage mechanism where data is recorded by various electronic, magnetic, optical, or mechanical changes to a surface layer of one or more rotating disks."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:partition ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:diskSize ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:freeSpace ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:diskType ; + ] + ; + sh:targetClass observable:DiskFacet ; + . + +observable:DiskPartition + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DiskPartition"@en ; + rdfs:comment "A disk partition is a particular managed region on a storage mechanism where data is recorded by various electronic, magnetic, optical, or mechanical changes to a surface layer of one or more rotating disks. [based on https://en.wikipedia.org/wiki/Disk_storage]"@en ; + sh:targetClass observable:DiskPartition ; + . + +observable:DiskPartitionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DiskPartitionFacet"@en ; + rdfs:comment "A disk partition facet is a grouping of characteristics unique to a particular managed region on a storage mechanism."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:partitionLength ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:partitionOffset ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:spaceLeft ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:spaceUsed ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:totalSpace ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:diskPartitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mountPoint ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:partitionID ; + ] + ; + sh:targetClass observable:DiskPartitionFacet ; + . + +observable:DomainName + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DomainName"@en ; + rdfs:comment "A domain name is an identification string that defines a realm of administrative autonomy, authority or control within the Internet. [based on https://en.wikipedia.org/wiki/Domain_name]"@en ; + sh:targetClass observable:DomainName ; + . + +observable:DomainNameFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DomainNameFacet"@en ; + rdfs:comment "A domain name facet is a grouping of characteristics unique to an identification string that defines a realm of administrative autonomy, authority or control within the Internet. [based on https://en.wikipedia.org/wiki/Domain_name]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isTLD ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:value ; + ] + ; + sh:targetClass observable:DomainNameFacet ; + . + +observable:Drone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MobileDevice ; + rdfs:label "Drone"@en-US ; + rdfs:comment "A drone, unmanned aerial vehicle (UAV), is an aircraft without a human pilot, crew, or passengers that typically involve a ground-based controller and a system for communications with the UAV."@en-US ; + sh:targetClass observable:Drone ; + . + +observable:ESN + a owl:DatatypeProperty ; + rdfs:label "ESN"@en ; + rdfs:comment "Electronic Serial Number ."@en ; + rdfs:range xsd:string ; + . + +observable:EXIFFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EXIFFacet"@en ; + rdfs:comment "An EXIF (exchangeable image file format) facet is a grouping of characteristics unique to the formats for images, sound, and ancillary tags used by digital cameras (including smartphones), scanners and other systems handling image and sound files recorded by digital cameras conformant to JEIDA/JEITA/CIPA specifications. [based on https://en.wikipedia.org/wiki/Exif]"@en ; + sh:property [ + sh:class types:ControlledDictionary ; + sh:nodeKind sh:IRI ; + sh:path observable:exifData ; + ] ; + sh:targetClass observable:EXIFFacet ; + . + +observable:EmailAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "EmailAccount"@en ; + rdfs:comment "An email account is an arrangement with an entity to enable and control the provision of electronic mail (email) capabilities or services."@en ; + sh:targetClass observable:EmailAccount ; + . + +observable:EmailAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EmailAccountFacet"@en ; + rdfs:comment "An email account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of electronic mail (email) capabilities or services."@en ; + sh:property [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:emailAddress ; + ] ; + sh:targetClass observable:EmailAccountFacet ; + . + +observable:EmailAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "EmailAddress"@en ; + rdfs:comment "An email address is an identifier for an electronic mailbox to which electronic mail messages (conformant to the Simple Mail Transfer Protocol (SMTP)) are sent from and delivered to."@en ; + sh:targetClass observable:EmailAddress ; + . + +observable:EmailAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "EmailAddressFacet"@en ; + rdfs:comment "An email address facet is a grouping of characteristics unique to an identifier for an electronic mailbox to which electronic mail messages (conformant to the Simple Mail Transfer Protocol (SMTP)) are sent from and delivered to."@en ; + sh:targetClass observable:EmailAddressFacet ; + . + +observable:EmailMessage + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "EmailMessage"@en ; + rdfs:comment "An email message is a message that is an instance of an electronic mail correspondence conformant to the internet message format described in RFC 5322 and related RFCs."@en ; + sh:targetClass observable:EmailMessage ; + . + +observable:EmailMessageFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EmailMessageFacet"@en ; + rdfs:comment "An email message facet is a grouping of characteristics unique to a message that is an instance of an electronic mail correspondence conformant to the internet message format described in RFC 5322 and related RFCs."@en ; + sh:property + [ + sh:class observable:MimePartType ; + sh:nodeKind sh:IRI ; + sh:path observable:bodyMultipart ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:bodyRaw ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:from ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:headerRaw ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:sender ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:xOriginatingIP ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:bcc ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:cc ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:references ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:to ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:otherHeaders ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isMimeEncoded ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isMultipart ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isRead ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:receivedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sentTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:body ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contentDisposition ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contentType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:inReplyTo ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:messageID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:priority ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subject ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:xMailer ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:categories ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:labels ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:receivedLines ; + ] + ; + sh:targetClass observable:EmailMessageFacet ; + . + +observable:EmbeddedDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "EmbeddedDevice"@en-US ; + rdfs:comment "An embedded device is a highly specialized microprocessor device meant for one or very few specific purposes and is usually embedded or included within another object or as part of a larger system. Examples include answer machine, door access logger, card scanner, etc."@en-US ; + sh:targetClass observable:EmbeddedDevice ; + . + +observable:EncodedStreamFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EncodedStreamFacet"@en ; + rdfs:comment "An encoded stream facet is a grouping of characteristics unique to the conversion of a body of data content from one form to another form."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:encodingMethod ; + ] ; + sh:targetClass observable:EncodedStreamFacet ; + . + +observable:EncryptedStreamFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EncryptedStreamFacet"@en ; + rdfs:comment "An encrypted stream facet is a grouping of characteristics unique to the conversion of a body of data content from one form to another obfuscated form in such a way that reversing the conversion to obtain the original data form can only be accomplished through possession and use of a specific key."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:encryptionMethod ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:encryptionMode ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:encryptionIV ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:encryptionKey ; + ] + ; + sh:targetClass observable:EncryptedStreamFacet ; + . + +observable:EnvironmentVariable + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "EnvironmentVariable"@en ; + rdfs:comment "An environment variable is a grouping of characteristics unique to a dynamic-named value that can affect the way running processes will behave on a computer. [based on https://en.wikipedia.org/wiki/Environment_variable]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:value ; + ] + ; + sh:targetClass observable:EnvironmentVariable ; + . + +observable:EventLog + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "EventLog"@en ; + rdfs:comment "An event log is a collection of event records."@en ; + sh:targetClass observable:EventLog ; + . + +observable:EventRecord + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "EventRecord"@en ; + rdfs:comment "An event record is something that happens in a digital context (e.g., operating system events)."@en ; + sh:targetClass observable:EventRecord ; + . + +observable:EventRecordFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EventRecordFacet"@en ; + rdfs:comment "An event record facet is a grouping of characteristics unique to something that happens in a digital context (e.g., operating system events)."@en ; + sh:property + [ + sh:class observable:ObservableAction ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:cyberAction ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:account ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:eventRecordDevice ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventRecordID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventRecordRaw ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventRecordServiceName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventRecordText ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventType ; + ] + ; + sh:targetClass observable:EventRecordFacet ; + . + +observable:ExtInodeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ExtInodeFacet"@en ; + rdfs:comment "An extInode facet is a grouping of characteristics unique to a file system object (file, directory, etc.) conformant to the extended file system (EXT or related derivations) specification."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extDeletionTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extInodeChangeTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extFileType ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extFlags ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extHardLinkCount ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extInodeID ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extPermissions ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extSGID ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extSUID ; + ] + ; + sh:targetClass observable:ExtInodeFacet ; + . + +observable:ExtractedString + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ExtractedString"@en ; + rdfs:comment "An extracted string is a grouping of characteristics unique to a series of characters pulled from an observable object."@en ; + sh:property + [ + sh:datatype xsd:base64Binary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:byteStringValue ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:length ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:encoding ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:englishTranslation ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:language ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:stringValue ; + ] + ; + sh:targetClass observable:ExtractedString ; + . + +observable:ExtractedStringsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ExtractedStringsFacet"@en ; + rdfs:comment "An extracted strings facet is a grouping of characteristics unique to one or more sequences of characters pulled from an observable object."@en ; + sh:property [ + sh:class observable:ExtractedString ; + sh:nodeKind sh:IRI ; + sh:path observable:strings ; + ] ; + sh:targetClass observable:ExtractedStringsFacet ; + . + +observable:File + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "File"@en ; + rdfs:comment "A file is a computer resource for recording data discretely on a computer storage device."@en ; + sh:targetClass observable:File ; + . + +observable:FileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "FileFacet"@en ; + rdfs:comment "A file facet is a grouping of characteristics unique to the storage of a file (computer resource for recording data discretely in a computer storage device) on a file system (process that manages how and where data on a storage device is stored, accessed and managed). [based on https://en.wikipedia.org/Computer_file and https://www.techopedia.com/definition/5510/file-system]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:nodeKind sh:Literal ; + sh:path observable:isDirectory ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accessedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:metadataChangeTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:description "When used to characterize a file the sizeInBytes property conveys the recorded size of a file in a file system."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeInBytes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:allocationStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extension ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:fileName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:filePath ; + ] + ; + sh:targetClass observable:FileFacet ; + . + +observable:FilePermissionsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "FilePermissionsFacet"@en ; + rdfs:comment "A file permissions facet is a grouping of characteristics unique to the access rights (e.g., view, change, navigate, execute) of a file on a file system."@en ; + sh:property [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:owner ; + ] ; + sh:targetClass observable:FilePermissionsFacet ; + . + +observable:FileSystem + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "FileSystem"@en ; + rdfs:comment "A file system is the process that manages how and where data on a storage medium is stored, accessed and managed. [based on https://www.techopedia.com/definition/5510/file-system]"@en ; + sh:targetClass observable:FileSystem ; + . + +observable:FileSystemFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "FileSystemFacet"@en ; + rdfs:comment "A file system facet is a grouping of characteristics unique to the process that manages how and where data on a storage medium is stored, accessed and managed. [based on https://www.techopedia.com/definition/5510/file-system]"@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:clusterSize ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:fileSystemType ; + ] + ; + sh:targetClass observable:FileSystemFacet ; + . + +observable:FileSystemObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "FileSystemObject"@en ; + rdfs:comment "A file system object is an informational object represented and managed within a file system."@en ; + sh:targetClass observable:FileSystemObject ; + . + +observable:ForumPost + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "ForumPost"@en ; + rdfs:comment "A forum post is message submitted by a user account to an online forum where the message content (and typically metadata including who posted it and when) is viewable by any party with viewing permissions on the forum."@en ; + sh:targetClass observable:ForumPost ; + . + +observable:ForumPrivateMessage + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "ForumPrivateMessage"@en ; + rdfs:comment "A forum private message (aka PM or DM (direct message)) is a one-to-one message from one specific user account to another specific user account on an online form where transmission is managed by the online forum platform and the message is only viewable by the parties directly involved."@en ; + sh:targetClass observable:ForumPrivateMessage ; + . + +observable:FragmentFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "FragmentFacet"@en ; + rdfs:comment "A fragment facet is a grouping of characteristics unique to an individual piece of the content of a file."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:fragmentIndex ; + ] , + [ + sh:datatype xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:totalFragments ; + ] + ; + sh:targetClass observable:FragmentFacet ; + . + +observable:GUI + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GUI"@en ; + rdfs:comment "A GUI is a graphical user interface that allows users to interact with electronic devices through graphical icons and audio indicators such as primary notation, instead of text-based user interfaces, typed command labels or text navigation. [based on https://en.wikipedia.org/wiki/Graphical_user_interface]"@en ; + sh:targetClass observable:GUI ; + . + +observable:GamingConsole + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "GamingConsole"@en-US ; + rdfs:comment "A gaming console (video game console or game console) is an electronic system that connects to a display, typically a TV or computer monitor, for the primary purpose of playing video games."@en-US ; + sh:targetClass observable:GamingConsole ; + . + +observable:GenericObservableObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GenericObservableObject"@en ; + rdfs:comment "A generic observable object is an article or unit within the digital domain."@en ; + sh:targetClass observable:GenericObservableObject ; + . + +observable:GeoLocationEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GeoLocationEntry"@en ; + rdfs:comment "A geolocation entry is a single application-specific geolocation entry."@en ; + sh:targetClass observable:GeoLocationEntry ; + . + +observable:GeoLocationEntryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "GeoLocationEntryFacet"@en ; + rdfs:comment "A geolocation entry facet is a grouping of characteristics unique to a single application-specific geolocation entry."@en ; + sh:property + [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:location ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] + ; + sh:targetClass observable:GeoLocationEntryFacet ; + . + +observable:GeoLocationLog + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GeoLocationLog"@en ; + rdfs:comment "A geolocation log is a record containing geolocation tracks and/or geolocation entries."@en ; + sh:targetClass observable:GeoLocationLog ; + . + +observable:GeoLocationLogFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "GeoLocationLogFacet"@en ; + rdfs:comment "A geolocation log facet is a grouping of characteristics unique to a record containing geolocation tracks and/or geolocation entries."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] + ; + sh:targetClass observable:GeoLocationLogFacet ; + . + +observable:GeoLocationTrack + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GeoLocationTrack"@en ; + rdfs:comment "A geolocation track is a set of contiguous geolocation entries representing a path/track taken."@en ; + sh:targetClass observable:GeoLocationTrack ; + . + +observable:GeoLocationTrackFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "GeoLocationTrackFacet"@en ; + rdfs:comment "A geolocation track facet is a grouping of characteristics unique to a set of contiguous geolocation entries representing a path/track taken."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:geoLocationEntry ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] + ; + sh:targetClass observable:GeoLocationTrackFacet ; + . + +observable:GlobalFlagType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "GlobalFlagType"@en ; + rdfs:comment 'A global flag type is a grouping of characteristics unique to the Windows systemwide global variable named NtGlobalFlag that enables various internal debugging, tracing, and validation support in the operating system. [based on "Windows Global Flags, Chapter 3: System Mechanisms of Windows Internals by Solomon, Russinovich, and Ionescu]'@en ; + sh:property + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:hexadecimalValue ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:abbreviation ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:destination ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:symbolicName ; + ] + ; + sh:targetClass observable:GlobalFlagType ; + . + +observable:HTTPConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:NetworkConnection ; + rdfs:label "HTTPConnection"@en ; + rdfs:comment "An HTTP connection is network connection that is conformant to the Hypertext Transfer Protocol (HTTP) standard."@en ; + sh:targetClass observable:HTTPConnection ; + . + +observable:HTTPConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "HTTPConnectionFacet"@en ; + rdfs:comment "An HTTP connection facet is a grouping of characteristics unique to portions of a network connection that are conformant to the Hypertext Transfer Protocol (HTTP) standard."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:httpMessageBodyData ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:httpRequestHeader ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:httpMesageBodyLength ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:requestMethod ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:requestValue ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:requestVersion ; + ] + ; + sh:targetClass observable:HTTPConnectionFacet ; + . + +observable:Hostname + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Hostname"@en ; + rdfs:comment "A hostname is a label that is assigned to a device connected to a computer network and that is used to identify the device in various forms of electronic communication, such as the World Wide Web. A hostname may be a domain name, if it is properly organized into the domain name system. A domain name may be a hostname if it has been assigned to an Internet host and associated with the host's IP address. [based on https://en.wikipedia.org/wiki/Hostname]"@en ; + sh:targetClass observable:Hostname ; + . + +observable:ICCID + a owl:DatatypeProperty ; + rdfs:label "ICCID"@en ; + rdfs:comment "Integrated circuit card identifier (http://www.itu.int/)."@en ; + rdfs:range xsd:string ; + . + +observable:ICMPConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:NetworkConnection ; + rdfs:label "ICMPConnection"@en ; + rdfs:comment "An ICMP connection is a network connection that is conformant to the Internet Control Message Protocol (ICMP) standard."@en ; + sh:targetClass observable:ICMPConnection ; + . + +observable:ICMPConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ICMPConnectionFacet"@en ; + rdfs:comment "An ICMP connection facet is a grouping of characteristics unique to portions of a network connection that are conformant to the Internet Control Message Protocol (ICMP) standard."@en ; + sh:property + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:icmpCode ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:icmpType ; + ] + ; + sh:targetClass observable:ICMPConnectionFacet ; + . + +observable:IComHandlerActionType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "IComHandlerActionType"@en ; + rdfs:comment "An IComHandler action type is a grouping of characteristics unique to a Windows Task-related action that fires a Windows COM handler (smart code in the client address space that can optimize calls between a client and server). [based on https://docs.microsoft.com/en-us/windows/win32/taskschd/comhandleraction]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:comClassID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:comData ; + ] + ; + sh:targetClass observable:IComHandlerActionType ; + . + +observable:IExecActionType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "IExecActionType"@en ; + rdfs:comment "An IExec action type is a grouping of characteristics unique to an action that executes a command-line operation on a Windows operating system. [based on https://docs.microsoft.com/en-us/windows/win32/api/taskschd/nn-taskschd-iexecaction?redirectedfrom=MSDN]"@en ; + sh:property + [ + sh:class types:Hash ; + sh:nodeKind sh:IRI ; + sh:path observable:execProgramHashes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:execArguments ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:execProgramPath ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:execWorkingDirectory ; + ] + ; + sh:targetClass observable:IExecActionType ; + . + +observable:IMEI + a owl:DatatypeProperty ; + rdfs:label "IMEI"@en ; + rdfs:comment "International Mobile Equipment Identity (IMEI)."@en ; + rdfs:range xsd:string ; + . + +observable:IMSI + a owl:DatatypeProperty ; + rdfs:label "IMSI"@en ; + rdfs:comment "An International Mobile Subscriber Identity (IMSI) is a unique identification associated with all GSM and UMTS network mobile phone users. It is stored as a 64-bit field in the SIM inside the phone and is sent by the phone to the network."@en ; + rdfs:range xsd:string ; + . + +observable:IPAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "IPAddress"@en ; + rdfs:comment "An IP address is an Internet Protocol (IP) standards conformant identifier assigned to a device to enable routing and management of IP standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPAddress ; + . + +observable:IPAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "IPAddressFacet"@en ; + rdfs:comment "An IP address facet is a grouping of characteristics unique to an Internet Protocol (IP) standards conformant identifier assigned to a device to enable routing and management of IP standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPAddressFacet ; + . + +observable:IPNetmask + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "IPNetmask"@en ; + rdfs:comment "An IP netmask is a 32-bit 'mask' used to divide an IP address into subnets and specify the network's available hosts."@en ; + sh:targetClass observable:IPNetmask ; + . + +observable:IPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + observable:AppleDevice , + observable:SmartPhone + ; + rdfs:label "IPhone"@en-US ; + rdfs:comment "An iPhone is a smart phone that applies the iOS mobile operating system."@en-US ; + sh:targetClass observable:IPhone ; + . + +observable:IPv4Address + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:IPAddress ; + rdfs:label "IPv4Address"@en ; + rdfs:comment "An IPv4 (Internet Protocol version 4) address is an IPv4 standards conformant identifier assigned to a device to enable routing and management of IPv4 standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPv4Address ; + . + +observable:IPv4AddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:IPAddressFacet ; + rdfs:label "IPv4AddressFacet"@en ; + rdfs:comment "An IPv4 (Internet Protocol version 4) address facet is a grouping of characteristics unique to an IPv4 standards conformant identifier assigned to a device to enable routing and management of IPv4 standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPv4AddressFacet ; + . + +observable:IPv6Address + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:IPAddress ; + rdfs:label "IPv6Address"@en ; + rdfs:comment "An IPv6 (Internet Protocol version 6) address is an IPv6 standards conformant identifier assigned to a device to enable routing and management of IPv6 standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPv6Address ; + . + +observable:IPv6AddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:IPAddressFacet ; + rdfs:label "IPv6AddressFacet"@en ; + rdfs:comment "An IPv6 (Internet Protocol version 6) address facet is a grouping of characteristics unique to an IPv6 standards conformant identifier assigned to a device to enable routing and management of IPv6 standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPv6AddressFacet ; + . + +observable:IShowMessageActionType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "IShowMessageActionType"@en ; + rdfs:comment "An IShow message action type is a grouping of characteristics unique to an action that shows a message box when a task is activate. [based on https://docs.microsoft.com/en-us/windows/win32/api/taskschd/nn-taskschd-ishowmessageaction?redirectedfrom=MSDN]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:showMessageBody ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:showMessageTitle ; + ] + ; + sh:targetClass observable:IShowMessageActionType ; + . + +observable:Image + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Image"@en ; + rdfs:comment "An image is a complete copy of a hard disk, memory, or other digital media."@en ; + sh:targetClass observable:Image ; + . + +observable:ImageFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ImageFacet"@en ; + rdfs:comment "An image facet is a grouping of characteristics unique to a complete copy of a hard disk, memory, or other digital media."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:imageType ; + ] ; + sh:targetClass observable:ImageFacet ; + . + +observable:InstantMessagingAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "InstantMessagingAddress"@en ; + rdfs:comment ""@en ; + sh:targetClass observable:InstantMessagingAddress ; + . + +observable:InstantMessagingAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "InstantMessagingAddressFacet"@en ; + rdfs:comment "An instant messaging address facet is a grouping of characteristics unique to an identifier assigned to enable routing and management of instant messaging digital communication."@en ; + sh:targetClass observable:InstantMessagingAddressFacet ; + . + +observable:Junction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "Junction"@en ; + rdfs:comment "A junction is a specific NTFS (New Technology File System) reparse point to redirect a directory access to another directory which can be on the same volume or another volume. A junction is similar to a directory symbolic link but may differ on whether they are processed on the local system or on the remote file server. [based on https://jp-andre.pagesperso-orange.fr/junctions.html]"@en ; + sh:targetClass observable:Junction ; + . + +observable:Laptop + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Computer ; + rdfs:label "Laptop"@en-US ; + rdfs:comment "A laptop, laptop computer, or notebook computer is a small, portable personal computer with a screen and alphanumeric keyboard. These typically have a clam shell form factor with the screen mounted on the inside of the upper lid and the keyboard on the inside of the lower lid, although 2-in-1 PCs with a detachable keyboard are often marketed as laptops or as having a laptop mode. (Devices categorized by their manufacturer as a Laptop)"@en-US ; + sh:targetClass observable:Laptop ; + . + +observable:Library + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:Library ; + . + +observable:LibraryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "LibraryFacet"@en ; + rdfs:comment "A library facet is a grouping of characteristics unique to 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:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:libraryType ; + ] ; + sh:targetClass observable:LibraryFacet ; + . + +observable:MACAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "MACAddress"@en ; + rdfs:comment "A MAC address is a media access control standards conformant identifier assigned to a network interface to enable routing and management of communications at the data link layer of a network segment."@en ; + sh:targetClass observable:MACAddress ; + . + +observable:MACAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "MACAddressFacet"@en ; + rdfs:comment "A MAC address facet is a grouping of characteristics unique to a media access control standards conformant identifier assigned to a network interface to enable routing and management of communications at the data link layer of a network segment."@en ; + sh:targetClass observable:MACAddressFacet ; + . + +observable:MSISDN + a owl:DatatypeProperty ; + rdfs:label "MSISDN"@en ; + rdfs:comment "Mobile Station International Subscriber Directory Number (MSISDN) is a number used to identify a mobile phone number internationally. MSISDN is defined by the E.164 numbering plan. This number includes a country code and a National Destination Code which identifies the subscriber's operator."@en ; + rdfs:range xsd:string ; + . + +observable:MSISDNType + a owl:DatatypeProperty ; + rdfs:label "MSISDNType"@en ; + rdfs:comment "???."@en ; + rdfs:range xsd:string ; + . + +observable:Memory + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Memory"@en ; + rdfs:comment "Memory is a particular region of temporary information storage (e.g., RAM (random access memory), ROM (read only memory)) on a digital device."@en ; + sh:targetClass observable:Memory ; + . + +observable:MemoryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MemoryFacet"@en ; + rdfs:comment "A memory facet is a grouping of characteristics unique to a particular region of temporary information storage (e.g., RAM (random access memory), ROM (read only memory)) on a digital device."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isInjected ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isMapped ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isProtected ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isVolatile ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:regionEndAddress ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:regionStartAddress ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:regionSize ; + ] , + [ + sh:datatype vocabulary:MemoryBlockTypeVocab ; + sh:message "Value is outside the default vocabulary MemoryBlockTypeVocab." ; + sh:path observable:blockType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:MemoryBlockTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:blockType ; + ] , + [ + sh:message "Value is not member of the vocabulary MemoryBlockTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:MemoryBlockTypeVocab ; + sh:in ( + "Bit-mapped"^^vocabulary:MemoryBlockTypeVocab + "Byte-mapped"^^vocabulary:MemoryBlockTypeVocab + "Initialized"^^vocabulary:MemoryBlockTypeVocab + "Overlay"^^vocabulary:MemoryBlockTypeVocab + "Uninitialized"^^vocabulary:MemoryBlockTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:blockType ; + ] + ; + sh:targetClass observable:MemoryFacet ; + . + +observable:Message + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Message"@en ; + rdfs:comment "A message is a discrete unit of electronic communication intended by the source for consumption by some recipient or group of recipients. [based on https://en.wikipedia.org/wiki/Message]"@en ; + sh:targetClass observable:Message ; + . + +observable:MessageFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MessageFacet"@en ; + rdfs:comment "A message facet is a grouping of characteristics unique to a discrete unit of electronic communication intended by the source for consumption by some recipient or group of recipients. [based on https://en.wikipedia.org/wiki/Message]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:from ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:to ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sentTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:messageID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:messageText ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:messageType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sessionID ; + ] + ; + sh:targetClass observable:MessageFacet ; + . + +observable:MessageThread + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "MessageTread"@en ; + rdfs:comment "A message thread is a running commentary of electronic messages pertaining to one topic or question."@en ; + sh:targetClass observable:MessageThread ; + . + +observable:MessageThreadFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MessageThreadFacet"@en ; + rdfs:comment "A message thread facet is a grouping of characteristics unique to a running commentary of electronic messages pertaining to one topic or question."@en ; + sh:property + [ + sh:class observable:Message ; + sh:description "The contents of ordered items in the Thread linked by messageThread must be Message objects."@en ; + sh:path ( + observable:messageThread + co:item + co:itemContent + ) ; + ] , + [ + sh:class observable:Message ; + sh:description "The contents of origin items in the Thread linked by messageThread must be Message objects."@en ; + sh:path ( + observable:messageThread + types:threadOriginItem + co:itemContent + ) ; + ] , + [ + sh:class observable:Message ; + sh:description "The contents of terminal items in the Thread linked by messageThread must be Message objects."@en ; + sh:path ( + observable:messageThread + types:threadTerminalItem + co:itemContent + ) ; + ] , + [ + sh:class observable:Message ; + sh:description "The contents of unordered items in the Thread linked by messageThread must be Message objects."@en ; + sh:path ( + observable:messageThread + co:element + ) ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:participant ; + ] , + [ + sh:class types:Thread ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:messageThread ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visibility ; + ] + ; + sh:targetClass observable:MessageThreadFacet ; + . + +observable:MftRecordFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MftRecordFacet"@en ; + rdfs:comment "An MFT record facet is a grouping of characteristics unique to the details of a single file as managed in an NTFS (new technology filesystem) master file table (which is a collection of information about all files on an NTFS filesystem). [based on https://docs.microsoft.com/en-us/windows/win32/devnotes/master-file-table]"@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameAccessedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameCreatedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameModifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameRecordChangeTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftRecordChangeTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileID ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameLength ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFlags ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftParentID ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ntfsHardLinkCount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ntfsOwnerID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ntfsOwnerSID ; + ] + ; + sh:targetClass observable:MftRecordFacet ; + . + +observable:MimePartType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "MimePartType"@en ; + rdfs:comment "A mime part type is a grouping of characteristics unique to a component of a multi-part email body."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:bodyRaw ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:body ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contentDisposition ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contentType ; + ] + ; + sh:targetClass observable:MimePartType ; + . + +observable:MobileAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "MobileAccount"@en ; + rdfs:comment "A mobile account is an arrangement with an entity to enable and control the provision of some capability or service on a portable computing device. [based on https://www.lexico.com/definition/mobile_device]"@en ; + sh:targetClass observable:MobileAccount ; + . + +observable:MobileAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MobileAccountFacet"@en ; + rdfs:comment "A mobile account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of some capability or service on a portable computing device. [based on https://www.lexico.com/definition/mobile_device]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:IMSI ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:MSISDN ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:MSISDNType ; + ] + ; + sh:targetClass observable:MobileAccountFacet ; + . + +observable:MobileDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "MobileDevice"@en ; + rdfs:comment "A mobile device is a portable computing device. [based on https://www.lexico.com.definition/mobile_device]"@en ; + sh:targetClass observable:MobileDevice ; + . + +observable:MobileDeviceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MobileDeviceFacet"@en ; + rdfs:comment "A mobile device facet is a grouping of characteristics unique to a portable computing device. [based on https://www.lexico.com/definition/mobile_device]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mockLocationsAllowed ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:clockSetting ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:phoneActivationTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:storageCapacityInBytes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ESN ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:IMEI ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bluetoothDeviceName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:keypadUnlockCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:network ; + ] + ; + sh:targetClass observable:MobileDeviceFacet ; + . + +observable:MobilePhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MobileDevice ; + rdfs:label "MobilePhone"@en-US ; + rdfs:comment "A mobile phone is a portable telephone that at least can make and receive calls over a radio frequency link while the user is moving within a telephone service area. This category encompasses all types of mobiles, simple and smart and satellite ones all together."@en-US ; + sh:targetClass observable:MobilePhone ; + . + +observable:Mutex + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Mutex"@en ; + rdfs:comment "A mutex is a mechanism that enforces limits on access to a resource when there are many threads of execution. A mutex is designed to enforce a mutual exclusion concurrency control policy, and with a variety of possible methods there exists multiple unique implementations for different applications. [based on https://en.wikipedia.org/wiki/Lock_(computer_science)]"@en ; + sh:targetClass observable:Mutex ; + . + +observable:MutexFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MutexFacet"@en ; + rdfs:comment "A mutex facet is a grouping of characteristics unique to a mechanism that enforces limits on access to a resource when there are many threads of execution. A mutex is designed to enforce a mutual exclusion concurrency control policy, and with a variety of possible methods there exists multiple unique implementations for different applications. [based on https://en.wikipedia.org/wiki/Lock_(computer_science)]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isNamed ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mutexName ; + ] + ; + sh:targetClass observable:MutexFacet ; + . + +observable:NTFSFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "NTFSFile"@en ; + rdfs:comment "An NTFS file is a New Technology File System (NTFS) file."@en ; + sh:targetClass observable:NTFSFile ; + . + +observable:NTFSFileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NTFSFileFacet"@en ; + rdfs:comment "An NTFS file facet is a grouping of characteristics unique to a file on an NTFS (new technology filesystem) file system."@en ; + sh:property + [ + sh:class observable:AlternateDataStream ; + sh:nodeKind sh:IRI ; + sh:path observable:alternateDataStreams ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:entryID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sid ; + ] + ; + sh:targetClass observable:NTFSFileFacet ; + . + +observable:NTFSFilePermissionsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NTFSFilePermissionsFacet"@en ; + rdfs:comment "An NTFS file permissions facet is a grouping of characteristics unique to the access rights (e.g., view, change, navigate, execute) of a file on an NTFS (new technology filesystem) file system."@en ; + sh:targetClass observable:NTFSFilePermissionsFacet ; + . + +observable:NamedPipe + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "NamedPipe"@en ; + rdfs:comment "A named pipe is a mechanism for FIFO (first-in-first-out) inter-process communication. It is persisted as a filesystem object (that can be deleted like any other file), can be written to or read from by any process and exists beyond the lifespan of any process interacting with it (unlike simple anonymous pipes). [based on https://en.wikipedia.org/wiki/Named_pipe]"@en ; + sh:targetClass observable:NamedPipe ; + . + +observable:NetworkAppliance + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Appliance ; + rdfs:label "NetworkAppliance"@en ; + rdfs:comment "A network appliance is a purpose-built computer with software or firmware that is designed to provide a specific network management function."@en ; + sh:targetClass observable:NetworkAppliance ; + . + +observable:NetworkConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkConnection"@en ; + rdfs:comment "A network connection is a connection (completed or attempted) across a digital network (a group of two or more computer systems linked together). [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:targetClass observable:NetworkConnection ; + . + +observable:NetworkConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NetworkConnectionFacet"@en ; + rdfs:comment "A network connection facet is a grouping of characteristics unique to a connection (complete or attempted) accross a digital network (a group of two or more computer systems linked together). [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path observable:src ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:dst ; + ] , + [ + sh:class types:ControlledDictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:protocols ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isActive ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:destinationPort ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sourcePort ; + ] + ; + sh:targetClass observable:NetworkConnectionFacet ; + . + +observable:NetworkFlow + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkFlow"@en ; + rdfs:comment "A network flow is a sequence of data transiting one or more digital network (a group or two or more computer systems linked together) connections. [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:targetClass observable:NetworkFlow ; + . + +observable:NetworkFlowFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NetworkFlowFacet"@en ; + rdfs:comment "A network flow facet is a grouping of characteristics unique to a sequence of data transiting one or more digital network (a group of two or more computer systems linked together) connections. [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:dstPayload ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:srcPayload ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:ipfix ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dstBytes ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dstPackets ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:srcBytes ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:srcPackets ; + ] + ; + sh:targetClass observable:NetworkFlowFacet ; + . + +observable:NetworkInterface + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkInterface"@en ; + rdfs:comment "A network interface is a software or hardware interface between two pieces of equipment or protocol layers in a computer network."@en ; + sh:targetClass observable:NetworkInterface ; + . + +observable:NetworkInterfaceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NetworkInterfaceFacet"@en ; + rdfs:comment "A network interface facet is a grouping of characteristics unique to a software or hardware interface between two pieces of equipment or protocol layers in a computer network."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:macAddress ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:dhcpServer ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:ip ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:ipGateway ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dhcpLeaseExpires ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dhcpLeaseObtained ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:adapterName ; + ] + ; + sh:targetClass observable:NetworkInterfaceFacet ; + . + +observable:NetworkProtocol + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkProtocol"@en ; + rdfs:comment "A network protocol is an established set of structured rules that determine how data is transmitted between different devices in the same network. Essentially, it allows connected devices to communicate with each other, regardless of any differences in their internal processes, structure or design. [based on https://www.comptia.org/content/guides/what-is-a-network-protocol]"@en ; + sh:targetClass observable:NetworkProtocol ; + . + +observable:NetworkRoute + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkRoute"@en ; + rdfs:comment "A network route is a specific path (of specific network nodes, connections and protocols) for traffic in a network or between or across multiple networks."@en ; + sh:targetClass observable:NetworkRoute ; + . + +observable:NetworkSocketAddressFamily + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "af_appletalk" + "af_bth" + "af_inet" + "af_inet6" + "af_ipx" + "af_irda" + "af_netbios" + "af_unspec" + ) ; + ] ; + . + +observable:NetworkSocketProtocolFamily + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "pf_appletalk" + "pf_ash" + "pf_atmpvc" + "pf_atmsvc" + "pf_ax25" + "pf_bluetooth" + "pf_bridge" + "pf_decnet" + "pf_econet" + "pf_inet" + "pf_inet6" + "pf_ipx" + "pf_irda" + "pf_key" + "pf_netbeui" + "pf_netlink" + "pf_netrom" + "pf_packet" + "pf_pppox" + "pf_rose" + "pf_route" + "pf_security" + "pf_sna" + "pf_wanpipe" + "pf_x25" + ) ; + ] ; + . + +observable:NetworkSocketType + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "sock_dgram" + "sock_raw" + "sock_rdm" + "sock_seqpacket" + "sock_stream" + ) ; + ] ; + . + +observable:NetworkSubnet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkSubnet"@en ; + rdfs:comment "A network subnet is a logical subdivision of an IP network. [based on https://en.wikipedia.org/wiki/Subnetwork]"@en ; + sh:targetClass observable:NetworkSubnet ; + . + +observable:Note + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Note"@en ; + rdfs:comment "A note is a brief textual record."@en ; + sh:targetClass observable:Note ; + . + +observable:NoteFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NoteFacet"@en ; + rdfs:comment "A note facet is a grouping of characteristics unique to a brief textual record."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:text ; + ] + ; + sh:targetClass observable:NoteFacet ; + . + +observable:Observable + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Observable"@en ; + rdfs:comment "An observable is a characterizable item or action within the digital domain."@en ; + sh:targetClass observable:Observable ; + . + +observable:ObservableAction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + action:Action , + observable:Observable + ; + rdfs:label "ObservableAction"@en ; + rdfs:comment "An observable action is a grouping of characteristics unique to something that may be done or performed within the digital domain."@en ; + sh:targetClass observable:ObservableAction ; + . + +observable:ObservableObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + core:Item , + observable:Observable + ; + rdfs:label "ObservableObject"@en ; + rdfs:comment "An observable object is a grouping of characteristics unique to a distinct article or unit within the digital domain."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:hasChanged ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:state ; + ] + ; + sh:targetClass observable:ObservableObject ; + . + +observable:ObservablePattern + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Observable ; + rdfs:label "ObservablePattern"@en ; + rdfs:comment "An observable pattern is a grouping of characteristics unique to a logical pattern composed of observable object and observable action properties."@en ; + sh:targetClass observable:ObservablePattern ; + . + +observable:ObservableRelationship + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + core:Relationship , + observable:Observable + ; + rdfs:label "ObservableRelationship"@en ; + rdfs:comment "An observable relationship is a grouping of characteristics unique to an assertion of an association between two observable objects."@en ; + sh:targetClass observable:ObservableRelationship ; + . + +observable:Observation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:Action ; + rdfs:label "Observation"@en ; + rdfs:comment "An observation is a temporal perception of an observable."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:hasValue "observe" ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] ; + sh:targetClass observable:Observation ; + . + +observable:OnlineService + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "OnlineService"@en ; + rdfs:comment "An online service is a particular provision mechanism of information access, distribution or manipulation over the Internet."@en ; + sh:targetClass observable:OnlineService ; + . + +observable:OnlineServiceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "OnlineServiceFacet"@en-US ; + rdfs:comment "An online service facet is a grouping of characteristics unique to a particular provision mechanism of information access, distribution or manipulation over the Internet."@en-US ; + sh:property + [ + sh:class location:Location ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:location ; + ] , + [ + sh:class observable:ObservableObject ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:inetLocation ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] + ; + sh:targetClass observable:OnlineServiceFacet ; + . + +observable:OperatingSystem + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:OperatingSystem ; + . + +observable:OperatingSystemFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "OperatingSystemFacet"@en ; + rdfs:comment "An operating system facet is a grouping of characteristics unique to 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:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:manufacturer ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:environmentVariables ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isLimitAdTrackingEnabled ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:installDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bitness ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:advertisingID ; + ] + ; + sh:targetClass observable:OperatingSystemFacet ; + . + +observable:PDFFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "PDFFile"@en ; + rdfs:comment "A PDF file is a Portable Document Format (PDF) file."@en ; + sh:targetClass observable:PDFFile ; + . + +observable:PDFFileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "PDFFileFacet"@en ; + rdfs:comment "A PDF file facet is a grouping of characteristics unique to a PDF (Portable Document Format) file."@en ; + sh:property + [ + sh:class types:ControlledDictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:documentInformationDictionary ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isOptimized ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pdfCreationDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pdfModDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pdfId1 ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:pdfId0 ; + ] + ; + sh:targetClass observable:PDFFileFacet ; + . + +observable:PIN + a owl:DatatypeProperty ; + rdfs:label "PIN"@en ; + rdfs:comment "Personal Identification Number (PIN)."@en ; + rdfs:range xsd:string ; + . + +observable:PUK + a owl:DatatypeProperty ; + rdfs:label "PUK"@en ; + rdfs:comment "Personal Unlocking Key (PUK) to unlock the SIM card."@en ; + rdfs:range xsd:string ; + . + +observable:PathRelationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "PathRelationFacet"@en ; + rdfs:comment "A path relation facet is a grouping of characteristics unique to the location of one object within another containing object."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:path ; + ] ; + sh:targetClass observable:PathRelationFacet ; + . + +observable:PaymentCard + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "PaymentCard"@en ; + rdfs:comment "A payment card is a physical token that is part of a payment system issued by financial institutions, such as a bank, to a customer that enables its owner (the cardholder) to access the funds in the customer's designated bank accounts, or through a credit account and make payments by electronic funds transfer and access automated teller machines (ATMs). [based on https://en.wikipedia.org/wiki/Payment_card]"@en ; + sh:targetClass observable:PaymentCard ; + . + +observable:PhoneAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "PhoneAccount"@en ; + rdfs:comment "A phone account is an arrangement with an entity to enable and control the provision of a telephony capability or service."@en ; + sh:targetClass observable:PhoneAccount ; + . + +observable:PhoneAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "PhoneAccountFacet"@en ; + rdfs:comment "A phone account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of a telephony capability or service."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:phoneNumber ; + ] ; + sh:targetClass observable:PhoneAccountFacet ; + . + +observable:Pipe + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Pipe"@en ; + rdfs:comment "A pipe is a mechanism for one-way inter-process communication using message passing where data written by one process is buffered by the operating system until it is read by the next process, and this uni-directional channel disappears when the processes are completed. [based on https://en.wikipedia.org/wiki/Pipeline_(Unix) ; https://en.wikipedia.org/wiki/Anonymous_pipe]"@en ; + sh:targetClass observable:Pipe ; + . + +observable:Post + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "Post"@en ; + rdfs:comment "A post is message submitted to an online discussion/publishing site (forum, blog, etc.)."@en ; + sh:targetClass observable:Post ; + . + +observable:Process + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:Process ; + . + +observable:ProcessFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ProcessFacet"@en ; + rdfs:comment "A process facet is a grouping of characteristics unique to an instance of a computer program executed on an operating system."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:binary ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:creatorUser ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:parent ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:environmentVariables ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isHidden ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:exitTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:exitStatus ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:currentWorkingDirectory ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:status ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:arguments ; + ] + ; + sh:targetClass observable:ProcessFacet ; + . + +observable:ProcessThread + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:ProcessThread ; + . + +observable:Profile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Profile"@en ; + rdfs:comment "A profile is an explicit digital representation of identity and characteristics of the owner of a single user account associated with an online service or application. [based on https://en.wikipedia.org/wiki/User_profile]"@en ; + sh:targetClass observable:Profile ; + . + +observable:ProfileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ProfileFacet"@en-US ; + rdfs:comment "A profile facet is a grouping of characteristics unique to an explicit digital representation of identity and characteristics of the owner of a single user account associated with an online service or application. [based on https://en.wikipedia.org/wiki/User_profile]"@en-US ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileIdentity ; + ] , + [ + sh:class observable:ContactAddress ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactAddress ; + ] , + [ + sh:class observable:ContactEmail ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactEmail ; + ] , + [ + sh:class observable:ContactMessaging ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactMessaging ; + ] , + [ + sh:class observable:ContactPhone ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhone ; + ] , + [ + sh:class observable:ContactURL ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactURL ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileAccount ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileService ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileWebsite ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:profileCreated ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:profileLanguage ; + ] + ; + sh:targetClass observable:ProfileFacet ; + . + +observable:PropertiesEnumeratedEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + core:Facet , + observable:DefinedEffectFacet + ; + rdfs:label "PropertiesEnumeratedEffectFacet"@en ; + rdfs:comment "A properties enumerated effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a characteristic of the observable object is enumerated. An example of this would be startup parameters for a process."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:properties ; + ] ; + sh:targetClass observable:PropertiesEnumeratedEffectFacet ; + . + +observable:PropertyReadEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DefinedEffectFacet ; + rdfs:label "PropertyReadEffectFacet"@en ; + rdfs:comment "A properties read effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a characteristic is read from an observable object. An example of this would be the current running state of a process."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:propertyName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:value ; + ] + ; + sh:targetClass observable:PropertyReadEffectFacet ; + . + +observable:ProtocolConverter + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "ProtocolConverter"@en-US ; + rdfs:comment "A protocol converter is a device that converts from one protocol to another (e.g. SD to USB, SATA to USB, etc."@en-US ; + sh:targetClass observable:ProtocolConverter ; + . + +observable:RasterPicture + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "RasterPicture"@en ; + rdfs:comment "A raster picture is a raster (or bitmap) image."@en ; + sh:targetClass observable:RasterPicture ; + . + +observable:RasterPictureFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "RasterPictureFacet"@en ; + rdfs:comment "A raster picture facet is a grouping of characteristics unique to a raster (or bitmap) image."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:camera ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bitsPerPixel ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pictureHeight ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pictureWidth ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:imageCompressionMethod ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pictureType ; + ] + ; + sh:targetClass observable:RasterPictureFacet ; + . + +observable:RecoveredObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "RecoveredObject"@en ; + rdfs:comment "An observable object that was the result of a recovery operation."@en ; + sh:targetClass observable:RecoveredObject ; + . + +observable:RecoveredObjectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "RecoveredObjectFacet"@en ; + rdfs:comment "Recoverability status of name, metadata, and content."@en ; + sh:property + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:message "Value is outside the default vocabulary RecoveredObjectStatusVocab." ; + sh:path observable:contentRecoveredStatus ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:message "Value is outside the default vocabulary RecoveredObjectStatusVocab." ; + sh:path observable:metadataRecoveredStatus ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:message "Value is outside the default vocabulary RecoveredObjectStatusVocab." ; + sh:path observable:nameRecoveredStatus ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:nameRecoveredStatus ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:metadataRecoveredStatus ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contentRecoveredStatus ; + ] , + [ + sh:message "Value is not member of the vocabulary RecoveredObjectStatusVocab." ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:in ( + "recovered"^^vocabulary:RecoveredObjectStatusVocab + "partially recovered"^^vocabulary:RecoveredObjectStatusVocab + "overwritten"^^vocabulary:RecoveredObjectStatusVocab + "unknown"^^vocabulary:RecoveredObjectStatusVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:nameRecoveredStatus ; + ] , + [ + sh:message "Value is not member of the vocabulary RecoveredObjectStatusVocab." ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:in ( + "recovered"^^vocabulary:RecoveredObjectStatusVocab + "partially recovered"^^vocabulary:RecoveredObjectStatusVocab + "overwritten"^^vocabulary:RecoveredObjectStatusVocab + "unknown"^^vocabulary:RecoveredObjectStatusVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:metadataRecoveredStatus ; + ] , + [ + sh:message "Value is not member of the vocabulary RecoveredObjectStatusVocab." ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:in ( + "recovered"^^vocabulary:RecoveredObjectStatusVocab + "partially recovered"^^vocabulary:RecoveredObjectStatusVocab + "overwritten"^^vocabulary:RecoveredObjectStatusVocab + "unknown"^^vocabulary:RecoveredObjectStatusVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contentRecoveredStatus ; + ] + ; + sh:targetClass observable:RecoveredObjectFacet ; + . + +observable:RegistryDatatype + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "reg_binary" + "reg_dword" + "reg_dword_big_endian" + "reg_expand_sz" + "reg_full_resource_descriptor" + "reg_invalid_type" + "reg_link" + "reg_multi_sz" + "reg_none" + "reg_qword" + "reg_resource_list" + "reg_resource_requirements_list" + "reg_sz" + ) ; + ] ; + . + +observable:ReparsePoint + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "ReparsePoint"@en ; + rdfs:comment "A reparse point is a type of NTFS (New Technology File System) object which is an optional attribute of files and directories meant to define some sort of preprocessing before accessing the said file or directory. For instance reparse points can be used to redirect access to files which have been moved to long term storage so that some application would retrieve them and make them directly accessible. A reparse point contains a reparse tag and data that are interpreted by a filesystem filter identified by the tag. [based on https://jp-andre.pagesperso-orange.fr/junctions.html ; https://en.wikipedia.org/wiki/NTFS_reparse_point]"@en ; + sh:targetClass observable:ReparsePoint ; + . + +observable:SIMCard + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "SIMCard" ; + rdfs:comment "A SIM card is a subscriber identification module card intended to securely store the international mobile subscriber identity (IMSI) number and its related key, which are used to identify and authenticate subscribers on mobile telephony. [based on https://en.wikipedia.org/wiki/SIM_card]"@en ; + sh:targetClass observable:SIMCard ; + . + +observable:SIMCardFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SIMCardFacet"@en ; + rdfs:comment "A SIM card facet is a grouping of characteristics unique to a subscriber identification module card intended to securely store the international mobile subscriber identity (IMSI) number and its related key, which are used to identify and authenticate subscribers on mobile telephony devices (such as mobile phones and computers). [based on https://en.wikipedia.org/wiki/SIM_card]"@en ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:carrier ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:storageCapacityInBytes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ICCID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:IMSI ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:PIN ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:PUK ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:SIMForm ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:SIMType ; + ] + ; + sh:targetClass observable:SIMCardFacet ; + . + +observable:SIMForm + a owl:DatatypeProperty ; + rdfs:label "SIMForm"@en ; + rdfs:comment "The form of SIM card such as SIM, Micro SIM, Nano SIM."@en ; + rdfs:range xsd:string ; + . + +observable:SIMType + a owl:DatatypeProperty ; + rdfs:label "SIMType"@en ; + rdfs:comment "The type of SIM card such as SIM, USIM, UICC."@en ; + rdfs:range xsd:string ; + . + +observable:SIPAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "SIPAddress"@en ; + rdfs:comment "A SIP address is an identifier for Session Initiation Protocol (SIP) communication."@en ; + sh:targetClass observable:SIPAddress ; + . + +observable:SIPAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "SIPAddressFacet"@en ; + rdfs:comment "A SIP address facet is a grouping of characteristics unique to a Session Initiation Protocol (SIP) standards conformant identifier assigned to a user to enable routing and management of SIP standards conformant communication to or from that user loosely coupled from any particular devices."@en ; + sh:targetClass observable:SIPAddressFacet ; + . + +observable:SMSMessage + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "SMSMessage"@en ; + rdfs:comment "An SMS message is a message conformant to the short message service (SMS) communication protocol standards."@en ; + sh:targetClass observable:SMSMessage ; + . + +observable:SMSMessageFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SMSMessageFacet"@en ; + rdfs:comment "A SMS message facet is a grouping of characteristics unique to a message conformant to the short message service (SMS) communication protocol standards."@en ; + sh:property [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isRead ; + ] ; + sh:targetClass observable:SMSMessageFacet ; + . + +observable:SQLiteBlob + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "SQLiteBlob"@en ; + rdfs:comment "An SQLite blob is a blob (binary large object) of data within an SQLite database. [based on https://en.wikipedia.org/wiki/SQLite]"@en ; + sh:targetClass observable:SQLiteBlob ; + . + +observable:SQLiteBlobFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SQLiteBlobFacet"@en ; + rdfs:comment "An SQLite blob facet is a grouping of characteristics unique to a blob (binary large object) of data within an SQLite database. [based on https://en.wikipedia.org/wiki/SQLite]"@en ; + sh:property + [ + sh:datatype xsd:positiveInteger ; + sh:nodeKind sh:Literal ; + sh:path observable:rowIndex ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:columnName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:rowCondition ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:tableName ; + ] + ; + sh:targetClass observable:SQLiteBlobFacet ; + . + +observable:SecurityAppliance + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Appliance ; + rdfs:label "SecurityAppliance"@en ; + rdfs:comment "A security appliance is a purpose-built computer with software or firmware that is designed to provide a specific security function to protect computer networks."@en ; + sh:targetClass observable:SecurityAppliance ; + . + +observable:Semaphore + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Semaphore"@en ; + rdfs:comment "A semaphore is a variable or abstract data type used to control access to a common resource by multiple processes and avoid critical section problems in a concurrent system such as a multitasking operating system. [based on https://en.wikipedia.org/wiki/Semaphore_(programming)]"@en ; + sh:targetClass observable:Semaphore ; + . + +observable:SendControlCodeEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DefinedEffectFacet ; + rdfs:label "SendControlCodeEffectFacet"@en ; + rdfs:comment "A send control code effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a control code, or other control-oriented communication signal, is sent to the observable object. An example of this would be an action sending a control code changing the running state of a process."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:controlCode ; + ] ; + sh:targetClass observable:SendControlCodeEffectFacet ; + . + +observable:Server + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Computer ; + rdfs:label "Server"@en-US ; + rdfs:comment "A server is a server rack-mount based computer, minicomputer, supercomputer, etc."@en-US ; + sh:targetClass observable:Server ; + . + +observable:ShopListing + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ShopListing"@en ; + rdfs:comment "A shop listing is a listing of offered products on an online marketplace/shop."@en ; + sh:targetClass observable:ShopListing ; + . + +observable:SmartDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "SmartDevice"@en-US ; + rdfs:comment "A smart device is a microprocessor IoT device that is expected to be connected directly to cloud-based networks or via smartphone"@en-US ; + sh:targetClass observable:SmartDevice ; + . + +observable:SmartPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + observable:Computer , + observable:MobilePhone , + observable:SmartDevice + ; + rdfs:label "SmartPhone"@en-US ; + rdfs:comment "A smartphone is a portable device that combines mobile telephone and computing functions into one unit. Examples include iPhone, Samsung Galaxy, Huawei, Blackberry. (Inferred by model and OperatingSystemFacet)"@en-US ; + sh:targetClass observable:SmartPhone ; + . + +observable:Snapshot + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "Snapshot"@en ; + rdfs:comment "A snapshot is a file system object representing a snapshot of the contents of a part of a file system at a point in time."@en ; + sh:targetClass observable:Snapshot ; + . + +observable:Socket + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "Socket"@en ; + rdfs:comment "A socket is a special file used for inter-process communication, which enables communication between two processes. In addition to sending data, processes can send file descriptors across a Unix domain socket connection using the sendmsg() and recvmsg() system calls. Unlike named pipes which allow only unidirectional data flow, sockets are fully duplex-capable. [based on https://en.wikipedia.org/wiki/Unix_file_types]"@en ; + sh:targetClass observable:Socket ; + . + +observable:SocketAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Address ; + rdfs:label "SocketAddress"@en ; + rdfs:comment "A socket address (combining and IP address and a port number) is a composite identifier for a network socket endpoint supporting internet protocol communications."@en ; + sh:targetClass observable:SocketAddress ; + . + +observable:Software + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Software"@en ; + rdfs:comment "Software is a definitely scoped instance of a collection of data or computer instructions that tell the computer how to work. [based on https://en.wikipedia.org/wiki/Software]"@en ; + sh:targetClass observable:Software ; + . + +observable:SoftwareFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SoftwareFacet"@en ; + rdfs:comment "A software facet is a grouping of characteristics unique to a software program (a definitively scoped instance of a collection of data or computer instructions that tell the computer how to work). [based on https://en.wikipedia.org/wiki/Software]"@en ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:manufacturer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cpeid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:language ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:swid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:SoftwareFacet ; + . + +observable:StateChangeEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DefinedEffectFacet ; + rdfs:label "StateChangeEffectFacet"@en ; + rdfs:comment "A state change effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a state of the observable object is changed."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:newObject ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:oldObject ; + ] + ; + sh:targetClass observable:StateChangeEffectFacet ; + . + +observable:StorageMedium + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "StorageMedium"@en-US ; + rdfs:comment "A storage medium is any digital storage device that applies electromagnetic or optical surfaces, or depends solely on electronic circuits as solid state storage, for storing digital data. Examples include HDD (PATA), SATA, SSD, Optical, Memory_Card, Tape, etc"@en-US ; + sh:targetClass observable:StorageMedium ; + . + +observable:SymbolicLink + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "SymbolicLink"@en ; + rdfs:comment "A symbolic link is a file that contains a reference to another file or directory in the form of an absolute or relative path and that affects pathname resolution. [based on https://en.wikipedia.org/wiki/Symbolic_link]"@en ; + sh:targetClass observable:SymbolicLink ; + . + +observable:SymbolicLinkFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SymbolicLinkFacet"@en ; + rdfs:comment "A symbolic link facet is a grouping of characteristics unique to a file that contains a reference to another file or directory in the form of an absolute or relative path and that affects pathname resolution. [based on https://en.wikipedia.org/wiki/Symbolic_link]"@en ; + sh:property [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:targetFile ; + ] ; + sh:targetClass observable:SymbolicLinkFacet ; + . + +observable:TCPConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:NetworkConnection ; + rdfs:label "TCPConnection"@en ; + rdfs:comment "A TCP connection is a network connection that is conformant to the Transfer "@en ; + sh:targetClass observable:TCPConnection ; + . + +observable:TCPConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "TCPConnectionFacet"@en ; + rdfs:comment "A TCP connection facet is a grouping of characteristics unique to portions of a network connection that are conformant to the Transmission Control Protocl (TCP) standard."@en ; + sh:property + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:destinationFlags ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:sourceFlags ; + ] + ; + sh:targetClass observable:TCPConnectionFacet ; + . + +observable:TableField + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "TableField"@en ; + rdfs:comment "A database table field and its associated value contained within a relational database."@en ; + sh:targetClass observable:TableField ; + . + +observable:TableFieldFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "TableFieldFacet"@en ; + rdfs:comment "A database record facet contains properties associated with a specific table record value from a database."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:recordFieldIsNull ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:recordFieldName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:tableName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:tableSchema ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype xsd:base64Binary ; + ] + [ + sh:datatype xsd:decimal ; + ] + [ + sh:datatype xsd:integer ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:recordFieldValue ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype xsd:integer ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:recordRowID ; + ] + ; + sh:targetClass observable:TableFieldFacet ; + sh:xone ( + [ + a sh:NodeShape ; + sh:property [ + sh:hasValue "false"^^xsd:boolean ; + sh:path observable:recordFieldIsNull ; + ] ; + ] + [ + a sh:NodeShape ; + sh:property + [ + sh:hasValue "true"^^xsd:boolean ; + sh:path observable:recordFieldIsNull ; + ] , + [ + sh:maxCount "0"^^xsd:integer ; + sh:path observable:recordFieldValue ; + ] + ; + ] + [ + a sh:NodeShape ; + sh:property [ + sh:maxCount "0"^^xsd:integer ; + sh:path observable:recordFieldIsNull ; + ] ; + ] + ) ; + . + +observable:Tablet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + observable:Computer , + observable:MobileDevice , + observable:SmartDevice + ; + rdfs:label "Tablet"@en-US ; + rdfs:comment "A tablet is a mobile computer that is primarily operated by touching the screen. (Devices categorized by their manufacturer as a Tablet)"@en-US ; + sh:targetClass observable:Tablet ; + . + +observable:TaskActionType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "TaskActionType"@en ; + rdfs:comment "A task action type is a grouping of characteristics for a scheduled action to be completed."@en ; + sh:property + [ + sh:class observable:IComHandlerActionType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:iComHandlerAction ; + ] , + [ + sh:class observable:IExecActionType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:iExecAction ; + ] , + [ + sh:class observable:IShowMessageActionType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:iShowMessageAction ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:iEmailAction ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:actionID ; + ] , + [ + sh:datatype vocabulary:TaskActionTypeVocab ; + sh:message "Value is outside the default vocabulary TaskActionTypeVocab." ; + sh:path observable:actionType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TaskActionTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:actionType ; + ] , + [ + sh:message "Value is not member of the vocabulary TaskActionTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TaskActionTypeVocab ; + sh:in ( + "TASK_ACTION_COM_HANDLER"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_EXEC"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_SEND_EMAIL"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_SHOW_MESSAGE"^^vocabulary:TaskActionTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:actionType ; + ] + ; + sh:targetClass observable:TaskActionType ; + . + +observable:TriggerType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "TriggerType"@en ; + rdfs:comment "A trigger type is a grouping of characterizes unique to a set of criteria that, when met, starts the execution of a task within a Windows operating system. [based on https://docs.microsoft.com/en-us/windows/win32/taskschd/task-triggers]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isEnabled ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerBeginTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerEndTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerDelay ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerMaxRunTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerSessionChangeType ; + ] , + [ + sh:datatype vocabulary:TriggerFrequencyVocab ; + sh:message "Value is outside the default vocabulary TriggerFrequencyVocab." ; + sh:path observable:triggerFrequency ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:TriggerTypeVocab ; + sh:message "Value is outside the default vocabulary TriggerTypeVocab." ; + sh:path observable:triggerType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TriggerFrequencyVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:triggerFrequency ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TriggerTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:triggerType ; + ] , + [ + sh:message "Value is not member of the vocabulary TriggerFrequencyVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TriggerFrequencyVocab ; + sh:in ( + "TASK_EVENT_TRIGGER_AT_LOGON"^^vocabulary:TriggerFrequencyVocab + "TASK_EVENT_TRIGGER_AT_SYSTEMSTART"^^vocabulary:TriggerFrequencyVocab + "TASK_EVENT_TRIGGER_ON_IDLE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_DAILY"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_MONTHLYDATE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_MONTHLYDOW"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_ONCE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_WEEKLY"^^vocabulary:TriggerFrequencyVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:triggerFrequency ; + ] , + [ + sh:message "Value is not member of the vocabulary TriggerTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TriggerTypeVocab ; + sh:in ( + "TASK_TRIGGER_BOOT"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_EVENT"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_IDLE"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_LOGON"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_REGISTRATION"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_SESSION_STATE_CHANGE"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_TIME"^^vocabulary:TriggerTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:triggerType ; + ] + ; + sh:targetClass observable:TriggerType ; + . + +observable:Tweet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "Tweet"@en ; + rdfs:comment "A tweet is message submitted by a Twitter user account to the Twitter microblogging platform."@en ; + sh:targetClass observable:Tweet ; + . + +observable:TwitterProfileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "TwitterProfileFacet" ; + rdfs:comment "A twitter profile facet is a grouping of characteristics unique to an explicit digital representation of identity and characteristics of the owner of a single Twitter user account. [based on https://en.wikipedia.org/wiki/User_profile]" ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileBackgroundLocation ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileBannerLocation ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileImageLocation ; + ] , + [ + sh:class types:Hash ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileBackgroundHash ; + ] , + [ + sh:class types:Hash ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileBannerHash ; + ] , + [ + sh:class types:Hash ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileImageHash ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:profileIsProtected ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:profileIsVerified ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:listedCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:favoritesCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:followersCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:friendsCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:statusesCount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:twitterHandle ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:twitterId ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:userLocationString ; + ] + ; + sh:targetClass observable:TwitterProfileFacet ; + . + +observable:UNIXAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "UNIXAccount"@en ; + rdfs:comment "A UNIX account is an account on a UNIX operating system."@en ; + sh:targetClass observable:UNIXAccount ; + . + +observable:UNIXAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UNIXAccountFacet"@en ; + rdfs:comment "A UNIX account facet is a grouping of characteristics unique to an account on a UNIX operating system."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:gid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:shell ; + ] + ; + sh:targetClass observable:UNIXAccountFacet ; + . + +observable:UNIXFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "UNIXFile"@en ; + rdfs:comment "A UNIX file is a file pertaining to the UNIX operating system."@en ; + sh:targetClass observable:UNIXFile ; + . + +observable:UNIXFilePermissionsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UNIXFilePermissionsFacet"@en ; + rdfs:comment "A UNIX file permissions facet is a grouping of characteristics unique to the access rights (e.g., view, change, navigate, execute) of a file on a UNIX file system."@en ; + sh:targetClass observable:UNIXFilePermissionsFacet ; + . + +observable:UNIXProcess + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Process ; + rdfs:label "UNIXProcess"@en ; + rdfs:comment "A UNIX process is an instance of a computer program executed on a UNIX operating system."@en ; + sh:targetClass observable:UNIXProcess ; + . + +observable:UNIXProcessFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UNIXProcessFacet"@en ; + rdfs:comment "A UNIX process facet is a grouping of characteristics unique to an instance of a computer program executed on a UNIX operating system."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:openFileDescriptor ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:nodeKind sh:Literal ; + sh:path observable:ruid ; + ] + ; + sh:targetClass observable:UNIXProcessFacet ; + . + +observable:UNIXVolumeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UNIXVolumeFacet"@en ; + rdfs:comment "A UNIX volume facet is a grouping of characteristics unique to a single accessible storage area (volume) with a single UNIX file system. [based on https://en.wikipedia.org/wiki/Volume_(computing)]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mountPoint ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:options ; + ] + ; + sh:targetClass observable:UNIXVolumeFacet ; + . + +observable:URL + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "URL"@en ; + rdfs:comment "A URL is a uniform resource locator (URL) acting as a resolvable address to a particular WWW (World Wide Web) accessible resource."@en ; + sh:targetClass observable:URL ; + . + +observable:URLFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "URLFacet"@en ; + rdfs:comment "A URL facet is a grouping of characteristics unique to a uniform resource locator (URL) acting as a resolvable address to a particular WWW (World Wide Web) accessible resource."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:host ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:port ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:fragment ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:fullValue ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:password ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:path ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:query ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:scheme ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:userName ; + ] + ; + sh:targetClass observable:URLFacet ; + . + +observable:URLHistory + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "URLHistory"@en ; + rdfs:comment "A URL history characterizes the stored URL history for a particular web browser"@en ; + sh:targetClass observable:URLHistory ; + . + +observable:URLHistoryEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "URL History Entry"@en-US ; + rdfs:comment "A URL history entry is a grouping of characteristics unique to the properties of a single URL history entry for a particular browser."@en-US ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:url ; + ] , + [ + sh:class observable:ObservableObject ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:referrerUrl ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:expirationTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:firstVisit ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastVisit ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visitCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:manuallyEnteredCount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:browserUserProfile ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:hostname ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pageTitle ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:keywordSearchTerm ; + ] + ; + sh:targetClass observable:URLHistoryEntry ; + . + +observable:URLHistoryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "URLHistoryFacet"@en-US ; + rdfs:comment "A URL history facet is a grouping of characteristics unique to the stored URL history for a particular web browser"@en-US ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:browserInformation ; + ] , + [ + sh:class observable:URLHistoryEntry ; + sh:nodeKind sh:IRI ; + sh:path observable:urlHistoryEntry ; + ] + ; + sh:targetClass observable:URLHistoryFacet ; + . + +observable:URLVisit + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "URLVisit"@en ; + rdfs:comment "A URL visit characterizes the properties of a visit of a URL within a particular browser."@en ; + sh:targetClass observable:URLVisit ; + . + +observable:URLVisitFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "URLVisitFacet"@en ; + rdfs:comment "A URL visit facet is a grouping of characteristics unique to the properties of a visit of a URL within a particular browser."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:browserInformation ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:fromURLVisit ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:url ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visitTime ; + ] , + [ + sh:datatype xsd:duration ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visitDuration ; + ] , + [ + sh:datatype vocabulary:URLTransitionTypeVocab ; + sh:message "Value is outside the default vocabulary URLTransitionTypeVocab." ; + sh:path observable:urlTransitionType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:URLTransitionTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:urlTransitionType ; + ] , + [ + sh:message "Value is not member of the vocabulary URLTransitionTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:URLTransitionTypeVocab ; + sh:in ( + "link"^^vocabulary:URLTransitionTypeVocab + "typed"^^vocabulary:URLTransitionTypeVocab + "auto_bookmark"^^vocabulary:URLTransitionTypeVocab + "auto_subframe"^^vocabulary:URLTransitionTypeVocab + "manual_subframe"^^vocabulary:URLTransitionTypeVocab + "generated"^^vocabulary:URLTransitionTypeVocab + "auto_toplevel"^^vocabulary:URLTransitionTypeVocab + "form_submit"^^vocabulary:URLTransitionTypeVocab + "reload"^^vocabulary:URLTransitionTypeVocab + "keyword"^^vocabulary:URLTransitionTypeVocab + "keyword_generated"^^vocabulary:URLTransitionTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:urlTransitionType ; + ] + ; + sh:targetClass observable:URLVisitFacet ; + . + +observable:UserAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "UserAccount"@en ; + rdfs:comment "A user account is an account controlling a user's access to a network, system or platform."@en ; + sh:targetClass observable:UserAccount ; + . + +observable:UserAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UserAccountFacet"@en ; + rdfs:comment "A user account facet is a grouping of characteristics unique to an account controlling a user's access to a network, system, or platform."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:canEscalatePrivs ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isPrivileged ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isServiceAccount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:homeDirectory ; + ] + ; + sh:targetClass observable:UserAccountFacet ; + . + +observable:UserSession + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "UserSession"@en ; + rdfs:comment "A user session is a temporary and interactive information interchange between two or more communicating devices within the managed scope of a single user. [based on https://en.wikipedia.org/wiki/Session_(computer_science)]"@en ; + sh:targetClass observable:UserSession ; + . + +observable:UserSessionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UserSessionFacet"@en ; + rdfs:comment "A user session facet is a grouping of characteristics unique to a temporary and interactive information interchange between two or more communicating devices within the managed scope of a single user. [based on https://en.wikipedia.org/wiki/Session_(computer_science)]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:effectiveUser ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:loginTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:logoutTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:effectiveGroup ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:effectiveGroupID ; + ] + ; + sh:targetClass observable:UserSessionFacet ; + . + +observable:ValuesEnumeratedEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DefinedEffectFacet ; + rdfs:label "ValuesEnumeratedEffectFacet"@en ; + rdfs:comment "A values enumerated effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a value of the observable object is enumerated. An example of this would be the values of a registry key."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:values ; + ] ; + sh:targetClass observable:ValuesEnumeratedEffectFacet ; + . + +observable:Volume + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Volume"@en ; + rdfs:comment "A volume is a single accessible storage area (volume) with a single file system. [based on https://en.wikipedia.org/wiki/Volume_(computing)]"@en ; + sh:targetClass observable:Volume ; + . + +observable:VolumeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "VolumeFacet"@en ; + rdfs:comment "A volume facet is a grouping of characteristics unique to a single accessible storage area (volume) with a single file system. [based on https://en.wikipedia.org/wiki/Volume_(computing)]"@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sectorSize ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:volumeID ; + ] + ; + sh:targetClass observable:VolumeFacet ; + . + +observable:WearableDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:SmartDevice ; + rdfs:label "WearableDevice"@en-US ; + rdfs:comment "A wearable device is an electronic device that is designed to be worn on a person's body."@en-US ; + sh:targetClass observable:WearableDevice ; + . + +observable:WebPage + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WebPage"@en ; + rdfs:comment "A web page is a specific collection of information provided by a website and displayed to a user in a web browser. A website typically consists of many web pages linked together in a coherent fashion. [based on https://en.wikipedia.org/wiki/Web_page]"@en ; + sh:targetClass observable:WebPage ; + . + +observable:WhoIs + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WhoIs"@en ; + rdfs:comment "WhoIs is a response record conformant to the WHOIS protocol standard (RFC 3912). [based on https://en.wikipedia.org/wiki/WHOIS]"@en ; + sh:targetClass observable:WhoIs ; + . + +observable:WhoIsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WhoIsFacet"@en ; + rdfs:comment "A whois facet is a grouping of characteristics unique to a response record conformant to the WHOIS protocol standard (RFC 3912). [based on https://en.wikipedia.org/wiki/WHOIS]"@en ; + sh:property + observable:regionalInternetRegistry-shape-value-not-vocabulary-member , + observable:regionalInternetRegistry-shape-value-outside-default-vocabulary , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:domainName ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:ipAddress ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:registrantContactInfo ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:serverName ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:nameServer ; + ] , + [ + sh:class observable:WhoisRegistrarInfoType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:registrarInfo ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:creationDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:expirationDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lookupDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:updatedDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:domainID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:remarks ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sponsoringRegistrar ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:registrantIDs ; + ] , + [ + sh:datatype vocabulary:WhoisDNSSECTypeVocab ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dnssec ; + ] , + [ + sh:datatype vocabulary:WhoisStatusTypeVocab ; + sh:message "Value is outside the default vocabulary WhoisStatusTypeVocab." ; + sh:path observable:status ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RegionalRegistryTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:regionalInternetRegistry ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:WhoisStatusTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:status ; + ] , + [ + sh:message "Value is not member of the vocabulary WhoisStatusTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:WhoisStatusTypeVocab ; + sh:in ( + "ADD_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "AUTO_RENEW_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_DELETE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_HOLD"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_RENEW_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_TRANSFER_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_UPDATE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "DELETE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "HOLD"^^vocabulary:WhoisStatusTypeVocab + "INACTIVE"^^vocabulary:WhoisStatusTypeVocab + "OK"^^vocabulary:WhoisStatusTypeVocab + "PENDING_DELETE_RESTORABLE"^^vocabulary:WhoisStatusTypeVocab + "PENDING_DELETE_SCHEDULED_FOR_RELEASE"^^vocabulary:WhoisStatusTypeVocab + "PENDING_RESTORE"^^vocabulary:WhoisStatusTypeVocab + "RENEW_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "RENEW_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "TRANSFER_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "TRANSFER_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "UPDATE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:status ; + ] + ; + sh:targetClass observable:WhoIsFacet ; + . + +observable:WhoisContactFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ContactFacet ; + rdfs:label "WhoIsContactFacet"@en ; + rdfs:comment "A Whois contact type is a grouping of characteristics unique to contact-related information present in a response record conformant to the WHOIS protocol standard (RFC 3912). [based on https://en.wikipedia.org/wiki/WHOIS]"@en ; + sh:property + [ + sh:datatype vocabulary:WhoisContactTypeVocab ; + sh:message "Value is outside the default vocabulary WhoisContactTypeVocab." ; + sh:path observable:whoisContactType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:WhoisContactTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:whoisContactType ; + ] , + [ + sh:message "Value is not member of the vocabulary WhoisContactTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:WhoisContactTypeVocab ; + sh:in ( + "ADMIN"^^vocabulary:WhoisContactTypeVocab + "BILLING"^^vocabulary:WhoisContactTypeVocab + "TECHNICAL"^^vocabulary:WhoisContactTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:whoisContactType ; + ] + ; + sh:targetClass observable:WhoisContactFacet ; + . + +observable:WhoisRegistrarInfoType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WhoisRegistrarInfoType"@en ; + rdfs:comment "A Whois registrar info type is a grouping of characteristics unique to registrar-related information present in a response record conformant to the WHOIS protocol standard (RFC 3912). [based on https://en.wikipedia.org/wiki/WHOIS]"@en ; + sh:property + [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:geolocationAddress ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhoneNumber ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:emailAddress ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:referralURL ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:whoisServer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:registrarGUID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:registrarID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:registrarName ; + ] + ; + sh:targetClass observable:WhoisRegistrarInfoType ; + . + +observable:WifiAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MACAddress ; + rdfs:label "WifiAddress"@en ; + rdfs:comment "A Wi-Fi address is a media access control (MAC) standards-conformant identifier assigned to a device network interface to enable routing and management of IEEE 802.11 standards-conformant communications to and from that device."@en ; + sh:targetClass observable:WifiAddress ; + . + +observable:WifiAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MACAddressFacet ; + rdfs:label "WifiAddressFacet"@en ; + rdfs:comment "A Wi-Fi address facet is a grouping of characteristics unique to a media access control (MAC) standards conformant identifier assigned to a device network interface to enable routing and management of IEEE 802.11 standards-conformant communications to and from that device."@en ; + sh:targetClass observable:WifiAddressFacet ; + . + +observable:Wiki + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Wiki"@en ; + rdfs:comment "A wiki is an online hypertext publication collaboratively edited and managed by its own audience directly using a web browser. A typical wiki contains multiple pages/articles for the subjects or scope of the project and could be either open to the public or limited to use within an organization for maintaining its internal knowledge base. [based on https://en.wikipedia.org/wiki/Wiki]"@en ; + sh:targetClass observable:Wiki ; + . + +observable:WikiArticle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WikiArticle"@en ; + rdfs:comment "A wiki article is one or more pages in a wiki focused on characterizing a particular topic."@en ; + sh:targetClass observable:WikiArticle ; + . + +observable:WindowsAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "WindowsAccount"@en ; + rdfs:comment "A Windows account is a user account on a Windows operating system."@en ; + sh:targetClass observable:WindowsAccount ; + . + +observable:WindowsAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsAccountFacet"@en ; + rdfs:comment "A Windows account facet is a grouping of characteristics unique to a user account on a Windows operating system."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:groups ; + ] ; + sh:targetClass observable:WindowsAccountFacet ; + . + +observable:WindowsActiveDirectoryAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "WindowsActiveDirectoryAccount"@en ; + rdfs:comment "A Windows Active Directory account is an account managed by directory-based identity-related services of a Windows operating system."@en ; + sh:targetClass observable:WindowsActiveDirectoryAccount ; + . + +observable:WindowsActiveDirectoryAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsActiveDirectoryAccountFacet"@en ; + rdfs:comment "A Windows Active Directory account facet is a grouping of characteristics unique to an account managed by directory-based identity-related services of a Windows operating system."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:objectGUID ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:activeDirectoryGroups ; + ] + ; + sh:targetClass observable:WindowsActiveDirectoryAccountFacet ; + . + +observable:WindowsComputerSpecification + a + owl:Class , + sh:NodeShape + ; + 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 ; + sh:targetClass observable:WindowsComputerSpecification ; + . + +observable:WindowsComputerSpecificationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsComputerSpecificationFacet"@en ; + rdfs:comment "A Windows computer specification facet is a grouping of characteristics unique to 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:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:registeredOrganization ; + ] , + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:registeredOwner ; + ] , + [ + sh:class observable:GlobalFlagType ; + sh:nodeKind sh:IRI ; + sh:path observable:globalFlagList ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:windowsDirectory ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:windowsSystemDirectory ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:windowsTempDirectory ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastShutdownDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:osInstallDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:osLastUpgradeDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:msProductID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:msProductName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:netBIOSName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:domain ; + ] + ; + sh:targetClass observable:WindowsComputerSpecificationFacet ; + . + +observable:WindowsCriticalSection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsCriticalSection"@en ; + rdfs:comment "A Windows critical section is a Windows object that provides synchronization similar to that provided by a mutex object, except that a critical section can be used only by the threads of a single process. Critical section objects cannot be shared across processes. Event, mutex, and semaphore objects can also be used in a single-process application, but critical section objects provide a slightly faster, more efficient mechanism for mutual-exclusion synchronization (a processor-specific test and set instruction). Like a mutex object, a critical section object can be owned by only one thread at a time, which makes it useful for protecting a shared resource from simultaneous access. Unlike a mutex object, there is no way to tell whether a critical section has been abandoned. [based on https://docs.microsoft.com/en-us/windows/win32/sync/critical-section-objects]"@en ; + sh:targetClass observable:WindowsCriticalSection ; + . + +observable:WindowsEvent + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsEvent"@en ; + rdfs:comment "A Windows event is a notification record of an occurance of interest (system, security, application, etc.) on a Windows operating system."@en ; + sh:targetClass observable:WindowsEvent ; + . + +observable:WindowsFilemapping + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsFilemapping"@en ; + rdfs:comment "A Windows file mapping is the association of a file's contents with a portion of the virtual address space of a process within a Windows operating system. The system creates a file mapping object (also known as a section object) to maintain this association. A file view is the portion of virtual address space that a process uses to access the file's contents. File mapping allows the process to use both random input and output (I/O) and sequential I/O. It also allows the process to work efficiently with a large data file, such as a database, without having to map the whole file into memory. Multiple processes can also use memory-mapped files to share data. Processes read from and write to the file view using pointers, just as they would with dynamically allocated memory. The use of file mapping improves efficiency because the file resides on disk, but the file view resides in memory.[based on https://docs.microsoft.com/en-us/windows/win32/memory/file-mapping]"@en ; + sh:targetClass observable:WindowsFilemapping ; + . + +observable:WindowsHandle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsHandle"@en ; + rdfs:comment "A Windows handle is an abstract reference to a resource within the Windows operating system, such as a window, memory, an open file or a pipe. It is the mechanism by which applications interact with such resources in the Windows operating system."@en ; + sh:targetClass observable:WindowsHandle ; + . + +observable:WindowsHook + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsHook"@en ; + rdfs:comment "A Windows hook is a mechanism by which an application can intercept events, such as messages, mouse actions, and keystrokes within the Windows operating system. A function that intercepts a particular type of event is known as a hook procedure. A hook procedure can act on each event it receives, and then modify or discard the event. [based on https://docs.microsoft.com/en-us/windows/win32/winmsg/about-hooks]"@en ; + sh:targetClass observable:WindowsHook ; + . + +observable:WindowsMailslot + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsMailslot"@en ; + rdfs:comment "A Windows mailslot is is a pseudofile that resides in memory, and may be accessed using standard file functions. The data in a mailslot message can be in any form, but cannot be larger than 424 bytes when sent between computers. Unlike disk files, mailslots are temporary. When all handles to a mailslot are closed, the mailslot and all the data it contains are deleted. [based on https://docs.microsoft.com/en-us/windows/win32/ipc/about-mailslots]"@en ; + sh:targetClass observable:WindowsMailslot ; + . + +observable:WindowsNetworkShare + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsNetworkShare"@en ; + rdfs:comment "A Windows network share is a Windows computer resource made available from one host to other hosts on a computer network. It is a device or piece of information on a computer that can be remotely accessed from another computer transparently as if it were a resource in the local machine. Network sharing is made possible by inter-process communication over the network. [based on https://en.wikipedia.org/wiki/Shared_resource]"@en ; + sh:targetClass observable:WindowsNetworkShare ; + . + +observable:WindowsPEBinaryFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "WindowsPEBinaryFile"@en ; + rdfs:comment "A Windows PE binary file is a Windows portable executable (PE) file."@en ; + sh:targetClass observable:WindowsPEBinaryFile ; + . + +observable:WindowsPEBinaryFileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsPEBinaryFileFacet"@en ; + rdfs:comment "A Windows PE binary file facet is a grouping of characteristics unique to a Windows portable executable (PE) file."@en ; + sh:property + [ + sh:class observable:WindowsPEOptionalHeader ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:optionalHeader ; + ] , + [ + sh:class observable:WindowsPESection ; + sh:nodeKind sh:IRI ; + sh:path observable:sections ; + ] , + [ + sh:class types:Hash ; + sh:nodeKind sh:IRI ; + sh:path observable:fileHeaderHashes ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timeDateStamp ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:pointerToSymbolTable ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfSections ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfSymbols ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfOptionalHeader ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:impHash ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:peType ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:machine ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:characteristics ; + ] + ; + sh:targetClass observable:WindowsPEBinaryFileFacet ; + . + +observable:WindowsPEBinaryType + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "dll" + "exe" + "sys" + ) ; + ] ; + . + +observable:WindowsPEFileHeader + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WindowsPEFileHeader"@en ; + rdfs:comment "A Windows PE file header is a grouping of characteristics unique to the 'header' of a Windows PE (Portable Executable) file, consisting of a collection of metadata about the overall nature and structure of the file."@en ; + sh:property [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timeDateStamp ; + ] ; + sh:targetClass observable:WindowsPEFileHeader ; + . + +observable:WindowsPEOptionalHeader + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WindowsPEOptionalHeader"@en ; + rdfs:comment "A Windows PE optional header is a grouping of characteristics unique to the 'optional header' of a Windows PE (Portable Executable) file, consisting of a collection of metadata about the executable code structure of the file."@en ; + sh:property + [ + sh:datatype xsd:byte ; + sh:nodeKind sh:Literal ; + sh:path observable:majorLinkerVersion ; + ] , + [ + sh:datatype xsd:byte ; + sh:nodeKind sh:Literal ; + sh:path observable:minorLinkerVersion ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:addressOfEntryPoint ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:baseOfCode ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:checksum ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:fileAlignment ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:imageBase ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:loaderFlags ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfRVAAndSizes ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sectionAlignment ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfCode ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfHeaders ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfHeapCommit ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfHeapReserve ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfImage ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfInitializedData ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfStackCommit ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfStackReserve ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfUninitializedData ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:win32VersionValue ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:dllCharacteristics ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:magic ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:majorImageVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:majorOSVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:majorSubsystemVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:minorImageVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:minorOSVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:minorSubsystemVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:subsystem ; + ] + ; + sh:targetClass observable:WindowsPEOptionalHeader ; + . + +observable:WindowsPESection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WindowsPESection"@en ; + rdfs:comment "A Windows PE section is a grouping of characteristics unique to a specific default or custom-defined region of a Windows PE (Portable Executable) file, consisting of an individual portion of the actual executable content of the file delineated according to unique purpose and memory protection requirements."@en ; + sh:property + [ + sh:class types:Hash ; + sh:nodeKind sh:IRI ; + sh:path observable:hashes ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:entropy ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:size ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] + ; + sh:targetClass observable:WindowsPESection ; + . + +observable:WindowsPrefetch + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsPrefetch"@en ; + rdfs:comment "The Windows prefetch contains entries in a Windows prefetch file (used to speed up application startup starting with Windows XP)."@en ; + sh:targetClass observable:WindowsPrefetch ; + . + +observable:WindowsPrefetchFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsPrefetchFacet"@en ; + rdfs:comment "A Windows prefetch facet is a grouping of characteristics unique to entries in the Windows prefetch file (used to speed up application startup starting with Windows XP)."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:volume ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:accessedDirectory ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:accessedFile ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:firstRun ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastRun ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timesExecuted ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:applicationFileName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:prefetchHash ; + ] + ; + sh:targetClass observable:WindowsPrefetchFacet ; + . + +observable:WindowsProcess + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Process ; + rdfs:label "WindowsProcess"@en ; + rdfs:comment "A Windows process is a program running on a Windows operating system."@en ; + sh:targetClass observable:WindowsProcess ; + . + +observable:WindowsProcessFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsProcessFacet"@en ; + rdfs:comment "A Windows process facet is a grouping of characteristics unique to a program running on a Windows operating system."@en ; + sh:property + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:startupInfo ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:aslrEnabled ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:depEnabled ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ownerSID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:priority ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:windowTitle ; + ] + ; + sh:targetClass observable:WindowsProcessFacet ; + . + +observable:WindowsRegistryHive + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsRegistryHive"@en ; + rdfs:comment "The Windows registry hive is a particular logical group of keys, subkeys, and values in a Windows registry (a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry). [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:targetClass observable:WindowsRegistryHive ; + . + +observable:WindowsRegistryHiveFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsRegistryHiveFacet"@en ; + rdfs:comment "A Windows registry hive facet is a grouping of characteristics unique to a particular logical group of keys, subkeys, and values in a Windows registry (a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry). [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:hiveType ; + ] ; + sh:targetClass observable:WindowsRegistryHiveFacet ; + . + +observable:WindowsRegistryKey + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsRegistryKey"@en ; + rdfs:comment "A Windows registry key is a particular key within a Windows registry (a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry). [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:targetClass observable:WindowsRegistryKey ; + . + +observable:WindowsRegistryKeyFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsRegistryKeyFacet"@en ; + rdfs:comment "A Windows registry key facet is a grouping of characteristics unique to a particular key within a Windows registry (A hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry). [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:creator ; + ] , + [ + sh:class observable:WindowsRegistryValue ; + sh:nodeKind sh:IRI ; + sh:path observable:registryValues ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfSubkeys ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:key ; + ] + ; + sh:targetClass observable:WindowsRegistryKeyFacet ; + . + +observable:WindowsRegistryValue + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WindowsRegistryValue"@en ; + rdfs:comment "A Windows registry value is a grouping of characteristics unique to a particular value within a Windows registry (a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:data ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dataType ; + ] + ; + sh:targetClass observable:WindowsRegistryValue ; + . + +observable:WindowsService + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:WindowsService ; + . + +observable:WindowsServiceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsServiceFacet"@en ; + rdfs:comment "A Windows service facet is a grouping of characteristics unique to 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:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:groupName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serviceName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serviceStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serviceType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startCommandLine ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startType ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:descriptions ; + ] + ; + sh:targetClass observable:WindowsServiceFacet ; + . + +observable:WindowsServiceStartType + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "service_auto_start" + "service_boot_start" + "service_demand_start" + "service_disabled" + "service_system_alert" + ) ; + ] ; + . + +observable:WindowsServiceStatus + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "service_continue_pending" + "service_pause_pending" + "service_paused" + "service_running" + "service_start_pending" + "service_stop_pending" + "service_stopped" + ) ; + ] ; + . + +observable:WindowsServiceType + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "service_file_system_driver" + "service_kernel_driver" + "service_win32_own_process" + "service_win32_share_process" + ) ; + ] ; + . + +observable:WindowsSystemRestore + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsSystemRestore"@en ; + rdfs:comment "A Windows system restore is a capture of a Windows computer's state (including system files, installed applications, Windows Registry, and system settings) at a particular point in time such that the computer can be reverted to that state in the event of system malfunctions or other problems. [based on https://en.wikipedia.org/wiki/System_Restore]"@en ; + sh:targetClass observable:WindowsSystemRestore ; + . + +observable:WindowsTask + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:WindowsTask ; + . + +observable:WindowsTaskFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsTaskFacet"@en ; + rdfs:comment "A Windows Task facet is a grouping of characteristics unique to a Windows Task (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:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:account ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:workItemData ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:workingDirectory ; + ] , + [ + sh:class observable:TaskActionType ; + sh:nodeKind sh:IRI ; + sh:path observable:actionList ; + ] , + [ + sh:class observable:TriggerType ; + sh:nodeKind sh:IRI ; + sh:path observable:triggerList ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mostRecentRunTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:nextRunTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:exitCode ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:maxRunTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accountLogonType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accountRunLevel ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:imageName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:parameters ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:taskComment ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:taskCreator ; + ] , + [ + sh:datatype vocabulary:TaskFlagVocab ; + sh:message "Value is outside the default vocabulary TaskFlagVocab." ; + sh:path observable:flags ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:TaskPriorityVocab ; + sh:message "Value is outside the default vocabulary TaskPriorityVocab." ; + sh:path observable:priority ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:TaskStatusVocab ; + sh:message "Value is outside the default vocabulary TaskStatusVocab." ; + sh:path observable:status ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TaskPriorityVocab ; + ] + [ + sh:datatype xsd:integer ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:priority ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TaskStatusVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:status ; + ] , + [ + sh:message "Value is not member of the vocabulary TaskFlagVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TaskFlagVocab ; + sh:in ( + "TASK_FLAG_DELETE_WHEN_DONE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_DISABLED"^^vocabulary:TaskFlagVocab + "TASK_FLAG_DONT_START_IF_ON_BATTERIES"^^vocabulary:TaskFlagVocab + "TASK_FLAG_HIDDEN"^^vocabulary:TaskFlagVocab + "TASK_FLAG_INTERACTIVE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_KILL_IF_GOING_ON_BATTERIES"^^vocabulary:TaskFlagVocab + "TASK_FLAG_KILL_ON_IDLE_END"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RESTART_ON_IDLE_RESUME"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNET"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RUN_ONLY_IF_LOGGED_ON"^^vocabulary:TaskFlagVocab + "TASK_FLAG_START_ONLY_IF_IDLE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_SYSTEM_REQUIRED"^^vocabulary:TaskFlagVocab + "TASK_FLAG_ZERO"^^vocabulary:TaskFlagVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:flags ; + ] , + [ + sh:message "Value is not member of the vocabulary TaskPriorityVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TaskPriorityVocab ; + sh:in ( + "ABOVE_NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "BELOW_NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "HIGH_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "IDLE_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "REALTIME_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + ) ; + ] + [ + sh:datatype xsd:integer ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:priority ; + ] , + [ + sh:message "Value is not member of the vocabulary TaskStatusVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TaskStatusVocab ; + sh:in ( + "SCHED_E_ACCOUNT_DBASE_CORRUPT"^^vocabulary:TaskStatusVocab + "SCHED_E_ACCOUNT_INFORMATION_NOT_SET"^^vocabulary:TaskStatusVocab + "SCHED_E_ACCOUNT_NAME_NOT_FOUND"^^vocabulary:TaskStatusVocab + "SCHED_E_CANNOT_OPEN_TASK"^^vocabulary:TaskStatusVocab + "SCHED_E_INVALID_TASK"^^vocabulary:TaskStatusVocab + "SCHED_E_NO_SECURITY_SERVICES"^^vocabulary:TaskStatusVocab + "SCHED_E_SERVICE_NOT_INSTALLED"^^vocabulary:TaskStatusVocab + "SCHED_E_SERVICE_NOT_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_E_TASK_NOT_READY"^^vocabulary:TaskStatusVocab + "SCHED_E_TASK_NOT_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_E_TRIGGER_NOT_FOUND"^^vocabulary:TaskStatusVocab + "SCHED_E_UNKNOWN_OBJECT_VERSION"^^vocabulary:TaskStatusVocab + "SCHED_E_UNSUPPORTED_ACCOUNT_OPTION"^^vocabulary:TaskStatusVocab + "SCHED_S_EVENT_TRIGGER"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_DISABLED"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_HAS_NOT_RUN"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NOT_SCHEDULED"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NO_MORE_RUNS"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NO_VALID_TRIGGERS"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_READY"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_TERMINATED"^^vocabulary:TaskStatusVocab + "TASK_STATE_QUEUED"^^vocabulary:TaskStatusVocab + "TASK_STATE_UNKNOWN"^^vocabulary:TaskStatusVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:status ; + ] , + [ + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TaskFlagVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:flags ; + ] + ; + sh:targetClass observable:WindowsTaskFacet ; + . + +observable:WindowsThread + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ProcessThread ; + rdfs:label "WindowsThread"@en ; + rdfs:comment "A Windows thread is a single thread of execution within a Windows process."@en ; + sh:targetClass observable:WindowsThread ; + . + +observable:WindowsThreadFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsThreadFacet"@en ; + rdfs:comment "A Windows thread facet is a grouping os characteristics unique to a single thread of execution within a Windows process."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:creationTime ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:parameterAddress ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:startAddress ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:priority ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:nodeKind sh:Literal ; + sh:path observable:stackSize ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:nodeKind sh:Literal ; + sh:path observable:threadID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:context ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:runningStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:securityAttributes ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:creationFlags ; + ] + ; + sh:targetClass observable:WindowsThreadFacet ; + . + +observable:WindowsVolumeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsVolumeFacet"@en ; + rdfs:comment "A Windows volume facet is a grouping of characteristics unique to a single accessible storage area (volume) with a single Windows file system. [based on https://en.wikipedia.org/wiki/Volume_(computing)]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:driveLetter ; + ] , + [ + sh:datatype vocabulary:WindowsDriveTypeVocab ; + sh:message "Value is outside the default vocabulary WindowsDriveTypeVocab." ; + sh:path observable:driveType ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:WindowsVolumeAttributeVocab ; + sh:maxCount "4"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:windowsVolumeAttributes ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:WindowsDriveTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:driveType ; + ] , + [ + sh:message "Value is not member of the vocabulary WindowsDriveTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:WindowsDriveTypeVocab ; + sh:in ( + "DRIVE_CDROM"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_FIXED"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_NO_ROOT_DIR"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_RAMDISK"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_REMOTE"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_REMOVABLE"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_UNKNOWN"^^vocabulary:WindowsDriveTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:driveType ; + ] + ; + sh:targetClass observable:WindowsVolumeFacet ; + . + +observable:WindowsWaitableTime + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsWaitableTime"@en ; + rdfs:comment "A Windows waitable timer is a synchronization object within the Windows operating system whose state is set to signaled when a specified due time arrives. There are two types of waitable timers that can be created: manual-reset and synchronization. A timer of either type can also be a periodic timer. [based on https://docs.microsoft.com/en-us/windows/win32/sync/waitable-timer-objects]"@en ; + sh:targetClass observable:WindowsWaitableTime ; + . + +observable:WirelessNetworkConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:NetworkConnection ; + rdfs:label "WirelessNetworkConnection"@en ; + rdfs:comment "A wireless network connection is a connection (completed or attempted) across an IEEE 802.11 standards-confromant digital network (a group of two or more computer systems linked together). [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:targetClass observable:WirelessNetworkConnection ; + . + +observable:WirelessNetworkConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WirelessNetworkConnectionFacet"@en ; + rdfs:comment "A wireless network connection facet is a grouping of characteristics unique to a connection (completed or attempted) across an IEEE 802.11 standards-conformant digital network (a group of two or more computer systems linked together). [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:baseStation ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:password ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ssid ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:WirelessNetworkSecurityModeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:wirelessNetworkSecurityMode ; + ] , + [ + sh:message "Value is not member of the vocabulary WirelessNetworkSecurityModeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:WirelessNetworkSecurityModeVocab ; + sh:in ( + "None"^^vocabulary:WirelessNetworkSecurityModeVocab + "WEP"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA2-PSK"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA2-Enterprise"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA3-PSK"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA3-Enterprise"^^vocabulary:WirelessNetworkSecurityModeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:wirelessNetworkSecurityMode ; + ] + ; + sh:targetClass observable:WirelessNetworkConnectionFacet ; + . + +observable:WriteBlocker + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "WriteBlocker"@en-US ; + rdfs:comment "A write blocker is a device that allows read-only access to storage mediums in order to preserve the integrity of the data being analyzed. Examples include Tableau, Cellibrite, Talon, etc."@en-US ; + sh:targetClass observable:WriteBlocker ; + . + +observable:X509Certificate + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "X509Certificate"@en ; + rdfs:comment "A X.509 certificate is a public key digital identity certificate conformant to the X.509 PKI (Public Key Infrastructure) standard."@en ; + sh:targetClass observable:X509Certificate ; + . + +observable:X509CertificateFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "X509CertificateFacet"@en ; + rdfs:comment "A X.509 certificate facet is a grouping of characteristics unique to a public key digital identity certificate conformant to the X.509 PKI (Public Key Infrastructure) standard. "@en ; + sh:property + [ + sh:class observable:X509V3ExtensionsFacet ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:x509v3extensions ; + ] , + [ + sh:class types:Hash ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:issuerHash ; + ] , + [ + sh:class types:Hash ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:subjectHash ; + ] , + [ + sh:class types:Hash ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:thumbprintHash ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isSelfSigned ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:validityNotAfter ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:validityNotBefore ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectPublicKeyExponent ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:issuer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serialNumber ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signature ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signatureAlgorithm ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subject ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectPublicKeyAlgorithm ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectPublicKeyModulus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:X509CertificateFacet ; + . + +observable:X509V3Certificate + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "X509V3Certificate"@en ; + rdfs:comment "An X.509 v3 certificate is a public key digital identity certificate conformant to the X.509 v3 PKI (Public Key Infrastructure) standard. "@en ; + sh:targetClass observable:X509V3Certificate ; + . + +observable:X509V3ExtensionsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "X509V3ExtensionsFacet"@en ; + rdfs:comment "An X.509 v3 certificate extensions facet is a grouping of characteristics unique to a public key digital identity certificate conformant to the X.509 v3 PKI (Public Key Infrastructure) standard."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:privateKeyUsagePeriodNotAfter ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:privateKeyUsagePeriodNotBefore ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:authorityKeyIdentifier ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:basicConstraints ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:certificatePolicies ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:crlDistributionPoints ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extendedKeyUsage ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:inhibitAnyPolicy ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:issuerAlternativeName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:keyUsage ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:nameConstraints ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:policyConstraints ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:policyMappings ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectAlternativeName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectDirectoryAttributes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectKeyIdentifier ; + ] + ; + sh:targetClass observable:X509V3ExtensionsFacet ; + . + +observable:abbreviation + a owl:DatatypeProperty ; + rdfs:label "abbreviation"@en ; + rdfs:comment "The abbreviation of a global flag. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549646(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:accessedDirectory + a owl:ObjectProperty ; + rdfs:label "accessedDirectory"@en ; + rdfs:comment "Directories accessed by the prefetch application during startup."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:accessedFile + a owl:ObjectProperty ; + rdfs:label "accessedFile"@en ; + rdfs:comment "Files (e.g., DLLs and other support files) used by the application during startup."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:accessedTime + a owl:DatatypeProperty ; + rdfs:label "accessedTime"@en ; + rdfs:comment "The date and time at which the Object was accessed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:account + a owl:ObjectProperty ; + rdfs:label "account"@en ; + rdfs:comment "Specifies the account referenced in an event log entry or used to run the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381228(v=vs.85).aspx."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:accountIdentifier + a owl:DatatypeProperty ; + rdfs:label "accountIdentifier"@en ; + rdfs:comment "The unique identifier for the account."@en ; + rdfs:range xsd:string ; + . + +observable:accountIssuer + a owl:ObjectProperty ; + rdfs:label "accountIssuer"@en ; + rdfs:comment "The issuer of this account."@en ; + rdfs:range core:UcoObject ; + . + +observable:accountLogin + a owl:DatatypeProperty ; + rdfs:label "accountLogin"@en ; + rdfs:comment "The login identifier for the digital account."@en ; + rdfs:range xsd:string ; + . + +observable:accountLogonType + a owl:DatatypeProperty ; + rdfs:label "accountLogonType"@en ; + rdfs:comment "Specifies the security logon method required to run the tasks associated with the account. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383013(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:accountRunLevel + a owl:DatatypeProperty ; + rdfs:label "accountRunLevel"@en ; + rdfs:comment "Specifies the permission level of the account that the task will be run at."@en ; + rdfs:range xsd:string ; + . + +observable:accountType + a owl:DatatypeProperty ; + rdfs:label "accountType"@en ; + rdfs:comment "The type of account, for instance bank, phone, application, service, etc."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:AccountTypeVocab + xsd:string + ) ; + ] ; + . + +observable:actionID + a owl:DatatypeProperty ; + rdfs:label "actionID"@en ; + rdfs:comment "Specifies the user-defined identifier for the action. This identifier is used by the Task Scheduler for logging purposes. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380590(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:actionList + a owl:ObjectProperty ; + rdfs:label "actionList"@en ; + rdfs:comment "Specifies a list of actions to be performed by the scheduled task."@en ; + rdfs:range observable:TaskActionType ; + . + +observable:actionType + a owl:DatatypeProperty ; + rdfs:label "actionType"@en ; + rdfs:comment "Specifies the type of the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380596(v=vs.85).aspx."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TaskActionTypeVocab + xsd:string + ) ; + ] ; + . + +observable:activeDirectoryGroups + a owl:DatatypeProperty ; + rdfs:label "activeDirectoryGroups"@en ; + rdfs:range xsd:string ; + . + +observable:adapterName + a owl:DatatypeProperty ; + rdfs:label "adapterName"@en ; + rdfs:comment "Specifies the name of the network adapter used by the network interface."@en ; + rdfs:range xsd:string ; + . + +observable:addressOfEntryPoint + a owl:DatatypeProperty ; + rdfs:label "addressOfEntryPoint"@en ; + rdfs:comment "Specifies the address of the entry point relative to the image base when the executable is loaded into memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:addressValue + a owl:DatatypeProperty ; + rdfs:label "addressValue"@en ; + rdfs:comment "The value of an address."@en ; + rdfs:range xsd:string ; + . + +observable:advertisingID + a owl:DatatypeProperty ; + rdfs:label "advertisingID"@en ; + rdfs:comment "Advertising ID as a UUID. [based on https://developer.android.com/reference/androidx/ads/identifier/AdvertisingIdInfo]"@en ; + rdfs:range xsd:string ; + . + +observable:allocationStatus + a owl:DatatypeProperty ; + rdfs:label "allocationStatus"@en ; + rdfs:comment "The allocation status of a file."@en ; + rdfs:range xsd:string ; + . + +observable:alternateDataStreams + a owl:ObjectProperty ; + rdfs:label "alternateDataStreams"@en ; + rdfs:range observable:AlternateDataStream ; + . + +observable:androidFingerprint + a owl:DatatypeProperty ; + rdfs:label "androidFingerprint"@en ; + rdfs:comment "A string that uniquely identifies a build of the Android operating system. [based on https://developer.android.com/reference/android/os/Build#FINGERPRINT]"@en ; + rdfs:range xsd:string ; + . + +observable:androidID + a owl:DatatypeProperty ; + rdfs:label "androidID"@en ; + rdfs:comment "A 64-bit number (expressed as a hexadecimal string), unique to each combination of app-signing key, user, and device. [based on https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID]"@en ; + rdfs:range xsd:hexBinary ; + . + +observable:androidVersion + a owl:DatatypeProperty ; + rdfs:label "androidVersion"@en ; + rdfs:comment "The user-visible version string. E.g., '1.0' or '3.4b5' or 'bananas'. This field is an opaque string. Do not assume that its value has any particular structure or that values of RELEASE from different releases can be somehow ordered. [based on https://developer.android.com/reference/android/os/Build.VERSION#RELEASE]"@en ; + rdfs:range xsd:string ; + . + +observable:antennaHeight + a owl:DatatypeProperty ; + rdfs:label "antennaHeight"@en ; + rdfs:comment "The height (in meters) of the antenna from the ground."@en ; + rdfs:range xsd:decimal ; + . + +observable:application + a owl:ObjectProperty ; + rdfs:label "application"@en ; + rdfs:comment "The application associated with this object."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:applicationFileName + a owl:DatatypeProperty ; + rdfs:label "applicationFileName"@en ; + rdfs:comment "Name of the executable of the prefetch file."@en ; + rdfs:range xsd:string ; + . + +observable:applicationIdentifier + a owl:DatatypeProperty ; + rdfs:label "applicationIdentifier"@en ; + rdfs:range xsd:string ; + . + +observable:archiveType + a owl:DatatypeProperty ; + rdfs:label "archiveType"@en ; + rdfs:comment "The type of a file archive, e.g. ZIP, GZIP or RAR."@en ; + rdfs:range xsd:string ; + . + +observable:arguments + a owl:DatatypeProperty ; + rdfs:label "arguments"@en ; + rdfs:comment "A list of arguments utilized in initiating the process."@en ; + rdfs:range xsd:string ; + . + +observable:asHandle + a owl:DatatypeProperty ; + rdfs:label "asHandle"@en ; + rdfs:range xsd:string ; + . + +observable:aslrEnabled + a owl:DatatypeProperty ; + rdfs:label "aslrEnabled"@en ; + rdfs:range xsd:boolean ; + . + +observable:attendant + a owl:ObjectProperty ; + rdfs:label "attendant"@en ; + rdfs:comment "The attendants of the event."@en ; + rdfs:range identity:Identity ; + . + +observable:audioType + a owl:DatatypeProperty ; + rdfs:label "audioType"@en ; + rdfs:comment "The type of a audio. For example: music or speech."@en ; + rdfs:range xsd:string ; + . + +observable:authorityKeyIdentifier + a owl:DatatypeProperty ; + rdfs:label "authorityKeyIdentifier"@en ; + rdfs:range xsd:string ; + . + +observable:availableRam + a owl:DatatypeProperty ; + rdfs:label "availableRam"@en ; + rdfs:comment "Specifies the amount of physical memory available on the system, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:azimuth + a owl:DatatypeProperty ; + rdfs:label "azimuth"@en ; + rdfs:comment "The median rotation in degrees around a vertical axis of the cell antenna sector accessed."@en ; + rdfs:range xsd:decimal ; + . + +observable:baseOfCode + a owl:DatatypeProperty ; + rdfs:label "baseOfCode"@en ; + rdfs:comment "Specifies the address that is relative to the image base of the beginning-of-code section when it is loaded into memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:baseStation + a owl:DatatypeProperty ; + rdfs:label "baseStation"@en ; + rdfs:comment "The base station."@en ; + rdfs:range xsd:string ; + . + +observable:basicConstraints + a owl:DatatypeProperty ; + rdfs:label "basicConstraints"@en ; + rdfs:range xsd:string ; + . + +observable:bcc + a owl:ObjectProperty ; + rdfs:label "bcc"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:binary + a owl:ObjectProperty ; + rdfs:label "binary"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:biosDate + a owl:DatatypeProperty ; + rdfs:label "biosDate"@en ; + rdfs:comment "Specifies the date of the BIOS (e.g. the datestamp of the BIOS revision)."@en ; + rdfs:range xsd:dateTime ; + . + +observable:biosManufacturer + a owl:DatatypeProperty ; + rdfs:label "biosManufacturer"@en ; + rdfs:comment "Specifies the manufacturer of the BIOS."@en ; + rdfs:range xsd:string ; + . + +observable:biosReleaseDate + a owl:DatatypeProperty ; + rdfs:label "biosReleaseDate"@en ; + rdfs:comment "Specifies the date the BIOS was released."@en ; + rdfs:range xsd:dateTime ; + . + +observable:biosSerialNumber + a owl:DatatypeProperty ; + rdfs:label "biosSerialNumber"@en ; + rdfs:comment "Specifies the serial number of the BIOS."@en ; + rdfs:range xsd:string ; + . + +observable:biosVersion + a owl:DatatypeProperty ; + rdfs:label "biosVersion"@en ; + rdfs:comment "Specifies the version of the BIOS."@en ; + rdfs:range xsd:string ; + . + +observable:bitRate + a owl:DatatypeProperty ; + rdfs:label "bitRate"@en ; + rdfs:comment "The bitrate of the audio in bits per second."@en ; + rdfs:range xsd:integer ; + . + +observable:bitness + a owl:DatatypeProperty ; + rdfs:label "bitness"@en ; + rdfs:comment "Specifies the bitness of the operating system (i.e. 32 or 64). Note that this is potentially different from the word size of the underlying hardware or CPU. A 32-bit operating system can be installed on a machine running a 64-bit processor."@en ; + rdfs:range xsd:string ; + . + +observable:bitsPerPixel + a owl:DatatypeProperty ; + rdfs:label "bitsPerPixel"@en ; + rdfs:range xsd:integer ; + . + +observable:blockType + a owl:DatatypeProperty ; + rdfs:label "blockType"@en ; + rdfs:comment "The blockType property specifies the block type of a particular memory object."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:MemoryBlockTypeVocab + xsd:string + ) ; + ] ; + . + +observable:bluetoothDeviceName + a owl:DatatypeProperty ; + rdfs:label "bluetoothDeviceName"@en ; + rdfs:comment "Name configured withing Bluetooth settings on a device."@en ; + rdfs:range xsd:string ; + . + +observable:body + a owl:DatatypeProperty ; + rdfs:label "body"@en ; + rdfs:range xsd:string ; + . + +observable:bodyMultipart + a owl:ObjectProperty ; + rdfs:label "bodyMultipart"@en ; + rdfs:comment "A list of the MIME parts that make up the email body. This field MAY only be used if isMultipart is true."@en ; + rdfs:range observable:MimePartType ; + . + +observable:bodyRaw + a owl:ObjectProperty ; + rdfs:label "bodyRaw"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:bookmarkPath + a owl:DatatypeProperty ; + rdfs:label "bookmarkPath"@en ; + rdfs:comment "The folder containing the bookmark."@en ; + rdfs:range xsd:string ; + . + +observable:browserInformation + a owl:ObjectProperty ; + rdfs:label "Browser Information"@en ; + rdfs:comment "Specifies information about the particular Web Browser."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:browserUserProfile + a owl:DatatypeProperty ; + rdfs:label "Browser User Profile"@en ; + rdfs:comment "Specifies the web browser user profile for which the URL history entry was created."@en ; + rdfs:range xsd:string ; + . + +observable:byteOrder + a owl:DatatypeProperty ; + rdfs:label "byteOrder"@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:EndiannessTypeVocab + xsd:string + ) ; + ] ; + . + +observable:byteStringValue + a owl:DatatypeProperty ; + rdfs:label "byteStringValue"@en ; + rdfs:comment "Specifies the raw, byte-string representation of the extracted string."@en ; + rdfs:range xsd:base64Binary ; + . + +observable:callType + a owl:DatatypeProperty ; + rdfs:label "callType"@en ; + rdfs:comment "The type of a phone call,for example incoming, outgoing, missed."@en ; + rdfs:range xsd:string ; + . + +observable:camera + a owl:ObjectProperty ; + rdfs:label "camera"@en ; + rdfs:comment "The name/make of the camera that was used for taking the picture."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:canEscalatePrivs + a owl:DatatypeProperty ; + rdfs:label "canEscalatePrivs"@en ; + rdfs:range xsd:boolean ; + . + +observable:captureCellSite + a owl:ObjectProperty ; + rdfs:label "captureCellSite"@en ; + rdfs:comment "Specifies the cell site accessed."@en ; + rdfs:range observable:CellSite ; + . + +observable:carrier + a owl:ObjectProperty ; + rdfs:label "carrier"@en ; + rdfs:comment "Telecommunications service provider that sold the SIM card."@en ; + rdfs:range identity:Identity ; + . + +observable:categories + a owl:DatatypeProperty ; + rdfs:label "categories"@en ; + rdfs:comment "Categories applied to the object."@en ; + rdfs:range xsd:string ; + . + +observable:cc + a owl:ObjectProperty ; + rdfs:label "cc"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:cellSiteCountryCode + a owl:DatatypeProperty ; + rdfs:label "cellSiteCountryCode"@en ; + rdfs:comment "The country code represents the country of the cell site. For GSM, this is the Mobile Country Code (MCC)."@en ; + rdfs:range xsd:string ; + . + +observable:cellSiteIdentifier + a owl:DatatypeProperty ; + rdfs:label "cellSiteIdentifier"@en ; + rdfs:comment "Specifies the unique number used to identify each Cell Site within a location area code."@en ; + rdfs:range xsd:string ; + . + +observable:cellSiteLocationAreaCode + a owl:DatatypeProperty ; + rdfs:label "cellSiteLocationAreaCode"@en ; + rdfs:comment "The location area code is a unique number of current location area of the cell site. A location area is a set of cell site that are grouped together to optimize signalling. For GSM, this is the LAC."@en ; + rdfs:range xsd:string ; + . + +observable:cellSiteNetworkCode + a owl:DatatypeProperty ; + rdfs:label "cellSiteNetworkCode"@en ; + rdfs:comment "This code identifies the mobile operator of the cell site. For GSM, this is the Mobile Network Code (MNC) and for CMDA this is the network identifier (NID)."@en ; + rdfs:range xsd:string ; + . + +observable:cellSiteType + a owl:DatatypeProperty ; + rdfs:label "cellSiteType"@en ; + rdfs:comment "Specifies the technology used by the Cell Site (e.g., GSM, CDMA, or LTE)."@en ; + rdfs:range xsd:string ; + . + +observable:certificateIssuer + a owl:ObjectProperty ; + rdfs:label "certificateIssuer"@en ; + rdfs:range identity:Identity ; + . + +observable:certificatePolicies + a owl:DatatypeProperty ; + rdfs:label "certificatePolicies"@en ; + rdfs:range xsd:string ; + . + +observable:certificateSubject + a owl:ObjectProperty ; + rdfs:label "certificateSubject"@en ; + rdfs:range core:UcoObject ; + . + +observable:characteristics + a owl:DatatypeProperty ; + rdfs:label "characteristics"@en ; + rdfs:comment "Specifies the flags that indicate the file’s characteristics."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:checksum + a owl:DatatypeProperty ; + rdfs:label "checksum"@en ; + rdfs:comment "Specifies the checksum of the PE binary."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:clockSetting + a owl:DatatypeProperty ; + rdfs:label "clockSetting"@en ; + rdfs:comment "The generalizedTime value on the mobile device when it was processed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:clusterSize + a owl:DatatypeProperty ; + rdfs:label "clusterSize"@en ; + rdfs:comment "The size of cluster allocation units in a file system."@en ; + rdfs:range xsd:integer ; + . + +observable:columnName + a owl:DatatypeProperty ; + rdfs:label "columnName"@en ; + rdfs:range xsd:string ; + . + +observable:comClassID + a owl:DatatypeProperty ; + rdfs:label "comClassID"@en ; + rdfs:comment "Specifies the ID of the COM action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380613(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:comData + a owl:DatatypeProperty ; + rdfs:label "comData"@en ; + rdfs:comment "Specifies the data associated with the COM handler. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380613(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:comment + a owl:DatatypeProperty ; + rdfs:label "comment"@en ; + rdfs:range xsd:string ; + . + +observable:compressionMethod + a owl:DatatypeProperty ; + rdfs:label "compressionMethod"@en ; + rdfs:comment "The algorithm used to compress the data."@en ; + rdfs:range xsd:string ; + . + +observable:compressionRatio + a owl:DatatypeProperty ; + rdfs:label "compressionRatio"@en ; + rdfs:comment "The compression ratio of the compressed data."@en ; + rdfs:range xsd:decimal ; + . + +observable:contact + a owl:ObjectProperty ; + rdfs:label "contact"@en ; + rdfs:comment "Contact specifies information characterizing contact details for a single entity."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:contactAddress + a owl:ObjectProperty ; + rdfs:label "contactAddress"@en ; + rdfs:comment "Contact address specifies information characterizing a geolocation address of a contact entity."@en ; + rdfs:range observable:ContactAddress ; + . + +observable:contactAddressScope + a owl:DatatypeProperty ; + rdfs:label "contactAddressScope"@en ; + rdfs:comment "Contact address scope specifies the relevant scope (home, work, school, etc) for a geolocation address of a contact entity."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactAddressScopeVocab + ) ; + ] ; + . + +observable:contactAffiliation + a owl:ObjectProperty ; + rdfs:label "contactAffiliation"@en ; + rdfs:comment "Contact affiliation specifies information characterizing details of an organizational affiliation for a single contact entity."@en ; + rdfs:range observable:ContactAffiliation ; + . + +observable:contactEmail + a owl:ObjectProperty ; + rdfs:label "contactEmail"@en ; + rdfs:comment "Contact email specifies information characterizing details for contacting a contact entity by email."@en ; + rdfs:range observable:ContactEmail ; + . + +observable:contactEmailScope + a owl:DatatypeProperty ; + rdfs:label "contactEmailScope"@en ; + rdfs:comment "Contact email scope specifies the relevant scope (home, work, school, etc) of details for contacting a contact entity by email."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactEmailScopeVocab + ) ; + ] ; + . + +observable:contactGroup + a owl:DatatypeProperty ; + rdfs:label "contactGroup"@en ; + rdfs:comment "Contact group specifies the name/tag of a particular named/tagged grouping of contacts."@en ; + rdfs:range xsd:string ; + . + +observable:contactID + a owl:DatatypeProperty ; + rdfs:label "contactID"@en ; + rdfs:comment "Specifies an ID for the contact."@en ; + rdfs:range xsd:string ; + . + +observable:contactMessaging + a owl:ObjectProperty ; + rdfs:label "contactMessaging"@en ; + rdfs:comment "Contact messaging specifies information characterizing details for contacting a contact entity by digital messaging."@en ; + rdfs:range observable:ContactMessaging ; + . + +observable:contactMessagingPlatform + a owl:ObjectProperty ; + rdfs:label "contactMessagingPlatform"@en ; + rdfs:comment "A contact messaging platform specifies a digital messaging platform associated with a contact."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:contactNote + a owl:DatatypeProperty ; + rdfs:label "contactNote"@en ; + rdfs:comment "Contact note specifies a comment/note associated with a given contact."@en ; + rdfs:range xsd:string ; + . + +observable:contactOrganization + a owl:ObjectProperty ; + rdfs:label "contactOrganization"@en ; + rdfs:comment "The name of the organization a contact works for or is assocciated with."@en ; + rdfs:range identity:Organization ; + . + +observable:contactPhone + a owl:ObjectProperty ; + rdfs:label "contactPhone"@en ; + rdfs:comment "Contact phone specifies information characterizing details for contacting a contact entity by telephone."@en ; + rdfs:range observable:ContactPhone ; + . + +observable:contactPhoneNumber + a owl:ObjectProperty ; + rdfs:label "contactPhoneNumber"@en ; + rdfs:comment "Contact phone number specifies a telephone service account number for contacting a contact entity by telephone."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:contactPhoneScope + a owl:DatatypeProperty ; + rdfs:label "contactPhoneScope"@en ; + rdfs:comment "Contact phone scope specifies the relevant scope (home, work, school, etc) of details for contacting a contact entity by telephone."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactPhoneScopeVocab + ) ; + ] ; + . + +observable:contactProfile + a owl:ObjectProperty ; + rdfs:label "contactProfile"@en ; + rdfs:comment "Contact profile specifies information characterizing details for contacting a contact entity by online service."@en ; + rdfs:range observable:ContactProfile ; + . + +observable:contactProfilePlatform + a owl:ObjectProperty ; + rdfs:label "contactProfilePlatform"@en ; + rdfs:comment "A contact profile platform specifies an online service platform associated with a contact."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:contactSIP + a owl:ObjectProperty ; + rdfs:label "contactSIP"@en ; + rdfs:comment "Contact SIP specifies information characterizing details for contacting a contact entity by Session Initiation Protocol (SIP)."@en ; + rdfs:range observable:ContactSIP ; + . + +observable:contactSIPScope + a owl:DatatypeProperty ; + rdfs:label "contactSIPScope"@en ; + rdfs:comment "Contact SIP scope specifies the relevant scope (home, work, school, etc) of details for contacting a contact entity by Session Initiation Protocol (SIP)."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactSIPScopeVocab + ) ; + ] ; + . + +observable:contactURL + a owl:ObjectProperty ; + rdfs:label "contactURL"@en ; + rdfs:comment "Contact URL specifies information characterizing details for contacting a contact entity by Uniform Resource Locator (URL)."@en ; + rdfs:range observable:ContactURL ; + . + +observable:contactURLScope + a owl:DatatypeProperty ; + rdfs:label "contactURLScope"@en ; + rdfs:comment "Contact url scope specifies the relevant scope (homepage, home, work, school, etc) of details for contacting a contact entity by Uniform Resource Locator (URL)."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactURLScopeVocab + ) ; + ] ; + . + +observable:contentDisposition + a owl:DatatypeProperty ; + rdfs:label "contentDisposition"@en ; + rdfs:range xsd:string ; + . + +observable:contentRecoveredStatus + a owl:DatatypeProperty ; + rdfs:label "contentRecoveredStatus"@en ; + rdfs:comment "Specifies the recoverability status of the content of an object."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:RecoveredObjectStatusVocab + xsd:string + ) ; + ] ; + . + +observable:contentType + a owl:DatatypeProperty ; + rdfs:label "contentType"@en ; + rdfs:range xsd:string ; + . + +observable:context + a owl:DatatypeProperty ; + rdfs:label "context"@en ; + rdfs:range xsd:string ; + . + +observable:controlCode + a owl:DatatypeProperty ; + rdfs:label "controlCode"@en ; + rdfs:comment "Specifies the actual control code that was sent to the observable object."@en ; + rdfs:range xsd:string ; + . + +observable:cookieDomain + a owl:ObjectProperty ; + rdfs:label "cookieDomain"@en ; + rdfs:comment "The domain for which the cookie is stored, for example nfi.minjus.nl."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:cookieName + a owl:DatatypeProperty ; + rdfs:label "cookieName"@en ; + rdfs:comment "The name of the cookie."@en ; + rdfs:range xsd:string ; + . + +observable:cookiePath + a owl:DatatypeProperty ; + rdfs:label "cookiePath"@en ; + rdfs:comment "String representation of the path of the cookie."@en ; + rdfs:range xsd:string ; + . + +observable:cpeid + a owl:DatatypeProperty ; + rdfs:label "cpeid"@en ; + rdfs:comment "Specifies the Common Platform Enumeration identifier for the software."@en ; + rdfs:range xsd:string ; + . + +observable:cpu + a owl:DatatypeProperty ; + rdfs:label "cpu"@en ; + rdfs:comment "Specifies the name of the CPU used by the system."@en ; + rdfs:range xsd:string ; + . + +observable:cpuFamily + a owl:DatatypeProperty ; + rdfs:label "cpuFamily"@en ; + rdfs:comment "Specifies the name of the CPU family used by the system."@en ; + rdfs:range xsd:string ; + . + +observable:creationDate + a owl:DatatypeProperty ; + rdfs:label "creationDate"@en ; + rdfs:comment "Specifies the date in which the registered domain was created."@en ; + rdfs:range xsd:dateTime ; + . + +observable:creationFlags + a owl:DatatypeProperty ; + rdfs:label "creationFlags"@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:creationTime + a owl:DatatypeProperty ; + rdfs:label "creationTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:creator + a owl:ObjectProperty ; + rdfs:label "creator"@en ; + rdfs:comment "Specifies the name of the creator of the registry key."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:creatorUser + a owl:ObjectProperty ; + rdfs:label "creatorUser"@en ; + rdfs:comment "The user that created/owns the process."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:crlDistributionPoints + a owl:DatatypeProperty ; + rdfs:label "crlDistributionPoints"@en ; + rdfs:range xsd:string ; + . + +observable:currentSystemDate + a owl:DatatypeProperty ; + rdfs:label "currentSystemDate"@en ; + rdfs:comment "Specifies the current date on the system."@en ; + rdfs:range xsd:dateTime ; + . + +observable:currentWorkingDirectory + a owl:DatatypeProperty ; + rdfs:label "currentWorkingDirectory"@en ; + rdfs:range xsd:string ; + . + +observable:cyberAction + a owl:ObjectProperty ; + rdfs:label "cyberAction"@en ; + rdfs:comment "The action taken in response to the event."@en ; + rdfs:range observable:ObservableAction ; + . + +observable:data + a owl:DatatypeProperty ; + rdfs:label "data"@en ; + rdfs:range xsd:string ; + . + +observable:dataPayload + a owl:DatatypeProperty ; + rdfs:label "dataPayload"@en ; + rdfs:range xsd:string ; + . + +observable:dataPayloadReferenceURL + a owl:ObjectProperty ; + rdfs:label "dataPayloadReferenceURL"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:dataType + a owl:DatatypeProperty ; + rdfs:label "dataType"@en ; + rdfs:range xsd:string ; + . + +observable:depEnabled + a owl:DatatypeProperty ; + rdfs:label "depEnabled"@en ; + rdfs:range xsd:boolean ; + . + +observable:descriptions + a owl:DatatypeProperty ; + rdfs:label "descriptions"@en ; + rdfs:range xsd:string ; + . + +observable:destination + a owl:DatatypeProperty ; + rdfs:label "destination"@en ; + rdfs:comment "The destination of a global flag. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549646(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:destinationFlags + a owl:DatatypeProperty ; + rdfs:label "destinationFlags"@en ; + rdfs:comment "Specifies the destination TCP flags."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:destinationPort + a owl:DatatypeProperty ; + rdfs:label "destinationPort"@en ; + rdfs:comment "Specifies the destination port used in the connection, as an integer in the range of 0 - 65535."@en ; + rdfs:range xsd:integer ; + . + +observable:deviceType + a owl:DatatypeProperty ; + rdfs:label "deviceType"@en ; + rdfs:range xsd:string ; + . + +observable:dhcpLeaseExpires + a owl:DatatypeProperty ; + rdfs:label "dhcpLeaseExpires"@en ; + rdfs:comment "Specifies the date/time that the DHCP lease obtained on the network interface expires."@en ; + rdfs:range xsd:dateTime ; + . + +observable:dhcpLeaseObtained + a owl:DatatypeProperty ; + rdfs:label "dhcpLeaseObtained"@en ; + rdfs:comment "Specifies the date/time that the DHCP lease was obtained on the network interface."@en ; + rdfs:range xsd:dateTime ; + . + +observable:dhcpServer + a owl:ObjectProperty ; + rdfs:label "dhcpServer"@en ; + rdfs:comment "Specifies the list of DHCP server IP Addresses used by the network interface."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:diskPartitionType + a owl:DatatypeProperty ; + rdfs:label "diskPartitionType"@en ; + rdfs:comment "Specifies the type of partition being characterized."@en ; + rdfs:range xsd:string ; + . + +observable:diskSize + a owl:DatatypeProperty ; + rdfs:label "diskSize"@en ; + rdfs:comment "The size of the disk, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:diskType + a owl:DatatypeProperty ; + rdfs:label "diskType"@en ; + rdfs:comment "The type of disk being characterized, e.g., removable."@en ; + rdfs:range xsd:string ; + . + +observable:displayName + a owl:DatatypeProperty ; + rdfs:label "displayName"@en ; + rdfs:comment "Display name specifies the name to display for some entity within a user interface."@en ; + rdfs:range xsd:string ; + . + +observable:dllCharacteristics + a owl:DatatypeProperty ; + rdfs:label "dllCharacteristics"@en ; + rdfs:comment "Specifies the flags that characterize the PE binary."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:dnssec + a owl:DatatypeProperty ; + rdfs:label "dnssec"@en ; + rdfs:comment "Specifies the DNSSEC property associated with a Whois entry. Acceptable values are: 'Signed' or 'Unsigned'."@en ; + rdfs:range vocabulary:WhoisDNSSECTypeVocab ; + . + +observable:documentInformationDictionary + a owl:ObjectProperty ; + rdfs:label "documentInformationDictionary"@en ; + rdfs:range types:ControlledDictionary ; + . + +observable:domain + a owl:DatatypeProperty ; + rdfs:label "domain"@en ; + rdfs:comment "The domain(s) that the system belongs to."@en ; + rdfs:range xsd:string ; + . + +observable:domainID + a owl:DatatypeProperty ; + rdfs:label "domainID"@en ; + rdfs:comment "Specifies the domain id for the domain associated with a Whois entry."@en ; + rdfs:range xsd:string ; + . + +observable:domainName + a owl:ObjectProperty ; + rdfs:label "domainName"@en ; + rdfs:comment "Specifies the corresponding domain name for a whois entry."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:driveLetter + a owl:DatatypeProperty ; + rdfs:label "driveLetter"@en ; + rdfs:comment "Specifies the drive letter of a windows volume."@en ; + rdfs:range xsd:string ; + . + +observable:driveType + a owl:DatatypeProperty ; + rdfs:label "driveType"@en ; + rdfs:comment "Specifies the drive type of a windows volume."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:WindowsDriveTypeVocab + xsd:string + ) ; + ] ; + . + +observable:dst + a owl:ObjectProperty ; + rdfs:label "dst"@en ; + rdfs:comment "Specifies the destination(s) of the network connection."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:dstBytes + a owl:DatatypeProperty ; + rdfs:label "dstBytes"@en ; + rdfs:range xsd:integer ; + . + +observable:dstPackets + a owl:DatatypeProperty ; + rdfs:label "dstPackets"@en ; + rdfs:range xsd:integer ; + . + +observable:dstPayload + a owl:ObjectProperty ; + rdfs:label "dstPayload"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:duration + a owl:DatatypeProperty ; + rdfs:label "duration"@en ; + rdfs:comment "The duration of the phone call in seconds."@en ; + rdfs:range xsd:integer ; + . + +observable:effectiveGroup + a owl:DatatypeProperty ; + rdfs:label "effectiveGroup"@en ; + rdfs:comment "Specifies the name of the effective group used in the user session."@en ; + rdfs:range xsd:string ; + . + +observable:effectiveGroupID + a owl:DatatypeProperty ; + rdfs:label "effectiveGroupID"@en ; + rdfs:comment "Specifies the effective group ID of the group used in the user session."@en ; + rdfs:range xsd:string ; + . + +observable:effectiveUser + a owl:ObjectProperty ; + rdfs:label "effectiveUser"@en ; + rdfs:comment "Specifies the effective user details used in the user session."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:elevation + a owl:DatatypeProperty ; + rdfs:label "elevation"@en ; + rdfs:comment "The angle in degrees of the antenna from the local horizontal plane."@en ; + rdfs:range xsd:decimal ; + . + +observable:emailAddress + a owl:ObjectProperty ; + rdfs:label "emailAddress"@en ; + rdfs:comment "An email address."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:encoding + a owl:DatatypeProperty ; + rdfs:label "Encoding"@en ; + rdfs:comment "The encoding method used for the extracted string."@en ; + rdfs:range xsd:string ; + . + +observable:encodingMethod + a owl:DatatypeProperty ; + rdfs:label "encodingMethod"@en ; + rdfs:range xsd:string ; + . + +observable:encryptionIV + a owl:DatatypeProperty ; + rdfs:label "encryptionIV"@en ; + rdfs:range xsd:string ; + . + +observable:encryptionKey + a owl:DatatypeProperty ; + rdfs:label "encryptionKey"@en ; + rdfs:range xsd:string ; + . + +observable:encryptionMethod + a owl:DatatypeProperty ; + rdfs:label "encryptionMethod"@en ; + rdfs:range xsd:string ; + . + +observable:encryptionMode + a owl:DatatypeProperty ; + rdfs:label "encryptionMode"@en ; + rdfs:range xsd:string ; + . + +observable:endTime + a owl:DatatypeProperty ; + rdfs:label "endTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:englishTranslation + a owl:DatatypeProperty ; + rdfs:label "englishTranslation"@en ; + rdfs:comment "Specifies the English translation of the string, if it is not written in English."@en ; + rdfs:range xsd:string ; + . + +observable:entropy + a owl:DatatypeProperty ; + rdfs:label "entropy"@en ; + rdfs:comment "Shannon entropy (a measure of randomness) of the data."@en ; + rdfs:range xsd:decimal ; + . + +observable:entryID + a owl:DatatypeProperty ; + rdfs:label "entryID"@en ; + rdfs:comment "A unique identifier for the file within the filesystem."@en ; + rdfs:range xsd:integer ; + . + +observable:environmentVariables + a owl:ObjectProperty ; + rdfs:label "environmentVariables"@en ; + rdfs:comment "A list of environment variables associated with the process. "@en ; + rdfs:range types:Dictionary ; + . + +observable:eventRecordDevice + a owl:ObjectProperty ; + rdfs:label "device"@en ; + rdfs:comment "The device on which the log entry was generated."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:eventRecordID + a owl:DatatypeProperty ; + rdfs:label "eventRecordID"@en ; + rdfs:comment "The identifier of the event record."@en ; + rdfs:range xsd:string ; + . + +observable:eventRecordRaw + a owl:DatatypeProperty ; + rdfs:label "eventRecordRaw"@en ; + rdfs:comment "The complete raw content of the event record."@en ; + rdfs:range xsd:string ; + . + +observable:eventRecordServiceName + a owl:DatatypeProperty ; + rdfs:label "eventServiceName"@en ; + rdfs:comment "The service that generated the event record. A single application can have multiple services generating event records."@en ; + rdfs:range xsd:string ; + . + +observable:eventRecordText + a owl:DatatypeProperty ; + rdfs:label "eventRecordText"@en ; + rdfs:comment "The textual representation of the event."@en ; + rdfs:range xsd:string ; + . + +observable:eventStatus + a owl:DatatypeProperty ; + rdfs:label "eventStatus"@en ; + rdfs:comment "The status of the event, for instance accepted, pending or cancelled."@en ; + rdfs:range xsd:string ; + . + +observable:eventType + a owl:DatatypeProperty ; + rdfs:label "eventType"@en ; + rdfs:comment "The type of the event, for example 'information', 'warning' or 'error'."@en ; + rdfs:range xsd:string ; + . + +observable:execArguments + a owl:DatatypeProperty ; + rdfs:label "execArguments"@en ; + rdfs:comment "Specifies the arguments associated with the command-line operation launched by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380715(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:execProgramHashes + a owl:ObjectProperty ; + rdfs:label "execProgramHashes"@en ; + rdfs:comment "Specifies the hashes of the executable file launched by the action."@en ; + rdfs:range types:Hash ; + . + +observable:execProgramPath + a owl:DatatypeProperty ; + rdfs:label "execProgramPath"@en ; + rdfs:comment "Specifies the path to the executable file launched by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380715(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:execWorkingDirectory + a owl:DatatypeProperty ; + rdfs:label "execWorkingDirectory"@en ; + rdfs:comment "Specifies the directory that contains either the executable file or the files that are used by the executable file launched by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380715(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:exifData + a owl:ObjectProperty ; + rdfs:label "exifData"@en ; + rdfs:range types:ControlledDictionary ; + . + +observable:exitCode + a owl:DatatypeProperty ; + rdfs:label "exitCode"@en ; + rdfs:comment "Specifies the last exit code of the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381245(v=vs.85).aspx."@en ; + rdfs:range xsd:integer ; + . + +observable:exitStatus + a owl:DatatypeProperty ; + rdfs:label "exitStatus"@en ; + rdfs:comment "A small number passed from the process to the parent process when it has finished executing. In general, 0 indicates successful termination, any other number indicates a failure."@en ; + rdfs:range xsd:integer ; + . + +observable:exitTime + a owl:DatatypeProperty ; + rdfs:label "exitTime"@en ; + rdfs:comment "The time at which the process exited."@en ; + rdfs:range xsd:dateTime ; + . + +observable:expirationDate + a owl:DatatypeProperty ; + rdfs:label "expirationDate"@en ; + rdfs:comment "Specifies the date in which the registered domain will expire."@en ; + rdfs:range xsd:dateTime ; + . + +observable:expirationTime + a owl:DatatypeProperty ; + rdfs:label "expirationTime"@en ; + rdfs:comment "The date and time at which the validity of the object expires."@en ; + rdfs:range xsd:dateTime ; + . + +observable:extDeletionTime + a owl:DatatypeProperty ; + rdfs:label "extDeletionTime"@en ; + rdfs:comment "Specifies the time at which the file represented by an Inode was 'deleted'."@en ; + rdfs:range xsd:dateTime ; + . + +observable:extFileType + a owl:DatatypeProperty ; + rdfs:label "extFileType"@en ; + rdfs:comment "Specifies the EXT file type (FIFO, Directory, Regular file, Symbolic link, etc) for the Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extFlags + a owl:DatatypeProperty ; + rdfs:label "extFlags"@en ; + rdfs:comment "Specifies user flags to further protect (limit its use and modification) the file represented by an Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extHardLinkCount + a owl:DatatypeProperty ; + rdfs:label "extHardLinkCount"@en ; + rdfs:comment "Specifies a count of how many hard links point to an Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extInodeChangeTime + a owl:DatatypeProperty ; + rdfs:label "extInodeChangeTime"@en ; + rdfs:comment "The date and time at which the file Inode metadata was last modified."@en ; + rdfs:range xsd:dateTime ; + . + +observable:extInodeID + a owl:DatatypeProperty ; + rdfs:label "extInodeID"@en ; + rdfs:comment "Specifies a single Inode identifier."@en ; + rdfs:range xsd:integer ; + . + +observable:extPermissions + a owl:DatatypeProperty ; + rdfs:label "extPermissions"@en ; + rdfs:comment "Specifies the read/write/execute permissions for the file represented by an EXT Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extSGID + a owl:DatatypeProperty ; + rdfs:label "extSGID"@en ; + rdfs:comment "Specifies the group ID for the file represented by an Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extSUID + a owl:DatatypeProperty ; + rdfs:label "extSUID"@en ; + rdfs:comment "Specifies the user ID that 'owns' the file represented by an Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extendedKeyUsage + a owl:DatatypeProperty ; + rdfs:label "extendedKeyUsage"@en ; + rdfs:range xsd:string ; + . + +observable:extension + a owl:DatatypeProperty ; + rdfs:label "extension"@en ; + rdfs:comment "The file name extension: everything after the last dot. Not present if the file has no dot in its name."@en ; + rdfs:range xsd:string ; + . + +observable:favoritesCount + a owl:DatatypeProperty ; + rdfs:label "Favorites Count"@en-US ; + rdfs:comment "Specifies the number of times that this profile has favorited a tweet."@en-US ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:fileAlignment + a owl:DatatypeProperty ; + rdfs:label "fileAlignment"@en ; + rdfs:comment "Specifies the factor (in bytes) that is used to align the raw data of sections in the image file."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:fileHeaderHashes + a owl:ObjectProperty ; + rdfs:label "fileHeaderHashes"@en ; + rdfs:comment "Specifies any hashes that were computed for the file header."@en ; + rdfs:range types:Hash ; + . + +observable:fileName + a owl:DatatypeProperty ; + rdfs:label "fileName"@en ; + rdfs:comment "Specifies the name associated with a file in a file system."@en ; + rdfs:range xsd:string ; + . + +observable:filePath + a owl:DatatypeProperty ; + rdfs:label "filePath"@en ; + rdfs:comment "Specifies the file path for the location of a file within a filesystem."@en ; + rdfs:range xsd:string ; + . + +observable:fileSystemType + a owl:DatatypeProperty ; + rdfs:label "fileSystemType"@en ; + rdfs:comment "The specific type of a file system."@en ; + rdfs:range xsd:string ; + . + +observable:firstLoginTime + a owl:DatatypeProperty ; + rdfs:label "firstLoginTime"@en ; + rdfs:comment "The date and time of the first login of the account."@en ; + rdfs:range xsd:dateTime ; + . + +observable:firstName + a owl:DatatypeProperty ; + rdfs:label "firstName"@en ; + rdfs:comment "The first name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:firstRun + a owl:DatatypeProperty ; + rdfs:label "firstRun"@en ; + rdfs:comment "Timestamp of when the prefetch application was first run."@en ; + rdfs:range xsd:dateTime ; + . + +observable:firstVisit + a owl:DatatypeProperty ; + rdfs:label "First Visit Time"@en ; + rdfs:comment "Specifies the date/time that the URL referred to by the URL field was first visited."@en-US ; + rdfs:range xsd:dateTime ; + . + +observable:flags + a owl:DatatypeProperty ; + rdfs:label "flags"@en ; + rdfs:comment "Specifies any flags that modify the behavior of the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381248(v=vs.85).aspx."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TaskFlagVocab + xsd:string + ) ; + ] ; + . + +observable:followersCount + a owl:DatatypeProperty ; + rdfs:label "Followers Count"@en-US ; + rdfs:comment "Specifies the followers count associated with the twitter profile."@en-US ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:format + a owl:DatatypeProperty ; + rdfs:label "format"@en ; + rdfs:comment "The format of the audio. For example: mp3 or flac."@en ; + rdfs:range xsd:string ; + . + +observable:fragment + a owl:DatatypeProperty ; + rdfs:label "fragment"@en ; + rdfs:comment "Fragment pointing to a specific part in the resource."@en ; + rdfs:range xsd:string ; + . + +observable:fragmentIndex + a owl:DatatypeProperty ; + rdfs:label "fragmentIndex"@en ; + rdfs:range xsd:integer ; + . + +observable:freeSpace + a owl:DatatypeProperty ; + rdfs:label "freeSpace"@en ; + rdfs:comment "The amount of free space on the disk, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:friendsCount + a owl:DatatypeProperty ; + rdfs:label "Friends Count"@en-US ; + rdfs:comment "Specifies the friends count associated with the twitter profile."@en-US ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:from + a owl:ObjectProperty ; + rdfs:label "from"@en ; + rdfs:comment "The phone number of the initiating party."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:fromURLVisit + a owl:ObjectProperty ; + rdfs:label "From URL Visit"@en ; + rdfs:comment "Specifies the URL visit origination point (i.e., URL) of the URL captured in the URL history entry, if applicable."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:fullValue + a owl:DatatypeProperty ; + rdfs:label "fullValue"@en ; + rdfs:comment "The full string value of the URL."@en ; + rdfs:range xsd:string ; + . + +observable:geoLocationEntry + a owl:ObjectProperty ; + rdfs:label "geoLocationEntry"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:geolocationAddress + a owl:ObjectProperty ; + rdfs:label "geolocationAddress"@en ; + rdfs:comment "An administrative address for a particular geolocation."@en ; + rdfs:range location:Location ; + . + +observable:gid + a owl:DatatypeProperty ; + rdfs:label "gid"@en ; + rdfs:range xsd:integer ; + . + +observable:globalFlagList + a owl:ObjectProperty ; + rdfs:label "globalFlagList"@en ; + rdfs:comment "A list of global flags. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549557(v=vs.85).aspx."@en ; + rdfs:range observable:GlobalFlagType ; + . + +observable:gpu + a owl:DatatypeProperty ; + rdfs:label "gpu"@en ; + rdfs:comment "Specifies the name of the GPU used by the system."@en ; + rdfs:range xsd:string ; + . + +observable:gpuFamily + a owl:DatatypeProperty ; + rdfs:label "gpuFamily"@en ; + rdfs:comment "Specifies the name of the GPU family used by the system."@en ; + rdfs:range xsd:string ; + . + +observable:groupName + a owl:DatatypeProperty ; + rdfs:label "groupName"@en ; + rdfs:range xsd:string ; + . + +observable:groups + a owl:DatatypeProperty ; + rdfs:label "groups"@en ; + rdfs:range xsd:string ; + . + +observable:hasChanged + a owl:DatatypeProperty ; + rdfs:label "hasChanged"@en ; + rdfs:range xsd:boolean ; + . + +observable:hash + a owl:ObjectProperty ; + rdfs:label "hash"@en ; + rdfs:comment "Hash values of the data."@en ; + rdfs:range types:Hash ; + . + +observable:hashes + a owl:ObjectProperty ; + rdfs:label "hashes"@en ; + rdfs:comment "Specifies any hashes computed over the section."@en ; + rdfs:range types:Hash ; + . + +observable:headerRaw + a owl:ObjectProperty ; + rdfs:label "headerRaw"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:hexadecimalValue + a owl:DatatypeProperty ; + rdfs:label "hexadecimalValue"@en ; + rdfs:comment "The hexadecimal value of a global flag. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549646(v=vs.85).aspx."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:hiveType + a owl:DatatypeProperty ; + rdfs:label "hiveType"@en ; + rdfs:comment "The type of a registry hive."@en ; + rdfs:range xsd:string ; + . + +observable:homeDirectory + a owl:DatatypeProperty ; + rdfs:label "homeDirectory"@en ; + rdfs:range xsd:string ; + . + +observable:horizontalBeamWidth + a owl:DatatypeProperty ; + rdfs:label "horizontalBeamWidth"@en ; + rdfs:comment "The width of the antenna beam in degrees."@en ; + rdfs:range xsd:string ; + . + +observable:host + a owl:ObjectProperty ; + rdfs:label "host"@en ; + rdfs:comment "Domain name or IP address where the resource is located."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:hostname + a owl:DatatypeProperty ; + rdfs:label "hostname"@en ; + rdfs:comment "Specifies the hostname of the system."@en ; + rdfs:range xsd:string ; + . + +observable:httpMesageBodyLength + a owl:DatatypeProperty ; + rdfs:label "httpMesageBodyLength"@en ; + rdfs:comment "Specifies the length of an HTTP message body in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:httpMessageBodyData + a owl:ObjectProperty ; + rdfs:label "httpMessageBodyData"@en ; + rdfs:comment "Specifies the data contained in an HTTP message body."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:httpRequestHeader + a owl:ObjectProperty ; + rdfs:label "httpRequestHeader"@en ; + rdfs:comment "Specifies all of the HTTP header fields that may be found in the HTTP client request"@en ; + rdfs:range types:Dictionary ; + . + +observable:iComHandlerAction + a owl:ObjectProperty ; + rdfs:label "iComHandlerAction"@en ; + rdfs:comment "Specifies the data associated with the task action-fired COM handler."@en ; + rdfs:range observable:IComHandlerActionType ; + . + +observable:iEmailAction + a owl:ObjectProperty ; + rdfs:label "iEmailAction"@en ; + rdfs:comment "Specifies an action that sends an e-mail, which in this context refers to actual email message sent. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380693(v=vs.85).aspx."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:iExecAction + a owl:ObjectProperty ; + rdfs:label "iExecAction"@en ; + rdfs:comment "Specifies an action that executes a command-line operation. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380715(v=vs.85).aspx."@en ; + rdfs:range observable:IExecActionType ; + . + +observable:iShowMessageAction + a owl:ObjectProperty ; + rdfs:label "iShowMessageAction"@en ; + rdfs:comment "Specifies an action that shows a message box when a task is activated. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381302(v=vs.85).aspx."@en ; + rdfs:range observable:IShowMessageActionType ; + . + +observable:icmpCode + a owl:DatatypeProperty ; + rdfs:label "icmpCode"@en ; + rdfs:comment "Specifies the ICMP code byte."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:icmpType + a owl:DatatypeProperty ; + rdfs:label "icmpType"@en ; + rdfs:comment "Specifies the ICMP type byte."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:imageBase + a owl:DatatypeProperty ; + rdfs:label "imageBase"@en ; + rdfs:comment "Specifies the address that is relative to the image base of the beginning-of-data section when it is loaded into memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:imageCompressionMethod + a owl:DatatypeProperty ; + rdfs:label "imageCompressionMethod"@en ; + rdfs:range xsd:string ; + . + +observable:imageName + a owl:DatatypeProperty ; + rdfs:label "imageName"@en ; + rdfs:comment "Specifies the image name for the task."@en ; + rdfs:range xsd:string ; + . + +observable:imageType + a owl:DatatypeProperty ; + rdfs:label "imageType"@en ; + rdfs:comment "The type of the image, e.g. EnCase, RAW or LocalFolder."@en ; + rdfs:range xsd:string ; + . + +observable:impHash + a owl:DatatypeProperty ; + rdfs:label "impHash"@en ; + rdfs:comment "Specifies the special import hash, or ‘imphash’, calculated for the PE Binary based on its imported libraries and functions. "@en ; + rdfs:range xsd:string ; + . + +observable:inReplyTo + a owl:DatatypeProperty ; + rdfs:label "inReplyTo"@en ; + rdfs:comment "One of more unique identifiers for identifying the email(s) this email is a reply to."@en ; + rdfs:range xsd:string ; + . + +observable:inetLocation + a owl:ObjectProperty ; + rdfs:label "Internet Location"@en-US ; + rdfs:comment "Specifies a location on the Internet."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:inhibitAnyPolicy + a owl:DatatypeProperty ; + rdfs:label "inhibitAnyPolicy"@en ; + rdfs:range xsd:string ; + . + +observable:installDate + a owl:DatatypeProperty ; + rdfs:label "installDate"@en ; + rdfs:comment "Specifies the date the operating system or application was installed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:installedVersionHistory + a owl:ObjectProperty ; + rdfs:label "installedVersionHistory"@en ; + rdfs:comment "Specifies the history of installed application version(s)."@en ; + rdfs:range observable:ApplicationVersion ; + . + +observable:interceptedCallState + a owl:DatatypeProperty ; + rdfs:label "interceptedCallState"@en ; + rdfs:comment "State of the call in a Call Detail Record (e.g. idle)."@en ; + rdfs:range xsd:string ; + . + +observable:ip + a owl:ObjectProperty ; + rdfs:label "ip"@en ; + rdfs:comment "Specifies the list of IP addresses used by the network interface."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:ipAddress + a owl:ObjectProperty ; + rdfs:label "ipAddress"@en ; + rdfs:comment "Specifies the corresponding ip address for a whois entry. Usually corresponds to a name server lookup."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:ipGateway + a owl:ObjectProperty ; + rdfs:label "ipGateway"@en ; + rdfs:comment "Specifies the list of IP Gateway IP Addresses used by the network interface."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:ipfix + a owl:ObjectProperty ; + rdfs:label "ipfix"@en ; + rdfs:comment "Specifies any IP Flow Information Export (IPFIX) data for the network traffic flow."@en ; + rdfs:range types:Dictionary ; + . + +observable:isADBRootEnabled + a owl:DatatypeProperty ; + rdfs:label "isADBRootEnabled"@en ; + rdfs:comment "Root access through the Android Debug Bridge (ADB) daemon observed to be enabled. [based on https://developer.android.com/studio/command-line/adb]"@en ; + rdfs:range xsd:boolean ; + . + +observable:isActive + a owl:DatatypeProperty ; + rdfs:label "isActive"@en ; + rdfs:comment "Indicates whether the network connection is still active."@en ; + rdfs:range xsd:boolean ; + . + +observable:isDirectory + a owl:DatatypeProperty ; + rdfs:label "isDirectory"@en ; + rdfs:comment "Specifies whether a file entry represents a directory."@en ; + rdfs:range xsd:boolean ; + . + +observable:isDisabled + a owl:DatatypeProperty ; + rdfs:label "isDisabled"@en ; + rdfs:comment "Is the digital account disabled?"@en ; + rdfs:range xsd:boolean ; + . + +observable:isEnabled + a owl:DatatypeProperty ; + rdfs:label "isEnabled"@en ; + rdfs:comment "Specifies whether the trigger is enabled."@en ; + rdfs:range xsd:boolean ; + . + +observable:isEncrypted + a owl:DatatypeProperty ; + rdfs:label "isEncrypted"@en ; + rdfs:range xsd:boolean ; + . + +observable:isHidden + a owl:DatatypeProperty ; + rdfs:label "isHidden"@en ; + rdfs:comment """The isHidden property specifies whether the process is hidden or not. + """@en ; + rdfs:range xsd:boolean ; + . + +observable:isInjected + a owl:DatatypeProperty ; + rdfs:label "isInjected"@en ; + rdfs:comment "The isInjected property specifies whether or not the particular memory object has had data/code injected into it by another process."@en ; + rdfs:range xsd:boolean ; + . + +observable:isLimitAdTrackingEnabled + a owl:DatatypeProperty ; + rdfs:label "isLimitAdTrackingEnabled"@en ; + rdfs:comment "Limits advertising tracking if enabled. [based on https://developer.android.com/reference/androidx/ads/identifier/AdvertisingIdInfo]"@en ; + rdfs:range xsd:boolean ; + . + +observable:isMapped + a owl:DatatypeProperty ; + rdfs:label "isMapped"@en ; + rdfs:comment "The isMapped property specifies whether or not the particular memory object has been assigned a byte-for-byte correlation with some portion of a file or file-like resource."@en ; + rdfs:range xsd:boolean ; + . + +observable:isMimeEncoded + a owl:DatatypeProperty ; + rdfs:label "isMimeEncoded"@en ; + rdfs:range xsd:boolean ; + . + +observable:isMultipart + a owl:DatatypeProperty ; + rdfs:label "isMultipart"@en ; + rdfs:range xsd:boolean ; + . + +observable:isNamed + a owl:DatatypeProperty ; + rdfs:label "isNamed"@en ; + rdfs:range xsd:boolean ; + . + +observable:isOptimized + a owl:DatatypeProperty ; + rdfs:label "isOptimized"@en ; + rdfs:range xsd:boolean ; + . + +observable:isPrivate + a owl:DatatypeProperty ; + rdfs:label "isPrivate"@en ; + rdfs:comment "Is the event marked as private?"@en ; + rdfs:range xsd:boolean ; + . + +observable:isPrivileged + a owl:DatatypeProperty ; + rdfs:label "isPrivileged"@en ; + rdfs:range xsd:boolean ; + . + +observable:isProtected + a owl:DatatypeProperty ; + rdfs:label "isProtected"@en ; + rdfs:comment "The isProtected property specifies whether or not the particular memory object is protected (read/write only from the process that allocated it)."@en ; + rdfs:range xsd:boolean ; + . + +observable:isRead + a owl:DatatypeProperty ; + rdfs:label "isRead"@en ; + rdfs:range xsd:boolean ; + . + +observable:isSURootEnabled + a owl:DatatypeProperty ; + rdfs:label "isSURootEnabled"@en ; + rdfs:comment "Root access through Linux SU binary observed to be enabled. [based on https://en.wikipedia.org/wiki/Rooting_(Android)]"@en ; + rdfs:range xsd:boolean ; + . + +observable:isSecure + a owl:DatatypeProperty ; + rdfs:label "isSecure"@en ; + rdfs:comment "Is the cookie secure? If the cookie is secure it cannot be delivered over an unencrypted session such as http."@en ; + rdfs:range xsd:boolean ; + . + +observable:isSelfSigned + a owl:DatatypeProperty ; + rdfs:label "isSelfSigned"@en ; + rdfs:range xsd:boolean ; + . + +observable:isServiceAccount + a owl:DatatypeProperty ; + rdfs:label "isServiceAccount"@en ; + rdfs:range xsd:boolean ; + . + +observable:isTLD + a owl:DatatypeProperty ; + rdfs:label "isTLD"@en ; + rdfs:range xsd:boolean ; + . + +observable:isVolatile + a owl:DatatypeProperty ; + rdfs:label "isVolatile"@en ; + rdfs:comment "The isVolatile property specifies whether or not the particular memory object is volatile."@en ; + rdfs:range xsd:boolean ; + . + +observable:issuer + a owl:DatatypeProperty ; + rdfs:label "issuer"@en ; + rdfs:range xsd:string ; + . + +observable:issuerAlternativeName + a owl:DatatypeProperty ; + rdfs:label "issuerAlternativeName"@en ; + rdfs:range xsd:string ; + . + +observable:issuerHash + a owl:ObjectProperty ; + rdfs:label "issuerHash"@en ; + rdfs:comment "A hash calculated on the certificate issuer name."@en ; + rdfs:range types:Hash ; + . + +observable:key + a owl:DatatypeProperty ; + rdfs:label "key"@en ; + rdfs:range xsd:string ; + . + +observable:keyUsage + a owl:DatatypeProperty ; + rdfs:label "keyUsage"@en ; + rdfs:range xsd:string ; + . + +observable:keypadUnlockCode + a owl:DatatypeProperty ; + rdfs:label "keypadUnlockCode"@en ; + rdfs:comment "A code or password set on a device for security that must be entered to gain access to the device."@en ; + rdfs:range xsd:string ; + . + +observable:keywordSearchTerm + a owl:DatatypeProperty ; + rdfs:label "Keyword Search Term"@en ; + rdfs:comment "Specifies a string representing a keyword search term contained within the URL field."@en ; + rdfs:range xsd:string ; + . + +observable:labels + a owl:DatatypeProperty ; + rdfs:label "labels"@en ; + rdfs:comment "Named and colored label."@en ; + rdfs:range xsd:string ; + . + +observable:language + a owl:DatatypeProperty ; + rdfs:label "language"@en ; + rdfs:comment """Specifies the language the string is written in, e.g. English. + For consistency, it is strongly recommended to use the ISO 639-2 language code, if available. Please see http://www.loc.gov/standards/iso639-2/php/code_list.php for a list of ISO 639-2 codes."""@en ; + rdfs:range xsd:string ; + . + +observable:lastLoginTime + a owl:DatatypeProperty ; + rdfs:label "lastLoginTime"@en ; + rdfs:comment "The date and time of the last login of the account."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lastName + a owl:DatatypeProperty ; + rdfs:label "lastName"@en ; + rdfs:comment "The last name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:lastRun + a owl:DatatypeProperty ; + rdfs:label "lastRun"@en ; + rdfs:comment "Timestamp of when the prefetch application was last run."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lastShutdownDate + a owl:DatatypeProperty ; + rdfs:label "lastShutdownDate"@en ; + rdfs:comment "Specifies the date on which the device was last shutdown."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lastTimeContacted + a owl:DatatypeProperty ; + rdfs:label "lastTimeContacted"@en ; + rdfs:comment "Last time contacted specifies the date and time that a particular contact was last contacted."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lastVisit + a owl:DatatypeProperty ; + rdfs:label "Last Visit Time"@en ; + rdfs:comment "Specifies the date/time that the URL referred to by the URL field was last visited."@en ; + rdfs:range xsd:dateTime ; + . + +observable:length + a owl:DatatypeProperty ; + rdfs:label "length"@en ; + rdfs:comment "Specifies the length, in characters, of the extracted string."@en ; + rdfs:range xsd:integer ; + . + +observable:libraryType + a owl:DatatypeProperty ; + rdfs:label "libraryType"@en ; + rdfs:comment "Specifies the type of library being characterized."@en ; + rdfs:range xsd:string ; + . + +observable:listedCount + a owl:DatatypeProperty ; + rdfs:label "listedCount"@en ; + rdfs:comment "Specifies the number of public lists that this profile is associated with."@en ; + rdfs:range xsd:integer ; + . + +observable:loaderFlags + a owl:DatatypeProperty ; + rdfs:label "loaderFlags"@en ; + rdfs:comment "Specifies the reserved loader flags"@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:localTime + a owl:DatatypeProperty ; + rdfs:label "localTime"@en ; + rdfs:comment "Specifies the local time on the system."@en ; + rdfs:range xsd:dateTime ; + . + +observable:location + a owl:ObjectProperty ; + rdfs:label "location"@en ; + rdfs:comment "An associated location."@en ; + rdfs:range location:Location ; + . + +observable:loginTime + a owl:DatatypeProperty ; + rdfs:label "loginTime"@en ; + rdfs:comment "Specifies the date/time of the login for the user session."@en ; + rdfs:range xsd:dateTime ; + . + +observable:logoutTime + a owl:DatatypeProperty ; + rdfs:label "logoutTime"@en ; + rdfs:comment "Specifies the date/time of the logout for the user session."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lookupDate + a owl:DatatypeProperty ; + rdfs:label "lookupDate"@en ; + rdfs:comment "Specifies the date and time that the Whois record was queried."@en ; + rdfs:range xsd:dateTime ; + . + +observable:macAddress + a owl:ObjectProperty ; + rdfs:label "macAddress"@en ; + rdfs:comment "Specifies the MAC or hardware address of the physical network card. "@en ; + rdfs:range observable:ObservableObject ; + . + +observable:machine + a owl:DatatypeProperty ; + rdfs:label "machine"@en ; + rdfs:comment "Specifies the type of target machine."@en ; + rdfs:range xsd:string ; + . + +observable:magic + a owl:DatatypeProperty ; + rdfs:label "magic"@en ; + rdfs:comment "Specifies the value that indicates the type of the PE binary."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:magicNumber + a owl:DatatypeProperty ; + rdfs:label "magicNumber"@en ; + rdfs:range xsd:string ; + . + +observable:majorImageVersion + a owl:DatatypeProperty ; + rdfs:label "majorImageVersion"@en ; + rdfs:comment "Specifies the major version number of the image."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:majorLinkerVersion + a owl:DatatypeProperty ; + rdfs:label "majorLinkerVersion"@en ; + rdfs:comment "Specifies the linker major version number."@en ; + rdfs:range xsd:byte ; + . + +observable:majorOSVersion + a owl:DatatypeProperty ; + rdfs:label "majorOSVersion"@en ; + rdfs:comment "Specifies the major version number of the required operating system."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:majorSubsystemVersion + a owl:DatatypeProperty ; + rdfs:label "majorSubsystemVersion"@en ; + rdfs:comment "Specifies the major version number of the subsystem."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:manuallyEnteredCount + a owl:DatatypeProperty ; + rdfs:label "Manually-Entered Count"@en ; + rdfs:comment "Specifies the number of times the URL referred to by the URL field was manually entered into the browser's address field by the user. This field is only applicable for URL history entries generated by Google's Chrome browser."@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:manufacturer + a owl:ObjectProperty ; + rdfs:label "manufacturer"@en ; + rdfs:range identity:Identity ; + . + +observable:maxRunTime + a owl:DatatypeProperty ; + rdfs:label "maxRunTime"@en ; + rdfs:comment "Specifies the maximum run time of the scheduled task before terminating, in milliseconds. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381874(v=vs.85).aspx."@en ; + rdfs:range xsd:integer ; + . + +observable:messageID + a owl:DatatypeProperty ; + rdfs:label "messageID"@en ; + rdfs:comment "An unique identifier for the message."@en ; + rdfs:range xsd:string ; + . + +observable:messageText + a owl:DatatypeProperty ; + rdfs:label "messageText"@en ; + rdfs:comment "The contents of the message."@en ; + rdfs:range xsd:string ; + . + +observable:messageThread + a owl:ObjectProperty ; + rdfs:label "messageThread"@en ; + rdfs:range types:Thread ; + . + +observable:messageType + a owl:DatatypeProperty ; + rdfs:label "messageType"@en ; + rdfs:comment "Message type specifies what sort of message (email, chat, SMS, etc) a Message is."@en ; + rdfs:range xsd:string ; + . + +observable:messagingAddress + a owl:ObjectProperty ; + rdfs:label "messagingAddress"@en ; + rdfs:comment "A messaging address specifies details of an identifier for digital messsaging communication."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:metadataChangeTime + a owl:DatatypeProperty ; + rdfs:label "metadataChangeTime"@en ; + rdfs:comment "The date and time at which the file metadata was last modified."@en ; + rdfs:range xsd:dateTime ; + . + +observable:metadataRecoveredStatus + a owl:DatatypeProperty ; + rdfs:label "metadataRecoveredStatus"@en ; + rdfs:comment "Specifies the recoverability status of the metadata of an object."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:RecoveredObjectStatusVocab + xsd:string + ) ; + ] ; + . + +observable:mftFileID + a owl:DatatypeProperty ; + rdfs:label "mftFileID"@en ; + rdfs:comment "Specifies the record number for the file within an NTFS Master File Table."@en ; + rdfs:range xsd:integer ; + . + +observable:mftFileNameAccessedTime + a owl:DatatypeProperty ; + rdfs:label "mftFileNameAccessedTime"@en ; + rdfs:comment "The access date and time recorded in an MFT entry $File_Name attribute."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mftFileNameCreatedTime + a owl:DatatypeProperty ; + rdfs:label "mftFileNameCreatedTime"@en ; + rdfs:comment "The creation date and time recorded in an MFT entry $File_Name attribute."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mftFileNameLength + a owl:DatatypeProperty ; + rdfs:label "mftFileNameLength"@en ; + rdfs:comment " Specifies the length of an NTFS file name, in unicode characters."@en ; + rdfs:range xsd:integer ; + . + +observable:mftFileNameModifiedTime + a owl:DatatypeProperty ; + rdfs:label "mftFileNameModifiedTime"@en ; + rdfs:comment "The modification date and time recorded in an MFT entry $File_Name attribute."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mftFileNameRecordChangeTime + a owl:DatatypeProperty ; + rdfs:label "mftFileNameRecordChangeTime"@en ; + rdfs:comment "The metadata modification date and time recorded in an MFT entry $File_Name attribute."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mftFlags + a owl:DatatypeProperty ; + rdfs:label "mftFlags"@en ; + rdfs:comment "Specifies basic permissions for the file (Read-Only, Hidden, Archive, Compressed, etc.)."@en ; + rdfs:range xsd:integer ; + . + +observable:mftParentID + a owl:DatatypeProperty ; + rdfs:label "mftParentID"@en ; + rdfs:comment "Specifies the record number within an NTFS Master File Table for parent directory of the file."@en ; + rdfs:range xsd:integer ; + . + +observable:mftRecordChangeTime + a owl:DatatypeProperty ; + rdfs:label "mftRecordChangeTime"@en ; + rdfs:comment "The date and time at which an NTFS file metadata was last modified."@en ; + rdfs:range xsd:dateTime ; + . + +observable:middleName + a owl:DatatypeProperty ; + rdfs:label "middleName"@en ; + rdfs:comment "The middle name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:mimeClass + a owl:DatatypeProperty ; + rdfs:label "mimeClass"@en ; + rdfs:range xsd:string ; + . + +observable:mimeType + a owl:DatatypeProperty ; + rdfs:label "mimeType"@en ; + rdfs:comment "MIME type of the data. For example 'text/html' or 'audio/mp3'."@en ; + rdfs:range xsd:string ; + . + +observable:minorImageVersion + a owl:DatatypeProperty ; + rdfs:label "minorImageVersion"@en ; + rdfs:comment "Specifies the minor version number of the image."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:minorLinkerVersion + a owl:DatatypeProperty ; + rdfs:label "minorLinkerVersion"@en ; + rdfs:comment "Specifies the linker minor version number."@en ; + rdfs:range xsd:byte ; + . + +observable:minorOSVersion + a owl:DatatypeProperty ; + rdfs:label "minorOSVersion"@en ; + rdfs:comment "Specifies the minor version number of the required operating system."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:minorSubsystemVersion + a owl:DatatypeProperty ; + rdfs:label "minorSubsystemVersion"@en ; + rdfs:comment """Specifies the minor version number of the subsystem. + """@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:mockLocationsAllowed + a owl:DatatypeProperty ; + rdfs:label "mockLocationsAllowed"@en ; + rdfs:comment "???."@en ; + rdfs:range xsd:boolean ; + . + +observable:model + a owl:DatatypeProperty ; + rdfs:label "model"@en ; + rdfs:range xsd:string ; + . + +observable:modifiedTime + a owl:DatatypeProperty ; + rdfs:label "modifiedTime"@en ; + rdfs:comment "The date and time at which the Object was last modified."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mostRecentRunTime + a owl:DatatypeProperty ; + rdfs:label "mostRecentRunTime"@en ; + rdfs:comment "Specifies the most recent run date/time of this scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381254(v=vs.85).aspx."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mountPoint + a owl:DatatypeProperty ; + rdfs:label "mountPoint"@en ; + rdfs:comment "Specifies the mount point of the partition."@en ; + rdfs:range xsd:string ; + . + +observable:msProductID + a owl:DatatypeProperty ; + rdfs:label "msProductID"@en ; + rdfs:comment "The Microsoft Product ID. See also: http://support.microsoft.com/gp/pidwin."@en ; + rdfs:range xsd:string ; + . + +observable:msProductName + a owl:DatatypeProperty ; + rdfs:label "msProductName"@en ; + rdfs:comment "The Microsoft ProductName of the current installation of Windows. This is typically found in HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion!ProductName."@en ; + rdfs:range xsd:string ; + . + +observable:mutexName + a owl:DatatypeProperty ; + rdfs:label "mutexName"@en ; + rdfs:comment "Specifies the name identifier for a specific instance of a mechanism that enforces limits on access to a resource when there are many threads of execution ."@en ; + rdfs:range xsd:string ; + . + +observable:nameConstraints + a owl:DatatypeProperty ; + rdfs:label "nameConstraints"@en ; + rdfs:range xsd:string ; + . + +observable:namePhonetic + a owl:DatatypeProperty ; + rdfs:label "namePhonetic"@en ; + rdfs:comment "Name phonetic specifies the phonetic pronunciation of the name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:namePrefix + a owl:DatatypeProperty ; + rdfs:label "namePrefix"@en ; + rdfs:comment "Name prefix specifies an honorific prefix (coming ordinally before first/given name) for the name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:nameRecoveredStatus + a owl:DatatypeProperty ; + rdfs:label "nameRecoveredStatus"@en ; + rdfs:comment "Specifies the recoverability status of the name of an object."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:RecoveredObjectStatusVocab + xsd:string + ) ; + ] ; + . + +observable:nameServer + a owl:ObjectProperty ; + rdfs:label "nameServer"@en ; + rdfs:comment "Specifies a list of name server entries for a Whois entry."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:nameSuffix + a owl:DatatypeProperty ; + rdfs:label "nameSuffix"@en ; + rdfs:comment "Name suffix specifies an suffix (coming ordinally after last/family name) for the name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:netBIOSName + a owl:DatatypeProperty ; + rdfs:label "netBIOSName"@en ; + rdfs:comment "Specifies the NetBIOS (Network Basic Input/Output System) name of the Windows system. This is not the same as the host name."@en ; + rdfs:range xsd:string ; + . + +observable:network + a owl:DatatypeProperty ; + rdfs:label "network"@en ; + rdfs:comment "???."@en ; + rdfs:range xsd:string ; + . + +observable:networkInterface + a owl:ObjectProperty ; + rdfs:label "networkInterface"@en ; + rdfs:comment "Specifies the list of network interfaces present on the system."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:newObject + a owl:ObjectProperty ; + rdfs:label "newObject"@en ; + rdfs:comment "Specifies the observable object and its properties as they are after the state change effect occurred."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:nextRunTime + a owl:DatatypeProperty ; + rdfs:label "nextRunTime"@en ; + rdfs:comment "Specifies the next run date/time of the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381257(v=vs.85).aspx."@en ; + rdfs:range xsd:dateTime ; + . + +observable:nickname + a owl:DatatypeProperty ; + rdfs:label "nickname"@en ; + rdfs:comment "Nickname specifies an alternate, unofficial and typically informal name for a person independent of their official name."@en ; + rdfs:range xsd:string ; + . + +observable:ntfsHardLinkCount + a owl:DatatypeProperty ; + rdfs:label "ntfsHardLinkCount"@en ; + rdfs:comment "Specifies the number of directory entries that reference an NTFS file record."@en ; + rdfs:range xsd:integer ; + . + +observable:ntfsOwnerID + a owl:DatatypeProperty ; + rdfs:label "ntfsOwnerID"@en ; + rdfs:comment "Specifies the identifier of the file owner, from the security index."@en ; + rdfs:range xsd:string ; + . + +observable:ntfsOwnerSID + a owl:DatatypeProperty ; + rdfs:label "ntfsOwnerSID"@en ; + rdfs:comment "Specifies the security ID (key in the $SII Index and $SDS DataStream in the file $Secure) for an NTFS file."@en ; + rdfs:range xsd:string ; + . + +observable:number + a owl:DatatypeProperty ; + rdfs:label "number"@en ; + rdfs:range xsd:integer ; + . + +observable:numberOfLaunches + a owl:DatatypeProperty ; + rdfs:label "numberOfLaunches"@en ; + rdfs:range xsd:integer ; + . + +observable:numberOfRVAAndSizes + a owl:DatatypeProperty ; + rdfs:label "numberOfRVAAndSizes"@en ; + rdfs:comment "Specifies the number of data-directory entries in the remainder of the optional header."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:numberOfSections + a owl:DatatypeProperty ; + rdfs:label "numberOfSections"@en ; + rdfs:comment "Specifies the number of sections in the PE binary, as a non-negative integer."@en ; + rdfs:range xsd:integer ; + . + +observable:numberOfSubkeys + a owl:DatatypeProperty ; + rdfs:label "numberOfSubkeys"@en ; + rdfs:range xsd:integer ; + . + +observable:numberOfSymbols + a owl:DatatypeProperty ; + rdfs:label "numberOfSymbols"@en ; + rdfs:comment "Specifies the number of entries in the symbol table of the PE binary, as a non-negative integer."@en ; + rdfs:range xsd:integer ; + . + +observable:numberTimesContacted + a owl:DatatypeProperty ; + rdfs:label "numberTimesContacted"@en ; + rdfs:comment "Number times contacted specifies the number of times a particular contact has been contacted."@en ; + rdfs:range xsd:integer ; + . + +observable:objectGUID + a owl:DatatypeProperty ; + rdfs:label "objectGUID"@en ; + rdfs:range xsd:string ; + . + +observable:observableCreatedTime + a owl:DatatypeProperty ; + rdfs:label "observableCreatedTime"@en ; + rdfs:comment "The date and time at which the observable object being characterized was created. This time pertains to an intrinsic characteristic of the observable object, and would be consistent across independent characterizations or observations of the observable object."@en ; + rdfs:range xsd:dateTime ; + . + +observable:oldObject + a owl:ObjectProperty ; + rdfs:label "oldObject"@en ; + rdfs:comment "Specifies the observable object and its properties as they were before the state change effect occurred."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:openFileDescriptor + a owl:DatatypeProperty ; + rdfs:label "openFileDescriptor"@en ; + rdfs:comment "Specifies a listing of the current file descriptors used by the Unix process."@en ; + rdfs:range xsd:integer ; + . + +observable:operatingSystem + a owl:ObjectProperty ; + rdfs:label "operatingSystem"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:optionalHeader + a owl:ObjectProperty ; + rdfs:label "optionalHeader"@en ; + rdfs:comment "Specifies the PE optional header of the PE binary."@en ; + rdfs:range observable:WindowsPEOptionalHeader ; + . + +observable:options + a owl:DatatypeProperty ; + rdfs:label "options"@en ; + rdfs:comment "Specifies any options used when mounting the volume."@en ; + rdfs:range xsd:string ; + . + +observable:organizationDepartment + a owl:DatatypeProperty ; + rdfs:label "organizationDepartment"@en ; + rdfs:comment "Specifies a particular suborganization (division, branch, office, etc.) that exists within a larger organization."@en ; + rdfs:range xsd:string ; + . + +observable:organizationLocation + a owl:ObjectProperty ; + rdfs:label "organizationLocation"@en ; + rdfs:comment "Specifies a geolocation address of an organization."@en ; + rdfs:range observable:ContactAddress ; + . + +observable:organizationPosition + a owl:DatatypeProperty ; + rdfs:label "organizationPosition"@en ; + rdfs:comment "Specifies the title or role that a person plays within an organization."@en ; + rdfs:range xsd:string ; + . + +observable:osInstallDate + a owl:DatatypeProperty ; + rdfs:label "osInstallDate"@en ; + rdfs:comment "Specifies the date on which the operating system (OS) was installed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:osLastUpgradeDate + a owl:DatatypeProperty ; + rdfs:label "osLastUpgradeDate"@en ; + rdfs:comment "Specifies the date on which the operating system (OS) was last upgraded."@en ; + rdfs:range xsd:dateTime ; + . + +observable:otherHeaders + a owl:ObjectProperty ; + rdfs:label "otherHeaders"@en ; + rdfs:range types:Dictionary ; + . + +observable:owner + a owl:ObjectProperty ; + rdfs:label "owner"@en ; + rdfs:comment "Specifies the owner of an Observable Object."@en ; + rdfs:range core:UcoObject ; + . + +observable:ownerSID + a owl:DatatypeProperty ; + rdfs:label "ownerSID"@en ; + rdfs:range xsd:string ; + . + +observable:pageTitle + a owl:DatatypeProperty ; + rdfs:label "Page Title"@en ; + rdfs:comment "Specifies the title of a web page."@en ; + rdfs:range xsd:string ; + . + +observable:parameterAddress + a owl:DatatypeProperty ; + rdfs:label "parameterAddress"@en ; + rdfs:range xsd:hexBinary ; + . + +observable:parameters + a owl:DatatypeProperty ; + rdfs:label "parameters"@en ; + rdfs:comment "Specifies the command line parameters used to launch the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381875(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:parent + a owl:ObjectProperty ; + rdfs:label "parent"@en ; + rdfs:comment "The process that created this process."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:participant + a owl:ObjectProperty ; + rdfs:label "participant"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:partition + a owl:ObjectProperty ; + rdfs:label "partition"@en ; + rdfs:comment "The partitions that reside on the disk."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:partitionID + a owl:DatatypeProperty ; + rdfs:label "partitionID"@en ; + rdfs:comment "Specifies the identifier of the partition, as provided by the containing partition table. This identifier is the index value within the partition table, and is expected to be an incrementing alphanumeric value (numeric in most partition systems), not a GUID or UUID. Sorting partitions by this index should first attempt to sort a numeric cast of the value."@en ; + rdfs:range xsd:string ; + . + +observable:partitionLength + a owl:DatatypeProperty ; + rdfs:label "partitionLength"@en ; + rdfs:comment "Specifies the length of the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:partitionOffset + a owl:DatatypeProperty ; + rdfs:label "partitionOffset"@en ; + rdfs:comment "Specifies the starting offset of the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:password + a owl:DatatypeProperty ; + rdfs:label "password"@en ; + rdfs:comment "Specifies an authentication password."@en ; + rdfs:range xsd:string ; + . + +observable:passwordLastChanged + a owl:DatatypeProperty ; + rdfs:label "passwordLastChanged"@en ; + rdfs:comment "The date and time that the password was last changed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:passwordType + a owl:DatatypeProperty ; + rdfs:label "passwordType"@en ; + rdfs:comment "The type of password, for instance plain-text or encrypted."@en ; + rdfs:range xsd:string ; + . + +observable:path + a owl:DatatypeProperty ; + rdfs:label "path"@en ; + rdfs:comment "Specifies the location of one object within another containing object."@en ; + rdfs:range xsd:string ; + . + +observable:pdfCreationDate + a owl:DatatypeProperty ; + rdfs:label "pdfCreationDate"@en ; + rdfs:comment "The PDF CreationDate property is defined in ISO 32000-1:2008 as 'The date and time the document was created, in human-readable form' (Table 317). As a UCO property, its value is converted to xsd:dateTime."@en ; + rdfs:range xsd:dateTime ; + . + +observable:pdfId0 + a owl:DatatypeProperty ; + rdfs:label "pdfId0"@en ; + rdfs:range xsd:string ; + . + +observable:pdfId1 + a owl:DatatypeProperty ; + rdfs:label "pdfId1"@en ; + rdfs:range xsd:string ; + . + +observable:pdfModDate + a owl:DatatypeProperty ; + rdfs:label "pdfModDate"@en ; + rdfs:comment "The PDF ModDate property is defined in ISO 32000-1:2008 as 'The date and time the document was most recently modified, in human-readable form' (Table 317). As a UCO property, its value is converted to xsd:dateTime."@en ; + rdfs:range xsd:dateTime ; + . + +observable:peType + a owl:DatatypeProperty ; + rdfs:label "peType"@en ; + rdfs:comment "Specifies the type of the PE binary."@en ; + rdfs:range xsd:string ; + . + +observable:phoneActivationTime + a owl:DatatypeProperty ; + rdfs:label "phoneActivationTime"@en ; + rdfs:comment "The date and time that a device was activated."@en ; + rdfs:range xsd:dateTime ; + . + +observable:phoneNumber + a owl:DatatypeProperty ; + rdfs:label "phoneNumber"@en ; + rdfs:comment "A phone number(account)."@en ; + rdfs:range xsd:string ; + . + +observable:pictureHeight + a owl:DatatypeProperty ; + rdfs:label "pictureHeight"@en ; + rdfs:range xsd:integer ; + . + +observable:pictureType + a owl:DatatypeProperty ; + rdfs:label "pictureType"@en ; + rdfs:comment "The type of a picture, for example a thumbnail."@en ; + rdfs:range xsd:string ; + . + +observable:pictureWidth + a owl:DatatypeProperty ; + rdfs:label "pictureWidth"@en ; + rdfs:comment "The width of the picture in pixels."@en ; + rdfs:range xsd:integer ; + . + +observable:pid + a owl:DatatypeProperty ; + rdfs:label "pid"@en ; + rdfs:comment "The Process ID, or PID, of the process."@en ; + rdfs:range xsd:integer ; + . + +observable:pointerToSymbolTable + a owl:DatatypeProperty ; + rdfs:label "pointerToSymbolTable"@en ; + rdfs:comment "Specifies the file offset of the COFF symbol table."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:policyConstraints + a owl:DatatypeProperty ; + rdfs:label "policyConstraints"@en ; + rdfs:range xsd:string ; + . + +observable:policyMappings + a owl:DatatypeProperty ; + rdfs:label "policyMappings"@en ; + rdfs:range xsd:string ; + . + +observable:port + a owl:DatatypeProperty ; + rdfs:label "port"@en ; + rdfs:comment "Port on which communication takes place."@en ; + rdfs:range xsd:integer ; + . + +observable:prefetchHash + a owl:DatatypeProperty ; + rdfs:label "prefetchHash"@en ; + rdfs:comment "An eight character hash of the location from which the application was run."@en ; + rdfs:range xsd:string ; + . + +observable:priority + a owl:DatatypeProperty ; + rdfs:label "priority"@en ; + rdfs:comment "The priority of the email."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:integer + xsd:string + vocabulary:TaskPriorityVocab + ) ; + ] ; + . + +observable:privateKeyUsagePeriodNotAfter + a owl:DatatypeProperty ; + rdfs:label "privateKeyUsagePeriodNotAfter"@en ; + rdfs:range xsd:dateTime ; + . + +observable:privateKeyUsagePeriodNotBefore + a owl:DatatypeProperty ; + rdfs:label "privateKeyUsagePeriodNotBefore"@en ; + rdfs:range xsd:dateTime ; + . + +observable:processorArchitecture + a owl:DatatypeProperty ; + rdfs:label "processorArchitecture"@en ; + rdfs:comment "Specifies the specific architecture (e.g. x86) used by the CPU of the system."@en ; + rdfs:range xsd:string ; + . + +observable:profile + a owl:ObjectProperty ; + rdfs:label "profile"@en ; + rdfs:comment "A profile specifies a particular online service profile."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:profileAccount + a owl:ObjectProperty ; + rdfs:label "Profile Account"@en-US ; + rdfs:comment "Specifies the online service account associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileBackgroundHash + a owl:ObjectProperty ; + rdfs:label "Profile Background Hash"@en-US ; + rdfs:comment "Specifies hashes of the background associated with the profile."@en-US ; + rdfs:range types:Hash ; + . + +observable:profileBackgroundLocation + a owl:ObjectProperty ; + rdfs:label "Profile Background Location"@en-US ; + rdfs:comment "Specifies the network location of the background associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileBannerHash + a owl:ObjectProperty ; + rdfs:label "Profile Banner Hash"@en-US ; + rdfs:comment "Specifies hashes of the banner associated with the profile."@en-US ; + rdfs:range types:Hash ; + . + +observable:profileBannerLocation + a owl:ObjectProperty ; + rdfs:label "Profile Banner Location"@en-US ; + rdfs:comment "Specifies the network location of the banner associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileCreated + a owl:DatatypeProperty ; + rdfs:label "Profile Created"@en-US ; + rdfs:comment "Specifies the date and time the profile was created."@en-US ; + rdfs:range xsd:dateTime ; + . + +observable:profileIdentity + a owl:ObjectProperty ; + rdfs:label "Profile Identity"@en-US ; + rdfs:comment "Specifies the identity associated with the profile."@en-US ; + rdfs:range identity:Identity ; + . + +observable:profileImageHash + a owl:ObjectProperty ; + rdfs:label "Profile Image Hash"@en-US ; + rdfs:comment "Specifies hashes of the profile image associated with the profile."@en-US ; + rdfs:range types:Hash ; + . + +observable:profileImageLocation + a owl:ObjectProperty ; + rdfs:label "Profile Image Location"@en-US ; + rdfs:comment "Specifies the network location of the profile image associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileIsProtected + a owl:DatatypeProperty ; + rdfs:label "Is_Protected"@en-US ; + rdfs:comment "Specifies whether the twitter profile is protected."@en-US ; + rdfs:range xsd:boolean ; + . + +observable:profileIsVerified + a owl:DatatypeProperty ; + rdfs:label "Is_Verified"@en-US ; + rdfs:comment "Specifies whether the twitter profile is verified."@en-US ; + rdfs:range xsd:boolean ; + . + +observable:profileLanguage + a owl:DatatypeProperty ; + rdfs:label "Profile Language"@en-US ; + rdfs:comment "Specifies the language associated with the profile. When present, it MUST be a language code conformant to RFC 5646/BCP47."@en-US ; + rdfs:range xsd:string ; + . + +observable:profileService + a owl:ObjectProperty ; + rdfs:label "Profile Service"@en-US ; + rdfs:comment "Specifies the online service associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileWebsite + a owl:ObjectProperty ; + rdfs:label "Profile Website"@en-US ; + rdfs:comment "Specifies the website URL associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:properties + a owl:DatatypeProperty ; + rdfs:label "properties"@en ; + rdfs:comment "Specifies the properties that were enumerated as a result of the action on the observable object."@en ; + rdfs:range xsd:string ; + . + +observable:propertyName + a owl:DatatypeProperty ; + rdfs:label "propertyName"@en ; + rdfs:comment "Specifies the Name of the property being read."@en ; + rdfs:range xsd:string ; + . + +observable:protocols + a owl:ObjectProperty ; + rdfs:label "protocols"@en ; + rdfs:comment "Specifies the protocols involved in the network connection, along with their corresponding state. "@en ; + rdfs:range types:ControlledDictionary ; + . + +observable:query + a owl:DatatypeProperty ; + rdfs:label "query"@en ; + rdfs:comment "Query passed to the resource."@en ; + rdfs:range xsd:string ; + . + +observable:rangeOffset + a owl:DatatypeProperty ; + rdfs:label "rangeOffset"@en ; + rdfs:comment "The offset at which the start of data can be found, relative to the rangeOffsetType defined."@en ; + rdfs:range xsd:integer ; + . + +observable:rangeOffsetType + a owl:DatatypeProperty ; + rdfs:label "rangeOffsetType"@en ; + rdfs:comment "The type of offset defined for the range (e.g., image, file, address)."@en ; + rdfs:range xsd:string ; + . + +observable:rangeSize + a owl:DatatypeProperty ; + rdfs:label "rangeSize"@en ; + rdfs:comment "The size of the data in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:receivedLines + a owl:DatatypeProperty ; + rdfs:label "receivedLines"@en ; + rdfs:range xsd:string ; + . + +observable:receivedTime + a owl:DatatypeProperty ; + rdfs:label "receivedTime"@en ; + rdfs:comment "The date and time at which the message received. "@en ; + rdfs:range xsd:dateTime ; + . + +observable:recordFieldIsNull + a owl:DatatypeProperty ; + rdfs:label "recordFieldIsNull"@en ; + rdfs:comment "Whether the specified database record field is null."@en ; + rdfs:range xsd:boolean ; + . + +observable:recordFieldName + a owl:DatatypeProperty ; + rdfs:label "recordFieldName"@en ; + rdfs:comment "A field name of a database record value being identified."@en ; + rdfs:range xsd:string ; + . + +observable:recordFieldValue + a owl:DatatypeProperty ; + rdfs:label "recordFieldValue"@en ; + rdfs:comment "The field value of a specified database record."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:base64Binary + xsd:decimal + xsd:integer + xsd:string + ) ; + ] ; + . + +observable:recordRowID + a owl:DatatypeProperty ; + rdfs:label "recordRowID"@en ; + rdfs:comment "The unique ID that identifies a database record, supplied by the originating database engine."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:integer + xsd:string + ) ; + ] ; + . + +observable:recurrence + a owl:DatatypeProperty ; + rdfs:label "recurrence"@en ; + rdfs:comment "Recurrence of the event."@en ; + rdfs:range xsd:string ; + . + +observable:references + a owl:ObjectProperty ; + rdfs:label "references"@en ; + rdfs:comment "A list of email message identifiers this email relates to."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:referralURL + a owl:ObjectProperty ; + rdfs:label "referralURL"@en ; + rdfs:comment "Specifies the corresponding referral URL for a registrar."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:referrerUrl + a owl:ObjectProperty ; + rdfs:label "referrerURL"@en ; + rdfs:comment "Specifies the origination point (i.e., URL) of a URL request."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:regionEndAddress + a owl:DatatypeProperty ; + rdfs:label "regionEndAddress"@en ; + rdfs:comment "The regionEndAddress property specifies the ending address of the particular memory region."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:regionSize + a owl:DatatypeProperty ; + rdfs:label "regionSize"@en ; + rdfs:comment "The regionSize property specifies the size of the particular memory region, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:regionStartAddress + a owl:DatatypeProperty ; + rdfs:label "regionStartAddress"@en ; + rdfs:comment """The regionStartAddress property specifies the starting address of the particular memory region. + """@en ; + rdfs:range xsd:hexBinary ; + . + +observable:regionalInternetRegistry + a owl:DatatypeProperty ; + rdfs:label "regionalInternetRegistry"@en ; + rdfs:comment "specifies the name of the Regional Internet Registry (RIR) which allocated the IP address contained in a WHOIS entry."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:RegionalRegistryTypeVocab + xsd:string + ) ; + ] ; + . + +observable:regionalInternetRegistry-shape-value-not-vocabulary-member + a sh:PropertyShape ; + sh:message "Value is not member of the vocabulary RegionalRegistryTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:RegionalRegistryTypeVocab ; + sh:in ( + "APNIC"^^vocabulary:RegionalRegistryTypeVocab + "ARIN"^^vocabulary:RegionalRegistryTypeVocab + "AfriNIC"^^vocabulary:RegionalRegistryTypeVocab + "LACNIC"^^vocabulary:RegionalRegistryTypeVocab + "RIPE NCC"^^vocabulary:RegionalRegistryTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:regionalInternetRegistry ; + . + +observable:regionalInternetRegistry-shape-value-outside-default-vocabulary + a sh:PropertyShape ; + sh:datatype vocabulary:RegionalRegistryTypeVocab ; + sh:message "Value is outside the default vocabulary RegionalRegistryTypeVocab." ; + sh:path observable:regionalInternetRegistry ; + sh:severity sh:Info ; + . + +observable:registeredOrganization + a owl:ObjectProperty ; + rdfs:label "registeredOrganization"@en ; + rdfs:comment "The organization that this copy of Windows is registered to."@en ; + rdfs:range identity:Identity ; + . + +observable:registeredOwner + a owl:ObjectProperty ; + rdfs:label "registeredOwner"@en ; + rdfs:comment "The person or organization that is the registered owner of this copy of Windows."@en ; + rdfs:range identity:Identity ; + . + +observable:registrantContactInfo + a owl:ObjectProperty ; + rdfs:label "registrantContactInfo"@en ; + rdfs:comment "Specifies contact info for the registrant of a domain within a WHOIS entity."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:registrantIDs + a owl:DatatypeProperty ; + rdfs:label "registrantIDs"@en ; + rdfs:comment "Specifies the registrant IDs associated with a domain lookup."@en ; + rdfs:range xsd:string ; + . + +observable:registrarGUID + a owl:DatatypeProperty ; + rdfs:label "registrarGUID"@en ; + rdfs:comment "Specifies the Registrar GUID field of a Whois entry."@en ; + rdfs:range xsd:string ; + . + +observable:registrarID + a owl:DatatypeProperty ; + rdfs:label "registrarID"@en ; + rdfs:comment "Specifies the Registrar ID field of a Whois entry."@en ; + rdfs:range xsd:string ; + . + +observable:registrarInfo + a owl:ObjectProperty ; + rdfs:label "registrarInfo"@en ; + rdfs:comment "Specifies registrar info that would be returned from a registrar lookup."@en ; + rdfs:range observable:WhoisRegistrarInfoType ; + . + +observable:registrarName + a owl:DatatypeProperty ; + rdfs:label "registrarName"@en ; + rdfs:comment "The name of the registrar organization."@en ; + rdfs:range xsd:string ; + . + +observable:registryValues + a owl:ObjectProperty ; + rdfs:label "registryValues"@en ; + rdfs:comment "The values that were enumerated as a result of the action on the object."@en ; + rdfs:range observable:WindowsRegistryValue ; + . + +observable:remarks + a owl:DatatypeProperty ; + rdfs:label "remarks"@en ; + rdfs:comment "Specifies any remarks associated with this Whois entry."@en ; + rdfs:range xsd:string ; + . + +observable:remindTime + a owl:DatatypeProperty ; + rdfs:label "remindTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:requestMethod + a owl:DatatypeProperty ; + rdfs:label "requestMethod"@en ; + rdfs:comment """Specifies the HTTP method portion of the HTTP request line, as a lowercase string. + """@en ; + rdfs:range xsd:string ; + . + +observable:requestValue + a owl:DatatypeProperty ; + rdfs:label "requestValue"@en ; + rdfs:comment "Specifies the value (typically a resource path) portion of the HTTP request line."@en ; + rdfs:range xsd:string ; + . + +observable:requestVersion + a owl:DatatypeProperty ; + rdfs:label "requestVersion"@en ; + rdfs:comment "Specifies the HTTP version portion of the HTTP request line, as a lowercase string."@en ; + rdfs:range xsd:string ; + . + +observable:rowCondition + a owl:DatatypeProperty ; + rdfs:label "rowCondition"@en ; + rdfs:range xsd:string ; + . + +observable:rowIndex + a owl:DatatypeProperty ; + rdfs:label "rowIndex"@en ; + rdfs:range xsd:positiveInteger ; + . + +observable:ruid + a owl:DatatypeProperty ; + rdfs:label "ruid"@en ; + rdfs:comment "Specifies the real user ID, which represents the Unix user who created the process."@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:runningStatus + a owl:DatatypeProperty ; + rdfs:label "runningStatus"@en ; + rdfs:range xsd:string ; + . + +observable:scheme + a owl:DatatypeProperty ; + rdfs:label "scheme"@en ; + rdfs:comment "Identifies the type of URL."@en ; + rdfs:range xsd:string ; + . + +observable:sectionAlignment + a owl:DatatypeProperty ; + rdfs:label "sectionAlignment"@en ; + rdfs:comment "Specifies the alignment (in bytes) of PE sections when they are loaded into memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sections + a owl:ObjectProperty ; + rdfs:label "sections"@en ; + rdfs:comment "Specifies metadata about the sections in the PE file."@en ; + rdfs:range observable:WindowsPESection ; + . + +observable:sectorSize + a owl:DatatypeProperty ; + rdfs:label "sectorSize"@en ; + rdfs:comment "The sector size of the volume in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:securityAttributes + a owl:DatatypeProperty ; + rdfs:label "securityAttributes"@en ; + rdfs:range xsd:string ; + . + +observable:sender + a owl:ObjectProperty ; + rdfs:label "sender"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:sentTime + a owl:DatatypeProperty ; + rdfs:label "sentTime"@en ; + rdfs:comment "The date and time at which the message sent."@en ; + rdfs:range xsd:dateTime ; + . + +observable:serialNumber + a owl:DatatypeProperty ; + rdfs:label "serialNumber"@en ; + rdfs:range xsd:string ; + . + +observable:serverName + a owl:ObjectProperty ; + rdfs:label "serverName"@en ; + rdfs:comment "Specifies the corresponding server name for a whois entry. This usually corresponds to a name server lookup."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:serviceName + a owl:DatatypeProperty ; + rdfs:label "serviceName"@en ; + rdfs:range xsd:string ; + . + +observable:serviceStatus + a owl:DatatypeProperty ; + rdfs:label "serviceStatus"@en ; + rdfs:range xsd:string ; + . + +observable:serviceType + a owl:DatatypeProperty ; + rdfs:label "serviceType"@en ; + rdfs:range xsd:string ; + . + +observable:sessionID + a owl:DatatypeProperty ; + rdfs:label "sessionID"@en ; + rdfs:comment "An identifier for the session from which the message originates."@en ; + rdfs:range xsd:string ; + . + +observable:shell + a owl:DatatypeProperty ; + rdfs:label "shell"@en ; + rdfs:range xsd:string ; + . + +observable:showMessageBody + a owl:DatatypeProperty ; + rdfs:label "showMessageBody"@en ; + rdfs:comment "Specifies the message text that is displayed in the body of the message box by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381302(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:showMessageTitle + a owl:DatatypeProperty ; + rdfs:label "showMessageTitle"@en ; + rdfs:comment "Specifies the title of the message box shown by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381302(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:sid + a owl:DatatypeProperty ; + rdfs:label "sid"@en ; + rdfs:range xsd:string ; + . + +observable:signalStrength + a owl:DatatypeProperty ; + rdfs:label "signalStrength"@en ; + rdfs:comment "The strength of the antenna signal."@en ; + rdfs:range xsd:string ; + . + +observable:signature + a owl:DatatypeProperty ; + rdfs:label "signature"@en ; + rdfs:comment "A"@en ; + rdfs:range xsd:string ; + . + +observable:signatureAlgorithm + a owl:DatatypeProperty ; + rdfs:label "signatureAlgorithm"@en ; + rdfs:range xsd:string ; + . + +observable:signatureDescription + a owl:DatatypeProperty ; + rdfs:label "signatureDescription"@en ; + rdfs:range xsd:string ; + . + +observable:signatureExists + a owl:DatatypeProperty ; + rdfs:label "signatureExists"@en ; + rdfs:range xsd:boolean ; + . + +observable:signatureVerified + a owl:DatatypeProperty ; + rdfs:label "signatureVerified"@en ; + rdfs:range xsd:boolean ; + . + +observable:sipAddress + a owl:ObjectProperty ; + rdfs:label "sipAddress"@en ; + rdfs:comment "A SIP address specifies Session Initiation Protocol (SIP) identifier."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:size + a owl:DatatypeProperty ; + rdfs:label "size"@en ; + rdfs:comment "Specifies the size of the section, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:sizeInBytes + a owl:DatatypeProperty ; + rdfs:label "sizeInBytes"@en ; + rdfs:comment "The size of the data in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:sizeOfCode + a owl:DatatypeProperty ; + rdfs:label "sizeOfCode"@en ; + rdfs:comment "Specifies the size of the code (text) section. If there are multiple such sections, this refers to the sum of the sizes of each section."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfHeaders + a owl:DatatypeProperty ; + rdfs:label "sizeOfHeaders"@en ; + rdfs:comment "Specifies the combined size of the MS-DOS, PE header, and section headers, rounded up a multiple of the value specified in the file_alignment header."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfHeapCommit + a owl:DatatypeProperty ; + rdfs:label "sizeOfHeapCommit"@en ; + rdfs:comment "Specifies the size of the local heap space to commit."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfHeapReserve + a owl:DatatypeProperty ; + rdfs:label "sizeOfHeapReserve"@en ; + rdfs:comment "Specifies the size of the local heap space to reserve."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfImage + a owl:DatatypeProperty ; + rdfs:label "sizeOfImage"@en ; + rdfs:comment "Specifies the size, in bytes, of the image, including all headers, as the image is loaded in memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfInitializedData + a owl:DatatypeProperty ; + rdfs:label "sizeOfInitializedData"@en ; + rdfs:comment "Specifies the size of the initialized data section. If there are multiple such sections, this refers to the sum of the sizes of each section."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfOptionalHeader + a owl:DatatypeProperty ; + rdfs:label "sizeOfOptionalHeader"@en ; + rdfs:comment "Specifies the size of the optional header of the PE binary. "@en ; + rdfs:range xsd:integer ; + . + +observable:sizeOfStackCommit + a owl:DatatypeProperty ; + rdfs:label "sizeOfStackCommit"@en ; + rdfs:comment "Specifies the size of the stack to commit."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfStackReserve + a owl:DatatypeProperty ; + rdfs:label "sizeOfStackReserve"@en ; + rdfs:comment "Specifies the size of the stack to reserve."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfUninitializedData + a owl:DatatypeProperty ; + rdfs:label "sizeOfUninitializedData"@en ; + rdfs:comment "Specifies the size of the uninitialized data section. If there are multiple such sections, this refers to the sum of the sizes of each section."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:skew + a owl:DatatypeProperty ; + rdfs:label "skew"@en ; + rdfs:comment "The angle in degrees of the radial rotation around its main beam direction."@en ; + rdfs:range xsd:decimal ; + . + +observable:sourceApplication + a owl:ObjectProperty ; + rdfs:label "sourceApplication"@en ; + rdfs:comment "Source application specifies the software application that a particular contact or contact list is associated with."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:sourceFlags + a owl:DatatypeProperty ; + rdfs:label "sourceFlags"@en ; + rdfs:comment "Specifies the source TCP flags."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:sourcePort + a owl:DatatypeProperty ; + rdfs:label "sourcePort"@en ; + rdfs:comment """Specifies the source port used in the connection, as an integer in the range of 0 - 65535. + """@en ; + rdfs:range xsd:integer ; + . + +observable:spaceLeft + a owl:DatatypeProperty ; + rdfs:label "spaceLeft"@en ; + rdfs:comment "Specifies the amount of space left on the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:spaceUsed + a owl:DatatypeProperty ; + rdfs:label "spaceUsed"@en ; + rdfs:comment "Specifies the amount of space used on the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:sponsoringRegistrar + a owl:DatatypeProperty ; + rdfs:label "sponsoringRegistrar"@en ; + rdfs:comment "Specifies the name of the sponsoring registrar for a domain."@en ; + rdfs:range xsd:string ; + . + +observable:src + a owl:ObjectProperty ; + rdfs:label "src"@en ; + rdfs:comment "Specifies the source(s) of the network connection."@en ; + rdfs:range core:UcoObject ; + . + +observable:srcBytes + a owl:DatatypeProperty ; + rdfs:label "srcBytes"@en ; + rdfs:range xsd:integer ; + . + +observable:srcPackets + a owl:DatatypeProperty ; + rdfs:label "srcPackets"@en ; + rdfs:range xsd:integer ; + . + +observable:srcPayload + a owl:ObjectProperty ; + rdfs:label "srcPayload"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:ssid + a owl:DatatypeProperty ; + rdfs:label "ssid"@en ; + rdfs:comment "Network identifier."@en ; + rdfs:range xsd:string ; + . + +observable:stackSize + a owl:DatatypeProperty ; + rdfs:label "stackSize"@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:startAddress + a owl:DatatypeProperty ; + rdfs:label "startAddress"@en ; + rdfs:range xsd:hexBinary ; + . + +observable:startCommandLine + a owl:DatatypeProperty ; + rdfs:label "startCommandLine"@en ; + rdfs:range xsd:string ; + . + +observable:startTime + a owl:DatatypeProperty ; + rdfs:label "startTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:startType + a owl:DatatypeProperty ; + rdfs:label "startType"@en ; + rdfs:range xsd:string ; + . + +observable:startupInfo + a owl:ObjectProperty ; + rdfs:label "startupInfo"@en ; + rdfs:range types:Dictionary ; + . + +observable:state + a owl:DatatypeProperty ; + rdfs:label "State"@en ; + rdfs:range xsd:string ; + . + +observable:status + a owl:DatatypeProperty ; + rdfs:label "status"@en ; + rdfs:comment "Specifies a list of statuses for a given Whois entry."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:TaskStatusVocab + vocabulary:WhoisStatusTypeVocab + ) ; + ] ; + . + +observable:statusesCount + a owl:DatatypeProperty ; + rdfs:label "Statuses Count"@en-US ; + rdfs:comment "Specifies the number of tweets that this profile has issued."@en-US ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:storageCapacityInBytes + a owl:DatatypeProperty ; + rdfs:label "storageCapacityInBytes"@en ; + rdfs:comment "The number of bytes that can be stored on a SIM card."@en ; + rdfs:range xsd:integer ; + . + +observable:stringValue + a owl:DatatypeProperty ; + rdfs:label "stringValue"@en ; + rdfs:comment "Specifies the actual value of the extracted string."@en ; + rdfs:range xsd:string ; + . + +observable:strings + a owl:ObjectProperty ; + rdfs:label "strings"@en ; + rdfs:range observable:ExtractedString ; + . + +observable:subject + a owl:DatatypeProperty ; + rdfs:label "subject"@en ; + rdfs:comment "The subject of the email."@en ; + rdfs:range xsd:string ; + . + +observable:subjectAlternativeName + a owl:DatatypeProperty ; + rdfs:label "subjectAlternativeName"@en ; + rdfs:range xsd:string ; + . + +observable:subjectDirectoryAttributes + a owl:DatatypeProperty ; + rdfs:label "subjectDirectoryAttributes"@en ; + rdfs:range xsd:string ; + . + +observable:subjectHash + a owl:ObjectProperty ; + rdfs:label "subjectHash"@en ; + rdfs:comment "A hash calculated on the certificate subject name."@en ; + rdfs:range types:Hash ; + . + +observable:subjectKeyIdentifier + a owl:DatatypeProperty ; + rdfs:label "subjectKeyIdentifier"@en ; + rdfs:range xsd:string ; + . + +observable:subjectPublicKeyAlgorithm + a owl:DatatypeProperty ; + rdfs:label "subjectPublicKeyAlgorithm"@en ; + rdfs:range xsd:string ; + . + +observable:subjectPublicKeyExponent + a owl:DatatypeProperty ; + rdfs:label "subjectPublicKeyExponent"@en ; + rdfs:range xsd:integer ; + . + +observable:subjectPublicKeyModulus + a owl:DatatypeProperty ; + rdfs:label "subjectPublicKeyModulus"@en ; + rdfs:range xsd:string ; + . + +observable:subsystem + a owl:DatatypeProperty ; + rdfs:label "subsystem"@en ; + rdfs:comment "Specifies the subsystem (e.g., GUI, device driver, etc.) that is required to run this image."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:swid + a owl:DatatypeProperty ; + rdfs:label "swid"@en ; + rdfs:comment "Specifies the SWID tag for the software."@en ; + rdfs:range xsd:string ; + . + +observable:symbolicName + a owl:DatatypeProperty ; + rdfs:label "symbolicName"@en ; + rdfs:comment "The symbolic name of a global flag. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549646(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:systemTime + a owl:DatatypeProperty ; + rdfs:label "systemTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:tableName + a owl:DatatypeProperty ; + rdfs:label "tableName"@en ; + rdfs:comment "The table containing a specified database record."@en ; + rdfs:range xsd:string ; + . + +observable:tableSchema + a owl:DatatypeProperty ; + rdfs:label "tableSchema"@en ; + rdfs:comment "The schema that contains the identified database record."@en ; + rdfs:range xsd:string ; + . + +observable:targetFile + a owl:ObjectProperty ; + rdfs:label "targetFile"@en ; + rdfs:comment "Specifies the file targeted by a symbolic link."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:taskComment + a owl:DatatypeProperty ; + rdfs:label "taskComment"@en ; + rdfs:comment "Specifies a comment for the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381232(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:taskCreator + a owl:DatatypeProperty ; + rdfs:label "taskCreator"@en ; + rdfs:comment "Specifies the name of the creator of the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381235(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:text + a owl:DatatypeProperty ; + rdfs:label "text"@en ; + rdfs:range xsd:string ; + . + +observable:threadID + a owl:DatatypeProperty ; + rdfs:label "threadID"@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:thumbprintHash + a owl:ObjectProperty ; + rdfs:label "thumbprintHash"@en ; + rdfs:comment "A hash calculated on the entire certificate including signature."@en ; + rdfs:range types:Hash ; + . + +observable:timeDateStamp + a owl:DatatypeProperty ; + rdfs:label "timeDateStamp"@en ; + rdfs:comment "Specifies the time when the PE binary was created."@en ; + rdfs:range xsd:dateTime ; + . + +observable:timesExecuted + a owl:DatatypeProperty ; + rdfs:label "timesExecuted"@en ; + rdfs:comment "The number of times the prefetch application has executed."@en ; + rdfs:range xsd:integer ; + . + +observable:timezoneDST + a owl:DatatypeProperty ; + rdfs:label "timezoneDST"@en ; + rdfs:comment "Specifies the time zone used by the system, taking daylight savings time (DST) into account."@en ; + rdfs:range xsd:string ; + . + +observable:timezoneStandard + a owl:DatatypeProperty ; + rdfs:label "timezoneStandard"@en ; + rdfs:comment "Specifies the time zone used by the system, without taking daylight savings time (DST) into account."@en ; + rdfs:range xsd:string ; + . + +observable:to + a owl:ObjectProperty ; + rdfs:label "to"@en ; + rdfs:comment "The receiver's phone number."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:totalFragments + a owl:DatatypeProperty ; + rdfs:label "totalFragments"@en ; + rdfs:range xsd:integer ; + . + +observable:totalRam + a owl:DatatypeProperty ; + rdfs:label "totalRam"@en ; + rdfs:comment "Specifies the total amount of physical memory present on the system, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:totalSpace + a owl:DatatypeProperty ; + rdfs:label "totalSpace"@en ; + rdfs:comment "Specifies the total amount of space available on the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:triggerBeginTime + a owl:DatatypeProperty ; + rdfs:label "triggerBeginTime"@en ; + rdfs:comment "Specifies the date/time that the trigger is activated."@en ; + rdfs:range xsd:dateTime ; + . + +observable:triggerDelay + a owl:DatatypeProperty ; + rdfs:label "triggerDelay"@en ; + rdfs:comment "Specifies the delay that takes place between when the task is registered and when the task is started."@en ; + rdfs:range xsd:string ; + . + +observable:triggerEndTime + a owl:DatatypeProperty ; + rdfs:label "triggerEndTime"@en ; + rdfs:comment "Specifies the date/time that the trigger is deactivated."@en ; + rdfs:range xsd:dateTime ; + . + +observable:triggerFrequency + a owl:DatatypeProperty ; + rdfs:label "triggerFrequency"@en ; + rdfs:comment "Specifies the frequency at which the trigger repeats."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TriggerFrequencyVocab + xsd:string + ) ; + ] ; + . + +observable:triggerList + a owl:ObjectProperty ; + rdfs:label "triggerList"@en ; + rdfs:comment "Specifies a set of triggers used by the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383264(v=vs.85).aspx."@en ; + rdfs:range observable:TriggerType ; + . + +observable:triggerMaxRunTime + a owl:DatatypeProperty ; + rdfs:label "triggerMaxRunTime"@en ; + rdfs:comment "The maximum amount of time that the task launched by the trigger is allowed to run. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383868(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:triggerSessionChangeType + a owl:DatatypeProperty ; + rdfs:label "triggerSessionChangeType"@en ; + rdfs:comment "Specifies the type of Terminal Server session change that would trigger a task launch. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381298(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:triggerType + a owl:DatatypeProperty ; + rdfs:label "triggerType"@en ; + rdfs:comment "Specifies the type of the task trigger."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TriggerTypeVocab + xsd:string + ) ; + ] ; + . + +observable:twitterHandle + a owl:DatatypeProperty ; + rdfs:label "Twitter Handle"@en-US ; + rdfs:comment "Specifies the twitter handle associated with the profile."@en-US ; + rdfs:range xsd:string ; + . + +observable:twitterId + a owl:DatatypeProperty ; + rdfs:label "Twitter ID"@en-US ; + rdfs:comment "Specifies the twitter id associated with the profile."@en-US ; + rdfs:range xsd:string ; + . + +observable:uninstallDate + a owl:DatatypeProperty ; + rdfs:label "uninstallDate"@en ; + rdfs:comment "Specifies the date the operating system or application was uninstalled."@en ; + rdfs:range xsd:dateTime ; + . + +observable:updatedDate + a owl:DatatypeProperty ; + rdfs:label "updatedDate"@en ; + rdfs:comment "Specifies the date in which the registered domain information was last updated."@en ; + rdfs:range xsd:dateTime ; + . + +observable:uptime + a owl:DatatypeProperty ; + rdfs:label "uptime"@en ; + rdfs:comment "Specifies the duration that represents the current amount of time that the system has been up."@en ; + rdfs:range xsd:string ; + . + +observable:url + a owl:ObjectProperty ; + rdfs:label "url"@en ; + rdfs:comment "Specifies a URL associated with a particular observable object or facet."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:urlHistoryEntry + a owl:ObjectProperty ; + rdfs:label "URL History Entries"@en ; + rdfs:comment "Specifies a URL history record stored in the browser's history."@en ; + rdfs:range observable:URLHistoryEntry ; + . + +observable:urlTargeted + a owl:DatatypeProperty ; + rdfs:label "urlTargeted"@en ; + rdfs:comment "The target of the bookmark."@en ; + rdfs:range xsd:anyURI ; + . + +observable:urlTransitionType + a owl:DatatypeProperty ; + rdfs:label "Transition Type"@en ; + rdfs:comment "Specifies how a browser navigated to a particular URL on a particular visit."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:URLTransitionTypeVocab + ) ; + ] ; + . + +observable:userLocationString + a owl:DatatypeProperty ; + rdfs:label "User Location String"@en-US ; + rdfs:comment "Specifies the user-provided location string associated with the profile."@en-US ; + rdfs:range xsd:string ; + . + +observable:userName + a owl:DatatypeProperty ; + rdfs:label "userName"@en ; + rdfs:comment "Username used to authenticate to this resource."@en ; + rdfs:range xsd:string ; + . + +observable:validityNotAfter + a owl:DatatypeProperty ; + rdfs:label "validityNotAfter"@en ; + rdfs:range xsd:dateTime ; + . + +observable:validityNotBefore + a owl:DatatypeProperty ; + rdfs:label "validityNotBefore"@en ; + rdfs:range xsd:dateTime ; + . + +observable:value + a owl:DatatypeProperty ; + rdfs:label "value"@en ; + rdfs:range xsd:string ; + . + +observable:values + a owl:DatatypeProperty ; + rdfs:label "values"@en ; + rdfs:comment "The values that were enumerated as a result of the action on the object."@en ; + rdfs:range xsd:string ; + . + +observable:version + a owl:DatatypeProperty ; + rdfs:label "version"@en ; + rdfs:range xsd:string ; + . + +observable:visibility + a owl:DatatypeProperty ; + rdfs:label "visibility"@en ; + rdfs:range xsd:boolean ; + . + +observable:visitCount + a owl:DatatypeProperty ; + rdfs:label "visitCount"@en ; + rdfs:comment "Specifies the number of times a URL has been visited by a particular web browser."@en ; + rdfs:range xsd:integer ; + . + +observable:visitDuration + a owl:DatatypeProperty ; + rdfs:label "Visit Duration"@en ; + rdfs:comment "Specifies the duration of a specific visit of a URL within a particular browser."@en ; + rdfs:range xsd:duration ; + . + +observable:visitTime + a owl:DatatypeProperty ; + rdfs:label "Visit Time"@en ; + rdfs:comment "Specifies the date/time of a specific visit of a URL within a particular browser."@en ; + rdfs:range xsd:dateTime ; + . + +observable:volume + a owl:ObjectProperty ; + rdfs:label "volume"@en ; + rdfs:comment "The volume from which the prefetch application was run. If the applicatin was run from multiple volumes, there will be a separate prefetch file for each."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:volumeID + a owl:DatatypeProperty ; + rdfs:label "volumeID"@en ; + rdfs:comment "The unique identifier of the volume."@en ; + rdfs:range xsd:string ; + . + +observable:whoisContactType + a owl:DatatypeProperty ; + rdfs:label "whoisContactType"@en ; + rdfs:comment "Specifies what type of WHOIS contact this is."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:WhoisContactTypeVocab + ) ; + ] ; + . + +observable:whoisServer + a owl:ObjectProperty ; + rdfs:label "whoisServer"@en ; + rdfs:comment "Specifies the corresponding whois server for a registrar."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:win32VersionValue + a owl:DatatypeProperty ; + rdfs:label "win32VersionValue"@en ; + rdfs:comment "Specifies the reserved win32 version value."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:windowTitle + a owl:DatatypeProperty ; + rdfs:label "windowTitle"@en ; + rdfs:range xsd:string ; + . + +observable:windowsDirectory + a owl:ObjectProperty ; + rdfs:label "windowsDirectory"@en ; + rdfs:comment "The Windows_Directory field specifies the fully-qualified path to the Windows install directory."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:windowsSystemDirectory + a owl:ObjectProperty ; + rdfs:label "windowsSystemDirectory"@en ; + rdfs:comment "The Windows_System_Directory field specifies the fully-qualified path to the Windows system directory."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:windowsTempDirectory + a owl:ObjectProperty ; + rdfs:label "windowsTempDirectory"@en ; + rdfs:comment "The Windows_Temp_Directory field specifies the fully-qualified path to the Windows temporary files directory."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:windowsVolumeAttributes + a owl:DatatypeProperty ; + rdfs:label "windowsVolumeAttributes"@en ; + rdfs:comment "Specifies the attributes of a windows volume."@en ; + rdfs:range vocabulary:WindowsVolumeAttributeVocab ; + . + +observable:wirelessNetworkSecurityMode + a owl:DatatypeProperty ; + rdfs:label "wirelessNetworkSecurityMode"@en ; + rdfs:comment "Specifies the security mode of a wireless network (None, WEP, WPA, etc)."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:WirelessNetworkSecurityModeVocab + xsd:string + ) ; + ] ; + . + +observable:workItemData + a owl:ObjectProperty ; + rdfs:label "workItemData"@en ; + rdfs:comment "Specifies application defined data associated with the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381271(v=vs.85).aspx."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:workingDirectory + a owl:ObjectProperty ; + rdfs:label "workingDirectory"@en ; + rdfs:comment "Specifies the working directory for the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381878(v=vs.85).aspx."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:x509v3extensions + a owl:ObjectProperty ; + rdfs:label "x509V3Extensions"@en ; + rdfs:range observable:X509V3ExtensionsFacet ; + . + +observable:xMailer + a owl:DatatypeProperty ; + rdfs:label "xMailer"@en ; + rdfs:range xsd:string ; + . + +observable:xOriginatingIP + a owl:ObjectProperty ; + rdfs:label "xOriginatingIP"@en ; + rdfs:range observable:ObservableObject ; + . + +pattern:LogicalPattern + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf pattern:Pattern ; + rdfs:label "LogicalPattern"@en ; + rdfs:comment "A logical pattern is a grouping of characteristics unique to an informational pattern expressed via a structured pattern expression following the rules of logic."@en ; + sh:property [ + sh:datatype pattern:PatternExpression ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path pattern:patternExpression ; + ] ; + sh:targetClass pattern:LogicalPattern ; + . + +pattern:Pattern + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Pattern"@en ; + rdfs:comment "A pattern is a combination of properties, acts, tendencies, etc., forming a consistent or characteristic arrangement."@en ; + sh:targetClass pattern:Pattern ; + . + +pattern:PatternExpression + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "PatternExpression"@en ; + rdfs:comment "A pattern expression is a grouping of characteristics unique to an explicit logical expression defining a pattern (e.g., regular expression, SQL Select expression, etc.)."@en ; + sh:targetClass pattern:PatternExpression ; + . + +pattern:patternExpression + a owl:DatatypeProperty ; + rdfs:label "patternExpression"@en ; + rdfs:comment "An explicit logical pattern expression."@en ; + rdfs:range pattern:PatternExpression ; + . + +role:BenevolentRole + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "BenevolentRole"@en ; + rdfs:comment "A benevolent role is a role with positive and/or beneficial intent."@en ; + sh:targetClass role:BenevolentRole ; + . + +role:MaliciousRole + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "MaliciousRole"@en ; + rdfs:comment "A malicious role is a role with malevolent intent."@en ; + sh:targetClass role:MaliciousRole ; + . + +role:NeutralRole + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "NeutralRole"@en ; + rdfs:comment "A neutral role is a role with impartial intent."@en ; + sh:targetClass role:NeutralRole ; + . + +role:Role + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Role"@en ; + rdfs:comment "A role is a usual or customary function based on contextual perspective."@en ; + sh:targetClass role:Role ; + . + +time:Time + a rdfs:Datatype ; + . + +time:TimeRange + a rdfs:Datatype ; + . + +time:Timestamp + a rdfs:Datatype ; + . + +tool:AnalyticTool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf tool:Tool ; + rdfs:label "AnalyticTool"@en ; + rdfs:comment "An analytic tool is an artifact of hardware and/or software utilized to accomplish a task or purpose of explanation, interpretation or logical reasoning."@en ; + sh:targetClass tool:AnalyticTool ; + . + +tool:BuildFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "BuildFacet"@en ; + rdfs:comment "A build facet is a grouping of characteristics unique to a particular version of a software."@en ; + sh:property [ + sh:class tool:BuildInformationType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path tool:buildInformation ; + ] ; + sh:targetClass tool:BuildFacet ; + . + +tool:BuildInformationType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "BuildInformationType"@en ; + rdfs:comment "A build information type is a grouping of characteristics that describe how a particular version of software was converted from source code to executable code."@en ; + sh:property + [ + sh:class configuration:Configuration ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path tool:buildConfiguration ; + ] , + [ + sh:class tool:BuildUtilityType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path tool:buildUtility ; + ] , + [ + sh:class tool:CompilerType ; + sh:nodeKind sh:IRI ; + sh:path tool:compilers ; + ] , + [ + sh:class tool:LibraryType ; + sh:nodeKind sh:IRI ; + sh:path tool:libraries ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:compilationDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildLabel ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildOutputLog ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildProject ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildScript ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildVersion ; + ] + ; + sh:targetClass tool:BuildInformationType ; + . + +tool:BuildUtilityType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "BuildUtilityType"@en ; + rdfs:comment "A build utility type characterizes the tool used to convert from source code to executable code for a particular version of software."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildUtilityName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:cpeid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:swid ; + ] + ; + sh:targetClass tool:BuildUtilityType ; + . + +tool:CompilerType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "CompilerType"@en ; + rdfs:comment "A compiler type is a grouping of characteristics unique to a specific program that translates computer code written in one programming language (the source language) into another language (the target language). Typically a program that translates source code from a high-level programming language to a lower-level language (e.g., assembly language, object code, or machine code) to create an executable program. [based on https://en.wikipedia.org/wiki/Compiler]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:compilerInformalDescription ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:cpeid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:swid ; + ] + ; + sh:targetClass tool:CompilerType ; + . + +tool:ConfiguredTool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf tool:Tool ; + rdfs:label "ConfiguredTool"@en ; + rdfs:comment "A ConfiguredTool is a Tool that is known to be configured to run in a more specified manner than some unconfigured or less-configured Tool."@en ; + sh:property + [ + sh:class configuration:Configuration ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:usesConfiguration ; + ] , + [ + sh:class tool:Tool ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:isConfigurationOf ; + ] + ; + sh:targetClass tool:ConfiguredTool ; + . + +tool:DefensiveTool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf tool:Tool ; + rdfs:label "DefensiveTool"@en ; + rdfs:comment "A defensive tool is an artifact of hardware and/or software utilized to accomplish a task or purpose of guarding."@en ; + sh:targetClass tool:DefensiveTool ; + . + +tool:LibraryType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "LibraryType"@en ; + rdfs:comment "A library type is a grouping of characteristics unique to a collection of resources incorporated into the build of a software."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:libraryName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:libraryVersion ; + ] + ; + sh:targetClass tool:LibraryType ; + . + +tool:MaliciousTool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf tool:Tool ; + rdfs:label "MaliciousTool"@en ; + rdfs:comment "A malicious tool is an artifact of hardware and/or software utilized to accomplish a malevolent task or purpose."@en ; + sh:targetClass tool:MaliciousTool ; + . + +tool:Tool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Tool"@en ; + rdfs:comment "A tool is an element of hardware and/or software utilized to carry out a particular function."@en ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path tool:creator ; + ] , + [ + sh:datatype xsd:anyURI ; + sh:nodeKind sh:Literal ; + sh:path tool:references ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:servicePack ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:toolType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:version ; + ] + ; + sh:targetClass tool:Tool ; + . + +tool:buildConfiguration + a owl:ObjectProperty ; + rdfs:label "buildConfiguration"@en ; + rdfs:comment "How the build utility was configured for a particular build of a particular software."@en ; + rdfs:range configuration:Configuration ; + . + +tool:buildID + a owl:DatatypeProperty ; + rdfs:label "buildID"@en ; + rdfs:comment "An externally defined unique identifier for a particular build of a software."@en ; + rdfs:range xsd:string ; + . + +tool:buildInformation + a owl:ObjectProperty ; + rdfs:label "buildInformation"@en ; + rdfs:comment "Describes how a particular tool was built."@en ; + rdfs:range tool:BuildInformationType ; + . + +tool:buildLabel + a owl:DatatypeProperty ; + rdfs:label "buildLabel"@en ; + rdfs:comment "Relevant label for a particular build of a particular software."@en ; + rdfs:range xsd:string ; + . + +tool:buildOutputLog + a owl:DatatypeProperty ; + rdfs:label "buildOutputLog"@en ; + rdfs:comment "The output log of the build process for a software."@en ; + rdfs:range xsd:string ; + . + +tool:buildProject + a owl:DatatypeProperty ; + rdfs:label "buildProject"@en ; + rdfs:comment "The project name of a build of a software."@en ; + rdfs:range xsd:string ; + . + +tool:buildScript + a owl:DatatypeProperty ; + rdfs:label "buildScript"@en ; + rdfs:comment "The actual build script for a particular build of a particular software."@en ; + rdfs:range xsd:string ; + . + +tool:buildUtility + a owl:ObjectProperty ; + rdfs:label "buildUtility"@en ; + rdfs:comment "Identifies the utility used to build a software."@en ; + rdfs:range tool:BuildUtilityType ; + . + +tool:buildUtilityName + a owl:DatatypeProperty ; + rdfs:label "buildUtilityName"@en ; + rdfs:comment "The informally defined name of the utility used to build a particular software."@en ; + rdfs:range xsd:string ; + . + +tool:buildVersion + a owl:DatatypeProperty ; + rdfs:label "buildVersion"@en ; + rdfs:comment "The appropriate version descriptor of a particular build of a particular software."@en ; + rdfs:range xsd:string ; + . + +tool:compilationDate + a owl:DatatypeProperty ; + rdfs:label "compilationDate"@en ; + rdfs:comment "The compilation date for the build of a software."@en ; + rdfs:range xsd:dateTime ; + . + +tool:compilerInformalDescription + a owl:DatatypeProperty ; + rdfs:label "compilerInformalDescription"@en ; + rdfs:comment "An informal description of a compiler."@en ; + rdfs:range xsd:string ; + . + +tool:compilers + a owl:ObjectProperty ; + rdfs:label "compilers"@en ; + rdfs:comment "The compilers utilized during a particular build of a particular software."@en ; + rdfs:range tool:CompilerType ; + . + +tool:cpeid + a owl:DatatypeProperty ; + rdfs:label "cpeid"@en ; + rdfs:comment "Specifies the Common Platform Enumeration identifier for the software."@en ; + rdfs:range xsd:string ; + . + +tool:creator + a owl:ObjectProperty ; + rdfs:label "creator"@en ; + rdfs:comment "The creator organization for a particular tool."@en ; + rdfs:range identity:Identity ; + . + +tool:libraries + a owl:ObjectProperty ; + rdfs:label "libraries"@en ; + rdfs:comment "The libraries incorporated into a particular build of a software."@en ; + rdfs:range tool:LibraryType ; + . + +tool:libraryName + a owl:DatatypeProperty ; + rdfs:label "libraryName"@en ; + rdfs:comment "The name of the library."@en ; + rdfs:range xsd:string ; + . + +tool:libraryVersion + a owl:DatatypeProperty ; + rdfs:label "libraryVersion"@en ; + rdfs:comment "The version of the library."@en ; + rdfs:range xsd:string ; + . + +tool:references + a owl:DatatypeProperty ; + rdfs:label "references"@en ; + rdfs:comment "References to information describing a particular tool."@en ; + rdfs:range xsd:anyURI ; + . + +tool:servicePack + a owl:DatatypeProperty ; + rdfs:label "servicePack"@en ; + rdfs:comment "An appropriate service pack descriptor for a particular tool."@en ; + rdfs:range xsd:string ; + . + +tool:swid + a owl:DatatypeProperty ; + rdfs:label "swid"@en ; + rdfs:comment "Specifies the SWID tag for the software."@en ; + rdfs:range xsd:string ; + . + +tool:toolType + a owl:DatatypeProperty ; + rdfs:label "toolType"@en ; + rdfs:comment "The type of tool."@en ; + rdfs:range xsd:string ; + . + +tool:version + a owl:DatatypeProperty ; + rdfs:label "version"@en ; + rdfs:comment "An appropriate version descriptor of a particular tool."@en ; + rdfs:range xsd:string ; + . + +types:ControlledDictionary + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf types:Dictionary ; + rdfs:label "ControlledDictionary"@en ; + rdfs:comment "A controlled dictionary is a list of (term/key, value) pairs where each term/key exists no more than once and is constrained to an explicitly defined set of values."@en ; + sh:property [ + sh:class types:ControlledDictionaryEntry ; + sh:path types:entry ; + ] ; + sh:targetClass types:ControlledDictionary ; + . + +types:ControlledDictionaryEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf types:DictionaryEntry ; + rdfs:label "ControlledDictionaryEntry"@en ; + rdfs:comment "A controlled dictionary entry is a single (term/key, value) pair where the term/key is constrained to an explicitly defined set of values."@en ; + sh:targetClass types:ControlledDictionaryEntry ; + . + +types:Dictionary + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "Dictionary"@en ; + rdfs:comment "A dictionary is list of (term/key, value) pairs with each term/key existing no more than once."@en ; + sh:property [ + sh:class types:DictionaryEntry ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path types:entry ; + ] ; + sh:targetClass types:Dictionary ; + . + +types:DictionaryEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "DictionaryEntry"@en ; + rdfs:comment "A dictionary entry is a single (term/key, value) pair."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path types:key ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path types:value ; + ] + ; + sh:targetClass types:DictionaryEntry ; + . + +types:Hash + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "Hash"@en ; + rdfs:comment "A hash is a grouping of characteristics unique to the result of applying a mathematical algorithm that maps data of arbitrary size to a bit string (the 'hash') and is a one-way function, that is, a function which is practically infeasible to invert. This is commonly used for integrity checking of data. [based on https://en.wikipedia.org/wiki/Cryptographic_hash_function]"@en ; + sh:property + [ + sh:datatype xsd:hexBinary ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path types:hashValue ; + ] , + [ + sh:datatype vocabulary:HashNameVocab ; + sh:message "Value is outside the default vocabulary HashNameVocab." ; + sh:path types:hashMethod ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:HashNameVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path types:hashMethod ; + ] , + [ + sh:message "Value is not member of the vocabulary HashNameVocab." ; + sh:or ( + [ + sh:datatype vocabulary:HashNameVocab ; + sh:in ( + "MD5"^^vocabulary:HashNameVocab + "MD6"^^vocabulary:HashNameVocab + "SHA1"^^vocabulary:HashNameVocab + "SHA224"^^vocabulary:HashNameVocab + "SHA256"^^vocabulary:HashNameVocab + "SHA384"^^vocabulary:HashNameVocab + "SHA512"^^vocabulary:HashNameVocab + "SSDEEP"^^vocabulary:HashNameVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path types:hashMethod ; + ] + ; + sh:targetClass types:Hash ; + . + +types:Identifier + a rdfs:Datatype ; + rdfs:comment "An identifier is a string conformant to the specified UUID-based format for UCO object identifiers."@en ; + . + +types:NativeFormatString + a rdfs:Datatype ; + rdfs:comment "Specifies data in its native format of some external language. The data may be encoded in Base64 per [RFC4648]. Data encoded in Base64 must be denoted as such using the encoded property."@en ; + . + +types:StructuredText + a rdfs:Datatype ; + rdfs:comment "Expresses string-based data in some information structuring format (e.g., HTML5)."@en ; + . + +types:Thread + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + co:Bag , + core:UcoThing + ; + rdfs:label "Thread"@en ; + rdfs:comment "A semi-ordered array of items, that can be present in multiple copies. Implemetation of a UCO Thread is similar to a Collections Ontology List, except a Thread may fork and merge - that is, one of its members may have two or more direct successors, and two or more direct predecessors."@en ; + owl:disjointWith co:List ; + sh:property [ + sh:class types:ThreadItem ; + sh:path co:item ; + ] ; + . + +types:ThreadItem + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + co:Item , + core:UcoThing + ; + rdfs:label "ThreadItem"@en ; + rdfs:comment "A ThreadItem is a member of a thread."@en ; + owl:disjointWith co:ListItem ; + sh:property [ + sh:class core:UcoObject ; + sh:path co:itemContent ; + ] ; + . + +types:entry + a owl:ObjectProperty ; + rdfs:label "entry"@en ; + rdfs:comment "A dictionary entry."@en ; + rdfs:range types:DictionaryEntry ; + . + +types:hashMethod + a owl:DatatypeProperty ; + rdfs:label "hashMethod"@en ; + rdfs:comment "A particular cryptographic hashing method (e.g., MD5)."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:HashNameVocab + xsd:string + ) ; + ] ; + . + +types:hashValue + a owl:DatatypeProperty ; + rdfs:label "hashValue"@en ; + rdfs:comment "A cryptographic hash value."@en ; + rdfs:range xsd:hexBinary ; + . + +types:key + a owl:DatatypeProperty ; + rdfs:label "key"@en ; + rdfs:comment "A key property of a single dictionary entry."@en ; + rdfs:range xsd:string ; + . + +types:threadNextItem + a owl:ObjectProperty ; + rdfs:subPropertyOf types:threadSuccessor ; + rdfs:label "threadNextItem"@en ; + rdfs:comment "The link to a next item in a thread."@en ; + rdfs:seeAlso co:nextItem ; + . + +types:threadNextItem-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadNextItem ; + sh:targetSubjectsOf types:threadNextItem ; + . + +types:threadOriginItem + a owl:ObjectProperty ; + rdfs:subPropertyOf co:item ; + rdfs:label "threadOriginItem"@en ; + rdfs:comment "A link to an item of the thread known to have no predecessor."@en ; + rdfs:domain types:Thread ; + rdfs:range [ + a owl:Class ; + owl:intersectionOf ( + types:ThreadItem + [ + a owl:Restriction ; + owl:onProperty types:threadPreviousItem ; + owl:cardinality "0"^^xsd:nonNegativeInteger ; + ] + ) ; + ] ; + rdfs:seeAlso co:firstItem ; + . + +types:threadOriginItem-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadOriginItem ; + sh:targetSubjectsOf types:threadOriginItem ; + . + +types:threadOriginItem-subjects-threadPredecessor-shape + a sh:PropertyShape ; + sh:description "An origin item in a thread must not have a predecessor."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path ( + types:threadOriginItem + types:threadPredecessor + ) ; + sh:targetSubjectsOf types:threadOriginItem ; + . + +types:threadOriginItem-subjects-threadPreviousItem-shape + a sh:PropertyShape ; + sh:description "An origin item in a thread must not have a previous item."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path ( + types:threadOriginItem + types:threadPreviousItem + ) ; + sh:targetSubjectsOf types:threadOriginItem ; + . + +types:threadPredecessor + a + owl:ObjectProperty , + owl:TransitiveProperty + ; + rdfs:label "threadPredecessor"@en ; + rdfs:comment "The link to the preceding item in a thread."@en ; + rdfs:domain types:ThreadItem ; + rdfs:range types:ThreadItem ; + rdfs:seeAlso co:precededBy ; + owl:inverseOf types:threadSuccessor ; + . + +types:threadPredecessor-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadPredecessor ; + sh:targetSubjectsOf types:threadPredecessor ; + . + +types:threadPreviousItem + a owl:ObjectProperty ; + rdfs:subPropertyOf types:threadPredecessor ; + rdfs:label "threadPreviousItem"@en ; + rdfs:comment "A direct link to a previous item in a thread."@en ; + rdfs:seeAlso co:previousItem ; + owl:inverseOf types:threadNextItem ; + . + +types:threadPreviousItem-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadPreviousItem ; + sh:targetSubjectsOf types:threadPreviousItem ; + . + +types:threadSuccessor + a + owl:ObjectProperty , + owl:TransitiveProperty + ; + rdfs:label "threadSuccessor"@en ; + rdfs:comment "A link to a following item in a thread."@en ; + rdfs:domain types:ThreadItem ; + rdfs:range types:ThreadItem ; + rdfs:seeAlso co:followedBy ; + . + +types:threadSuccessor-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadSuccessor ; + sh:targetSubjectsOf types:threadSuccessor ; + . + +types:threadTerminalItem + a owl:ObjectProperty ; + rdfs:subPropertyOf co:item ; + rdfs:label "threadTerminalItem"@en ; + rdfs:comment "A link to an item of the thread known to have no successor."@en ; + rdfs:domain types:Thread ; + rdfs:range [ + a owl:Class ; + owl:intersectionOf ( + types:ThreadItem + [ + a owl:Restriction ; + owl:onProperty types:threadNextItem ; + owl:cardinality "0"^^xsd:nonNegativeInteger ; + ] + ) ; + ] ; + rdfs:seeAlso co:lastItem ; + . + +types:threadTerminalItem-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadTerminalItem ; + sh:targetSubjectsOf types:threadTerminalItem ; + . + +types:threadTerminalItem-subjects-threadNextItem-shape + a sh:PropertyShape ; + sh:description "A terminal item in a thread must not have a next item."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path ( + types:threadTerminalItem + types:threadNextItem + ) ; + sh:targetSubjectsOf types:threadTerminalItem ; + . + +types:threadTerminalItem-subjects-threadSuccessor-shape + a sh:PropertyShape ; + sh:description "A terminal item in a thread must not have a successor."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path ( + types:threadTerminalItem + types:threadSuccessor + ) ; + sh:targetSubjectsOf types:threadTerminalItem ; + . + +types:value + a owl:DatatypeProperty ; + rdfs:label "value"@en ; + rdfs:comment "A specific property value."@en ; + rdfs:range xsd:string ; + . + +victim:Victim + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:NeutralRole ; + rdfs:label "Victim"@en ; + rdfs:comment "A victim is a role played by a person or organization that is/was the target of some malicious action."@en ; + sh:targetClass victim:Victim ; + . + +victim:VictimTargeting + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf victim:Victim ; + rdfs:label "VictimTargeting"@en ; + rdfs:comment "A victim targeting is a grouping of characteristics unique to people or organizations that are the target of some malicious activity."@en ; + sh:targetClass victim:VictimTargeting ; + . + +vocabulary:AccountTypeVocab + a rdfs:Datatype ; + rdfs:label "Account Type Vocabulary"@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ldap"^^vocabulary:AccountTypeVocab + "nis"^^vocabulary:AccountTypeVocab + "openid"^^vocabulary:AccountTypeVocab + "radius"^^vocabulary:AccountTypeVocab + "tacacs"^^vocabulary:AccountTypeVocab + "unix"^^vocabulary:AccountTypeVocab + "windows_domain"^^vocabulary:AccountTypeVocab + "windows_local"^^vocabulary:AccountTypeVocab + ) ; + ] ; + . + +vocabulary:ActionArgumentNameVocab + a rdfs:Datatype ; + rdfs:label "Action Argument Name Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary for common arguments of cyber actions."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "APC Address"^^vocabulary:ActionArgumentNameVocab + "APC Mode"^^vocabulary:ActionArgumentNameVocab + "API"^^vocabulary:ActionArgumentNameVocab + "Access Mode"^^vocabulary:ActionArgumentNameVocab + "Application Name"^^vocabulary:ActionArgumentNameVocab + "Base Address"^^vocabulary:ActionArgumentNameVocab + "Callback Address"^^vocabulary:ActionArgumentNameVocab + "Code Address"^^vocabulary:ActionArgumentNameVocab + "Command"^^vocabulary:ActionArgumentNameVocab + "Control Code"^^vocabulary:ActionArgumentNameVocab + "Control Parameter"^^vocabulary:ActionArgumentNameVocab + "Creation Flags"^^vocabulary:ActionArgumentNameVocab + "Database Name"^^vocabulary:ActionArgumentNameVocab + "Delay Time (ms)"^^vocabulary:ActionArgumentNameVocab + "Destination Address"^^vocabulary:ActionArgumentNameVocab + "Error Control"^^vocabulary:ActionArgumentNameVocab + "File Information Class"^^vocabulary:ActionArgumentNameVocab + "Flags"^^vocabulary:ActionArgumentNameVocab + "Function Address"^^vocabulary:ActionArgumentNameVocab + "Function Name"^^vocabulary:ActionArgumentNameVocab + "Function Ordinal"^^vocabulary:ActionArgumentNameVocab + "Hook Type"^^vocabulary:ActionArgumentNameVocab + "Host Name"^^vocabulary:ActionArgumentNameVocab + "Hostname"^^vocabulary:ActionArgumentNameVocab + "Initial Owner"^^vocabulary:ActionArgumentNameVocab + "Mapping Offset"^^vocabulary:ActionArgumentNameVocab + "Number of Bytes Per Send"^^vocabulary:ActionArgumentNameVocab + "Options"^^vocabulary:ActionArgumentNameVocab + "Parameter Address"^^vocabulary:ActionArgumentNameVocab + "Password"^^vocabulary:ActionArgumentNameVocab + "Privilege Name"^^vocabulary:ActionArgumentNameVocab + "Protection"^^vocabulary:ActionArgumentNameVocab + "Proxy Bypass"^^vocabulary:ActionArgumentNameVocab + "Proxy Name"^^vocabulary:ActionArgumentNameVocab + "Reason"^^vocabulary:ActionArgumentNameVocab + "Request Size"^^vocabulary:ActionArgumentNameVocab + "Requested Version"^^vocabulary:ActionArgumentNameVocab + "Server"^^vocabulary:ActionArgumentNameVocab + "Service Name"^^vocabulary:ActionArgumentNameVocab + "Service State"^^vocabulary:ActionArgumentNameVocab + "Service Type"^^vocabulary:ActionArgumentNameVocab + "Share Mode"^^vocabulary:ActionArgumentNameVocab + "Shutdown Flag"^^vocabulary:ActionArgumentNameVocab + "Size (bytes)"^^vocabulary:ActionArgumentNameVocab + "Sleep Time (ms)"^^vocabulary:ActionArgumentNameVocab + "Source Address"^^vocabulary:ActionArgumentNameVocab + "Starting Address"^^vocabulary:ActionArgumentNameVocab + "System Metric Index"^^vocabulary:ActionArgumentNameVocab + "Target PID"^^vocabulary:ActionArgumentNameVocab + "Transfer Flags"^^vocabulary:ActionArgumentNameVocab + "Username"^^vocabulary:ActionArgumentNameVocab + ) ; + ] ; + . + +vocabulary:ActionNameVocab + a rdfs:Datatype ; + rdfs:label "Action Name Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of common specific cyber action names."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Accept Socket Connection"^^vocabulary:ActionNameVocab + "Add Connection to Network Share"^^vocabulary:ActionNameVocab + "Add Network Share"^^vocabulary:ActionNameVocab + "Add Scheduled Task"^^vocabulary:ActionNameVocab + "Add System Call Hook"^^vocabulary:ActionNameVocab + "Add User"^^vocabulary:ActionNameVocab + "Add Windows Hook"^^vocabulary:ActionNameVocab + "Allocate Virtual Memory in Process"^^vocabulary:ActionNameVocab + "Bind Address to Socket"^^vocabulary:ActionNameVocab + "Change Service Configuration"^^vocabulary:ActionNameVocab + "Check for Remote Debugger"^^vocabulary:ActionNameVocab + "Close Port"^^vocabulary:ActionNameVocab + "Close Registry Key"^^vocabulary:ActionNameVocab + "Close Socket"^^vocabulary:ActionNameVocab + "Configure Service"^^vocabulary:ActionNameVocab + "Connect to IP"^^vocabulary:ActionNameVocab + "Connect to Named Pipe"^^vocabulary:ActionNameVocab + "Connect to Network Share"^^vocabulary:ActionNameVocab + "Connect to Socket"^^vocabulary:ActionNameVocab + "Connect to URL"^^vocabulary:ActionNameVocab + "Control Driver"^^vocabulary:ActionNameVocab + "Control Service"^^vocabulary:ActionNameVocab + "Copy File"^^vocabulary:ActionNameVocab + "Create Dialog Box"^^vocabulary:ActionNameVocab + "Create Directory"^^vocabulary:ActionNameVocab + "Create Event"^^vocabulary:ActionNameVocab + "Create File"^^vocabulary:ActionNameVocab + "Create File Alternate Data Stream"^^vocabulary:ActionNameVocab + "Create File Mapping"^^vocabulary:ActionNameVocab + "Create File Symbolic Link"^^vocabulary:ActionNameVocab + "Create Hidden File"^^vocabulary:ActionNameVocab + "Create Mailslot"^^vocabulary:ActionNameVocab + "Create Module"^^vocabulary:ActionNameVocab + "Create Mutex"^^vocabulary:ActionNameVocab + "Create Named Pipe"^^vocabulary:ActionNameVocab + "Create Process"^^vocabulary:ActionNameVocab + "Create Process as User"^^vocabulary:ActionNameVocab + "Create Registry Key"^^vocabulary:ActionNameVocab + "Create Registry Key Value"^^vocabulary:ActionNameVocab + "Create Remote Thread in Process"^^vocabulary:ActionNameVocab + "Create Service"^^vocabulary:ActionNameVocab + "Create Socket"^^vocabulary:ActionNameVocab + "Create Symbolic Link"^^vocabulary:ActionNameVocab + "Create Thread"^^vocabulary:ActionNameVocab + "Create Window"^^vocabulary:ActionNameVocab + "Delete Directory"^^vocabulary:ActionNameVocab + "Delete File"^^vocabulary:ActionNameVocab + "Delete Named Pipe"^^vocabulary:ActionNameVocab + "Delete Network Share"^^vocabulary:ActionNameVocab + "Delete Registry Key"^^vocabulary:ActionNameVocab + "Delete Registry Key Value"^^vocabulary:ActionNameVocab + "Delete Service"^^vocabulary:ActionNameVocab + "Delete User"^^vocabulary:ActionNameVocab + "Disconnect from Named Pipe"^^vocabulary:ActionNameVocab + "Disconnect from Network Share"^^vocabulary:ActionNameVocab + "Disconnect from Socket"^^vocabulary:ActionNameVocab + "Download File"^^vocabulary:ActionNameVocab + "Enumerate DLLs"^^vocabulary:ActionNameVocab + "Enumerate Network Shares"^^vocabulary:ActionNameVocab + "Enumerate Processes"^^vocabulary:ActionNameVocab + "Enumerate Protocols"^^vocabulary:ActionNameVocab + "Enumerate Registry Key Subkeys"^^vocabulary:ActionNameVocab + "Enumerate Registry Key Values"^^vocabulary:ActionNameVocab + "Enumerate Services"^^vocabulary:ActionNameVocab + "Enumerate System Handles"^^vocabulary:ActionNameVocab + "Enumerate Threads"^^vocabulary:ActionNameVocab + "Enumerate Threads in Process"^^vocabulary:ActionNameVocab + "Enumerate Users"^^vocabulary:ActionNameVocab + "Enumerate Windows"^^vocabulary:ActionNameVocab + "Find File"^^vocabulary:ActionNameVocab + "Find Window"^^vocabulary:ActionNameVocab + "Flush Process Instruction Cache"^^vocabulary:ActionNameVocab + "Free Library"^^vocabulary:ActionNameVocab + "Free Process Virtual Memory"^^vocabulary:ActionNameVocab + "Get Disk Free Space"^^vocabulary:ActionNameVocab + "Get Disk Type"^^vocabulary:ActionNameVocab + "Get Elapsed System Up Time"^^vocabulary:ActionNameVocab + "Get File Attributes"^^vocabulary:ActionNameVocab + "Get Function Address"^^vocabulary:ActionNameVocab + "Get Host By Address"^^vocabulary:ActionNameVocab + "Get Host By Name"^^vocabulary:ActionNameVocab + "Get Host Name"^^vocabulary:ActionNameVocab + "Get Library File Name"^^vocabulary:ActionNameVocab + "Get Library Handle"^^vocabulary:ActionNameVocab + "Get NetBIOS Name"^^vocabulary:ActionNameVocab + "Get Process Current Directory"^^vocabulary:ActionNameVocab + "Get Process Environment Variable"^^vocabulary:ActionNameVocab + "Get Process Startup Information"^^vocabulary:ActionNameVocab + "Get Processes Snapshot"^^vocabulary:ActionNameVocab + "Get Registry Key Attributes"^^vocabulary:ActionNameVocab + "Get Service Status"^^vocabulary:ActionNameVocab + "Get System Global Flags"^^vocabulary:ActionNameVocab + "Get System Host Name"^^vocabulary:ActionNameVocab + "Get System Local Time"^^vocabulary:ActionNameVocab + "Get System NetBIOS Name"^^vocabulary:ActionNameVocab + "Get System Network Parameters"^^vocabulary:ActionNameVocab + "Get System Time"^^vocabulary:ActionNameVocab + "Get Thread Context"^^vocabulary:ActionNameVocab + "Get Thread Username"^^vocabulary:ActionNameVocab + "Get User Attributes"^^vocabulary:ActionNameVocab + "Get Username"^^vocabulary:ActionNameVocab + "Get Windows Directory"^^vocabulary:ActionNameVocab + "Get Windows System Directory"^^vocabulary:ActionNameVocab + "Get Windows Temporary Files Directory"^^vocabulary:ActionNameVocab + "Hide Window"^^vocabulary:ActionNameVocab + "Impersonate Process"^^vocabulary:ActionNameVocab + "Impersonate Thread"^^vocabulary:ActionNameVocab + "Inject Memory Page"^^vocabulary:ActionNameVocab + "Kill Process"^^vocabulary:ActionNameVocab + "Kill Thread"^^vocabulary:ActionNameVocab + "Kill Window"^^vocabulary:ActionNameVocab + "Listen on Port"^^vocabulary:ActionNameVocab + "Listen on Socket"^^vocabulary:ActionNameVocab + "Load Driver"^^vocabulary:ActionNameVocab + "Load Library"^^vocabulary:ActionNameVocab + "Load Module"^^vocabulary:ActionNameVocab + "Load and Call Driver"^^vocabulary:ActionNameVocab + "Lock File"^^vocabulary:ActionNameVocab + "Logon as User"^^vocabulary:ActionNameVocab + "Map File"^^vocabulary:ActionNameVocab + "Map Library"^^vocabulary:ActionNameVocab + "Map View of File"^^vocabulary:ActionNameVocab + "Modify File"^^vocabulary:ActionNameVocab + "Modify Named Pipe"^^vocabulary:ActionNameVocab + "Modify Process"^^vocabulary:ActionNameVocab + "Modify Registry Key"^^vocabulary:ActionNameVocab + "Modify Registry Key Value"^^vocabulary:ActionNameVocab + "Modify Service"^^vocabulary:ActionNameVocab + "Monitor Registry Key"^^vocabulary:ActionNameVocab + "Move File"^^vocabulary:ActionNameVocab + "Open File"^^vocabulary:ActionNameVocab + "Open File Mapping"^^vocabulary:ActionNameVocab + "Open Mutex"^^vocabulary:ActionNameVocab + "Open Port"^^vocabulary:ActionNameVocab + "Open Process"^^vocabulary:ActionNameVocab + "Open Registry Key"^^vocabulary:ActionNameVocab + "Open Service"^^vocabulary:ActionNameVocab + "Open Service Control Manager"^^vocabulary:ActionNameVocab + "Protect Virtual Memory"^^vocabulary:ActionNameVocab + "Query DNS"^^vocabulary:ActionNameVocab + "Query Disk Attributes"^^vocabulary:ActionNameVocab + "Query Process Virtual Memory"^^vocabulary:ActionNameVocab + "Queue APC in Thread"^^vocabulary:ActionNameVocab + "Read File"^^vocabulary:ActionNameVocab + "Read From Named Pipe"^^vocabulary:ActionNameVocab + "Read From Process Memory"^^vocabulary:ActionNameVocab + "Read Registry Key Value"^^vocabulary:ActionNameVocab + "Receive Data on Socket"^^vocabulary:ActionNameVocab + "Receive Email Message"^^vocabulary:ActionNameVocab + "Release Mutex"^^vocabulary:ActionNameVocab + "Rename File"^^vocabulary:ActionNameVocab + "Revert Thread to Self"^^vocabulary:ActionNameVocab + "Send Control Code to File"^^vocabulary:ActionNameVocab + "Send Control Code to Pipe"^^vocabulary:ActionNameVocab + "Send Control Code to Service"^^vocabulary:ActionNameVocab + "Send DNS Query"^^vocabulary:ActionNameVocab + "Send Data on Socket"^^vocabulary:ActionNameVocab + "Send Data to Address on Socket"^^vocabulary:ActionNameVocab + "Send Email Message"^^vocabulary:ActionNameVocab + "Send ICMP Request"^^vocabulary:ActionNameVocab + "Send Reverse DNS Query"^^vocabulary:ActionNameVocab + "Set File Attributes"^^vocabulary:ActionNameVocab + "Set NetBIOS Name"^^vocabulary:ActionNameVocab + "Set Process Current Directory"^^vocabulary:ActionNameVocab + "Set Process Environment Variable"^^vocabulary:ActionNameVocab + "Set System Global Flags"^^vocabulary:ActionNameVocab + "Set System Host Name"^^vocabulary:ActionNameVocab + "Set System Time"^^vocabulary:ActionNameVocab + "Set Thread Context"^^vocabulary:ActionNameVocab + "Show Window"^^vocabulary:ActionNameVocab + "Shutdown System"^^vocabulary:ActionNameVocab + "Sleep Process"^^vocabulary:ActionNameVocab + "Sleep System"^^vocabulary:ActionNameVocab + "Start Service"^^vocabulary:ActionNameVocab + "Unload Driver"^^vocabulary:ActionNameVocab + "Unload Module"^^vocabulary:ActionNameVocab + "Unlock File"^^vocabulary:ActionNameVocab + "Unmap File"^^vocabulary:ActionNameVocab + "Upload File"^^vocabulary:ActionNameVocab + "Write to File"^^vocabulary:ActionNameVocab + "Write to Process Virtual Memory"^^vocabulary:ActionNameVocab + ) ; + ] ; + . + +vocabulary:ActionRelationshipTypeVocab + a rdfs:Datatype ; + rdfs:label "Action Relationship Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary for capturing types of relationships between actions."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Dependent_On"^^vocabulary:ActionRelationshipTypeVocab + "Equivalent_To"^^vocabulary:ActionRelationshipTypeVocab + "Followed_By"^^vocabulary:ActionRelationshipTypeVocab + "Initiated"^^vocabulary:ActionRelationshipTypeVocab + "Initiated_By"^^vocabulary:ActionRelationshipTypeVocab + "Preceded_By"^^vocabulary:ActionRelationshipTypeVocab + "Related_To"^^vocabulary:ActionRelationshipTypeVocab + ) ; + ] ; + . + +vocabulary:ActionStatusTypeVocab + a rdfs:Datatype ; + rdfs:label "Action Status Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of action status types."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Complete/Finish"^^vocabulary:ActionStatusTypeVocab + "Error"^^vocabulary:ActionStatusTypeVocab + "Fail"^^vocabulary:ActionStatusTypeVocab + "Ongoing"^^vocabulary:ActionStatusTypeVocab + "Pending"^^vocabulary:ActionStatusTypeVocab + "Success"^^vocabulary:ActionStatusTypeVocab + "Unknown"^^vocabulary:ActionStatusTypeVocab + ) ; + ] ; + . + +vocabulary:ActionTypeVocab + a rdfs:Datatype ; + rdfs:label "Action Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of common general action types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Accept"^^vocabulary:ActionTypeVocab + "Access"^^vocabulary:ActionTypeVocab + "Add"^^vocabulary:ActionTypeVocab + "Alert"^^vocabulary:ActionTypeVocab + "Allocate"^^vocabulary:ActionTypeVocab + "Archive"^^vocabulary:ActionTypeVocab + "Assign"^^vocabulary:ActionTypeVocab + "Audit"^^vocabulary:ActionTypeVocab + "Backup"^^vocabulary:ActionTypeVocab + "Bind"^^vocabulary:ActionTypeVocab + "Block"^^vocabulary:ActionTypeVocab + "Call"^^vocabulary:ActionTypeVocab + "Change"^^vocabulary:ActionTypeVocab + "Check"^^vocabulary:ActionTypeVocab + "Clean"^^vocabulary:ActionTypeVocab + "Click"^^vocabulary:ActionTypeVocab + "Close"^^vocabulary:ActionTypeVocab + "Compare"^^vocabulary:ActionTypeVocab + "Compress"^^vocabulary:ActionTypeVocab + "Configure"^^vocabulary:ActionTypeVocab + "Connect"^^vocabulary:ActionTypeVocab + "Control"^^vocabulary:ActionTypeVocab + "Copy/Duplicate"^^vocabulary:ActionTypeVocab + "Create"^^vocabulary:ActionTypeVocab + "Decode"^^vocabulary:ActionTypeVocab + "Decompress"^^vocabulary:ActionTypeVocab + "Decrypt"^^vocabulary:ActionTypeVocab + "Deny"^^vocabulary:ActionTypeVocab + "Depress"^^vocabulary:ActionTypeVocab + "Detect"^^vocabulary:ActionTypeVocab + "Disconnect"^^vocabulary:ActionTypeVocab + "Download"^^vocabulary:ActionTypeVocab + "Draw"^^vocabulary:ActionTypeVocab + "Drop"^^vocabulary:ActionTypeVocab + "Encode"^^vocabulary:ActionTypeVocab + "Encrypt"^^vocabulary:ActionTypeVocab + "Enumerate"^^vocabulary:ActionTypeVocab + "Execute"^^vocabulary:ActionTypeVocab + "Extract"^^vocabulary:ActionTypeVocab + "Filter"^^vocabulary:ActionTypeVocab + "Find"^^vocabulary:ActionTypeVocab + "Flush"^^vocabulary:ActionTypeVocab + "Fork"^^vocabulary:ActionTypeVocab + "Free"^^vocabulary:ActionTypeVocab + "Get"^^vocabulary:ActionTypeVocab + "Hide"^^vocabulary:ActionTypeVocab + "Hook"^^vocabulary:ActionTypeVocab + "Impersonate"^^vocabulary:ActionTypeVocab + "Initialize"^^vocabulary:ActionTypeVocab + "Inject"^^vocabulary:ActionTypeVocab + "Install"^^vocabulary:ActionTypeVocab + "Interleave"^^vocabulary:ActionTypeVocab + "Join"^^vocabulary:ActionTypeVocab + "Kill"^^vocabulary:ActionTypeVocab + "Listen"^^vocabulary:ActionTypeVocab + "Load"^^vocabulary:ActionTypeVocab + "Lock"^^vocabulary:ActionTypeVocab + "Login/Logon"^^vocabulary:ActionTypeVocab + "Logout/Logoff"^^vocabulary:ActionTypeVocab + "Map"^^vocabulary:ActionTypeVocab + "Merge"^^vocabulary:ActionTypeVocab + "Modify"^^vocabulary:ActionTypeVocab + "Monitor"^^vocabulary:ActionTypeVocab + "Move"^^vocabulary:ActionTypeVocab + "Open"^^vocabulary:ActionTypeVocab + "Pack"^^vocabulary:ActionTypeVocab + "Pause"^^vocabulary:ActionTypeVocab + "Press"^^vocabulary:ActionTypeVocab + "Protect"^^vocabulary:ActionTypeVocab + "Quarantine"^^vocabulary:ActionTypeVocab + "Query"^^vocabulary:ActionTypeVocab + "Queue"^^vocabulary:ActionTypeVocab + "Raise"^^vocabulary:ActionTypeVocab + "Read"^^vocabulary:ActionTypeVocab + "Receive"^^vocabulary:ActionTypeVocab + "Release"^^vocabulary:ActionTypeVocab + "Remove/Delete"^^vocabulary:ActionTypeVocab + "Rename"^^vocabulary:ActionTypeVocab + "Replicate"^^vocabulary:ActionTypeVocab + "Restore"^^vocabulary:ActionTypeVocab + "Resume"^^vocabulary:ActionTypeVocab + "Revert"^^vocabulary:ActionTypeVocab + "Run"^^vocabulary:ActionTypeVocab + "Save"^^vocabulary:ActionTypeVocab + "Scan"^^vocabulary:ActionTypeVocab + "Schedule"^^vocabulary:ActionTypeVocab + "Search"^^vocabulary:ActionTypeVocab + "Send"^^vocabulary:ActionTypeVocab + "Set"^^vocabulary:ActionTypeVocab + "Shutdown"^^vocabulary:ActionTypeVocab + "Sleep"^^vocabulary:ActionTypeVocab + "Snapshot"^^vocabulary:ActionTypeVocab + "Start"^^vocabulary:ActionTypeVocab + "Stop"^^vocabulary:ActionTypeVocab + "Suspend"^^vocabulary:ActionTypeVocab + "Synchronize"^^vocabulary:ActionTypeVocab + "Throw"^^vocabulary:ActionTypeVocab + "Transmit"^^vocabulary:ActionTypeVocab + "Unblock"^^vocabulary:ActionTypeVocab + "Unhide"^^vocabulary:ActionTypeVocab + "Unhook"^^vocabulary:ActionTypeVocab + "Uninstall"^^vocabulary:ActionTypeVocab + "Unload"^^vocabulary:ActionTypeVocab + "Unlock"^^vocabulary:ActionTypeVocab + "Unmap"^^vocabulary:ActionTypeVocab + "Unpack"^^vocabulary:ActionTypeVocab + "Update"^^vocabulary:ActionTypeVocab + "Upgrade"^^vocabulary:ActionTypeVocab + "Upload"^^vocabulary:ActionTypeVocab + "Wipe/Destroy/Purge"^^vocabulary:ActionTypeVocab + "Write"^^vocabulary:ActionTypeVocab + ) ; + ] ; + . + +vocabulary:BitnessVocab + a rdfs:Datatype ; + rdfs:label "Bitness Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of word sizes that define classes of operating systems."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "32"^^vocabulary:BitnessVocab + "64"^^vocabulary:BitnessVocab + ) ; + ] ; + . + +vocabulary:CharacterEncodingVocab + a rdfs:Datatype ; + rdfs:label "Character Encoding Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of character encodings."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ASCII"^^vocabulary:CharacterEncodingVocab + "UTF-16"^^vocabulary:CharacterEncodingVocab + "UTF-32"^^vocabulary:CharacterEncodingVocab + "UTF-8"^^vocabulary:CharacterEncodingVocab + "Windows-1250"^^vocabulary:CharacterEncodingVocab + "Windows-1251"^^vocabulary:CharacterEncodingVocab + "Windows-1252"^^vocabulary:CharacterEncodingVocab + "Windows-1253"^^vocabulary:CharacterEncodingVocab + "Windows-1254"^^vocabulary:CharacterEncodingVocab + "Windows-1255"^^vocabulary:CharacterEncodingVocab + "Windows-1256"^^vocabulary:CharacterEncodingVocab + "Windows-1257"^^vocabulary:CharacterEncodingVocab + "Windows-1258"^^vocabulary:CharacterEncodingVocab + ) ; + ] ; + . + +vocabulary:ContactAddressScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact Address Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for address entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactAddressScopeVocab + "work"^^vocabulary:ContactAddressScopeVocab + "school"^^vocabulary:ContactAddressScopeVocab + ) ; + ] ; + . + +vocabulary:ContactEmailScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact Email Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for email entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactEmailScopeVocab + "work"^^vocabulary:ContactEmailScopeVocab + "school"^^vocabulary:ContactEmailScopeVocab + "cloud"^^vocabulary:ContactEmailScopeVocab + ) ; + ] ; + . + +vocabulary:ContactPhoneScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact Phone Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for phone entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactPhoneScopeVocab + "work"^^vocabulary:ContactPhoneScopeVocab + "school"^^vocabulary:ContactPhoneScopeVocab + "mobile"^^vocabulary:ContactPhoneScopeVocab + "main"^^vocabulary:ContactPhoneScopeVocab + "home fax"^^vocabulary:ContactPhoneScopeVocab + "work fax"^^vocabulary:ContactPhoneScopeVocab + "pager"^^vocabulary:ContactPhoneScopeVocab + ) ; + ] ; + . + +vocabulary:ContactSIPScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact SIP Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for Session Initiation Protocol (SIP) entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactSIPScopeVocab + "work"^^vocabulary:ContactSIPScopeVocab + "school"^^vocabulary:ContactSIPScopeVocab + ) ; + ] ; + . + +vocabulary:ContactURLScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact URL Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for URL entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactURLScopeVocab + "work"^^vocabulary:ContactURLScopeVocab + "school"^^vocabulary:ContactURLScopeVocab + "homepage"^^vocabulary:ContactURLScopeVocab + ) ; + ] ; + . + +vocabulary:DiskTypeVocab + a rdfs:Datatype ; + rdfs:label "Disk Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of disk types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "CDRom"^^vocabulary:DiskTypeVocab + "Fixed"^^vocabulary:DiskTypeVocab + "RAMDisk"^^vocabulary:DiskTypeVocab + "Remote"^^vocabulary:DiskTypeVocab + "Removable"^^vocabulary:DiskTypeVocab + ) ; + ] ; + . + +vocabulary:EndiannessTypeVocab + a rdfs:Datatype ; + rdfs:label "Endianness Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of byte ordering methods."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Big-endian"^^vocabulary:EndiannessTypeVocab + "Little-endian"^^vocabulary:EndiannessTypeVocab + "Middle-endian"^^vocabulary:EndiannessTypeVocab + ) ; + ] ; + . + +vocabulary:HashNameVocab + a rdfs:Datatype ; + rdfs:label "Hash Name Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of hashing algorithm names."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "MD5"^^vocabulary:HashNameVocab + "MD6"^^vocabulary:HashNameVocab + "SHA1"^^vocabulary:HashNameVocab + "SHA224"^^vocabulary:HashNameVocab + "SHA256"^^vocabulary:HashNameVocab + "SHA384"^^vocabulary:HashNameVocab + "SHA512"^^vocabulary:HashNameVocab + "SSDEEP"^^vocabulary:HashNameVocab + ) ; + ] ; + . + +vocabulary:LibraryTypeVocab + a rdfs:Datatype ; + rdfs:label "Library Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of library types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Dynamic"^^vocabulary:LibraryTypeVocab + "Other"^^vocabulary:LibraryTypeVocab + "Remote"^^vocabulary:LibraryTypeVocab + "Shared"^^vocabulary:LibraryTypeVocab + "Static"^^vocabulary:LibraryTypeVocab + ) ; + ] ; + . + +vocabulary:MemoryBlockTypeVocab + a rdfs:Datatype ; + rdfs:label "Memory Block Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of types of memory blocks."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Bit-mapped"^^vocabulary:MemoryBlockTypeVocab + "Byte-mapped"^^vocabulary:MemoryBlockTypeVocab + "Initialized"^^vocabulary:MemoryBlockTypeVocab + "Overlay"^^vocabulary:MemoryBlockTypeVocab + "Uninitialized"^^vocabulary:MemoryBlockTypeVocab + ) ; + ] ; + . + +vocabulary:ObservableObjectRelationshipVocab + a rdfs:Datatype ; + rdfs:label "Cyber Item Relationship Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of inter-observable object relationships."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Allocated"^^vocabulary:ObservableObjectRelationshipVocab + "Allocated_By"^^vocabulary:ObservableObjectRelationshipVocab + "Attachment_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Bound"^^vocabulary:ObservableObjectRelationshipVocab + "Bound_By"^^vocabulary:ObservableObjectRelationshipVocab + "Characterized_By"^^vocabulary:ObservableObjectRelationshipVocab + "Characterizes"^^vocabulary:ObservableObjectRelationshipVocab + "Child_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Closed"^^vocabulary:ObservableObjectRelationshipVocab + "Closed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Compressed"^^vocabulary:ObservableObjectRelationshipVocab + "Compressed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Compressed_From"^^vocabulary:ObservableObjectRelationshipVocab + "Compressed_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Connected_From"^^vocabulary:ObservableObjectRelationshipVocab + "Connected_To"^^vocabulary:ObservableObjectRelationshipVocab + "Contained_Within"^^vocabulary:ObservableObjectRelationshipVocab + "Contains"^^vocabulary:ObservableObjectRelationshipVocab + "Copied"^^vocabulary:ObservableObjectRelationshipVocab + "Copied_By"^^vocabulary:ObservableObjectRelationshipVocab + "Copied_From"^^vocabulary:ObservableObjectRelationshipVocab + "Copied_To"^^vocabulary:ObservableObjectRelationshipVocab + "Created"^^vocabulary:ObservableObjectRelationshipVocab + "Created_By"^^vocabulary:ObservableObjectRelationshipVocab + "Decoded"^^vocabulary:ObservableObjectRelationshipVocab + "Decoded_By"^^vocabulary:ObservableObjectRelationshipVocab + "Decompressed"^^vocabulary:ObservableObjectRelationshipVocab + "Decompressed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Decrypted"^^vocabulary:ObservableObjectRelationshipVocab + "Decrypted_By"^^vocabulary:ObservableObjectRelationshipVocab + "Deleted"^^vocabulary:ObservableObjectRelationshipVocab + "Deleted_By"^^vocabulary:ObservableObjectRelationshipVocab + "Deleted_From"^^vocabulary:ObservableObjectRelationshipVocab + "Downloaded"^^vocabulary:ObservableObjectRelationshipVocab + "Downloaded_By"^^vocabulary:ObservableObjectRelationshipVocab + "Downloaded_From"^^vocabulary:ObservableObjectRelationshipVocab + "Downloaded_To"^^vocabulary:ObservableObjectRelationshipVocab + "Dropped"^^vocabulary:ObservableObjectRelationshipVocab + "Dropped_By"^^vocabulary:ObservableObjectRelationshipVocab + "Encoded"^^vocabulary:ObservableObjectRelationshipVocab + "Encoded_By"^^vocabulary:ObservableObjectRelationshipVocab + "Encrypted"^^vocabulary:ObservableObjectRelationshipVocab + "Encrypted_By"^^vocabulary:ObservableObjectRelationshipVocab + "Encrypted_From"^^vocabulary:ObservableObjectRelationshipVocab + "Encrypted_To"^^vocabulary:ObservableObjectRelationshipVocab + "Extracted_From"^^vocabulary:ObservableObjectRelationshipVocab + "FQDN_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Freed"^^vocabulary:ObservableObjectRelationshipVocab + "Freed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Had_Attachment"^^vocabulary:ObservableObjectRelationshipVocab + "Hooked"^^vocabulary:ObservableObjectRelationshipVocab + "Hooked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Initialized_By"^^vocabulary:ObservableObjectRelationshipVocab + "Initialized_To"^^vocabulary:ObservableObjectRelationshipVocab + "Injected"^^vocabulary:ObservableObjectRelationshipVocab + "Injected_As"^^vocabulary:ObservableObjectRelationshipVocab + "Injected_By"^^vocabulary:ObservableObjectRelationshipVocab + "Injected_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Installed"^^vocabulary:ObservableObjectRelationshipVocab + "Installed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Joined"^^vocabulary:ObservableObjectRelationshipVocab + "Joined_By"^^vocabulary:ObservableObjectRelationshipVocab + "Killed"^^vocabulary:ObservableObjectRelationshipVocab + "Killed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Listened_On"^^vocabulary:ObservableObjectRelationshipVocab + "Listened_On_By"^^vocabulary:ObservableObjectRelationshipVocab + "Loaded_From"^^vocabulary:ObservableObjectRelationshipVocab + "Loaded_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Locked"^^vocabulary:ObservableObjectRelationshipVocab + "Locked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Mapped_By"^^vocabulary:ObservableObjectRelationshipVocab + "Mapped_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Merged"^^vocabulary:ObservableObjectRelationshipVocab + "Merged_By"^^vocabulary:ObservableObjectRelationshipVocab + "Modified_Properties_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Monitored"^^vocabulary:ObservableObjectRelationshipVocab + "Monitored_By"^^vocabulary:ObservableObjectRelationshipVocab + "Moved"^^vocabulary:ObservableObjectRelationshipVocab + "Moved_By"^^vocabulary:ObservableObjectRelationshipVocab + "Moved_From"^^vocabulary:ObservableObjectRelationshipVocab + "Moved_To"^^vocabulary:ObservableObjectRelationshipVocab + "Opened"^^vocabulary:ObservableObjectRelationshipVocab + "Opened_By"^^vocabulary:ObservableObjectRelationshipVocab + "Packed"^^vocabulary:ObservableObjectRelationshipVocab + "Packed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Packed_From"^^vocabulary:ObservableObjectRelationshipVocab + "Packed_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Parent_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Paused"^^vocabulary:ObservableObjectRelationshipVocab + "Paused_By"^^vocabulary:ObservableObjectRelationshipVocab + "Previously_Contained"^^vocabulary:ObservableObjectRelationshipVocab + "Properties_Modified_By"^^vocabulary:ObservableObjectRelationshipVocab + "Properties_Queried"^^vocabulary:ObservableObjectRelationshipVocab + "Properties_Queried_By"^^vocabulary:ObservableObjectRelationshipVocab + "Read_From"^^vocabulary:ObservableObjectRelationshipVocab + "Read_From_By"^^vocabulary:ObservableObjectRelationshipVocab + "Received"^^vocabulary:ObservableObjectRelationshipVocab + "Received_By"^^vocabulary:ObservableObjectRelationshipVocab + "Received_From"^^vocabulary:ObservableObjectRelationshipVocab + "Received_Via_Upload"^^vocabulary:ObservableObjectRelationshipVocab + "Redirects_To"^^vocabulary:ObservableObjectRelationshipVocab + "Related_To"^^vocabulary:ObservableObjectRelationshipVocab + "Renamed"^^vocabulary:ObservableObjectRelationshipVocab + "Renamed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Renamed_From"^^vocabulary:ObservableObjectRelationshipVocab + "Renamed_To"^^vocabulary:ObservableObjectRelationshipVocab + "Resolved_To"^^vocabulary:ObservableObjectRelationshipVocab + "Resumed"^^vocabulary:ObservableObjectRelationshipVocab + "Resumed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Root_Domain_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Searched_For"^^vocabulary:ObservableObjectRelationshipVocab + "Searched_For_By"^^vocabulary:ObservableObjectRelationshipVocab + "Sent"^^vocabulary:ObservableObjectRelationshipVocab + "Sent_By"^^vocabulary:ObservableObjectRelationshipVocab + "Sent_To"^^vocabulary:ObservableObjectRelationshipVocab + "Sent_Via_Upload"^^vocabulary:ObservableObjectRelationshipVocab + "Set_From"^^vocabulary:ObservableObjectRelationshipVocab + "Set_To"^^vocabulary:ObservableObjectRelationshipVocab + "Sub-domain_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Supra-domain_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Suspended"^^vocabulary:ObservableObjectRelationshipVocab + "Suspended_By"^^vocabulary:ObservableObjectRelationshipVocab + "Unhooked"^^vocabulary:ObservableObjectRelationshipVocab + "Unhooked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Unlocked"^^vocabulary:ObservableObjectRelationshipVocab + "Unlocked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Unpacked"^^vocabulary:ObservableObjectRelationshipVocab + "Unpacked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Uploaded"^^vocabulary:ObservableObjectRelationshipVocab + "Uploaded_By"^^vocabulary:ObservableObjectRelationshipVocab + "Uploaded_From"^^vocabulary:ObservableObjectRelationshipVocab + "Uploaded_To"^^vocabulary:ObservableObjectRelationshipVocab + "Used"^^vocabulary:ObservableObjectRelationshipVocab + "Used_By"^^vocabulary:ObservableObjectRelationshipVocab + "Values_Enumerated"^^vocabulary:ObservableObjectRelationshipVocab + "Values_Enumerated_By"^^vocabulary:ObservableObjectRelationshipVocab + "Written_To_By"^^vocabulary:ObservableObjectRelationshipVocab + "Wrote_To"^^vocabulary:ObservableObjectRelationshipVocab + ) ; + ] ; + . + +vocabulary:ObservableObjectStateVocab + a rdfs:Datatype ; + rdfs:label "Cyber Item State Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of observable object states."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Active"^^vocabulary:ObservableObjectStateVocab + "Closed"^^vocabulary:ObservableObjectStateVocab + "Does Not Exist"^^vocabulary:ObservableObjectStateVocab + "Exists"^^vocabulary:ObservableObjectStateVocab + "Inactive"^^vocabulary:ObservableObjectStateVocab + "Locked"^^vocabulary:ObservableObjectStateVocab + "Open"^^vocabulary:ObservableObjectStateVocab + "Started"^^vocabulary:ObservableObjectStateVocab + "Stopped"^^vocabulary:ObservableObjectStateVocab + "Unlocked"^^vocabulary:ObservableObjectStateVocab + ) ; + ] ; + . + +vocabulary:PartitionTypeVocab + a rdfs:Datatype ; + rdfs:label "Partition Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of partition types. See http://www.win.tue.nl/~aeb/partitions/partition_types-1.html for more information about the various partition types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "PARTITION_ENTRY_UNUSED"^^vocabulary:PartitionTypeVocab + "PARTITION_EXTENDED"^^vocabulary:PartitionTypeVocab + "PARTITION_FAT32"^^vocabulary:PartitionTypeVocab + "PARTITION_FAT32_XINT13"^^vocabulary:PartitionTypeVocab + "PARTITION_FAT_12"^^vocabulary:PartitionTypeVocab + "PARTITION_FAT_16"^^vocabulary:PartitionTypeVocab + "PARTITION_HUGE"^^vocabulary:PartitionTypeVocab + "PARTITION_IFS"^^vocabulary:PartitionTypeVocab + "PARTITION_LDM"^^vocabulary:PartitionTypeVocab + "PARTITION_NTFT"^^vocabulary:PartitionTypeVocab + "PARTITION_OS2BOOTMGR"^^vocabulary:PartitionTypeVocab + "PARTITION_PREP"^^vocabulary:PartitionTypeVocab + "PARTITION_UNIX"^^vocabulary:PartitionTypeVocab + "PARTITION_XENIX_1"^^vocabulary:PartitionTypeVocab + "PARTITION_XENIX_2"^^vocabulary:PartitionTypeVocab + "PARTITION_XINT13"^^vocabulary:PartitionTypeVocab + "PARTITION_XINT13_EXTENDED"^^vocabulary:PartitionTypeVocab + "UNKNOWN"^^vocabulary:PartitionTypeVocab + "VALID_NTFT"^^vocabulary:PartitionTypeVocab + ) ; + ] ; + . + +vocabulary:ProcessorArchVocab + a rdfs:Datatype ; + rdfs:label "Processor Architecture Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of computer processor architectures."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ARM"^^vocabulary:ProcessorArchVocab + "Alpha"^^vocabulary:ProcessorArchVocab + "IA-64"^^vocabulary:ProcessorArchVocab + "MIPS"^^vocabulary:ProcessorArchVocab + "Motorola 68k"^^vocabulary:ProcessorArchVocab + "Other"^^vocabulary:ProcessorArchVocab + "PowerPC"^^vocabulary:ProcessorArchVocab + "SPARC"^^vocabulary:ProcessorArchVocab + "eSi-RISC"^^vocabulary:ProcessorArchVocab + "x86-32"^^vocabulary:ProcessorArchVocab + "x86-64"^^vocabulary:ProcessorArchVocab + "z/Architecture"^^vocabulary:ProcessorArchVocab + ) ; + ] ; + . + +vocabulary:RecoveredObjectStatusVocab + a rdfs:Datatype ; + rdfs:label "Recovered Object Status Vocabulary"@en-US ; + rdfs:comment "Defines the vocabulary for Recovered Object status of data."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "recovered"^^vocabulary:RecoveredObjectStatusVocab + "partially recovered"^^vocabulary:RecoveredObjectStatusVocab + "overwritten"^^vocabulary:RecoveredObjectStatusVocab + "unknown"^^vocabulary:RecoveredObjectStatusVocab + ) ; + ] ; + . + +vocabulary:RegionalRegistryTypeVocab + a rdfs:Datatype ; + rdfs:label "Regional Registry Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of Regional Internet Registries (RIRs) names, represented via their respective acronyms."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "APNIC"^^vocabulary:RegionalRegistryTypeVocab + "ARIN"^^vocabulary:RegionalRegistryTypeVocab + "AfriNIC"^^vocabulary:RegionalRegistryTypeVocab + "LACNIC"^^vocabulary:RegionalRegistryTypeVocab + "RIPE NCC"^^vocabulary:RegionalRegistryTypeVocab + ) ; + ] ; + . + +vocabulary:RegistryDatatypeVocab + a rdfs:Datatype ; + rdfs:label "Registry Datatype Vocabulary"@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "reg_binary"^^vocabulary:RegistryDatatypeVocab + "reg_dword"^^vocabulary:RegistryDatatypeVocab + "reg_dword_big_endian"^^vocabulary:RegistryDatatypeVocab + "reg_expand_sz"^^vocabulary:RegistryDatatypeVocab + "reg_full_resource_descriptor"^^vocabulary:RegistryDatatypeVocab + "reg_invalid_type"^^vocabulary:RegistryDatatypeVocab + "reg_link"^^vocabulary:RegistryDatatypeVocab + "reg_multi_sz"^^vocabulary:RegistryDatatypeVocab + "reg_none"^^vocabulary:RegistryDatatypeVocab + "reg_qword"^^vocabulary:RegistryDatatypeVocab + "reg_resource_list"^^vocabulary:RegistryDatatypeVocab + "reg_resource_requirements_list"^^vocabulary:RegistryDatatypeVocab + "reg_sz"^^vocabulary:RegistryDatatypeVocab + ) ; + ] ; + . + +vocabulary:SIMFormVocab + a rdfs:Datatype ; + rdfs:label "SIM Form Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of common SIM card form factors."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Full-size SIM"^^vocabulary:SIMFormVocab + "Micro SIM"^^vocabulary:SIMFormVocab + "Nano SIM"^^vocabulary:SIMFormVocab + ) ; + ] ; + . + +vocabulary:SIMTypeVocab + a rdfs:Datatype ; + rdfs:label "SIM Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of common SIM card types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "SIM"^^vocabulary:SIMTypeVocab + "UICC"^^vocabulary:SIMTypeVocab + "USIM"^^vocabulary:SIMTypeVocab + ) ; + ] ; + . + +vocabulary:TaskActionTypeVocab + a rdfs:Datatype ; + rdfs:label "Task Action Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of task action types. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380596(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "TASK_ACTION_COM_HANDLER"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_EXEC"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_SEND_EMAIL"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_SHOW_MESSAGE"^^vocabulary:TaskActionTypeVocab + ) ; + ] ; + . + +vocabulary:TaskFlagVocab + a rdfs:Datatype ; + rdfs:label "Task Flag Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the run flags for a task scheduler task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381283(v=vs.85).aspx See Also: http://msdn.microsoft.com/en-us/library/microsoft.office.excel.server.addins.computecluster.taskscheduler.taskflags(v=office.12).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "TASK_FLAG_DELETE_WHEN_DONE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_DISABLED"^^vocabulary:TaskFlagVocab + "TASK_FLAG_DONT_START_IF_ON_BATTERIES"^^vocabulary:TaskFlagVocab + "TASK_FLAG_HIDDEN"^^vocabulary:TaskFlagVocab + "TASK_FLAG_INTERACTIVE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_KILL_IF_GOING_ON_BATTERIES"^^vocabulary:TaskFlagVocab + "TASK_FLAG_KILL_ON_IDLE_END"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RESTART_ON_IDLE_RESUME"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNET"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RUN_ONLY_IF_LOGGED_ON"^^vocabulary:TaskFlagVocab + "TASK_FLAG_START_ONLY_IF_IDLE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_SYSTEM_REQUIRED"^^vocabulary:TaskFlagVocab + "TASK_FLAG_ZERO"^^vocabulary:TaskFlagVocab + ) ; + ] ; + . + +vocabulary:TaskPriorityVocab + a rdfs:Datatype ; + rdfs:label "Task Priority Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the priority levels of task scheduler tasks. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383512(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ABOVE_NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "BELOW_NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "HIGH_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "IDLE_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "REALTIME_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + ) ; + ] ; + . + +vocabulary:TaskStatusVocab + a rdfs:Datatype ; + rdfs:label "Task Status Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the possible statuses of a scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383604(v=vs.85).aspx See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381263(v=vs.85).aspx See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381833(v=vs.85).aspx See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383617(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "SCHED_E_ACCOUNT_DBASE_CORRUPT"^^vocabulary:TaskStatusVocab + "SCHED_E_ACCOUNT_INFORMATION_NOT_SET"^^vocabulary:TaskStatusVocab + "SCHED_E_ACCOUNT_NAME_NOT_FOUND"^^vocabulary:TaskStatusVocab + "SCHED_E_CANNOT_OPEN_TASK"^^vocabulary:TaskStatusVocab + "SCHED_E_INVALID_TASK"^^vocabulary:TaskStatusVocab + "SCHED_E_NO_SECURITY_SERVICES"^^vocabulary:TaskStatusVocab + "SCHED_E_SERVICE_NOT_INSTALLED"^^vocabulary:TaskStatusVocab + "SCHED_E_SERVICE_NOT_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_E_TASK_NOT_READY"^^vocabulary:TaskStatusVocab + "SCHED_E_TASK_NOT_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_E_TRIGGER_NOT_FOUND"^^vocabulary:TaskStatusVocab + "SCHED_E_UNKNOWN_OBJECT_VERSION"^^vocabulary:TaskStatusVocab + "SCHED_E_UNSUPPORTED_ACCOUNT_OPTION"^^vocabulary:TaskStatusVocab + "SCHED_S_EVENT_TRIGGER"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_DISABLED"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_HAS_NOT_RUN"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NOT_SCHEDULED"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NO_MORE_RUNS"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NO_VALID_TRIGGERS"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_READY"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_TERMINATED"^^vocabulary:TaskStatusVocab + "TASK_STATE_QUEUED"^^vocabulary:TaskStatusVocab + "TASK_STATE_UNKNOWN"^^vocabulary:TaskStatusVocab + ) ; + ] ; + . + +vocabulary:ThreadRunningStatusVocab + a rdfs:Datatype ; + rdfs:label "Thread Running Status Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the various states that a thread may be in before, during, or after execution. See http://msdn.microsoft.com/en-us/library/system.diagnostics.threadstate(v=vs.110).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Initialized"^^vocabulary:ThreadRunningStatusVocab + "Ready"^^vocabulary:ThreadRunningStatusVocab + "Running"^^vocabulary:ThreadRunningStatusVocab + "Standby"^^vocabulary:ThreadRunningStatusVocab + "Terminated"^^vocabulary:ThreadRunningStatusVocab + "Transition"^^vocabulary:ThreadRunningStatusVocab + "Unknown"^^vocabulary:ThreadRunningStatusVocab + "Waiting"^^vocabulary:ThreadRunningStatusVocab + ) ; + ] ; + . + +vocabulary:TimestampPrecisionVocab + a rdfs:Datatype ; + rdfs:label "Timestamp Precision Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of timestamp precision granularities."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "day"^^vocabulary:TimestampPrecisionVocab + "hour"^^vocabulary:TimestampPrecisionVocab + "minute"^^vocabulary:TimestampPrecisionVocab + "month"^^vocabulary:TimestampPrecisionVocab + "second"^^vocabulary:TimestampPrecisionVocab + "year"^^vocabulary:TimestampPrecisionVocab + ) ; + ] ; + . + +vocabulary:TrendVocab + a rdfs:Datatype ; + rdfs:label "Trend Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of trend values."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Decreasing"^^vocabulary:TrendVocab + "Increasing"^^vocabulary:TrendVocab + ) ; + ] ; + . + +vocabulary:TriggerFrequencyVocab + a rdfs:Datatype ; + rdfs:label "Trigger Frequency Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the frequency types that a trigger may use. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383620(v=vs.85).aspx and http://msdn.microsoft.com/en-us/library/windows/desktop/aa383987(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "TASK_EVENT_TRIGGER_AT_LOGON"^^vocabulary:TriggerFrequencyVocab + "TASK_EVENT_TRIGGER_AT_SYSTEMSTART"^^vocabulary:TriggerFrequencyVocab + "TASK_EVENT_TRIGGER_ON_IDLE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_DAILY"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_MONTHLYDATE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_MONTHLYDOW"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_ONCE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_WEEKLY"^^vocabulary:TriggerFrequencyVocab + ) ; + ] ; + . + +vocabulary:TriggerTypeVocab + a rdfs:Datatype ; + rdfs:label "Trigger Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the types of triggers associated with a task."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "TASK_TRIGGER_BOOT"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_EVENT"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_IDLE"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_LOGON"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_REGISTRATION"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_SESSION_STATE_CHANGE"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_TIME"^^vocabulary:TriggerTypeVocab + ) ; + ] ; + . + +vocabulary:URLTransitionTypeVocab + a rdfs:Datatype ; + rdfs:label "URL Transition Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of types of URL transitions."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "link"^^vocabulary:URLTransitionTypeVocab + "typed"^^vocabulary:URLTransitionTypeVocab + "auto_bookmark"^^vocabulary:URLTransitionTypeVocab + "auto_subframe"^^vocabulary:URLTransitionTypeVocab + "manual_subframe"^^vocabulary:URLTransitionTypeVocab + "generated"^^vocabulary:URLTransitionTypeVocab + "auto_toplevel"^^vocabulary:URLTransitionTypeVocab + "form_submit"^^vocabulary:URLTransitionTypeVocab + "reload"^^vocabulary:URLTransitionTypeVocab + "keyword"^^vocabulary:URLTransitionTypeVocab + "keyword_generated"^^vocabulary:URLTransitionTypeVocab + ) ; + ] ; + . + +vocabulary:UnixProcessStateVocab + a rdfs:Datatype ; + rdfs:label "UNIX Process State Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of Unix process states"@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Dead"^^vocabulary:UnixProcessStateVocab + "InterruptibleSleep"^^vocabulary:UnixProcessStateVocab + "Paging"^^vocabulary:UnixProcessStateVocab + "Running"^^vocabulary:UnixProcessStateVocab + "Stopped"^^vocabulary:UnixProcessStateVocab + "UninterruptibleSleep"^^vocabulary:UnixProcessStateVocab + "Zombie"^^vocabulary:UnixProcessStateVocab + ) ; + ] ; + . + +vocabulary:WhoisContactTypeVocab + a rdfs:Datatype ; + rdfs:label "Whois Contact Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of types of registrar contacts listed in a whois entry."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ADMIN"^^vocabulary:WhoisContactTypeVocab + "BILLING"^^vocabulary:WhoisContactTypeVocab + "TECHNICAL"^^vocabulary:WhoisContactTypeVocab + ) ; + ] ; + . + +vocabulary:WhoisDNSSECTypeVocab + a rdfs:Datatype ; + rdfs:label "Whois DNSSEC Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of acceptable values for the DNSSEC field in a Whois entry."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Signed"^^vocabulary:WhoisDNSSECTypeVocab + "Unsigned"^^vocabulary:WhoisDNSSECTypeVocab + ) ; + ] ; + . + +vocabulary:WhoisStatusTypeVocab + a rdfs:Datatype ; + rdfs:label "Whois Status Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of all valid statuses for a domain within a whois entry."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ADD_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "AUTO_RENEW_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_DELETE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_HOLD"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_RENEW_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_TRANSFER_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_UPDATE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "DELETE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "HOLD"^^vocabulary:WhoisStatusTypeVocab + "INACTIVE"^^vocabulary:WhoisStatusTypeVocab + "OK"^^vocabulary:WhoisStatusTypeVocab + "PENDING_DELETE_RESTORABLE"^^vocabulary:WhoisStatusTypeVocab + "PENDING_DELETE_SCHEDULED_FOR_RELEASE"^^vocabulary:WhoisStatusTypeVocab + "PENDING_RESTORE"^^vocabulary:WhoisStatusTypeVocab + "RENEW_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "RENEW_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "TRANSFER_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "TRANSFER_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "UPDATE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + ) ; + ] ; + . + +vocabulary:WindowsDriveTypeVocab + a rdfs:Datatype ; + rdfs:label "Windows Drive Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of possible drive types, as enumerated by the WINAPI GetDriveType function: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364939(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "DRIVE_CDROM"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_FIXED"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_NO_ROOT_DIR"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_RAMDISK"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_REMOTE"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_REMOVABLE"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_UNKNOWN"^^vocabulary:WindowsDriveTypeVocab + ) ; + ] ; + . + +vocabulary:WindowsVolumeAttributeVocab + a rdfs:Datatype ; + rdfs:label "Windows Volume Attribute Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of attributes that may be returned by the diskpart attributes command: http://technet.microsoft.com/en-us/library/cc766465(v=ws.10).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Hidden"^^vocabulary:WindowsVolumeAttributeVocab + "NoDefaultDriveLetter"^^vocabulary:WindowsVolumeAttributeVocab + "ReadOnly"^^vocabulary:WindowsVolumeAttributeVocab + "ShadowCopy"^^vocabulary:WindowsVolumeAttributeVocab + ) ; + ] ; + . + +vocabulary:WirelessNetworkSecurityModeVocab + a rdfs:Datatype ; + rdfs:label "Wireless Network Security Mode Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of security modes that may be configured for wireless network connections."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "None"^^vocabulary:WirelessNetworkSecurityModeVocab + "WEP"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA2-PSK"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA2-Enterprise"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA3-PSK"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA3-Enterprise"^^vocabulary:WirelessNetworkSecurityModeVocab + ) ; + ] ; + . + +[] + a owl:AllDisjointClasses ; + owl:members ( + core:UcoInherentCharacterizationThing + core:UcoObject + ) ; + . + +[] + a owl:Axiom ; + rdfs:comment "This triple is repeated from the Collections Ontology."@en ; + owl:annotatedProperty rdfs:subClassOf ; + owl:annotatedSource co:ListItem ; + owl:annotatedTarget co:Item ; + . + diff --git a/case_utils/ontology/case-1.2.0-subclasses.ttl b/case_utils/ontology/case-1.2.0-subclasses.ttl new file mode 100644 index 0000000..0edee1b --- /dev/null +++ b/case_utils/ontology/case-1.2.0-subclasses.ttl @@ -0,0 +1,1748 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xs: . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf owl:Thing ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf + , + + ; + . + + + rdfs:subClassOf ; + . + + + rdfs:subClassOf ; + . + diff --git a/case_utils/ontology/case-1.2.0.ttl b/case_utils/ontology/case-1.2.0.ttl new file mode 100644 index 0000000..e2798f9 --- /dev/null +++ b/case_utils/ontology/case-1.2.0.ttl @@ -0,0 +1,19214 @@ +# imports: http://purl.org/co +# imports: https://ontology.caseontology.org/case/investigation/1.2.0 +# imports: https://ontology.caseontology.org/case/vocabulary/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/co/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/owl/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/action/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/analysis/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/configuration/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/core/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/identity/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/location/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/marking/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/observable/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/pattern/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/role/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/time/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/tool/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/types/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/uco/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/victim/1.2.0 +# imports: https://ontology.unifiedcyberontology.org/uco/vocabulary/1.2.0 + +@prefix action: . +@prefix analysis: . +@prefix co: . +@prefix configuration: . +@prefix core: . +@prefix dcterms: . +@prefix identity: . +@prefix investigation: . +@prefix location: . +@prefix marking: . +@prefix observable: . +@prefix owl: . +@prefix pattern: . +@prefix rdf: . +@prefix rdfs: . +@prefix role: . +@prefix sh: . +@prefix time1: . +@prefix tool: . +@prefix types: . +@prefix uco-co: . +@prefix uco-owl: . +@prefix victim: . +@prefix vocab: . +@prefix vocabulary: . +@prefix xsd: . + + + a owl:Ontology ; + rdfs:label "case-master"@en ; + rdfs:comment "The Cyber-investigation Analysis Standard Expression (CASE) ontology is a community-developed standard that defines concepts used in a broad range of cyber-investigation domains, including digital forensic science, incident response, counter-terrorism, criminal justice, forensic intelligence, and situational awareness. CASE includes all aspects of the digital forensic process, from evidence-gathering and chain of custody, to generating a final report. The goal is to increase sharing and interoperability of cyber-investigation information among organizations and between forensic analytic tools. CASE aligns with and extends the Unified Cyber Ontology (UCO). The preferred namespace abbreviation for this ontology is: case-master."@en ; + dcterms:title "Cyber-investigation Analysis Standard Expression (CASE)"@en ; + owl:backwardCompatibleWith ; + owl:imports + investigation:1.2.0 , + vocab:1.2.0 , + + ; + owl:priorVersion ; + owl:versionIRI ; + owl:versionInfo "1.2.0" ; + . + + + a owl:Ontology ; + rdfs:label "investigation"@en ; + rdfs:comment "This ontology defines key concepts, and their associated properties and relationships, for characterizing cyber-investigations in the broadest range of contexts, including security incidents, criminal investigations, civil and regulatory matters, intelligence operations, international disputes, accident inquiries, policy violations, and others." ; + owl:backwardCompatibleWith investigation:1.1.0 ; + owl:imports + vocab:1.2.0 , + action:1.2.0 , + role:1.2.0 + ; + owl:priorVersion investigation:1.1.0 ; + owl:versionIRI investigation:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "vocabularies"@en ; + owl:backwardCompatibleWith vocab:1.1.0 ; + owl:priorVersion vocab:1.1.0 ; + owl:versionIRI vocab:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-co"@en ; + rdfs:comment "This ontology defines SHACL shapes to supplement the OWL 2 DL definitions in the Collections Ontology."@en ; + owl:backwardCompatibleWith uco-co:1.1.0 ; + owl:imports ; + owl:priorVersion uco-co:1.1.0 ; + owl:versionIRI uco-co:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-owl"@en ; + rdfs:comment "This ontology defines SHACL shapes to perform conformance testing of OWL 2 DL. Some of these shapes follow rules specified from the canonical, subtractive parsing process of Section 3 of the OWL 2 mapping to RDF. From the last line of that document's Section 3, 'At the end of this process, the graph G MUST be empty,' anything not strictly matching patterns specified in that section cause the input graph to be non-conformant with OWL 2 DL."@en ; + rdfs:seeAlso ; + owl:backwardCompatibleWith uco-owl:1.1.0 ; + owl:priorVersion uco-owl:1.1.0 ; + owl:versionIRI uco-owl:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-action"@en ; + rdfs:comment "This ontology defines classes and properties for characterizing actions."@en-US ; + owl:backwardCompatibleWith action:1.1.0 ; + owl:imports + core:1.2.0 , + location:1.2.0 , + pattern:1.2.0 , + types:1.2.0 , + vocabulary:1.2.0 + ; + owl:priorVersion action:1.1.0 ; + owl:versionIRI action:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-analysis"@en ; + rdfs:comment "This ontology defines classes and properties for characterizing analytic actions and results."@en-US ; + rdfs:seeAlso ; + owl:backwardCompatibleWith analysis:1.1.0 ; + owl:imports action:1.2.0 ; + owl:priorVersion analysis:1.1.0 ; + owl:versionIRI analysis:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-configuration"@en ; + rdfs:comment "This ontology defines classes and properties for characterizing configurations."@en-US ; + rdfs:seeAlso ; + owl:backwardCompatibleWith configuration:1.1.0 ; + owl:imports core:1.2.0 ; + owl:priorVersion configuration:1.1.0 ; + owl:versionIRI configuration:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-core"@en ; + rdfs:comment "This ontology defines classes and properties that are shared across the various UCO ontologies. At a high-level, the UCO core ontology provides base classes, relationship-oriented classes, content-aggregation classes, and shared classes."@en ; + owl:backwardCompatibleWith core:1.1.0 ; + owl:priorVersion core:1.1.0 ; + owl:versionIRI core:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-identity"@en ; + owl:backwardCompatibleWith identity:1.1.0 ; + owl:imports + core:1.2.0 , + location:1.2.0 + ; + owl:priorVersion identity:1.1.0 ; + owl:versionIRI identity:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-location"@en ; + owl:backwardCompatibleWith location:1.1.0 ; + owl:imports core:1.2.0 ; + owl:priorVersion location:1.1.0 ; + owl:versionIRI location:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-marking"@en ; + rdfs:comment "Data markings represent restrictions, permissions, and other guidance for how data can be used and shared."@en ; + owl:backwardCompatibleWith marking:1.1.0 ; + owl:imports core:1.2.0 ; + owl:priorVersion marking:1.1.0 ; + owl:versionIRI marking:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-observable"@en ; + owl:backwardCompatibleWith observable:1.1.0 ; + owl:imports + action:1.2.0 , + configuration:1.2.0 , + core:1.2.0 , + identity:1.2.0 , + location:1.2.0 , + types:1.2.0 , + vocabulary:1.2.0 + ; + owl:priorVersion observable:1.1.0 ; + owl:versionIRI observable:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-pattern"@en ; + owl:backwardCompatibleWith pattern:1.1.0 ; + owl:imports core:1.2.0 ; + owl:priorVersion pattern:1.1.0 ; + owl:versionIRI pattern:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-role"@en ; + owl:backwardCompatibleWith role:1.1.0 ; + owl:imports core:1.2.0 ; + owl:priorVersion role:1.1.0 ; + owl:versionIRI role:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-time"@en ; + owl:backwardCompatibleWith time1:1.1.0 ; + owl:imports core:1.2.0 ; + owl:priorVersion time1:1.1.0 ; + owl:versionIRI time1:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-tool"@en ; + owl:backwardCompatibleWith tool:1.1.0 ; + owl:imports + configuration:1.2.0 , + identity:1.2.0 + ; + owl:priorVersion tool:1.1.0 ; + owl:versionIRI tool:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-types"@en ; + owl:backwardCompatibleWith types:1.1.0 ; + owl:imports + uco-co:1.2.0 , + core:1.2.0 , + vocabulary:1.2.0 + ; + owl:priorVersion types:1.1.0 ; + owl:versionIRI types:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-master"@en ; + owl:backwardCompatibleWith ; + owl:imports + uco-co:1.2.0 , + uco-owl:1.2.0 , + action:1.2.0 , + analysis:1.2.0 , + configuration:1.2.0 , + core:1.2.0 , + identity:1.2.0 , + location:1.2.0 , + marking:1.2.0 , + observable:1.2.0 , + pattern:1.2.0 , + role:1.2.0 , + time1:1.2.0 , + tool:1.2.0 , + types:1.2.0 , + victim:1.2.0 , + vocabulary:1.2.0 + ; + owl:priorVersion ; + owl:versionIRI ; + owl:versionInfo "1.2.0" ; + . + + + a owl:Ontology ; + rdfs:label "uco-victim"@en ; + owl:backwardCompatibleWith victim:1.1.0 ; + owl:imports role:1.2.0 ; + owl:priorVersion victim:1.1.0 ; + owl:versionIRI victim:1.2.0 ; + . + + + a owl:Ontology ; + rdfs:label "uco-vocabularies"@en ; + owl:backwardCompatibleWith vocabulary:1.1.0 ; + owl:priorVersion vocabulary:1.1.0 ; + owl:versionIRI vocabulary:1.2.0 ; + . + +co:ListItem + rdfs:subClassOf co:Item ; + . + +investigation:Attorney + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "Attorney"@en ; + rdfs:comment "Attorney is a role involved in preparing, interpreting, and applying law."@en ; + sh:targetClass investigation:Attorney ; + . + +investigation:Authorization + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Authorization"@en ; + rdfs:comment "An authorization is a grouping of characteristics unique to some form of authoritative permission identified for investigative action."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path investigation:authorizationType ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path investigation:authorizationIdentifier ; + ] + ; + sh:targetClass investigation:Authorization ; + . + +investigation:Examiner + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "Examiner"@en ; + rdfs:comment "Examiner is a role involved in providing scientific evaluations of evidence that are used to aid law enforcement investigations and court cases."@en ; + sh:targetClass investigation:Examiner ; + . + +investigation:ExaminerActionLifecycle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:ActionLifecycle ; + rdfs:label "ExaminerActionLifecycle"@en ; + rdfs:comment "An examiner action lifecycle is an action pattern consisting of an ordered set of actions or subordinate action-lifecycles performed by an entity acting in a role involved in providing scientific evaluations of evidence that is used to aid law enforcement investigations and court cases."@en ; + sh:targetClass investigation:ExaminerActionLifecylce ; + . + +investigation:Investigation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:ContextualCompilation ; + rdfs:label "Investigation"@en ; + rdfs:comment "An investigation is a grouping of characteristics unique to an exploration of the facts involved in a cyber-relevant set of suspicious activity."@en ; + sh:property + [ + sh:class investigation:Authorization ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path investigation:relevantAuthorization ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path investigation:investigationStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path investigation:focus ; + ] , + [ + sh:datatype vocab:InvestigationFormVocab ; + sh:message "Value is outside the default vocabulary InvestigationFormVocab." ; + sh:path investigation:investigationForm ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocab:InvestigationFormVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path investigation:investigationForm ; + ] , + [ + sh:message "Value is not member of the vocabulary InvestigationFormVocab." ; + sh:or ( + [ + sh:datatype vocab:InvestigationFormVocab ; + sh:in ( + "case"^^vocab:InvestigationFormVocab + "incident"^^vocab:InvestigationFormVocab + "suspicious-activity"^^vocab:InvestigationFormVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path investigation:investigationForm ; + ] + ; + sh:targetClass investigation:Investigation ; + . + +investigation:InvestigativeAction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:Action ; + rdfs:label "InvestigativeAction"@en ; + rdfs:comment "An investigative action is something that may be done or performed within the context of an investigation, typically to examine or analyze evidence or other data."@en ; + sh:property [ + sh:class investigation:InvestigativeAction ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path investigation:wasInformedBy ; + ] ; + sh:targetClass investigation:InvestigativeAction ; + . + +investigation:Investigator + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "Investigator"@en ; + rdfs:comment "Investigator is a role involved in coordinating an investigation."@en ; + sh:targetClass investigation:Investigator ; + . + +investigation:ProvenanceRecord + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:ContextualCompilation ; + rdfs:label "ProvenanceRecord"@en ; + rdfs:comment "A provenance record is a grouping of characteristics unique to the provenantial (chronology of the ownership, custody or location) connection between an investigative action and a set of observations (items and/or actions) or interpretations that result from it."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path investigation:exhibitNumber ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path investigation:rootExhibitNumber ; + ] + ; + sh:targetClass investigation:ProvenanceRecord ; + . + +investigation:Subject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "Subject"@en ; + rdfs:comment "Subject is a role whose conduct is within the scope of an investigation."@en ; + sh:targetClass investigation:Subject ; + . + +investigation:SubjectActionLifecycle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:ActionLifecycle ; + rdfs:label "SubjectActionLifecycle"@en ; + rdfs:comment "A subject action lifecycle is an action pattern consisting of an ordered set of multiple actions or subordinate action-lifecycles performed by an entity acting in a role whose conduct may be within the scope of an investigation."@en ; + sh:targetClass investigation:SubjectActionLifecycle ; + . + +investigation:VictimActionLifecycle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:ActionLifecycle ; + rdfs:label "VictimActionLifecycle"@en ; + rdfs:comment "A victim action lifecycle is an action pattern consisting of an ordered set of multiple actions or subordinate action-lifecycles performed by an entity acting in a role characterized by its potential to be harmed as a result of a crime, accident, or other event or action."@en ; + sh:targetClass investigation:VictimActionLifecycle ; + . + +investigation:authorizationIdentifier + a owl:DatatypeProperty ; + rdfs:label "authorizationIdentifier"@en ; + rdfs:comment "The identifier for a particular authorization (e.g. warrant number)"@en ; + rdfs:range xsd:string ; + . + +investigation:authorizationType + a owl:DatatypeProperty ; + rdfs:label "authorizationType"@en ; + rdfs:comment "A label categorizing a type of authorization (e.g. warrant)"@en ; + rdfs:range xsd:string ; + . + +investigation:exhibitNumber + a owl:DatatypeProperty ; + rdfs:label "exhibitNumber"@en ; + rdfs:comment "The exhibit number specifies an identifier assigned to a set of objects, unique within the scope of an investigation."@en ; + rdfs:range xsd:string ; + . + +investigation:focus + a owl:DatatypeProperty ; + rdfs:label "focus"@en ; + rdfs:comment "Specifies the topical focus of an investigation."@en ; + rdfs:range xsd:string ; + . + +investigation:investigationForm + a owl:DatatypeProperty ; + rdfs:label "investigationForm"@en ; + rdfs:comment "A label categorizing a type of investigation (case, incident, suspicious-activity, etc.)"@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocab:InvestigationFormVocab + xsd:string + ) ; + ] ; + . + +investigation:investigationStatus + a owl:DatatypeProperty ; + rdfs:label "investigationStatus"@en ; + rdfs:comment "A label characterizing the status of an investigation (open, closed, etc.)."@en ; + rdfs:range xsd:string ; + . + +investigation:relevantAuthorization + a owl:ObjectProperty ; + rdfs:label "relevantAuthorization"@en ; + rdfs:comment "Specifies an authorization relevant to a particular investigation."@en ; + rdfs:range investigation:Authorization ; + . + +investigation:rootExhibitNumber + a owl:DatatypeProperty ; + rdfs:label "rootExhibitNumber"@en ; + rdfs:comment "The root exhibit number specifies a unique identifier assigned to a set of objects at the start of their treatment as part of an investigation. When found on a provenance record that comes after initial investigative treatment, the root exhibit number is a reference to the initial provenance record."@en ; + rdfs:range xsd:string ; + . + +investigation:wasDerivedFrom + a owl:ObjectProperty ; + rdfs:label "wasDerivedFrom"@en ; + rdfs:comment "A re-implementation of the wasDerivedFrom property in W3C PROV-O. The definition of this property is 'A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.' [Ref: https://www.w3.org/TR/prov-o/#wasDerivedFrom]"@en ; + rdfs:domain core:UcoObject ; + rdfs:range core:UcoObject ; + . + +investigation:wasInformedBy + a owl:ObjectProperty ; + rdfs:label "wasInformedBy"@en ; + rdfs:comment "A re-implementation of the wasInformedBy property in W3C PROV-O, where an entity is exchanged by two activities, 'one activity using the entity generated by the other'. [Ref: https://www.w3.org/TR/prov-o/#wasInformedBy]"@en ; + rdfs:domain investigation:InvestigativeAction ; + rdfs:range investigation:InvestigativeAction ; + . + +vocab:InvestigationFormVocab + a rdfs:Datatype ; + rdfs:label "Investigation Form Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of investigation forms."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "case"^^vocab:InvestigationFormVocab + "incident"^^vocab:InvestigationFormVocab + "suspicious-activity"^^vocab:InvestigationFormVocab + ) ; + ] ; + . + +uco-co:List-shape + a sh:NodeShape ; + sh:property [ + sh:class co:ListItem ; + sh:path co:item ; + ] ; + sh:targetClass co:List ; + . + +uco-co:ListItem-shape + a sh:NodeShape ; + sh:property [ + rdfs:comment "Adapted from restriction on co:ListItem."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:path co:index ; + ] ; + sh:targetClass co:ListItem ; + . + +uco-co:firstItem-subjects-previousItem-shape + a sh:PropertyShape ; + sh:description "The first item in a list must not have a previous item."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:path ( + co:firstItem + co:previousItem + ) ; + sh:targetSubjectsOf co:firstItem ; + . + +uco-co:firstItem-subjects-shape + a sh:PropertyShape ; + sh:class co:ListItem ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:firstItem ; + sh:targetSubjectsOf co:firstItem ; + . + +uco-co:followedBy-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that co:followedBy has range co:Item (induced via the propertyChainAxiom on co:item and superproperty relationship with co:nextItem)."@en ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:followedBy ; + sh:targetSubjectsOf co:followedBy ; + . + +uco-co:index-subjects-shape + a sh:PropertyShape ; + sh:datatype xsd:positiveInteger ; + sh:nodeKind sh:Literal ; + sh:path co:index ; + sh:targetSubjectsOf co:index ; + . + +uco-co:item-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:item ; + sh:targetSubjectsOf co:item ; + . + +uco-co:itemContent-subjects-shape + a sh:NodeShape ; + sh:not [ + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that the range of co:itemContent is the complement of co:Item."@en ; + sh:path co:itemContent ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:description "This shape encodes in SHACL that co:itemContent is an OWL FunctionalProperty (giving the sh:maxCount constraint)."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:itemContent ; + ] ; + sh:targetSubjectsOf co:itemContent ; + . + +uco-co:lastItem-subjects-shape + sh:class co:ListItem ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:lastItem ; + sh:targetSubjectsOf co:lastItem ; + . + +uco-co:nextItem-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that co:nextItem is a FunctionalProperty (giving the sh:maxCount constraint), and has range co:Item (induced via the propertyChainAxiom on co:item)."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:nextItem ; + sh:targetSubjectsOf co:nextItem ; + . + +uco-co:precededBy-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that co:precededBy has range co:Item (induced via the propertyChainAxiom on co:item and superproperty relationship with co:previousItem)."@en ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:precededBy ; + sh:targetSubjectsOf co:precededBy ; + . + +uco-co:previousItem-subjects-shape + a sh:PropertyShape ; + sh:class co:Item ; + sh:description "This shape encodes in SHACL that co:previousItem is a FunctionalProperty (giving the sh:maxCount constraint), and has range co:Item (induced via the propertyChainAxiom on co:item)."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path co:previousItem ; + sh:targetSubjectsOf co:previousItem ; + . + +uco-co:size-subjects-shape + a sh:PropertyShape ; + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path co:size ; + sh:targetSubjectsOf co:size ; + . + +uco-owl:Axiom-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:comment "This requirement is determined from review of the canonical parsing process in Section 3 of the OWL 2 mapping to RDF. All references to owl:Axioms are identified as blank nodes. Therefore, any non-blank node that is an owl:Axiom will not be mapped and consumed by the mapping process."@en ; + rdfs:seeAlso ; + sh:message "An owl:Axiom must be a blank node."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:Axiom . + FILTER isIRI($this) + } + """ ; + ] ; + sh:targetClass owl:Axiom ; + . + +uco-owl:DataOneOf-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:comment "This requirement is determined from review of the canonical parsing process in Section 3.2.4, Table 12, row 4 of the OWL 2 mapping to RDF. All datatypes using owl:oneOf must be blank nodes. Any non-blank node will not be mapped and consumed by the mapping process. See also DataOneOf in the OWL 2 Syntax document, especially with 'Show RDF in Examples' turned on."@en ; + rdfs:seeAlso + , + + ; + sh:message "For data ranges that are sets of literals, owl:oneOf must only be used on blank nodes." ; + sh:select """ + PREFIX rdfs: + SELECT $this + WHERE { + $this a rdfs:Datatype . + FILTER ( isIRI($this) ) + } + """ ; + ] ; + sh:targetSubjectsOf owl:oneOf ; + . + +uco-owl:DatatypeProperty-shacl-constraints-shape + a sh:NodeShape ; + sh:sparql + [ + a sh:SPARQLConstraint ; + sh:message "An OWL Datatype Property cannot use a SHACL ClassConstraintComponent."@en ; + sh:select """ + PREFIX rdf: + PREFIX sh: + SELECT $this ?value + WHERE { + ?value + sh:class ?nClass ; + sh:path / rdf:rest* ?nLastSequenceMember ; + . + ?nLastSequenceMember + rdf:first $this ; + rdf:rest rdf:nil ; + . + } + """ ; + ] , + [ + a sh:SPARQLConstraint ; + sh:message "An OWL Datatype Property must not permit a non-Literal value via SHACL constraints."@en ; + sh:select """ + PREFIX rdf: + PREFIX sh: + SELECT $this ?value + WHERE { + ?value + sh:path / rdf:rest* ?nLastSequenceMember ; + . + ?nLastSequenceMember + rdf:first $this ; + rdf:rest rdf:nil ; + . + + { ?value sh:nodeKind sh:BlankNode . } + UNION + { ?value sh:nodeKind sh:BlankNodeOrIRI . } + UNION + { ?value sh:nodeKind sh:BlankNodeOrLiteral . } + UNION + { ?value sh:nodeKind sh:IRI . } + UNION + { ?value sh:nodeKind sh:IRIOrLiteral . } + } + """ ; + ] + ; + sh:targetClass owl:DatatypeProperty ; + . + +uco-owl:Disjointedness-AP-DP-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "An IRI may not be a member of both an owl:AnnotationProperty and owl:DatatypeProperty."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:DatatypeProperty ; + } + """ ; + ] ; + sh:targetClass owl:AnnotationProperty ; + . + +uco-owl:Disjointedness-AP-OP-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "An IRI may not be a member of both an owl:AnnotationProperty and owl:ObjectProperty."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:ObjectProperty ; + } + """ ; + ] ; + sh:targetClass owl:AnnotationProperty ; + . + +uco-owl:Disjointedness-C-DT-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "An IRI may not be a member of both an owl:Class and owl:Datatype."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:Datatype ; + } + """ ; + ] ; + sh:targetClass owl:Class ; + . + +uco-owl:Disjointedness-DP-OP-shape + a sh:NodeShape ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "An IRI may not be a member of both owl:DatatypeProperty and owl:ObjectProperty."@en ; + sh:select """ + PREFIX owl: + SELECT $this + WHERE { + $this a owl:ObjectProperty ; + } + """ ; + ] ; + sh:targetClass owl:DatatypeProperty ; + . + +uco-owl:List-shape + a sh:NodeShape ; + sh:property [ + a sh:PropertyShape ; + sh:maxCount "1"^^xsd:integer ; + sh:path rdf:first ; + ] ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:comment "This requirement is determined from review of the canonical parsing process in Section 3 of the OWL 2 mapping to RDF. Table 5 removes any triple matching the pattern 'x a rdf:List`. All other references throughout Section 3 to rdf:first are identified as blank nodes. Therefore, any non-blank node that is an rdf:List will not be mapped and consumed by the mapping process, making the graph non-conformant with OWL 2 DL."@en ; + rdfs:seeAlso ; + sh:message "The subject of a triple with rdf:first as predicate must be a blank node."@en ; + sh:select """ + SELECT $this + WHERE { + FILTER isIRI($this) + } + """ ; + ] ; + sh:targetSubjectsOf rdf:first ; + . + +uco-owl:ObjectProperty-shacl-constraints-shape + a sh:NodeShape ; + sh:sparql + [ + a sh:SPARQLConstraint ; + sh:message "An OWL Object Property cannot use a SHACL DatatypeConstraintComponent."@en ; + sh:select """ + PREFIX rdf: + PREFIX sh: + SELECT $this ?value + WHERE { + ?value + sh:datatype ?nDatatype ; + sh:path / rdf:rest* ?nLastSequenceMember ; + . + ?nLastSequenceMember + rdf:first $this ; + rdf:rest rdf:nil ; + . + } + """ ; + ] , + [ + a sh:SPARQLConstraint ; + sh:message "An OWL Object Property must not permit a Literal value via SHACL consraints."@en ; + sh:select """ + PREFIX rdf: + PREFIX sh: + SELECT $this ?value + WHERE { + ?value + sh:path / rdf:rest* ?nLastSequenceMember ; + . + ?nLastSequenceMember + rdf:first $this ; + rdf:rest rdf:nil ; + . + + { ?value sh:nodeKind sh:BlankNodeOrLiteral . } + UNION + { ?value sh:nodeKind sh:IRIOrLiteral . } + UNION + { ?value sh:nodeKind sh:Literal . } + } + """ ; + ] + ; + sh:targetClass owl:ObjectProperty ; + . + +uco-owl:incompatibleWith-direct-import-shape + a sh:PropertyShape ; + rdfs:seeAlso ; + sh:disjoint owl:incompatibleWith ; + sh:message "'The import closure of [ontology] O SHOULD NOT contain ontologies O_1 and O_2 such that ... O_1 contains an ontology annotation owl:incompatibleWith with the value equal to either the ontology IRI or the version IRI of O_2.' The focusNode directly imported an incompatibility it declared (the value node)."@en ; + sh:path owl:imports ; + sh:severity sh:Warning ; + sh:targetClass owl:Ontology ; + . + +uco-owl:incompatibleWith-imported-ontology-iri-shape + a sh:NodeShape ; + rdfs:seeAlso ; + sh:message "'The import closure of [ontology] O SHOULD NOT contain ontologies O_1 and O_2 such that ... O_1 contains an ontology annotation owl:incompatibleWith with the value equal to either the ontology IRI or the version IRI of O_2.' The focusNode, or a versionIRI of it, is imported within the transitive closure of some O, but is incompatible with some O_1 also within the transitive closure of O."@en ; + sh:not [ + a sh:NodeShape ; + sh:class owl:Ontology ; + sh:description "This node having a class-designation of owl:Ontology implies it is an ontology 'O_2' defined in the transitive closure of an ontology 'O_1' that declared itself incompatible with 'O_2'."@en ; + ] ; + sh:severity sh:Warning ; + sh:targetObjectsOf owl:incompatibleWith ; + . + +uco-owl:incompatibleWith-imported-version-iri-shape + a sh:PropertyShape ; + rdfs:seeAlso ; + sh:maxCount "0"^^xsd:integer ; + sh:message "'The import closure of [ontology] O SHOULD NOT contain ontologies O_1 and O_2 such that ... O_1 contains an ontology annotation owl:incompatibleWith with the value equal to ... the version IRI of O_2.' The focusNode is incompatible with some O_1 within the transitive closure of some O."@en ; + sh:path [ + sh:inversePath owl:versionIRI ; + ] ; + sh:severity sh:Warning ; + sh:targetObjectsOf owl:incompatibleWith ; + . + +uco-owl:ontologyIRI-versionIRI-prerequisite-shape + a sh:NodeShape ; + rdfs:seeAlso ; + sh:message "'An ontology without an ontology IRI MUST NOT contain a version IRI.'"@en ; + sh:nodeKind sh:IRI ; + sh:targetSubjectsOf owl:versionIRI ; + . + +uco-owl:versionIRI-multiversion-shape + a sh:PropertyShape ; + rdfs:seeAlso ; + sh:maxCount "1"^^xsd:integer ; + sh:message "'The import closure of [ontology] O SHOULD NOT contain ontologies O_1 and O_2 such that O_1 and O_2 are different ontology versions from the same ontology series.'"@en ; + sh:path owl:versionIRI ; + sh:severity sh:Warning ; + sh:targetSubjectsOf owl:versionIRI ; + . + +uco-owl:versionIRI-nodeKind-shape + a sh:PropertyShape ; + sh:nodeKind sh:IRI ; + sh:path owl:versionIRI ; + sh:targetSubjectsOf owl:versionIRI ; + . + +action:Action + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Action"@en ; + rdfs:comment "An action is something that may be done or performed."@en ; + sh:property + [ + sh:class action:Action ; + sh:nodeKind sh:IRI ; + sh:path action:subaction ; + ] , + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:environment ; + ] , + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:performer ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:error ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:instrument ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:object ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:participant ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path action:result ; + ] , + [ + sh:class location:Location ; + sh:nodeKind sh:IRI ; + sh:path action:location ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:startTime ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:actionCount ; + ] , + [ + sh:datatype vocabulary:ActionStatusTypeVocab ; + sh:message "Value is outside the default vocabulary ActionStatusTypeVocab." ; + sh:path action:actionStatus ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ActionStatusTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path action:actionStatus ; + ] , + [ + sh:message "Value is not member of the vocabulary ActionStatusTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ActionStatusTypeVocab ; + sh:in ( + "Complete/Finish"^^vocabulary:ActionStatusTypeVocab + "Error"^^vocabulary:ActionStatusTypeVocab + "Fail"^^vocabulary:ActionStatusTypeVocab + "Ongoing"^^vocabulary:ActionStatusTypeVocab + "Pending"^^vocabulary:ActionStatusTypeVocab + "Success"^^vocabulary:ActionStatusTypeVocab + "Unknown"^^vocabulary:ActionStatusTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path action:actionStatus ; + ] + ; + sh:targetClass action:Action ; + . + +action:ActionArgumentFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ActionArgumentFacet"@en ; + rdfs:comment "An action argument facet is a grouping of characteristics unique to a single parameter of an action."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:argumentName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:value ; + ] + ; + sh:targetClass action:ActionArgumentFacet ; + . + +action:ActionEstimationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ActionEstimationFacet"@en ; + rdfs:comment "An action estimation facet is a grouping of characteristics unique to decision-focused approximation aspects for an action that may potentially be performed."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:estimatedCost ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:estimatedEfficacy ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:estimatedImpact ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:objective ; + ] + ; + sh:targetClass action:ActionEstimationFacet ; + . + +action:ActionFrequencyFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ActionFrequencyFacet"@en ; + rdfs:comment "An action frequency facet is a grouping of characteristics unique to the frequency of occurrence for an action."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:rate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:scale ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:units ; + ] , + [ + sh:datatype vocabulary:TrendVocab ; + sh:message "Value is outside the default vocabulary TrendVocab." ; + sh:path action:trend ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TrendVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path action:trend ; + ] , + [ + sh:message "Value is not member of the vocabulary TrendVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TrendVocab ; + sh:in ( + "Decreasing"^^vocabulary:TrendVocab + "Increasing"^^vocabulary:TrendVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path action:trend ; + ] + ; + sh:targetClass action:ActionFrequencyFacet ; + . + +action:ActionLifecycle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:Action ; + rdfs:label "ActionLifecycle"@en ; + rdfs:comment "An action lifecycle is an action pattern consisting of an ordered set of multiple actions or subordinate action lifecycles."@en ; + sh:property + [ + sh:class action:ArrayOfAction ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:phase ; + ] , + [ + sh:class core:UcoObject ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:error ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:startTime ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path action:actionCount ; + ] , + [ + sh:maxCount "0"^^xsd:integer ; + sh:path action:actionStatus ; + ] + ; + sh:targetClass action:ActionLifecycle ; + . + +action:ActionPattern + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + action:Action , + pattern:Pattern + ; + rdfs:label "ActionPattern"@en ; + rdfs:comment "An action pattern is a grouping of characteristics unique to a combination of actions forming a consistent or characteristic arrangement."@en ; + sh:targetClass action:ActionPattern ; + . + +action:ArrayOfAction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ArrayOfAction"@en ; + rdfs:comment "An array of action is an ordered list of references to things that may be done or performed."@en ; + sh:property [ + sh:class action:Action ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path action:action ; + ] ; + sh:targetClass action:ArrayOfAction ; + . + +action:action + a owl:ObjectProperty ; + rdfs:label "action"@en ; + rdfs:comment "A characterization of a single action."@en ; + rdfs:range action:Action ; + . + +action:actionCount + a owl:DatatypeProperty ; + rdfs:label "actionCount"@en ; + rdfs:comment "The number of times that the action was performed."@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +action:actionStatus + a owl:DatatypeProperty ; + rdfs:label "actionStatus"@en ; + rdfs:comment "The current state of the action."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:ActionStatusTypeVocab + xsd:string + ) ; + ] ; + . + +action:argumentName + a owl:DatatypeProperty ; + rdfs:label "argumentName"@en ; + rdfs:comment "The identifying label of an argument."@en ; + rdfs:range xsd:string ; + . + +action:endTime + a owl:DatatypeProperty ; + rdfs:label "endTime"@en ; + rdfs:comment "The time at which performance of the action ended."@en ; + rdfs:range xsd:dateTime ; + . + +action:environment + a owl:ObjectProperty ; + rdfs:label "environment"@en ; + rdfs:comment "The environment wherein an action occurs."@en ; + rdfs:range core:UcoObject ; + . + +action:error + a owl:ObjectProperty ; + rdfs:label "error"@en ; + rdfs:comment "A characterization of the differences between the expected and the actual performance of the action."@en ; + rdfs:range core:UcoObject ; + . + +action:estimatedCost + a owl:DatatypeProperty ; + rdfs:label "estimatedCost"@en ; + rdfs:comment "An estimation of the cost if the action is performed."@en ; + rdfs:range xsd:string ; + . + +action:estimatedEfficacy + a owl:DatatypeProperty ; + rdfs:label "estimatedEfficacy"@en ; + rdfs:comment "An estimation of the effectiveness of the action at achieving its objective if the action is performed."@en ; + rdfs:range xsd:string ; + . + +action:estimatedImpact + a owl:DatatypeProperty ; + rdfs:label "estimatedImpact"@en ; + rdfs:comment "An estimation of the impact if the action is performed."@en ; + rdfs:range xsd:string ; + . + +action:instrument + a owl:ObjectProperty ; + rdfs:label "instrument"@en ; + rdfs:comment "The things used to perform an action."@en ; + rdfs:range core:UcoObject ; + . + +action:location + a owl:ObjectProperty ; + rdfs:label "location"@en ; + rdfs:comment "The locations where an action occurs."@en ; + rdfs:range location:Location ; + . + +action:object + a owl:ObjectProperty ; + rdfs:label "object"@en ; + rdfs:comment "The things that the action is performed on/against."@en ; + rdfs:range core:UcoObject ; + . + +action:objective + a owl:DatatypeProperty ; + rdfs:label "objective"@en ; + rdfs:comment "The intended purpose for performing the action."@en ; + rdfs:range xsd:string ; + . + +action:participant + a owl:ObjectProperty ; + rdfs:label "participant"@en ; + rdfs:comment "The supporting (non-primary) performers of an action."@en ; + rdfs:range core:UcoObject ; + . + +action:performer + a owl:ObjectProperty ; + rdfs:label "performer"@en ; + rdfs:comment "The primary performer of an action."@en ; + rdfs:range core:UcoObject ; + . + +action:phase + a owl:ObjectProperty ; + rdfs:subPropertyOf action:subaction ; + rdfs:label "phase"@en ; + rdfs:comment "The ordered set of actions or sub action-lifecycles that represent the action lifecycle."@en ; + rdfs:range action:ArrayOfAction ; + . + +action:rate + a owl:DatatypeProperty ; + rdfs:label "rate"@en ; + rdfs:comment "The frequency rate for the occurence of an action."@en ; + rdfs:range xsd:decimal ; + . + +action:result + a owl:ObjectProperty ; + rdfs:label "result"@en ; + rdfs:comment "The things resulting from performing an action."@en ; + rdfs:range core:UcoObject ; + . + +action:scale + a owl:DatatypeProperty ; + rdfs:label "scale"@en ; + rdfs:comment "The time scale utilized for the frequency rate count for the occurence of an action."@en ; + rdfs:range xsd:string ; + . + +action:startTime + a owl:DatatypeProperty ; + rdfs:label "startTime"@en ; + rdfs:comment "The time at which performance of the action began."@en ; + rdfs:range xsd:dateTime ; + . + +action:subaction + a owl:ObjectProperty ; + rdfs:label "subaction"@en ; + rdfs:comment "References to other actions that make up part of a larger more complex action."@en ; + rdfs:range action:Action ; + . + +action:trend + a owl:DatatypeProperty ; + rdfs:label "trend"@en ; + rdfs:comment "A characterization of the frequency trend for the occurence of an action."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TrendVocab + xsd:string + ) ; + ] ; + . + +action:units + a owl:DatatypeProperty ; + rdfs:label "units"@en ; + rdfs:comment "The units of measure utilized for the frequency rate count for the occurence of an action."@en ; + rdfs:range xsd:string ; + . + +action:value + a owl:DatatypeProperty ; + rdfs:label "value"@en ; + rdfs:comment "The value of an action parameter."@en ; + rdfs:range xsd:string ; + . + +analysis:Analysis + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:Action ; + rdfs:label "Analysis"@en ; + rdfs:comment "An analysis is an action of detailed examination of something in order to understand its nature, context or essential features."@en ; + sh:targetClass action:Analysis ; + . + +analysis:AnalyticResult + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Assertion ; + rdfs:label "AnalyticResult"@en ; + rdfs:comment "An analytic result is a characterization of the understanding resulting from an analysis action."@en ; + sh:property + [ + sh:class analysis:Analysis ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path analysis:originatingAnalysis ; + ] , + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path analysis:resultContent ; + ] + ; + sh:targetClass analysis:AnalysicResult ; + . + +analysis:AnalyticResultFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AnalyticResultFacet"@en ; + rdfs:comment "An analytic result facet is a grouping of characteristics unique to the results of an analysis action."@en ; + sh:targetClass analysis:AnalyticResultFacet ; + . + +analysis:ArtifactClassification + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ArtifactClassification"@en ; + rdfs:comment "An artifact classification is a single specific assertion that a particular class of a classification taxonomy applies to something."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path analysis:classificationConfidence ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path analysis:class ; + ] + ; + sh:targetClass analysis:ArtifactClassification ; + . + +analysis:ArtifactClassificationResultFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf analysis:AnalyticResultFacet ; + rdfs:label "ArtifactClassificationResultFacet"@en ; + rdfs:comment "An artifact classification result facet is a grouping of characteristics unique to the results of an artifact classification analysis action."@en ; + sh:property [ + sh:class analysis:ArtifactClassification ; + sh:nodeKind sh:IRI ; + sh:path analysis:classification ; + ] ; + sh:targetClass analysis:ArtifactClassificationResultFacet ; + . + +analysis:class + a owl:DatatypeProperty ; + rdfs:label "class"@en ; + rdfs:comment "A specific classification class."@en ; + rdfs:range xsd:string ; + . + +analysis:classification + a owl:ObjectProperty ; + rdfs:label "classification"@en ; + rdfs:comment "An asserted classification of an analyzed artifact resulting from the analysis."@en ; + rdfs:range analysis:ArtifactClassification ; + . + +analysis:classificationConfidence + a owl:DatatypeProperty ; + rdfs:label "classificationConfidence"@en ; + rdfs:comment "The level of confidence that a classification assertion is correct."@en ; + rdfs:range xsd:decimal ; + . + +analysis:originatingAnalysis + a owl:ObjectProperty ; + rdfs:label "originatingAnalysis"@en ; + rdfs:comment "The analysis action that resulted in an analytic result."@en ; + rdfs:range analysis:Analysis ; + . + +analysis:resultContent + a owl:ObjectProperty ; + rdfs:label "resultContent"@en ; + rdfs:comment "Structured content expressing the results of an analysis action."@en ; + rdfs:range core:UcoObject ; + . + +configuration:Configuration + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Configuration"@en ; + rdfs:comment "A configuration is a grouping of characteristics unique to a set of parameters or initial settings for the use of a tool, application, software, or other cyber object."@en ; + rdfs:seeAlso ; + sh:property + [ + sh:class configuration:ConfigurationEntry ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:configurationEntry ; + ] , + [ + sh:class configuration:Dependency ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:dependencies ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path configuration:usageContextAssumptions ; + ] + ; + sh:targetClass configuration:Configuration ; + . + +configuration:ConfigurationEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ConfigurationEntry"@en ; + rdfs:comment "A configuration entry is a grouping of characteristics unique to a particular parameter or initial setting for the use of a tool, application, software, or other cyber object."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:itemObject ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:itemDescription ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:itemName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:itemType ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path configuration:itemValue ; + ] + ; + sh:targetClass configuration:ConfigurationEntry ; + sh:xone ( + [ + sh:property + [ + sh:maxCount "0"^^xsd:integer ; + sh:path configuration:itemObject ; + ] , + [ + sh:maxCount "0"^^xsd:integer ; + sh:path configuration:itemValue ; + ] + ; + ] + [ + sh:property [ + sh:minCount "1"^^xsd:integer ; + sh:path configuration:itemObject ; + ] ; + ] + [ + sh:property [ + sh:minCount "1"^^xsd:integer ; + sh:path configuration:itemValue ; + ] ; + ] + ) ; + . + +configuration:Dependency + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "Dependency"@en ; + rdfs:comment "A dependency is a grouping of characteristics unique to something that a tool or other software relies on to function as intended."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:dependencyDescription ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path configuration:dependencyType ; + ] + ; + sh:targetClass configuration:Dependency ; + . + +configuration:configurationEntry + a owl:ObjectProperty ; + rdfs:comment "A single configuration setting entry item for a tool or other software."@en ; + rdfs:range configuration:ConfigurationEntry ; + rdfs:seeAlso ; + . + +configuration:dependencies + a owl:ObjectProperty ; + rdfs:label "dependencies"@en ; + rdfs:comment "The relevant configuration dependencies for a tool, application, software, or other cyber object."@en ; + rdfs:range configuration:Dependency ; + . + +configuration:dependencyDescription + a owl:DatatypeProperty ; + rdfs:label "dependencyDescription"@en ; + rdfs:comment "A description of a tool or other software dependency."@en ; + rdfs:range xsd:string ; + . + +configuration:dependencyType + a owl:DatatypeProperty ; + rdfs:label "dependencyType"@en ; + rdfs:comment "The type of a tool or other software dependency."@en ; + rdfs:range xsd:string ; + . + +configuration:isConfigurationOf + a + owl:ObjectProperty , + owl:IrreflexiveProperty + ; + rdfs:label "isConfigurationOf"@en ; + rdfs:comment "The object which has been configured to run in a more specified manner than another object. This property is expected to have a more specific range when associated with a class, such as a configured Tool having this property have a range of a Tool."@en ; + rdfs:range core:UcoObject ; + . + +configuration:itemDescription + a owl:DatatypeProperty ; + rdfs:label "itemDescription"@en ; + rdfs:comment "A description of a configuration setting entry item."@en ; + rdfs:range xsd:string ; + . + +configuration:itemName + a owl:DatatypeProperty ; + rdfs:label "itemName"@en ; + rdfs:comment "The name of a configuration setting entry item."@en ; + rdfs:range xsd:string ; + . + +configuration:itemObject + a owl:ObjectProperty ; + rdfs:comment "The structured value of a configuration setting entry instance."@en ; + rdfs:range core:UcoObject ; + rdfs:seeAlso ; + . + +configuration:itemType + a owl:DatatypeProperty ; + rdfs:label "itemType"@en ; + rdfs:comment "The type of a configuration setting entry item."@en ; + rdfs:range xsd:string ; + . + +configuration:itemValue + a owl:DatatypeProperty ; + rdfs:label "itemValue"@en ; + rdfs:comment "The value of a configuration setting entry instance."@en ; + rdfs:range xsd:string ; + . + +configuration:usageContextAssumptions + a owl:DatatypeProperty ; + rdfs:label "usageContextAssumptions"@en ; + rdfs:comment "Description of the various relevant usage context assumptions for a tool or other software ."@en ; + rdfs:range xsd:string ; + . + +configuration:usesConfiguration + a owl:ObjectProperty ; + rdfs:label "usesConfiguration"@en ; + rdfs:comment "A configuration used by an object."@en ; + rdfs:range configuration:Configuration ; + . + +core:Annotation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Assertion ; + rdfs:label "Annotation"@en ; + rdfs:comment "An annotation is an assertion made in relation to one or more objects."@en ; + sh:property [ + sh:class core:UcoObject ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:object ; + ] ; + sh:targetClass core:Annotation ; + . + +core:Assertion + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Assertion"@en ; + rdfs:comment "An assertion is a statement declared to be true."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path core:statement ; + ] ; + sh:targetClass core:Assertion ; + . + +core:AttributedName + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "AttributedName"@en ; + rdfs:comment "An attributed name is a name of an entity issued by some attributed naming authority."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:namingAuthority ; + ] ; + sh:targetClass core:AttributedName ; + . + +core:Bundle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:EnclosingCompilation ; + rdfs:label "Bundle"@en ; + rdfs:comment "A bundle is a container for a grouping of UCO content with no presumption of shared context."@en ; + sh:targetClass core:Bundle ; + . + +core:Compilation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Compilation"@en ; + rdfs:comment "A compilation is a grouping of things."@en ; + sh:targetClass core:Compilation ; + . + +core:ConfidenceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ConfidenceFacet"@en ; + rdfs:comment "A confidence is a grouping of characteristics unique to an asserted level of certainty in the accuracy of some information."@en ; + sh:property [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:confidence ; + ] ; + sh:targetClass core:ConfidenceFacet ; + . + +core:ContextualCompilation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Compilation ; + rdfs:label "ContextualCompilation"@en ; + rdfs:comment "A contextual compilation is a grouping of things sharing some context (e.g., a set of network connections observed on a given day, all accounts associated with a given person)."@en ; + sh:property [ + sh:class core:UcoObject ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:object ; + ] ; + sh:targetClass core:ContextualCompilation ; + . + +core:ControlledVocabulary + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "ControlledVocabulary"@en ; + rdfs:comment "A controlled vocabulary is an explicitly constrained set of string values."@en ; + sh:property + [ + sh:datatype xsd:anyURI ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:constrainingVocabularyReference ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:value ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:constrainingVocabularyName ; + ] + ; + sh:targetClass core:ControlledVocabulary ; + . + +core:EnclosingCompilation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Compilation ; + rdfs:label "EnclosingCompilation"@en ; + rdfs:comment "An enclosing compilation is a container for a grouping of things."@en ; + sh:property [ + sh:class core:UcoObject ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:object ; + ] ; + sh:targetClass core:EnclosingCompilation ; + . + +core:ExternalReference + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ExternalReference"@en ; + rdfs:comment "Characteristics of a reference to a resource outside of the UCO."@en ; + sh:property + [ + sh:datatype xsd:anyURI ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:referenceURL ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:definingContext ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:externalIdentifier ; + ] + ; + sh:targetClass core:ExternalReference ; + . + +core:Facet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "Facet"@en ; + rdfs:comment "A facet is a grouping of characteristics singularly unique to a particular inherent aspect of a UCO domain object."@en ; + sh:targetClass core:Facet ; + . + +core:Grouping + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:ContextualCompilation ; + rdfs:label "Grouping"@en ; + rdfs:comment "A grouping is a compilation of referenced UCO content with a shared context."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path core:context ; + ] ; + sh:targetClass core:Grouping ; + . + +core:IdentityAbstraction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "IdentityAbstraction"@en ; + rdfs:comment "An identity abstraction is a grouping of identifying characteristics unique to an individual or organization. This class is an ontological structural abstraction for this concept. Implementations of this concept should utilize the identity:Identity class."@en ; + sh:targetClass core:IdentityAbstraction ; + . + +core:Item + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Item"@en ; + rdfs:comment "An item is a distinct article or unit."@en ; + sh:targetClass core:Item ; + . + +core:MarkingDefinitionAbstraction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "MarkingDefinitionAbstraction"@en ; + rdfs:comment "A marking definition abstraction is a grouping of characteristics unique to the expression of a specific data marking conveying restrictions, permissions, and other guidance for how marked data can be used and shared. This class is an ontological structural abstraction for this concept. Implementations of this concept should utilize the marking:MarkingDefinition class."@en ; + sh:targetClass core:MarkingDefinitionAbstraction ; + . + +core:ModusOperandi + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "ModusOperandi"@en ; + rdfs:comment "A modus operandi is a particular method of operation (how a particular entity behaves or the resources they use)."@en ; + sh:targetClass core:ModusOperandi ; + . + +core:Relationship + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Relationship"@en ; + rdfs:comment "A relationship is a grouping of characteristics unique to an assertion that one or more objects are related to another object in some way."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:target ; + ] , + [ + sh:class core:UcoObject ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:source ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:isDirectional ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:nodeKind sh:Literal ; + sh:path core:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:nodeKind sh:Literal ; + sh:path core:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:kindOfRelationship ; + ] + ; + sh:targetClass core:Relationship ; + . + +core:UcoInherentCharacterizationThing + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoThing ; + rdfs:label "UcoInherentCharacterizationThing"@en ; + rdfs:comment "A UCO inherent characterization thing is a grouping of characteristics unique to a particular inherent aspect of a UCO domain object."@en ; + sh:targetClass core:UcoInherentCharacterizationThing ; + . + +core:UcoObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoThing ; + rdfs:label "UcoObject"@en ; + rdfs:comment "A UCO object is a representation of a fundamental concept either directly inherent to the cyber domain or indirectly related to the cyber domain and necessary for contextually characterizing cyber domain concepts and relationships. Within the Unified Cyber Ontology (UCO) structure this is the base class acting as a consistent, unifying and interoperable foundation for all explicit and inter-relatable content objects."@en ; + sh:property + [ + sh:class core:ExternalReference ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:externalReference ; + ] , + [ + sh:class core:Facet ; + sh:nodeKind sh:IRI ; + sh:path core:hasFacet ; + ] , + [ + sh:class core:IdentityAbstraction ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path core:createdBy ; + ] , + [ + sh:class core:MarkingDefinitionAbstraction ; + sh:nodeKind sh:IRI ; + sh:path core:objectMarking ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:objectCreatedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:nodeKind sh:Literal ; + sh:path core:modifiedTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:specVersion ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path core:description ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path core:tag ; + ] + ; + sh:targetClass core:UcoObject ; + . + +core:UcoThing + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf owl:Thing ; + rdfs:label "UcoThing"@en ; + rdfs:comment "UcoThing is the top-level class within UCO."@en ; + rdfs:seeAlso core:UcoThing-identifier-regex-shape ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "UcoThings are required to not be blank nodes."@en ; + sh:select """ + PREFIX rdfs: + PREFIX core: + SELECT $this + WHERE { + $this a/rdfs:subClassOf* core:UcoThing . + FILTER isBlank ($this) + } + """ ; + ] ; + sh:targetClass core:UcoThing ; + . + +core:UcoThing-identifier-regex-shape + a sh:NodeShape ; + rdfs:comment "This shape is given an independent IRI for applications that have sufficient controls in place to deactivate this advisory of node identification practice."@en ; + rdfs:seeAlso sh:deactivated ; + sh:severity sh:Info ; + sh:sparql [ + a sh:SPARQLConstraint ; + rdfs:seeAlso ; + sh:message "UcoThings are suggested to end with a UUID."@en ; + sh:select ''' + PREFIX rdfs: + PREFIX core: + SELECT $this + WHERE { + $this a/rdfs:subClassOf* core:UcoThing . + FILTER ( + ! REGEX ( + STR($this), + "[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$", + "i" + ) + ) + } + ''' ; + ] ; + sh:targetClass core:UcoThing ; + . + +core:confidence + a owl:DatatypeProperty ; + rdfs:label "confidence"@en ; + rdfs:comment "An asserted level of certainty in the accuracy of some information."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:onDatatype xsd:nonNegativeInteger ; + owl:withRestrictions ( + [ + xsd:maxInclusive "100"^^xsd:nonNegativeInteger ; + ] + ) ; + ] ; + . + +core:constrainingVocabularyName + a owl:DatatypeProperty ; + rdfs:label "constrainingVocabularyName"@en ; + rdfs:comment "The name of an explicitly constrained set of string values."@en ; + rdfs:range xsd:string ; + . + +core:constrainingVocabularyReference + a owl:DatatypeProperty ; + rdfs:label "constrainingVocabularyReference"@en ; + rdfs:comment "A reference to a specification for an explicitly constrained set of string values. The specification may be unstructured (e.g., web page listing string values) or structured (e.g. RDF/OWL enumeration)."@en ; + rdfs:range xsd:anyURI ; + . + +core:context + a owl:DatatypeProperty ; + rdfs:label "context"@en ; + rdfs:comment "A description of particular contextual affinity."@en ; + rdfs:range xsd:string ; + . + +core:createdBy + a owl:ObjectProperty ; + rdfs:label "createdBy"@en ; + rdfs:comment "The identity that created a characterization of a concept."@en ; + rdfs:range core:IdentityAbstraction ; + . + +core:definingContext + a owl:DatatypeProperty ; + rdfs:label "definingContext"@en ; + rdfs:comment "A description of the context relevant to the definition of a particular external reference identifier."@en ; + rdfs:range xsd:string ; + . + +core:description + a owl:DatatypeProperty ; + rdfs:label "description"@en ; + rdfs:comment "A description of a particular concept characterization."@en ; + rdfs:range xsd:string ; + . + +core:endTime + a owl:DatatypeProperty ; + rdfs:label "endTime"@en ; + rdfs:comment "The ending time of a time range."@en ; + rdfs:range xsd:dateTime ; + . + +core:externalIdentifier + a owl:DatatypeProperty ; + rdfs:label "externalIdentifier"@en ; + rdfs:comment "An identifier for some information defined external to the UCO context."@en ; + rdfs:range xsd:string ; + . + +core:externalReference + a owl:ObjectProperty ; + rdfs:label "External Reference"@en-US ; + rdfs:comment "Specifies a reference to a resource outside of the UCO."@en-US ; + rdfs:range core:ExternalReference ; + . + +core:hasFacet + a + owl:ObjectProperty , + owl:InverseFunctionalProperty + ; + rdfs:label "hasFacet"@en ; + rdfs:comment "Further sets of properties characterizing a concept based on the particular context of the class and of the particular instance of the concept being characterized."@en ; + rdfs:range core:Facet ; + . + +core:hasFacet-shape + a sh:PropertyShape ; + sh:path core:hasFacet ; + sh:sparql [ + a sh:SPARQLConstraint ; + sh:message "hasFacet must not be used to link two objects to one Facet."@en ; + sh:select """ + PREFIX core: + PREFIX owl: + SELECT $this ?value + WHERE { + ?value core:hasFacet $this . + ?nOtherValue core:hasFacet $this . + FILTER ( ?value != ?nOtherValue ) + FILTER NOT EXISTS { + ?value owl:sameAs|^owl:sameAs ?nOtherValue . + } + } + """ ; + ] ; + sh:targetObjectsOf core:hasFacet ; + . + +core:isDirectional + a owl:DatatypeProperty ; + rdfs:label "isDirectional"@en ; + rdfs:comment "A specification whether or not a relationship assertion is limited to the context FROM a source object(s) TO a target object."@en ; + rdfs:range xsd:boolean ; + . + +core:kindOfRelationship + a owl:DatatypeProperty ; + rdfs:label "kindOfRelationship"@en ; + rdfs:comment "A characterization of the nature of a relationship between objects."@en ; + rdfs:range xsd:string ; + . + +core:modifiedTime + a owl:DatatypeProperty ; + rdfs:label "modifiedTime"@en ; + rdfs:comment "Specifies the time that this particular version of the object was modified. The object creator can use the time it deems most appropriate as the time this version of the object was modified. The value of the modified property for a given object version MUST be later than or equal to the value of the created property. Object creators MUST update the modified property when creating a new version of an object. The modified timestamp MUST be precise to the nearest millisecond (exactly three digits after the decimal place in seconds)."@en-us ; + rdfs:range xsd:dateTime ; + . + +core:name + a owl:DatatypeProperty ; + rdfs:label "name"@en ; + rdfs:comment "The name of a particular concept characterization."@en ; + rdfs:range xsd:string ; + . + +core:namingAuthority + a owl:DatatypeProperty ; + rdfs:label "namingAuthority"@en ; + rdfs:comment "Specifies the naming authority that issued the name of the entity."@en ; + rdfs:range xsd:string ; + . + +core:object + a owl:ObjectProperty ; + rdfs:label "object"@en ; + rdfs:comment "Specifies one or more UcoObjects."@en ; + rdfs:range core:UcoObject ; + . + +core:objectCreatedTime + a owl:DatatypeProperty ; + rdfs:label "objectCreatedTime"@en ; + rdfs:comment "The time at which a characterization of a concept is created. This time pertains to the time of creating the record object, and is not an intrinsic characteristic of the concept."@en ; + rdfs:range xsd:dateTime ; + . + +core:objectMarking + a owl:ObjectProperty ; + rdfs:label "objectMarking"@en ; + rdfs:comment "Marking definitions to be applied to a particular concept characterization in its entirety."@en ; + rdfs:range core:MarkingDefinitionAbstraction ; + . + +core:referenceURL + a owl:DatatypeProperty ; + rdfs:label "referenceURL"@en ; + rdfs:comment "A URL for some information defined external to the UCO context."@en ; + rdfs:range xsd:anyURI ; + . + +core:source + a owl:ObjectProperty ; + rdfs:label "source"@en ; + rdfs:comment "The originating node of a specified relationship."@en ; + rdfs:range core:UcoObject ; + . + +core:specVersion + a owl:DatatypeProperty ; + rdfs:label "specVersion"@en ; + rdfs:comment "The version of UCO ontology or subontology specification used to characterize a concept."@en ; + rdfs:range xsd:string ; + . + +core:startTime + a owl:DatatypeProperty ; + rdfs:label "startTime"@en ; + rdfs:comment "The initial time of a time range."@en ; + rdfs:range xsd:dateTime ; + . + +core:statement + a owl:DatatypeProperty ; + rdfs:label "statement"@en ; + rdfs:comment "A textual statement of an assertion."@en ; + rdfs:range xsd:string ; + . + +core:tag + a owl:DatatypeProperty ; + rdfs:label "tag"@en ; + rdfs:comment "A generic tag/label."@en ; + rdfs:range xsd:string ; + . + +core:target + a owl:ObjectProperty ; + rdfs:label "target"@en ; + rdfs:comment "The terminating node of a specified relationship."@en ; + rdfs:range core:UcoObject ; + . + +core:value + a owl:DatatypeProperty ; + rdfs:label "value"@en ; + rdfs:comment "A string value."@en ; + rdfs:range xsd:string ; + . + +identity:AddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "AddressFacet"@en ; + rdfs:comment "An address facet is a grouping of characteristics unique to an administrative identifier for a geolocation associated with a specific identity."@en ; + sh:property [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path identity:address ; + ] ; + sh:targetClass identity:AddressFacet ; + . + +identity:AffiliationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "AffiliationFacet"@en ; + rdfs:comment "An affiliation is a grouping of characteristics unique to the established affiliations of an entity."@en ; + sh:targetClass identity:AffiliationFacet ; + . + +identity:BirthInformationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "BirthInformationFacet"@en ; + rdfs:comment "Birth information is a grouping of characteristics unique to information pertaining to the birth of an entity."@en ; + sh:property [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path identity:birthdate ; + ] ; + sh:targetClass identity:BirthInformationFacet ; + . + +identity:CountryOfResidenceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "CountryOfResidenceFacet"@en ; + rdfs:comment "Country of residence is a grouping of characteristics unique to information related to the country, or countries, where an entity resides."@en ; + sh:targetClass identity:CountryOfResidenceFacet ; + . + +identity:EventsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "EventsFacet"@en ; + rdfs:comment "Events is a grouping of characteristics unique to information related to specific relevant things that happen in the lifetime of an entity."@en ; + sh:targetClass identity:EventsFacet ; + . + +identity:IdentifierFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "IdentifierFacet"@en ; + rdfs:comment "Identifier is a grouping of characteristics unique to information that uniquely and specifically identities an entity."@en ; + sh:targetClass identity:IdentifierFacet ; + . + +identity:Identity + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:IdentityAbstraction ; + rdfs:label "Identity"@en ; + rdfs:comment "An identity is a grouping of identifying characteristics unique to an individual or organization."@en ; + sh:targetClass identity:Identity ; + . + +identity:IdentityFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "IdentityFacet"@en ; + rdfs:comment "An identity facet is a grouping of characteristics unique to a particular aspect of an identity."@en ; + sh:targetClass identity:IdentityFacet ; + . + +identity:LanguagesFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "LanguagesFacet"@en ; + rdfs:comment "Languages is a grouping of characteristics unique to specific syntactically and grammatically standardized forms of communication (human or computer) in which an entity has proficiency (comprehends, speaks, reads, or writes)."@en ; + sh:targetClass identity:LanguagesFacet ; + . + +identity:NationalityFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "NationalityFacet"@en ; + rdfs:comment "Nationality is a grouping of characteristics unique to the condition of an entity belonging to a particular nation."@en ; + sh:targetClass identity:NationalityFacet ; + . + +identity:OccupationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "OccupationFacet"@en ; + rdfs:comment "Occupation is a grouping of characteristics unique to the job or profession of an entity."@en ; + sh:targetClass identity:OccupationFacet ; + . + +identity:Organization + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:Identity ; + rdfs:label "Organization"@en ; + rdfs:comment "An organization is a grouping of identifying characteristics unique to a group of people who work together in an organized way for a shared purpose. [based on https://dictionary.cambridge.org/us/dictionary/english/organization]"@en ; + sh:targetClass identity:Organization ; + . + +identity:OrganizationDetailsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "OrganizationDetailsFacet"@en ; + rdfs:comment "Organization details is a grouping of characteristics unique to an identity representing an administrative and functional structure."@en ; + sh:targetClass identity:OrganizationDetailsFacet ; + . + +identity:Person + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:Identity ; + rdfs:label "Person"@en ; + rdfs:comment "A person is a grouping of identifying characteristics unique to a human being regarded as an individual. [based on https://www.lexico.com/en/definition/person]"@en ; + sh:targetClass identity:Person ; + . + +identity:PersonalDetailsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "PersonalDetailsFacet"@en ; + rdfs:comment "Personal details is a grouping of characteristics unique to an identity representing an individual person."@en ; + sh:targetClass identity:PersonalDetailsFacet ; + . + +identity:PhysicalInfoFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "PhysicalInfoFacet"@en ; + rdfs:comment "Physical info is a grouping of characteristics unique to the outwardly observable nature of an individual person."@en ; + sh:targetClass identity:PhysicalInfoFacet ; + . + +identity:QualificationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "QualificationFacet"@en ; + rdfs:comment "Qualification is a grouping of characteristics unique to particular skills, capabilities or their related achievements (educational, professional, etc.) of an entity."@en ; + sh:targetClass identity:QualificationFacet ; + . + +identity:RelatedIdentityFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "RelatedIdentityFacet"@en ; + rdfs:comment ""@en ; + sh:targetClass identity:RelatedIdentityFacet ; + . + +identity:SimpleNameFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "SimpleNameFacet"@en ; + rdfs:comment "A simple name facet is a grouping of characteristics unique to the personal name (e.g., Dr. John Smith Jr.) held by an identity."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path identity:familyName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path identity:givenName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path identity:honorificPrefix ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path identity:honorificSuffix ; + ] + ; + sh:targetClass identity:SimpleNameFacet ; + . + +identity:VisaFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf identity:IdentityFacet ; + rdfs:label "VisaFacet"@en ; + rdfs:comment "Visa is a grouping of characteristics unique to information related to a person's ability to enter, leave, or stay for a specified period of time in a country."@en ; + sh:targetClass identity:VisaFacet ; + . + +identity:address + a owl:ObjectProperty ; + rdfs:label "address"@en ; + rdfs:comment ""@en ; + rdfs:range location:Location ; + . + +identity:birthdate + a owl:DatatypeProperty ; + rdfs:label "birthdate"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:dateTime ; + . + +identity:familyName + a owl:DatatypeProperty ; + rdfs:label "familyName"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:string ; + . + +identity:givenName + a owl:DatatypeProperty ; + rdfs:label "givenName"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:string ; + . + +identity:honorificPrefix + a owl:DatatypeProperty ; + rdfs:label "honorificPrefix"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:string ; + . + +identity:honorificSuffix + a owl:DatatypeProperty ; + rdfs:label "honorificSuffix"@en ; + rdfs:comment ""@en ; + rdfs:range xsd:string ; + . + +location:GPSCoordinatesFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "GPSCoordinatesFacet"@en ; + rdfs:comment "A GPS coordinates facet is a grouping of characteristics unique to the expression of quantified dilution of precision (DOP) for an asserted set of geolocation coordinates typically associated with satellite navigation such as the Global Positioning System (GPS)."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:hdop ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:pdop ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:tdop ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:vdop ; + ] + ; + sh:targetClass location:GPSCoordinatesFacet ; + . + +location:LatLongCoordinatesFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "LatLongCoordinatesFacet"@en ; + rdfs:comment "A lat long coordinates facet is a grouping of characteristics unique to the expression of a geolocation as the intersection of specific latitude, longitude, and altitude values."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:altitude ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:latitude ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:longitude ; + ] + ; + sh:targetClass location:LatLongCoordinatesFacet ; + . + +location:Location + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Location"@en ; + rdfs:comment "A location is a geospatial place, site, or position."@en ; + sh:targetClass location:Location ; + . + +location:SimpleAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SimpleAddressFacet"@en ; + rdfs:comment "A simple address facet is a grouping of characteristics unique to a geolocation expressed as an administrative address."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:addressType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:country ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:locality ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:postalCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:region ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path location:street ; + ] + ; + sh:targetClass location:SimpleAddressFacet ; + . + +location:addressType + a owl:DatatypeProperty ; + rdfs:label "addressType"@en ; + rdfs:comment "The type of the address, for instance home or work."@en ; + rdfs:range xsd:string ; + . + +location:altitude + a owl:DatatypeProperty ; + rdfs:label "altitude"@en ; + rdfs:comment "The altitude coordinate of a geolocation."@en ; + rdfs:range xsd:decimal ; + . + +location:country + a owl:DatatypeProperty ; + rdfs:label "country"@en ; + rdfs:comment "The name of the geolocation country."@en ; + rdfs:range xsd:string ; + . + +location:hdop + a owl:DatatypeProperty ; + rdfs:label "hdop"@en ; + rdfs:comment "The horizontal dilution of precision of the GPS location."@en ; + rdfs:range xsd:decimal ; + . + +location:latitude + a owl:DatatypeProperty ; + rdfs:label "latitude"@en ; + rdfs:comment "The latitude coordinate of a geolocation."@en ; + rdfs:range xsd:decimal ; + . + +location:locality + a owl:DatatypeProperty ; + rdfs:label "locality"@en ; + rdfs:comment "The name of the geolocation locality (e.g., city)."@en ; + rdfs:range xsd:string ; + . + +location:longitude + a owl:DatatypeProperty ; + rdfs:label "longitude"@en ; + rdfs:comment "The longitude coordinate of a geolocation."@en ; + rdfs:range xsd:decimal ; + . + +location:pdop + a owl:DatatypeProperty ; + rdfs:label "pdop"@en ; + rdfs:comment "The positional (3D) dilution of precision of the GPS location."@en ; + rdfs:range xsd:decimal ; + . + +location:postalCode + a owl:DatatypeProperty ; + rdfs:label "postalCode"@en ; + rdfs:comment "The zip-code."@en ; + rdfs:range xsd:string ; + . + +location:region + a owl:DatatypeProperty ; + rdfs:label "region"@en ; + rdfs:comment "The name of the geolocation region (e.g., state)."@en ; + rdfs:range xsd:string ; + . + +location:street + a owl:DatatypeProperty ; + rdfs:label "street"@en ; + rdfs:comment "The name of the street."@en ; + rdfs:range xsd:string ; + . + +location:tdop + a owl:DatatypeProperty ; + rdfs:label "tdop"@en ; + rdfs:comment "The temporal dilution of precision of the GPS location."@en ; + rdfs:range xsd:decimal ; + . + +location:vdop + a owl:DatatypeProperty ; + rdfs:label "vdop"@en ; + rdfs:comment "The vertical dilution of precision of the GPS location."@en ; + rdfs:range xsd:decimal ; + . + +marking:GranularMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "GranularMarking"@en ; + rdfs:comment "A granular marking is a grouping of characteristics unique to specification of marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) that apply to particular portions of a particular UCO object."@en ; + sh:property + [ + sh:class marking:MarkingDefinition ; + sh:nodeKind sh:IRI ; + sh:path marking:marking ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path marking:contentSelectors ; + ] + ; + sh:targetClass marking:GranularMarking ; + . + +marking:LicenseMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf marking:MarkingModel ; + rdfs:label "License Marking"@en ; + rdfs:comment "A license marking is a grouping of characteristics unique to the expression of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) to convey details of license restrictions that apply to the data."@en-US ; + sh:property + [ + sh:datatype xsd:string ; + sh:hasValue "license" ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:license ; + ] + ; + sh:targetClass marking:LicenseMarking ; + . + +marking:MarkingDefinition + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:MarkingDefinitionAbstraction ; + rdfs:label "MarkingDefinition"@en ; + rdfs:comment "A marking definition is a grouping of characteristics unique to the expression of a specific data marking conveying restrictions, permissions, and other guidance for how marked data can be used and shared."@en ; + sh:property + [ + sh:class marking:MarkingModel ; + sh:nodeKind sh:IRI ; + sh:path marking:definition ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] + ; + sh:targetClass marking:MarkingDefinition ; + . + +marking:MarkingModel + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "MarkingModel"@en ; + rdfs:comment "A marking model is a grouping of characteristics unique to the expression of a particular form of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared)."@en ; + sh:targetClass marking:MarkingModel ; + . + +marking:ReleaseToMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf marking:MarkingModel ; + rdfs:label "Release-To Marking"@en ; + rdfs:comment "A release-to marking is a grouping of characteristics unique to the expression of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) to convey details of authorized persons and/or organizations to which to the associated content may be released. The existence of the Release-To marking restricts access to ONLY those identities explicitly listed, regardless of whether another data marking exists that allows sharing with other members of the community."@en-US ; + sh:property + [ + sh:datatype xsd:string ; + sh:hasValue "release-to" ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:authorizedIdentities ; + ] + ; + sh:targetClass marking:ReleaseToMarking ; + . + +marking:StatementMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf marking:MarkingModel ; + rdfs:label "Statement Marking"@en ; + rdfs:comment "A statement marking is a grouping of characteristics unique to the expression of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) to convey details of a textual marking statement, (e.g., copyright) whose semantic meaning should apply to the associated content. Statement markings are generally not machine-readable. An example of this would be a simple marking to apply copyright information, such as 'Copyright 2014 Acme Inc.'."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:hasValue "statement" ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:statement ; + ] + ; + sh:targetClass marking:StatementMarking ; + . + +marking:TermsOfUseMarking + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf marking:MarkingModel ; + rdfs:label "Terms Of Use Marking"@en ; + rdfs:comment "A terms of use marking is a grouping of characteristics unique to the expression of data marking definitions (restrictions, permissions, and other guidance for how data can be used and shared) to convey details of a textual statement specifying the Terms of Use (that is, the conditions under which the content may be shared, applied, or otherwise used) of the marked content. An example of this would be used to communicate a simple statement, such as 'Acme Inc. is not responsible for the content of this file'."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:hasValue "terms-of-use" ; + sh:nodeKind sh:Literal ; + sh:path marking:definitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path marking:termsOfUse ; + ] + ; + sh:targetClass marking:TermsOfUseMarking ; + . + +marking:authorizedIdentities + a owl:DatatypeProperty ; + rdfs:label "Authorized Identities"@en ; + rdfs:comment "Specifies the identities that are authorized to access the data to which the data marking is associated. The list of authorized identities are represented as UUIDs."@en ; + rdfs:range xsd:string ; + . + +marking:contentSelectors + a owl:DatatypeProperty ; + rdfs:label "contentSelectors"@en ; + rdfs:comment """Explicit specification of exactly which portions of a UCO object to apply marking definitions to. + Specific syntax for how to specify the UCO object portions is dependent on the particular syntactic serialization implementation (XML, JSON, etc.) of UCO and MUST be explicitly specified in a separate binding specification for that syntactic serialization implementation (e.g. a UCO XML Binding Specification). """@en ; + rdfs:range xsd:string ; + . + +marking:definition + a owl:ObjectProperty ; + rdfs:label "definition"@en ; + rdfs:comment "Explicit specification of a data marking instance."@en ; + rdfs:range marking:MarkingModel ; + . + +marking:definitionType + a owl:DatatypeProperty ; + rdfs:label "definitionType"@en ; + rdfs:comment "Specifies the Marking Model for a Marking Definition."@en ; + rdfs:range xsd:string ; + . + +marking:license + a owl:DatatypeProperty ; + rdfs:label "License" ; + rdfs:comment "Specifies the identifier for the type of license" ; + rdfs:range xsd:string ; + . + +marking:marking + a owl:ObjectProperty ; + rdfs:label "marking"@en ; + rdfs:comment "Represents specific marking definitions to be applied to UCO data."@en ; + rdfs:range marking:MarkingDefinition ; + . + +marking:statement + a owl:DatatypeProperty ; + rdfs:label "Statement"@en-US ; + rdfs:comment "Specifies the statement to apply to the structure for which the Marking is to be applied."@en-US ; + rdfs:range xsd:string ; + . + +marking:termsOfUse + a owl:DatatypeProperty ; + rdfs:label "Terms of Use"@en-US ; + rdfs:comment "Specifies the terms of use that apply to the structure for which the Marking is to be applied."@en-US ; + rdfs:range xsd:string ; + . + +observable:API + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "API"@en ; + rdfs:comment "An API (application programming interface) is a computing interface that defines interactions between multiple software or mixed hardware-software intermediaries. It defines the kinds of calls or requests that can be made, how to make them, the data formats that should be used, the conventions to follow, etc. [based on https://en.wikipedia.org/wiki/API]"@en ; + sh:targetClass observable:API ; + . + +observable:ARPCache + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ARPCache"@en ; + rdfs:comment "An ARP cache is a collection of Address Resolution Protocol (ARP) entries (mostly dynamic) that are created when an IP address is resolved to a MAC address (so the computer can effectively communicate with the IP address). [based on https://en.wikipedia.org/wiki/ARP_cache]"@en ; + sh:targetClass observable:ARPCache ; + . + +observable:ARPCacheEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ARPCacheEntry"@en ; + rdfs:comment "An ARP cache entry is a single Address Resolution Protocol (ARP) response record that is created when an IP address is resolved to a MAC address (so the computer can effectively communicate with the IP address). [based on https://en.wikipedia.org/wiki/ARP_cache]"@en ; + sh:targetClass observable:ARPCacheEntry ; + . + +observable:Account + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Account"@en ; + rdfs:comment "An account is an arrangement with an entity to enable and control the provision of some capability or service."@en ; + sh:targetClass observable:Account ; + . + +observable:AccountAuthenticationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AccountAuthenticationFacet"@en ; + rdfs:comment "An account authentication facet is a grouping of characteristics unique to the mechanism of accessing an account."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:passwordLastChanged ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:password ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:passwordType ; + ] + ; + sh:targetClass observable:AccountAuthenticationFacet ; + . + +observable:AccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AccountFacet"@en ; + rdfs:comment "An account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of some capability or service."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:accountIssuer ; + ] , + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:owner ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isActive ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:expirationTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accountIdentifier ; + ] , + [ + sh:datatype vocabulary:AccountTypeVocab ; + sh:message "Value is outside the default vocabulary AccountTypeVocab." ; + sh:path observable:accountType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:AccountTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:accountType ; + ] , + [ + sh:message "Value is not member of the vocabulary AccountTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:AccountTypeVocab ; + sh:in ( + "ldap"^^vocabulary:AccountTypeVocab + "nis"^^vocabulary:AccountTypeVocab + "openid"^^vocabulary:AccountTypeVocab + "radius"^^vocabulary:AccountTypeVocab + "tacacs"^^vocabulary:AccountTypeVocab + "unix"^^vocabulary:AccountTypeVocab + "windows_domain"^^vocabulary:AccountTypeVocab + "windows_local"^^vocabulary:AccountTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:accountType ; + ] + ; + sh:targetClass observable:AccountFacet ; + . + +observable:Adaptor + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "Adaptor"@en-US ; + rdfs:comment "An adaptor is a device that physically converts the pin outputs but does not alter the underlying protocol (e.g. uSD to SD, CF to ATA, etc.)"@en-US ; + sh:targetClass observable:Adaptor ; + . + +observable:Address + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Address"@en ; + rdfs:comment "An address is an identifier assigned to enable routing and management of information."@en ; + sh:targetClass observable:Address ; + . + +observable:AlternateDataStream + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "AlternateDataStream"@en ; + rdfs:comment "An alternate data stream is data content stored within an NTFS file that is independent of the standard content stream of the file and is hidden from access by default NTFS file viewing mechanisms."@en ; + sh:targetClass observable:AlternateDataStream ; + . + +observable:AlternateDataStreamFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AlternateDataStreamFacet"@en ; + rdfs:comment "An alternate data stream facet is a grouping of characteristics unique to data content stored within an NTFS file that is independent of the standard content stream of the file and is hidden from access by default NTFS file viewing mechanisms."@en ; + sh:property + [ + sh:class types:Hash ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:hashes ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:size ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] + ; + sh:targetClass observable:AlternateDataStreamFacet ; + . + +observable:AndroidDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "AndroidDevice"@en ; + rdfs:comment "An Android device is a device running the Android operating system. [based on https://en.wikipedia.org/wiki/Android_(operating_system)]"@en ; + sh:targetClass observable:AndroidDevice ; + . + +observable:AndroidDeviceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AndroidDeviceFacet"@en ; + rdfs:comment "An Android device facet is a grouping of characteristics unique to an Android device. [based on https://en.wikipedia.org/wiki/Android_(operating_system)]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isADBRootEnabled ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isSURootEnabled ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:androidID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:androidFingerprint ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:androidVersion ; + ] + ; + sh:targetClass observable:AndroidDeviceFacet ; + . + +observable:AndroidPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + observable:AndroidDevice , + observable:SmartPhone + ; + rdfs:label "AndroidPhone"@en-US ; + rdfs:comment "An android phone is a smart phone that applies the Android mobile operating system."@en-US ; + sh:targetClass observable:AndroidPhone ; + . + +observable:AntennaFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AntennaFacet"@en ; + rdfs:comment "An antenna alignment facet contains the metadata surrounding the cell tower's antenna position."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:antennaHeight ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:azimuth ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:elevation ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:horizontalBeamWidth ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signalStrength ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:skew ; + ] + ; + sh:targetClass observable:AntennaFacet ; + . + +observable:AppleDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "AppleDevice"@en-US ; + rdfs:comment "An apple device is a smart device that applies either the MacOS or iOS operating system."@en-US ; + sh:targetClass observable:AppleDevice ; + . + +observable:Appliance + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "Appliance"@en ; + rdfs:comment "An appliance is a purpose-built computer with software or firmware that is designed to provide a specific computing capability or resource. [based on https://en.wikipedia.org/wiki/Computer_appliance]"@en ; + sh:targetClass observable:Appliance ; + . + +observable:Application + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Application"@en ; + rdfs:comment "An application is a particular software program designed for end users."@en ; + sh:targetClass observable:Application ; + . + +observable:ApplicationAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "ApplicationAccount"@en ; + rdfs:comment "An application account is an account within a particular software program designed for end users."@en ; + sh:targetClass observable:ApplicationAccount ; + . + +observable:ApplicationAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ApplicationAccountFacet"@en ; + rdfs:comment "An application account facet is a grouping of characteristics unique to an account within a particular software program designed for end users."@en ; + sh:property [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] ; + sh:targetClass observable:ApplicationAccountFacet ; + . + +observable:ApplicationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ApplicationFacet"@en ; + rdfs:comment "An application facet is a grouping of characteristics unique to a particular software program designed for end users."@en ; + sh:property + [ + sh:class observable:ApplicationVersion ; + sh:nodeKind sh:IRI ; + sh:path observable:installedVersionHistory ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:operatingSystem ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfLaunches ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:applicationIdentifier ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:ApplicationFacet ; + . + +observable:ApplicationVersion + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ApplicationVersion"@en ; + rdfs:comment "An application version is a grouping of characteristics unique to a particular software program version."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:installDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:uninstallDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:ApplicationVersion ; + . + +observable:ArchiveFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "ArchiveFile"@en ; + rdfs:comment "An archive file is a file that is composed of one or more computer files along with metadata."@en ; + sh:targetClass observable:ArchiveFile ; + . + +observable:ArchiveFileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ArchiveFileFacet"@en ; + rdfs:comment "An archive file facet is a grouping of characteristics unique to a file that is composed of one or more computer files along with metadata."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:archiveType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:comment ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:ArchiveFileFacet ; + . + +observable:Audio + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Audio"@en ; + rdfs:comment "Audio is a digital representation of sound."@en ; + sh:targetClass observable:Audio ; + . + +observable:AudioFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AudioFacet"@en ; + rdfs:comment "An audio facet is a grouping of characteristics unique to a digital representation of sound."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bitRate ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:duration ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:audioType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:format ; + ] + ; + sh:targetClass observable:AudioFacet ; + . + +observable:AutonomousSystem + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "AutonomousSystem"@en ; + rdfs:comment "An autonomous system is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain that presents a common, clearly defined routing policy to the Internet. [based on https://en.wikipedia.org/wiki/Autonomous_system_(Internet)]"@en ; + sh:targetClass observable:AutonomousSystem ; + . + +observable:AutonomousSystemFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "AutonomousSystemFacet"@en ; + rdfs:comment "An autonomous system facet is a grouping of characteristics unique to a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain that presents a common, clearly defined routing policy to the Internet. [based on https://en.wikipedia.org/wiki/Autonomous_system_(Internet)]"@en ; + sh:property + observable:regionalInternetRegistry-shape-value-not-vocabulary-member , + observable:regionalInternetRegistry-shape-value-outside-default-vocabulary , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:number ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:asHandle ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RegionalRegistryTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:regionalInternetRegistry ; + ] + ; + sh:targetClass observable:AutonomousSystemFacet ; + . + +observable:BlackberryPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:SmartPhone ; + rdfs:label "BlackberryPhone"@en-US ; + rdfs:comment "A blackberry phone is a smart phone that applies the Blackberry OS mobile operating system. (Blackberry 10 re-introduces Blackberry OS, prior to that the OS was Android.)"@en-US ; + sh:targetClass observable:BlackberryPhone ; + . + +observable:BlockDeviceNode + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "BlockDeviceNode"@en ; + rdfs:comment "A block device node is a UNIX filesystem special file that serves as a conduit to communicate with devices, providing buffered randomly accesible input and output. Block device nodes are used to apply access rights to the devices and to direct operations on the files to the appropriate device drivers. [based on https://en.wikipedia.org/wiki/Unix_file_types]"@en ; + sh:targetClass observable:BlockDeviceNode ; + . + +observable:BluetoothAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MACAddress ; + rdfs:label "BluetoothAddress"@en ; + rdfs:comment "A Bluetooth address is a Bluetooth standard conformant identifier assigned to a Bluetooth device to enable routing and management of Bluetooth standards conformant communication to or from that device."@en ; + sh:targetClass observable:BluetoothAddress ; + . + +observable:BluetoothAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MACAddressFacet ; + rdfs:label "BluetoothAddressFacet"@en ; + rdfs:comment "A Bluetooth address facet is a grouping of characteristics unique to a Bluetooth standard conformant identifier assigned to a Bluetooth device to enable routing and management of Bluetooth standards conformant communication to or from that device."@en ; + sh:targetClass observable:BluetoothAddressFacet ; + . + +observable:BotConfiguration + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "BotConfiguration"@en ; + rdfs:comment "A bot configuration is a set of contextual settings for a software application that runs automated tasks (scripts) over the Internet at a much higher rate than would be possible for a human alone."@en ; + sh:targetClass observable:BotConfiguration ; + . + +observable:BrowserBookmark + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "BrowserBookmark"@en ; + rdfs:comment "A browser bookmark is a saved shortcut that directs a WWW (World Wide Web) browser software program to a particular WWW accessible resource. [based on https://techterms.com/definition/bookmark]"@en ; + sh:targetClass observable:BrowserBookmark ; + . + +observable:BrowserBookmarkFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "BrowserBookmarkFacet"@en ; + rdfs:comment "A browser bookmark facet is a grouping of characteristics unique to a saved shortcut that directs a WWW (World Wide Web) browser software program to a particular WWW accessible resource. [based on https://techterms.com/definition/bookmark]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:anyURI ; + sh:nodeKind sh:Literal ; + sh:path observable:urlTargeted ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accessedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visitCount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bookmarkPath ; + ] + ; + sh:targetClass observable:BrowserBookmarkFacet ; + . + +observable:BrowserCookie + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "BrowserCookie"@en ; + rdfs:comment "A browser cookie is a piece of of data sent from a website and stored on the user's computer by the user's web browser while the user is browsing. [based on https://en.wikipedia.org/wiki/HTTP_cookie]"@en ; + sh:targetClass observable:BrowserCookie ; + . + +observable:BrowserCookieFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "BrowserCookieFacet"@en ; + rdfs:comment "A browser cookie facet is a grouping of characteristics unique to a piece of data sent from a website and stored on the user's computer by the user's web browser while the user is browsing. [based on https://en.wikipedia.org/wiki/HTTP_cookie]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:cookieDomain ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isSecure ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accessedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:expirationTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cookieName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cookiePath ; + ] + ; + sh:targetClass observable:BrowserCookieFacet ; + . + +observable:Calendar + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Calendar"@en ; + rdfs:comment "A calendar is a collection of appointments, meetings, and events."@en ; + sh:targetClass observable:Calendar ; + . + +observable:CalendarEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CalendarEntry"@en ; + rdfs:comment "A calendar entry is an appointment, meeting or event within a collection of appointments, meetings and events."@en ; + sh:targetClass observable:CalendarEntry ; + . + +observable:CalendarEntryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CalendarEntryFacet"@en ; + rdfs:comment "A calendar entry facet is a grouping of characteristics unique to an appointment, meeting, or event within a collection of appointments, meetings, and events."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:owner ; + ] , + [ + sh:class identity:Identity ; + sh:nodeKind sh:IRI ; + sh:path observable:attendant ; + ] , + [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:location ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isPrivate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:remindTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:duration ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:recurrence ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subject ; + ] + ; + sh:targetClass observable:CalendarEntryFacet ; + . + +observable:CalendarFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CalendarFacet"@en ; + rdfs:comment "A calendar facet is a grouping of characteristics unique to a collection of appointments, meetings, and events."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:owner ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] + ; + sh:targetClass observable:CalendarFacet ; + . + +observable:Call + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Call"@en ; + rdfs:comment "A call is a connection as part of a realtime cyber communication between one or more parties."@en ; + sh:targetClass observable:Call ; + . + +observable:CallFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CallFacet"@en ; + rdfs:comment "A call facet is a grouping of characteristics unique to a connection as part of a realtime cyber communication between one or more parties."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:from ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:participant ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:to ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:duration ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:callType ; + ] + ; + sh:targetClass observable:CallFacet ; + . + +observable:CapturedTelecommunicationsInformation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CapturedTelecommunicationsInformation"@en ; + sh:targetClass observable:CapturedTelecommunicationsInformation ; + . + +observable:CapturedTelecommunicationsInformationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CapturedTelecommunicationsInformationFacet"@en ; + rdfs:comment "A captured telecommunications information facet represents certain information within captured or intercepted telecommunications data."@en ; + sh:property + [ + sh:class observable:CellSite ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:captureCellSite ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:interceptedCallState ; + ] + ; + sh:targetClass observable:CapturedTelecommunicationsInformationFacet ; + . + +observable:CellSite + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CellSite"@en ; + sh:targetClass observable:CellSite ; + . + +observable:CellSiteFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CellSiteFacet"@en ; + rdfs:comment "A cell site facet contains the metadata surrounding the cell site."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteCountryCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteIdentifier ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteLocationAreaCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteNetworkCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cellSiteType ; + ] + ; + sh:targetClass observable:CellSiteFacet ; + . + +observable:CharacterDeviceNode + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "CharacterDeviceNode"@en ; + rdfs:comment "A character device node is a UNIX filesystem special file that serves as a conduit to communicate with devices, providing only a serial stream of input or accepting a serial stream of output. Character device nodes are used to apply access rights to the devices and to direct operations on the files to the appropriate device drivers. [based on https://en.wikipedia.org/wiki/Unix_file_types]"@en ; + sh:targetClass observable:CharacterDeviceNode ; + . + +observable:Code + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:Code ; + . + +observable:CompressedStreamFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "CompressedStreamFacet"@en ; + rdfs:comment "A compressed stream facet is a grouping of characteristics unique to the application of a size-reduction process to a body of data content."@en ; + sh:property + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:compressionRatio ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:compressionMethod ; + ] + ; + sh:targetClass observable:CompressedStreamFacet ; + . + +observable:Computer + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "Computer"@en-US ; + rdfs:comment "A computer is an electronic device for storing and processing data, typically in binary, according to instructions given to it in a variable program. [based on 'Computer.' Oxford English Dictionary, Oxford University Press, 2022.]"@en-US ; + sh:targetClass observable:Computer ; + . + +observable:ComputerSpecification + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ComputerSpecification"@en ; + rdfs:comment "A computer specification is the hardware and software of a programmable electronic device that can store, retrieve, and process data. {based on merriam-webster.com/dictionary/computer]"@en ; + sh:targetClass observable:ComputerSpecification ; + . + +observable:ComputerSpecificationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ComputerSpecificationFacet"@en ; + rdfs:comment "A computer specificaiton facet is a grouping of characteristics unique to the hardware and software of a programmable electronic device that can store, retrieve, and process data. [based on merriam-webster.com/dictionary/computer]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:networkInterface ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosReleaseDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:currentSystemDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:localTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:systemTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:availableRam ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:totalRam ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosManufacturer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosSerialNumber ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:biosVersion ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cpu ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cpuFamily ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:gpu ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:gpuFamily ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:hostname ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:processorArchitecture ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timezoneDST ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timezoneStandard ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:uptime ; + ] + ; + sh:targetClass observable:ComputerSpecificationFacet ; + . + +observable:ConfiguredSoftware + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Software ; + rdfs:label "ConfiguredSoftware"@en ; + rdfs:comment "A ConfiguredSoftware is a Software that is known to be configured to run in a more specified manner than some unconfigured or less-configured Software."@en ; + sh:property + [ + sh:class configuration:Configuration ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path configuration:usesConfiguration ; + ] , + [ + sh:class observable:Software ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path configuration:isConfigurationOf ; + ] + ; + sh:targetClass observable:ConfiguredSoftware ; + . + +observable:Contact + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Contact"@en ; + rdfs:comment "A contact is a set of identification and communication related details for a single entity."@en ; + sh:targetClass observable:Contact ; + . + +observable:ContactAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactAddress"@en ; + rdfs:comment "A contact address is a grouping of characteristics unique to a geolocation address of a contact entity."@en ; + sh:property + [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:geolocationAddress ; + ] , + [ + sh:datatype vocabulary:ContactAddressScopeVocab ; + sh:message "Value is outside the default vocabulary ContactAddressScopeVocab." ; + sh:path observable:contactAddressScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactAddressScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactAddressScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactAddressScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactAddressScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactAddressScopeVocab + "work"^^vocabulary:ContactAddressScopeVocab + "school"^^vocabulary:ContactAddressScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactAddressScope ; + ] + ; + sh:targetClass observable:ContactAddress ; + . + +observable:ContactAffiliation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactListAffiliation"@en ; + rdfs:comment "A contact affiliation is a grouping of characteristics unique to details of an organizational affiliation for a single contact entity."@en ; + sh:property + [ + sh:class identity:Organization ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactOrganization ; + ] , + [ + sh:class observable:ContactAddress ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:organizationLocation ; + ] , + [ + sh:class observable:ContactEmail ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactEmail ; + ] , + [ + sh:class observable:ContactMessaging ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactMessaging ; + ] , + [ + sh:class observable:ContactPhone ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhone ; + ] , + [ + sh:class observable:ContactProfile ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactProfile ; + ] , + [ + sh:class observable:ContactURL ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactURL ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:organizationDepartment ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:organizationPosition ; + ] + ; + sh:targetClass observable:ContactAffiliation ; + . + +observable:ContactEmail + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactEmail"@en ; + rdfs:comment "A contact email is a grouping of characteristics unique to details for contacting a contact entity by email."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:emailAddress ; + ] , + [ + sh:datatype vocabulary:ContactEmailScopeVocab ; + sh:message "Value is outside the default vocabulary ContactEmailScopeVocab." ; + sh:path observable:contactEmailScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactEmailScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactEmailScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactEmailScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactEmailScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactEmailScopeVocab + "work"^^vocabulary:ContactEmailScopeVocab + "school"^^vocabulary:ContactEmailScopeVocab + "cloud"^^vocabulary:ContactEmailScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactEmailScope ; + ] + ; + sh:targetClass observable:ContactEmail ; + . + +observable:ContactFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ContactFacet"@en ; + rdfs:comment "A contact facet is a grouping of characteristics unique to a set of identification and communication related details for a single entity."@en ; + sh:property + [ + sh:class observable:ContactAddress ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactAddress ; + ] , + [ + sh:class observable:ContactAffiliation ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactAffiliation ; + ] , + [ + sh:class observable:ContactEmail ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactEmail ; + ] , + [ + sh:class observable:ContactMessaging ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactMessaging ; + ] , + [ + sh:class observable:ContactPhone ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhone ; + ] , + [ + sh:class observable:ContactProfile ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactProfile ; + ] , + [ + sh:class observable:ContactSIP ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactSIP ; + ] , + [ + sh:class observable:ContactURL ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactURL ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:sourceApplication ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path identity:birthdate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastTimeContacted ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberTimesContacted ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contactID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:firstName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:middleName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:namePhonetic ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:namePrefix ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:nameSuffix ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contactGroup ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contactNote ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:nickname ; + ] + ; + sh:targetClass observable:ContactFacet ; + . + +observable:ContactList + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ContactList"@en ; + rdfs:comment "A contact list is a set of multiple individual contacts such as that found in a digital address book."@en ; + sh:targetClass observable:ContactList ; + . + +observable:ContactListFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ContactListFacet"@en ; + rdfs:comment "A contact list facet is a grouping of characteristics unique to a set of multiple individual contacts such as that found in a digital address book."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:sourceApplication ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:contact ; + ] + ; + sh:targetClass observable:ContactListFacet ; + . + +observable:ContactMessaging + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactMessaging"@en ; + rdfs:comment "A contact messaging is a grouping of characteristics unique to details for contacting a contact entity by digital messaging."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactMessagingPlatform ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:messagingAddress ; + ] + ; + sh:targetClass observable:ContactMessaging ; + . + +observable:ContactPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactPhone"@en ; + rdfs:comment "A contact phone is a grouping of characteristics unique to details for contacting a contact entity by telephone."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhoneNumber ; + ] , + [ + sh:datatype vocabulary:ContactPhoneScopeVocab ; + sh:message "Value is outside the default vocabulary ContactPhoneScopeVocab." ; + sh:path observable:contactPhoneScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactPhoneScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactPhoneScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactPhoneScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactPhoneScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactPhoneScopeVocab + "work"^^vocabulary:ContactPhoneScopeVocab + "school"^^vocabulary:ContactPhoneScopeVocab + "mobile"^^vocabulary:ContactPhoneScopeVocab + "main"^^vocabulary:ContactPhoneScopeVocab + "home fax"^^vocabulary:ContactPhoneScopeVocab + "work fax"^^vocabulary:ContactPhoneScopeVocab + "pager"^^vocabulary:ContactPhoneScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactPhoneScope ; + ] + ; + sh:targetClass observable:ContactPhone ; + . + +observable:ContactProfile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactProfile"@en ; + rdfs:comment "A contact profile is a grouping of characteristics unique to details for contacting a contact entity by online service."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactProfilePlatform ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profile ; + ] + ; + sh:targetClass observable:ContactProfile ; + . + +observable:ContactSIP + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactSIP"@en ; + rdfs:comment "A contact SIP is a grouping of characteristics unique to details for contacting a contact entity by Session Initiation Protocol (SIP)."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:sipAddress ; + ] , + [ + sh:datatype vocabulary:ContactSIPScopeVocab ; + sh:message "Value is outside the default vocabulary ContactSIPScopeVocab." ; + sh:path observable:contactSIPScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactSIPScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactSIPScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactSIPScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactSIPScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactSIPScopeVocab + "work"^^vocabulary:ContactSIPScopeVocab + "school"^^vocabulary:ContactSIPScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactSIPScope ; + ] + ; + sh:targetClass observable:ContactSIP ; + . + +observable:ContactURL + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ContactURL"@en ; + rdfs:comment "A contact URL is a grouping of characteristics unique to details for contacting a contact entity by Uniform Resource Locator (URL)."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:url ; + ] , + [ + sh:datatype vocabulary:ContactURLScopeVocab ; + sh:message "Value is outside the default vocabulary ContactURLScopeVocab." ; + sh:path observable:contactURLScope ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:ContactURLScopeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactURLScope ; + ] , + [ + sh:message "Value is not member of the vocabulary ContactURLScopeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:ContactURLScopeVocab ; + sh:in ( + "home"^^vocabulary:ContactURLScopeVocab + "work"^^vocabulary:ContactURLScopeVocab + "school"^^vocabulary:ContactURLScopeVocab + "homepage"^^vocabulary:ContactURLScopeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contactURLScope ; + ] + ; + sh:targetClass observable:ContactURL ; + . + +observable:ContentData + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ContentData"@en ; + rdfs:comment "Content data is a block of digital data."@en ; + sh:targetClass observable:ContentData ; + . + +observable:ContentDataFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ContentDataFacet"@en ; + rdfs:comment "A content data facet is a grouping of characteristics unique to a block of digital data."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:dataPayloadReferenceURL ; + ] , + [ + sh:class types:Hash ; + sh:nodeKind sh:IRI ; + sh:path observable:hash ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isEncrypted ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:entropy ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeInBytes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dataPayload ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:magicNumber ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mimeClass ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:mimeType ; + ] , + [ + sh:datatype vocabulary:EndiannessTypeVocab ; + sh:message "Value is outside the default vocabulary EndiannessTypeVocab." ; + sh:path observable:byteOrder ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:EndiannessTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:byteOrder ; + ] , + [ + sh:message "Value is not member of the vocabulary EndiannessTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:EndiannessTypeVocab ; + sh:in ( + "Big-endian"^^vocabulary:EndiannessTypeVocab + "Little-endian"^^vocabulary:EndiannessTypeVocab + "Middle-endian"^^vocabulary:EndiannessTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:byteOrder ; + ] + ; + sh:targetClass observable:ContentDataFacet ; + . + +observable:CookieHistory + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CookieHistory"@en ; + rdfs:comment "A cookie history is the stored web cookie history for a particular web browser."@en ; + sh:targetClass observable:CookieHistory ; + . + +observable:Credential + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Credential"@en ; + rdfs:comment "A credential is a single specific login and password combination for authorization of access to a digital account or system."@en ; + sh:targetClass observable:Credential ; + . + +observable:CredentialDump + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "CredentialDump"@en ; + rdfs:comment "A credential dump is a collection (typically forcibly extracted from a system) of specific login and password combinations for authorization of access to a digital account or system."@en ; + sh:targetClass observable:CredentialDump ; + . + +observable:DNSCache + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DNSCache"@en ; + rdfs:comment "An DNS cache is a temporary locally stored collection of previous Domain Name System (DNS) query results (created when an domain name is resolved to a IP address) for a particular computer."@en ; + sh:targetClass observable:DNSCache ; + . + +observable:DNSRecord + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DNSRecord"@en ; + rdfs:comment "A DNS record is a single Domain Name System (DNS) artifact specifying information of a particular type (routing, authority, responsibility, security, etc.) for a specific Internet domain name."@en ; + sh:targetClass observable:DNSRecord ; + . + +observable:DataRangeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DataRangeFacet"@en ; + rdfs:comment "A data range facet is a grouping of characteristics unique to a particular contiguous scope within a block of digital data."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:rangeOffset ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:rangeSize ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:rangeOffsetType ; + ] + ; + sh:targetClass observable:DataRangeFacet ; + . + +observable:DefinedEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DefinedEffectFacet"@en ; + rdfs:comment "A defined effect facet is a grouping of characteristics unique to the effect of an observable action in relation to one or more observable objects."@en ; + sh:targetClass observable:DefinedEffectFacet ; + . + +observable:Device + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Device"@en ; + rdfs:comment "A device is a piece of equipment or a mechanism designed to serve a special purpose or perform a special function. [based on https://www.merriam-webster.com/dictionary/device]"@en ; + sh:targetClass observable:Device ; + . + +observable:DeviceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DeviceFacet"@en ; + rdfs:comment "A device facet is a grouping of characteristics unique to a piece of equipment or a mechanism designed to serve a special purpose or perform a special function. [based on https://www.merriam-webster.com/dictionary/device]"@en ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:manufacturer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:deviceType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:model ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serialNumber ; + ] + ; + sh:targetClass observable:DeviceFacet ; + . + +observable:DigitalAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Account ; + rdfs:label "DigitalAccount"@en ; + rdfs:comment "A digital account is an arrangement with an entity to enable and control the provision of some capability or service within the digital domain."@en ; + sh:targetClass observable:DigitalAccount ; + . + +observable:DigitalAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DigitalAccountFacet"@en ; + rdfs:comment "A digital account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of some capability or service within the digital domain."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isDisabled ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:firstLoginTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastLoginTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:accountLogin ; + ] + ; + sh:targetClass observable:DigitalAccountFacet ; + . + +observable:DigitalAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Address ; + rdfs:label "DigitalAddress"@en ; + rdfs:comment "A digital address is an identifier assigned to enable routing and management of digital communication."@en ; + sh:targetClass observable:DigitalAddress ; + . + +observable:DigitalAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DigitalAddressFacet"@en ; + rdfs:comment "A digital address facet is a grouping of characteristics unique to an identifier assigned to enable routing and management of digital communication."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:addressValue ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] + ; + sh:targetClass observable:DigitalAddressFacet ; + . + +observable:DigitalCamera + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "DigitalCamera"@en-US ; + rdfs:comment "A digital camera is a camera that captures photographs in digital memory as opposed to capturing images on photographic film."@en-US ; + sh:targetClass observable:DigitalCamera ; + . + +observable:DigitalSignatureInfo + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DigitalSignatureInfo"@en ; + rdfs:comment "A digital signature info is a value calculated via a mathematical scheme for demonstrating the authenticity of an electronic message or document."@en ; + sh:targetClass observable:DigitalSignatureInfo ; + . + +observable:DigitalSignatureInfoFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DigitalSignatureInfoFacet"@en ; + rdfs:comment "A digital signature info facet is a grouping of characteristics unique to a value calculated via a mathematical scheme for demonstrating the authenticity of an electronic message or document."@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:certificateSubject ; + ] , + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:certificateIssuer ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signatureExists ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signatureVerified ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signatureDescription ; + ] + ; + sh:targetClass observable:DigitalSignatureInfoFacet ; + . + +observable:Directory + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "Directory"@en ; + rdfs:comment "A directory is a file system cataloging structure which contains references to other computer files, and possibly other directories. On many computers, directories are known as folders, or drawers, analogous to a workbench or the traditional office filing cabinet. In UNIX a directory is implemented as a special file. [based on https://en.wikipedia.org/wiki/Directory_(computing)]"@en ; + sh:targetClass observable:Directory ; + . + +observable:Disk + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Disk"@en ; + rdfs:comment "A disk is a storage mechanism where data is recorded by various electronic, magnetic, optical, or mechanical changes to a surface layer of one or more rotating disks."@en ; + sh:targetClass observable:Disk ; + . + +observable:DiskFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DiskFacet"@en ; + rdfs:comment "A disk facet is a grouping of characteristics unique to a storage mechanism where data is recorded by various electronic, magnetic, optical, or mechanical changes to a surface layer of one or more rotating disks."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:partition ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:diskSize ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:freeSpace ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:diskType ; + ] + ; + sh:targetClass observable:DiskFacet ; + . + +observable:DiskPartition + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DiskPartition"@en ; + rdfs:comment "A disk partition is a particular managed region on a storage mechanism where data is recorded by various electronic, magnetic, optical, or mechanical changes to a surface layer of one or more rotating disks. [based on https://en.wikipedia.org/wiki/Disk_storage]"@en ; + sh:targetClass observable:DiskPartition ; + . + +observable:DiskPartitionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DiskPartitionFacet"@en ; + rdfs:comment "A disk partition facet is a grouping of characteristics unique to a particular managed region on a storage mechanism."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:partitionLength ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:partitionOffset ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:spaceLeft ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:spaceUsed ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:totalSpace ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:diskPartitionType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mountPoint ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:partitionID ; + ] + ; + sh:targetClass observable:DiskPartitionFacet ; + . + +observable:DomainName + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "DomainName"@en ; + rdfs:comment "A domain name is an identification string that defines a realm of administrative autonomy, authority or control within the Internet. [based on https://en.wikipedia.org/wiki/Domain_name]"@en ; + sh:targetClass observable:DomainName ; + . + +observable:DomainNameFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "DomainNameFacet"@en ; + rdfs:comment "A domain name facet is a grouping of characteristics unique to an identification string that defines a realm of administrative autonomy, authority or control within the Internet. [based on https://en.wikipedia.org/wiki/Domain_name]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isTLD ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:value ; + ] + ; + sh:targetClass observable:DomainNameFacet ; + . + +observable:Drone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MobileDevice ; + rdfs:label "Drone"@en-US ; + rdfs:comment "A drone, unmanned aerial vehicle (UAV), is an aircraft without a human pilot, crew, or passengers that typically involve a ground-based controller and a system for communications with the UAV."@en-US ; + sh:targetClass observable:Drone ; + . + +observable:ESN + a owl:DatatypeProperty ; + rdfs:label "ESN"@en ; + rdfs:comment "Electronic Serial Number ."@en ; + rdfs:range xsd:string ; + . + +observable:EXIFFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EXIFFacet"@en ; + rdfs:comment "An EXIF (exchangeable image file format) facet is a grouping of characteristics unique to the formats for images, sound, and ancillary tags used by digital cameras (including smartphones), scanners and other systems handling image and sound files recorded by digital cameras conformant to JEIDA/JEITA/CIPA specifications. [based on https://en.wikipedia.org/wiki/Exif]"@en ; + sh:property [ + sh:class types:ControlledDictionary ; + sh:nodeKind sh:IRI ; + sh:path observable:exifData ; + ] ; + sh:targetClass observable:EXIFFacet ; + . + +observable:EmailAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "EmailAccount"@en ; + rdfs:comment "An email account is an arrangement with an entity to enable and control the provision of electronic mail (email) capabilities or services."@en ; + sh:targetClass observable:EmailAccount ; + . + +observable:EmailAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EmailAccountFacet"@en ; + rdfs:comment "An email account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of electronic mail (email) capabilities or services."@en ; + sh:property [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:emailAddress ; + ] ; + sh:targetClass observable:EmailAccountFacet ; + . + +observable:EmailAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "EmailAddress"@en ; + rdfs:comment "An email address is an identifier for an electronic mailbox to which electronic mail messages (conformant to the Simple Mail Transfer Protocol (SMTP)) are sent from and delivered to."@en ; + sh:targetClass observable:EmailAddress ; + . + +observable:EmailAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "EmailAddressFacet"@en ; + rdfs:comment "An email address facet is a grouping of characteristics unique to an identifier for an electronic mailbox to which electronic mail messages (conformant to the Simple Mail Transfer Protocol (SMTP)) are sent from and delivered to."@en ; + sh:targetClass observable:EmailAddressFacet ; + . + +observable:EmailMessage + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "EmailMessage"@en ; + rdfs:comment "An email message is a message that is an instance of an electronic mail correspondence conformant to the internet message format described in RFC 5322 and related RFCs."@en ; + sh:targetClass observable:EmailMessage ; + . + +observable:EmailMessageFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EmailMessageFacet"@en ; + rdfs:comment "An email message facet is a grouping of characteristics unique to a message that is an instance of an electronic mail correspondence conformant to the internet message format described in RFC 5322 and related RFCs."@en ; + sh:property + [ + sh:class observable:MimePartType ; + sh:nodeKind sh:IRI ; + sh:path observable:bodyMultipart ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:bodyRaw ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:from ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:headerRaw ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:sender ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:xOriginatingIP ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:bcc ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:cc ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:references ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:to ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:otherHeaders ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isMimeEncoded ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isMultipart ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isRead ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:receivedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sentTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:body ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contentDisposition ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contentType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:inReplyTo ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:messageID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:priority ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subject ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:xMailer ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:categories ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:labels ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:receivedLines ; + ] + ; + sh:targetClass observable:EmailMessageFacet ; + . + +observable:EmbeddedDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "EmbeddedDevice"@en-US ; + rdfs:comment "An embedded device is a highly specialized microprocessor device meant for one or very few specific purposes and is usually embedded or included within another object or as part of a larger system. Examples include answer machine, door access logger, card scanner, etc."@en-US ; + sh:targetClass observable:EmbeddedDevice ; + . + +observable:EncodedStreamFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EncodedStreamFacet"@en ; + rdfs:comment "An encoded stream facet is a grouping of characteristics unique to the conversion of a body of data content from one form to another form."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:encodingMethod ; + ] ; + sh:targetClass observable:EncodedStreamFacet ; + . + +observable:EncryptedStreamFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EncryptedStreamFacet"@en ; + rdfs:comment "An encrypted stream facet is a grouping of characteristics unique to the conversion of a body of data content from one form to another obfuscated form in such a way that reversing the conversion to obtain the original data form can only be accomplished through possession and use of a specific key."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:encryptionMethod ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:encryptionMode ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:encryptionIV ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:encryptionKey ; + ] + ; + sh:targetClass observable:EncryptedStreamFacet ; + . + +observable:EnvironmentVariable + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "EnvironmentVariable"@en ; + rdfs:comment "An environment variable is a grouping of characteristics unique to a dynamic-named value that can affect the way running processes will behave on a computer. [based on https://en.wikipedia.org/wiki/Environment_variable]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:value ; + ] + ; + sh:targetClass observable:EnvironmentVariable ; + . + +observable:EventLog + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "EventLog"@en ; + rdfs:comment "An event log is a collection of event records."@en ; + sh:targetClass observable:EventLog ; + . + +observable:EventRecord + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "EventRecord"@en ; + rdfs:comment "An event record is something that happens in a digital context (e.g., operating system events)."@en ; + sh:targetClass observable:EventRecord ; + . + +observable:EventRecordFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "EventRecordFacet"@en ; + rdfs:comment "An event record facet is a grouping of characteristics unique to something that happens in a digital context (e.g., operating system events)."@en ; + sh:property + [ + sh:class observable:ObservableAction ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:cyberAction ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:account ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:eventRecordDevice ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventRecordID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventRecordRaw ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventRecordServiceName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventRecordText ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:eventType ; + ] + ; + sh:targetClass observable:EventRecordFacet ; + . + +observable:ExtInodeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ExtInodeFacet"@en ; + rdfs:comment "An extInode facet is a grouping of characteristics unique to a file system object (file, directory, etc.) conformant to the extended file system (EXT or related derivations) specification."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extDeletionTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extInodeChangeTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extFileType ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extFlags ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extHardLinkCount ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extInodeID ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extPermissions ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extSGID ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extSUID ; + ] + ; + sh:targetClass observable:ExtInodeFacet ; + . + +observable:ExtractedString + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "ExtractedString"@en ; + rdfs:comment "An extracted string is a grouping of characteristics unique to a series of characters pulled from an observable object."@en ; + sh:property + [ + sh:datatype xsd:base64Binary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:byteStringValue ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:length ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:encoding ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:englishTranslation ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:language ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:stringValue ; + ] + ; + sh:targetClass observable:ExtractedString ; + . + +observable:ExtractedStringsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ExtractedStringsFacet"@en ; + rdfs:comment "An extracted strings facet is a grouping of characteristics unique to one or more sequences of characters pulled from an observable object."@en ; + sh:property [ + sh:class observable:ExtractedString ; + sh:nodeKind sh:IRI ; + sh:path observable:strings ; + ] ; + sh:targetClass observable:ExtractedStringsFacet ; + . + +observable:File + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "File"@en ; + rdfs:comment "A file is a computer resource for recording data discretely on a computer storage device."@en ; + sh:targetClass observable:File ; + . + +observable:FileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "FileFacet"@en ; + rdfs:comment "A file facet is a grouping of characteristics unique to the storage of a file (computer resource for recording data discretely in a computer storage device) on a file system (process that manages how and where data on a storage device is stored, accessed and managed). [based on https://en.wikipedia.org/Computer_file and https://www.techopedia.com/definition/5510/file-system]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:nodeKind sh:Literal ; + sh:path observable:isDirectory ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accessedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:metadataChangeTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:description "When used to characterize a file the sizeInBytes property conveys the recorded size of a file in a file system."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeInBytes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:allocationStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extension ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:fileName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:filePath ; + ] + ; + sh:targetClass observable:FileFacet ; + . + +observable:FilePermissionsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "FilePermissionsFacet"@en ; + rdfs:comment "A file permissions facet is a grouping of characteristics unique to the access rights (e.g., view, change, navigate, execute) of a file on a file system."@en ; + sh:property [ + sh:class core:UcoObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:owner ; + ] ; + sh:targetClass observable:FilePermissionsFacet ; + . + +observable:FileSystem + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "FileSystem"@en ; + rdfs:comment "A file system is the process that manages how and where data on a storage medium is stored, accessed and managed. [based on https://www.techopedia.com/definition/5510/file-system]"@en ; + sh:targetClass observable:FileSystem ; + . + +observable:FileSystemFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "FileSystemFacet"@en ; + rdfs:comment "A file system facet is a grouping of characteristics unique to the process that manages how and where data on a storage medium is stored, accessed and managed. [based on https://www.techopedia.com/definition/5510/file-system]"@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:clusterSize ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:fileSystemType ; + ] + ; + sh:targetClass observable:FileSystemFacet ; + . + +observable:FileSystemObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "FileSystemObject"@en ; + rdfs:comment "A file system object is an informational object represented and managed within a file system."@en ; + sh:targetClass observable:FileSystemObject ; + . + +observable:ForumPost + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "ForumPost"@en ; + rdfs:comment "A forum post is message submitted by a user account to an online forum where the message content (and typically metadata including who posted it and when) is viewable by any party with viewing permissions on the forum."@en ; + sh:targetClass observable:ForumPost ; + . + +observable:ForumPrivateMessage + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "ForumPrivateMessage"@en ; + rdfs:comment "A forum private message (aka PM or DM (direct message)) is a one-to-one message from one specific user account to another specific user account on an online form where transmission is managed by the online forum platform and the message is only viewable by the parties directly involved."@en ; + sh:targetClass observable:ForumPrivateMessage ; + . + +observable:FragmentFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "FragmentFacet"@en ; + rdfs:comment "A fragment facet is a grouping of characteristics unique to an individual piece of the content of a file."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:fragmentIndex ; + ] , + [ + sh:datatype xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:totalFragments ; + ] + ; + sh:targetClass observable:FragmentFacet ; + . + +observable:GUI + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GUI"@en ; + rdfs:comment "A GUI is a graphical user interface that allows users to interact with electronic devices through graphical icons and audio indicators such as primary notation, instead of text-based user interfaces, typed command labels or text navigation. [based on https://en.wikipedia.org/wiki/Graphical_user_interface]"@en ; + sh:targetClass observable:GUI ; + . + +observable:GamingConsole + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "GamingConsole"@en-US ; + rdfs:comment "A gaming console (video game console or game console) is an electronic system that connects to a display, typically a TV or computer monitor, for the primary purpose of playing video games."@en-US ; + sh:targetClass observable:GamingConsole ; + . + +observable:GenericObservableObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GenericObservableObject"@en ; + rdfs:comment "A generic observable object is an article or unit within the digital domain."@en ; + sh:targetClass observable:GenericObservableObject ; + . + +observable:GeoLocationEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GeoLocationEntry"@en ; + rdfs:comment "A geolocation entry is a single application-specific geolocation entry."@en ; + sh:targetClass observable:GeoLocationEntry ; + . + +observable:GeoLocationEntryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "GeoLocationEntryFacet"@en ; + rdfs:comment "A geolocation entry facet is a grouping of characteristics unique to a single application-specific geolocation entry."@en ; + sh:property + [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:location ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] + ; + sh:targetClass observable:GeoLocationEntryFacet ; + . + +observable:GeoLocationLog + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GeoLocationLog"@en ; + rdfs:comment "A geolocation log is a record containing geolocation tracks and/or geolocation entries."@en ; + sh:targetClass observable:GeoLocationLog ; + . + +observable:GeoLocationLogFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "GeoLocationLogFacet"@en ; + rdfs:comment "A geolocation log facet is a grouping of characteristics unique to a record containing geolocation tracks and/or geolocation entries."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] + ; + sh:targetClass observable:GeoLocationLogFacet ; + . + +observable:GeoLocationTrack + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "GeoLocationTrack"@en ; + rdfs:comment "A geolocation track is a set of contiguous geolocation entries representing a path/track taken."@en ; + sh:targetClass observable:GeoLocationTrack ; + . + +observable:GeoLocationTrackFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "GeoLocationTrackFacet"@en ; + rdfs:comment "A geolocation track facet is a grouping of characteristics unique to a set of contiguous geolocation entries representing a path/track taken."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:geoLocationEntry ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] + ; + sh:targetClass observable:GeoLocationTrackFacet ; + . + +observable:GlobalFlagType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "GlobalFlagType"@en ; + rdfs:comment 'A global flag type is a grouping of characteristics unique to the Windows systemwide global variable named NtGlobalFlag that enables various internal debugging, tracing, and validation support in the operating system. [based on "Windows Global Flags, Chapter 3: System Mechanisms of Windows Internals by Solomon, Russinovich, and Ionescu]'@en ; + sh:property + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:hexadecimalValue ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:abbreviation ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:destination ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:symbolicName ; + ] + ; + sh:targetClass observable:GlobalFlagType ; + . + +observable:HTTPConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:NetworkConnection ; + rdfs:label "HTTPConnection"@en ; + rdfs:comment "An HTTP connection is network connection that is conformant to the Hypertext Transfer Protocol (HTTP) standard."@en ; + sh:targetClass observable:HTTPConnection ; + . + +observable:HTTPConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "HTTPConnectionFacet"@en ; + rdfs:comment "An HTTP connection facet is a grouping of characteristics unique to portions of a network connection that are conformant to the Hypertext Transfer Protocol (HTTP) standard."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:httpMessageBodyData ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:httpRequestHeader ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:httpMesageBodyLength ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:requestMethod ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:requestValue ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:requestVersion ; + ] + ; + sh:targetClass observable:HTTPConnectionFacet ; + . + +observable:Hostname + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Hostname"@en ; + rdfs:comment "A hostname is a label that is assigned to a device connected to a computer network and that is used to identify the device in various forms of electronic communication, such as the World Wide Web. A hostname may be a domain name, if it is properly organized into the domain name system. A domain name may be a hostname if it has been assigned to an Internet host and associated with the host's IP address. [based on https://en.wikipedia.org/wiki/Hostname]"@en ; + sh:targetClass observable:Hostname ; + . + +observable:ICCID + a owl:DatatypeProperty ; + rdfs:label "ICCID"@en ; + rdfs:comment "Integrated circuit card identifier (http://www.itu.int/)."@en ; + rdfs:range xsd:string ; + . + +observable:ICMPConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:NetworkConnection ; + rdfs:label "ICMPConnection"@en ; + rdfs:comment "An ICMP connection is a network connection that is conformant to the Internet Control Message Protocol (ICMP) standard."@en ; + sh:targetClass observable:ICMPConnection ; + . + +observable:ICMPConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ICMPConnectionFacet"@en ; + rdfs:comment "An ICMP connection facet is a grouping of characteristics unique to portions of a network connection that are conformant to the Internet Control Message Protocol (ICMP) standard."@en ; + sh:property + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:icmpCode ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:icmpType ; + ] + ; + sh:targetClass observable:ICMPConnectionFacet ; + . + +observable:IComHandlerActionType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "IComHandlerActionType"@en ; + rdfs:comment "An IComHandler action type is a grouping of characteristics unique to a Windows Task-related action that fires a Windows COM handler (smart code in the client address space that can optimize calls between a client and server). [based on https://docs.microsoft.com/en-us/windows/win32/taskschd/comhandleraction]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:comClassID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:comData ; + ] + ; + sh:targetClass observable:IComHandlerActionType ; + . + +observable:IExecActionType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "IExecActionType"@en ; + rdfs:comment "An IExec action type is a grouping of characteristics unique to an action that executes a command-line operation on a Windows operating system. [based on https://docs.microsoft.com/en-us/windows/win32/api/taskschd/nn-taskschd-iexecaction?redirectedfrom=MSDN]"@en ; + sh:property + [ + sh:class types:Hash ; + sh:nodeKind sh:IRI ; + sh:path observable:execProgramHashes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:execArguments ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:execProgramPath ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:execWorkingDirectory ; + ] + ; + sh:targetClass observable:IExecActionType ; + . + +observable:IMEI + a owl:DatatypeProperty ; + rdfs:label "IMEI"@en ; + rdfs:comment "International Mobile Equipment Identity (IMEI)."@en ; + rdfs:range xsd:string ; + . + +observable:IMSI + a owl:DatatypeProperty ; + rdfs:label "IMSI"@en ; + rdfs:comment "An International Mobile Subscriber Identity (IMSI) is a unique identification associated with all GSM and UMTS network mobile phone users. It is stored as a 64-bit field in the SIM inside the phone and is sent by the phone to the network."@en ; + rdfs:range xsd:string ; + . + +observable:IPAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "IPAddress"@en ; + rdfs:comment "An IP address is an Internet Protocol (IP) standards conformant identifier assigned to a device to enable routing and management of IP standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPAddress ; + . + +observable:IPAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "IPAddressFacet"@en ; + rdfs:comment "An IP address facet is a grouping of characteristics unique to an Internet Protocol (IP) standards conformant identifier assigned to a device to enable routing and management of IP standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPAddressFacet ; + . + +observable:IPNetmask + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "IPNetmask"@en ; + rdfs:comment "An IP netmask is a 32-bit 'mask' used to divide an IP address into subnets and specify the network's available hosts."@en ; + sh:targetClass observable:IPNetmask ; + . + +observable:IPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + observable:AppleDevice , + observable:SmartPhone + ; + rdfs:label "IPhone"@en-US ; + rdfs:comment "An iPhone is a smart phone that applies the iOS mobile operating system."@en-US ; + sh:targetClass observable:IPhone ; + . + +observable:IPv4Address + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:IPAddress ; + rdfs:label "IPv4Address"@en ; + rdfs:comment "An IPv4 (Internet Protocol version 4) address is an IPv4 standards conformant identifier assigned to a device to enable routing and management of IPv4 standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPv4Address ; + . + +observable:IPv4AddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:IPAddressFacet ; + rdfs:label "IPv4AddressFacet"@en ; + rdfs:comment "An IPv4 (Internet Protocol version 4) address facet is a grouping of characteristics unique to an IPv4 standards conformant identifier assigned to a device to enable routing and management of IPv4 standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPv4AddressFacet ; + . + +observable:IPv6Address + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:IPAddress ; + rdfs:label "IPv6Address"@en ; + rdfs:comment "An IPv6 (Internet Protocol version 6) address is an IPv6 standards conformant identifier assigned to a device to enable routing and management of IPv6 standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPv6Address ; + . + +observable:IPv6AddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:IPAddressFacet ; + rdfs:label "IPv6AddressFacet"@en ; + rdfs:comment "An IPv6 (Internet Protocol version 6) address facet is a grouping of characteristics unique to an IPv6 standards conformant identifier assigned to a device to enable routing and management of IPv6 standards conformant communication to or from that device."@en ; + sh:targetClass observable:IPv6AddressFacet ; + . + +observable:IShowMessageActionType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "IShowMessageActionType"@en ; + rdfs:comment "An IShow message action type is a grouping of characteristics unique to an action that shows a message box when a task is activate. [based on https://docs.microsoft.com/en-us/windows/win32/api/taskschd/nn-taskschd-ishowmessageaction?redirectedfrom=MSDN]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:showMessageBody ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:showMessageTitle ; + ] + ; + sh:targetClass observable:IShowMessageActionType ; + . + +observable:Image + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Image"@en ; + rdfs:comment "An image is a complete copy of a hard disk, memory, or other digital media."@en ; + sh:targetClass observable:Image ; + . + +observable:ImageFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ImageFacet"@en ; + rdfs:comment "An image facet is a grouping of characteristics unique to a complete copy of a hard disk, memory, or other digital media."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:imageType ; + ] ; + sh:targetClass observable:ImageFacet ; + . + +observable:InstantMessagingAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "InstantMessagingAddress"@en ; + rdfs:comment ""@en ; + sh:targetClass observable:InstantMessagingAddress ; + . + +observable:InstantMessagingAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "InstantMessagingAddressFacet"@en ; + rdfs:comment "An instant messaging address facet is a grouping of characteristics unique to an identifier assigned to enable routing and management of instant messaging digital communication."@en ; + sh:targetClass observable:InstantMessagingAddressFacet ; + . + +observable:Junction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "Junction"@en ; + rdfs:comment "A junction is a specific NTFS (New Technology File System) reparse point to redirect a directory access to another directory which can be on the same volume or another volume. A junction is similar to a directory symbolic link but may differ on whether they are processed on the local system or on the remote file server. [based on https://jp-andre.pagesperso-orange.fr/junctions.html]"@en ; + sh:targetClass observable:Junction ; + . + +observable:Laptop + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Computer ; + rdfs:label "Laptop"@en-US ; + rdfs:comment "A laptop, laptop computer, or notebook computer is a small, portable personal computer with a screen and alphanumeric keyboard. These typically have a clam shell form factor with the screen mounted on the inside of the upper lid and the keyboard on the inside of the lower lid, although 2-in-1 PCs with a detachable keyboard are often marketed as laptops or as having a laptop mode. (Devices categorized by their manufacturer as a Laptop)"@en-US ; + sh:targetClass observable:Laptop ; + . + +observable:Library + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:Library ; + . + +observable:LibraryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "LibraryFacet"@en ; + rdfs:comment "A library facet is a grouping of characteristics unique to 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:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:libraryType ; + ] ; + sh:targetClass observable:LibraryFacet ; + . + +observable:MACAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "MACAddress"@en ; + rdfs:comment "A MAC address is a media access control standards conformant identifier assigned to a network interface to enable routing and management of communications at the data link layer of a network segment."@en ; + sh:targetClass observable:MACAddress ; + . + +observable:MACAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "MACAddressFacet"@en ; + rdfs:comment "A MAC address facet is a grouping of characteristics unique to a media access control standards conformant identifier assigned to a network interface to enable routing and management of communications at the data link layer of a network segment."@en ; + sh:targetClass observable:MACAddressFacet ; + . + +observable:MSISDN + a owl:DatatypeProperty ; + rdfs:label "MSISDN"@en ; + rdfs:comment "Mobile Station International Subscriber Directory Number (MSISDN) is a number used to identify a mobile phone number internationally. MSISDN is defined by the E.164 numbering plan. This number includes a country code and a National Destination Code which identifies the subscriber's operator."@en ; + rdfs:range xsd:string ; + . + +observable:MSISDNType + a owl:DatatypeProperty ; + rdfs:label "MSISDNType"@en ; + rdfs:comment "???."@en ; + rdfs:range xsd:string ; + . + +observable:Memory + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Memory"@en ; + rdfs:comment "Memory is a particular region of temporary information storage (e.g., RAM (random access memory), ROM (read only memory)) on a digital device."@en ; + sh:targetClass observable:Memory ; + . + +observable:MemoryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MemoryFacet"@en ; + rdfs:comment "A memory facet is a grouping of characteristics unique to a particular region of temporary information storage (e.g., RAM (random access memory), ROM (read only memory)) on a digital device."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isInjected ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isMapped ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isProtected ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isVolatile ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:regionEndAddress ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:regionStartAddress ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:regionSize ; + ] , + [ + sh:datatype vocabulary:MemoryBlockTypeVocab ; + sh:message "Value is outside the default vocabulary MemoryBlockTypeVocab." ; + sh:path observable:blockType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:MemoryBlockTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:blockType ; + ] , + [ + sh:message "Value is not member of the vocabulary MemoryBlockTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:MemoryBlockTypeVocab ; + sh:in ( + "Bit-mapped"^^vocabulary:MemoryBlockTypeVocab + "Byte-mapped"^^vocabulary:MemoryBlockTypeVocab + "Initialized"^^vocabulary:MemoryBlockTypeVocab + "Overlay"^^vocabulary:MemoryBlockTypeVocab + "Uninitialized"^^vocabulary:MemoryBlockTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:blockType ; + ] + ; + sh:targetClass observable:MemoryFacet ; + . + +observable:Message + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Message"@en ; + rdfs:comment "A message is a discrete unit of electronic communication intended by the source for consumption by some recipient or group of recipients. [based on https://en.wikipedia.org/wiki/Message]"@en ; + sh:targetClass observable:Message ; + . + +observable:MessageFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MessageFacet"@en ; + rdfs:comment "A message facet is a grouping of characteristics unique to a discrete unit of electronic communication intended by the source for consumption by some recipient or group of recipients. [based on https://en.wikipedia.org/wiki/Message]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:from ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:to ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sentTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:messageID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:messageText ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:messageType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sessionID ; + ] + ; + sh:targetClass observable:MessageFacet ; + . + +observable:MessageThread + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "MessageTread"@en ; + rdfs:comment "A message thread is a running commentary of electronic messages pertaining to one topic or question."@en ; + sh:targetClass observable:MessageThread ; + . + +observable:MessageThreadFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MessageThreadFacet"@en ; + rdfs:comment "A message thread facet is a grouping of characteristics unique to a running commentary of electronic messages pertaining to one topic or question."@en ; + sh:property + [ + sh:class observable:Message ; + sh:description "The contents of ordered items in the Thread linked by messageThread must be Message objects."@en ; + sh:path ( + observable:messageThread + co:item + co:itemContent + ) ; + ] , + [ + sh:class observable:Message ; + sh:description "The contents of origin items in the Thread linked by messageThread must be Message objects."@en ; + sh:path ( + observable:messageThread + types:threadOriginItem + co:itemContent + ) ; + ] , + [ + sh:class observable:Message ; + sh:description "The contents of terminal items in the Thread linked by messageThread must be Message objects."@en ; + sh:path ( + observable:messageThread + types:threadTerminalItem + co:itemContent + ) ; + ] , + [ + sh:class observable:Message ; + sh:description "The contents of unordered items in the Thread linked by messageThread must be Message objects."@en ; + sh:path ( + observable:messageThread + co:element + ) ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:participant ; + ] , + [ + sh:class types:Thread ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:messageThread ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visibility ; + ] + ; + sh:targetClass observable:MessageThreadFacet ; + . + +observable:MftRecordFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MftRecordFacet"@en ; + rdfs:comment "An MFT record facet is a grouping of characteristics unique to the details of a single file as managed in an NTFS (new technology filesystem) master file table (which is a collection of information about all files on an NTFS filesystem). [based on https://docs.microsoft.com/en-us/windows/win32/devnotes/master-file-table]"@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameAccessedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameCreatedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameModifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameRecordChangeTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftRecordChangeTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileID ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFileNameLength ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftFlags ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mftParentID ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ntfsHardLinkCount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ntfsOwnerID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ntfsOwnerSID ; + ] + ; + sh:targetClass observable:MftRecordFacet ; + . + +observable:MimePartType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "MimePartType"@en ; + rdfs:comment "A mime part type is a grouping of characteristics unique to a component of a multi-part email body."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:bodyRaw ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:body ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contentDisposition ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:contentType ; + ] + ; + sh:targetClass observable:MimePartType ; + . + +observable:MobileAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "MobileAccount"@en ; + rdfs:comment "A mobile account is an arrangement with an entity to enable and control the provision of some capability or service on a portable computing device. [based on https://www.lexico.com/definition/mobile_device]"@en ; + sh:targetClass observable:MobileAccount ; + . + +observable:MobileAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MobileAccountFacet"@en ; + rdfs:comment "A mobile account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of some capability or service on a portable computing device. [based on https://www.lexico.com/definition/mobile_device]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:IMSI ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:MSISDN ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:MSISDNType ; + ] + ; + sh:targetClass observable:MobileAccountFacet ; + . + +observable:MobileDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "MobileDevice"@en ; + rdfs:comment "A mobile device is a portable computing device. [based on https://www.lexico.com.definition/mobile_device]"@en ; + sh:targetClass observable:MobileDevice ; + . + +observable:MobileDeviceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MobileDeviceFacet"@en ; + rdfs:comment "A mobile device facet is a grouping of characteristics unique to a portable computing device. [based on https://www.lexico.com/definition/mobile_device]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mockLocationsAllowed ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:clockSetting ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:phoneActivationTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:storageCapacityInBytes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ESN ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bluetoothDeviceName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:keypadUnlockCode ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:network ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:IMEI ; + ] + ; + sh:targetClass observable:MobileDeviceFacet ; + . + +observable:MobilePhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MobileDevice ; + rdfs:label "MobilePhone"@en-US ; + rdfs:comment "A mobile phone is a portable telephone that at least can make and receive calls over a radio frequency link while the user is moving within a telephone service area. This category encompasses all types of mobiles, simple and smart and satellite ones all together."@en-US ; + sh:targetClass observable:MobilePhone ; + . + +observable:Mutex + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Mutex"@en ; + rdfs:comment "A mutex is a mechanism that enforces limits on access to a resource when there are many threads of execution. A mutex is designed to enforce a mutual exclusion concurrency control policy, and with a variety of possible methods there exists multiple unique implementations for different applications. [based on https://en.wikipedia.org/wiki/Lock_(computer_science)]"@en ; + sh:targetClass observable:Mutex ; + . + +observable:MutexFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "MutexFacet"@en ; + rdfs:comment "A mutex facet is a grouping of characteristics unique to a mechanism that enforces limits on access to a resource when there are many threads of execution. A mutex is designed to enforce a mutual exclusion concurrency control policy, and with a variety of possible methods there exists multiple unique implementations for different applications. [based on https://en.wikipedia.org/wiki/Lock_(computer_science)]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isNamed ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mutexName ; + ] + ; + sh:targetClass observable:MutexFacet ; + . + +observable:NTFSFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "NTFSFile"@en ; + rdfs:comment "An NTFS file is a New Technology File System (NTFS) file."@en ; + sh:targetClass observable:NTFSFile ; + . + +observable:NTFSFileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NTFSFileFacet"@en ; + rdfs:comment "An NTFS file facet is a grouping of characteristics unique to a file on an NTFS (new technology filesystem) file system."@en ; + sh:property + [ + sh:class observable:AlternateDataStream ; + sh:nodeKind sh:IRI ; + sh:path observable:alternateDataStreams ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:entryID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sid ; + ] + ; + sh:targetClass observable:NTFSFileFacet ; + . + +observable:NTFSFilePermissionsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NTFSFilePermissionsFacet"@en ; + rdfs:comment "An NTFS file permissions facet is a grouping of characteristics unique to the access rights (e.g., view, change, navigate, execute) of a file on an NTFS (new technology filesystem) file system."@en ; + sh:targetClass observable:NTFSFilePermissionsFacet ; + . + +observable:NamedPipe + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "NamedPipe"@en ; + rdfs:comment "A named pipe is a mechanism for FIFO (first-in-first-out) inter-process communication. It is persisted as a filesystem object (that can be deleted like any other file), can be written to or read from by any process and exists beyond the lifespan of any process interacting with it (unlike simple anonymous pipes). [based on https://en.wikipedia.org/wiki/Named_pipe]"@en ; + sh:targetClass observable:NamedPipe ; + . + +observable:NetworkAppliance + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Appliance ; + rdfs:label "NetworkAppliance"@en ; + rdfs:comment "A network appliance is a purpose-built computer with software or firmware that is designed to provide a specific network management function."@en ; + sh:targetClass observable:NetworkAppliance ; + . + +observable:NetworkConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkConnection"@en ; + rdfs:comment "A network connection is a connection (completed or attempted) across a digital network (a group of two or more computer systems linked together). [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:targetClass observable:NetworkConnection ; + . + +observable:NetworkConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NetworkConnectionFacet"@en ; + rdfs:comment "A network connection facet is a grouping of characteristics unique to a connection (complete or attempted) accross a digital network (a group of two or more computer systems linked together). [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:property + [ + sh:class core:UcoObject ; + sh:nodeKind sh:IRI ; + sh:path observable:src ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:dst ; + ] , + [ + sh:class types:ControlledDictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:protocols ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isActive ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:endTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:destinationPort ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sourcePort ; + ] + ; + sh:targetClass observable:NetworkConnectionFacet ; + . + +observable:NetworkFlow + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkFlow"@en ; + rdfs:comment "A network flow is a sequence of data transiting one or more digital network (a group or two or more computer systems linked together) connections. [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:targetClass observable:NetworkFlow ; + . + +observable:NetworkFlowFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NetworkFlowFacet"@en ; + rdfs:comment "A network flow facet is a grouping of characteristics unique to a sequence of data transiting one or more digital network (a group of two or more computer systems linked together) connections. [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:dstPayload ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:srcPayload ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:ipfix ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dstBytes ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dstPackets ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:srcBytes ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:srcPackets ; + ] + ; + sh:targetClass observable:NetworkFlowFacet ; + . + +observable:NetworkInterface + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkInterface"@en ; + rdfs:comment "A network interface is a software or hardware interface between two pieces of equipment or protocol layers in a computer network."@en ; + sh:targetClass observable:NetworkInterface ; + . + +observable:NetworkInterfaceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NetworkInterfaceFacet"@en ; + rdfs:comment "A network interface facet is a grouping of characteristics unique to a software or hardware interface between two pieces of equipment or protocol layers in a computer network."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:macAddress ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:dhcpServer ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:ip ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:ipGateway ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dhcpLeaseExpires ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dhcpLeaseObtained ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:adapterName ; + ] + ; + sh:targetClass observable:NetworkInterfaceFacet ; + . + +observable:NetworkProtocol + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkProtocol"@en ; + rdfs:comment "A network protocol is an established set of structured rules that determine how data is transmitted between different devices in the same network. Essentially, it allows connected devices to communicate with each other, regardless of any differences in their internal processes, structure or design. [based on https://www.comptia.org/content/guides/what-is-a-network-protocol]"@en ; + sh:targetClass observable:NetworkProtocol ; + . + +observable:NetworkRoute + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkRoute"@en ; + rdfs:comment "A network route is a specific path (of specific network nodes, connections and protocols) for traffic in a network or between or across multiple networks."@en ; + sh:targetClass observable:NetworkRoute ; + . + +observable:NetworkSocketAddressFamily + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "af_appletalk" + "af_bth" + "af_inet" + "af_inet6" + "af_ipx" + "af_irda" + "af_netbios" + "af_unspec" + ) ; + ] ; + . + +observable:NetworkSocketProtocolFamily + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "pf_appletalk" + "pf_ash" + "pf_atmpvc" + "pf_atmsvc" + "pf_ax25" + "pf_bluetooth" + "pf_bridge" + "pf_decnet" + "pf_econet" + "pf_inet" + "pf_inet6" + "pf_ipx" + "pf_irda" + "pf_key" + "pf_netbeui" + "pf_netlink" + "pf_netrom" + "pf_packet" + "pf_pppox" + "pf_rose" + "pf_route" + "pf_security" + "pf_sna" + "pf_wanpipe" + "pf_x25" + ) ; + ] ; + . + +observable:NetworkSocketType + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "sock_dgram" + "sock_raw" + "sock_rdm" + "sock_seqpacket" + "sock_stream" + ) ; + ] ; + . + +observable:NetworkSubnet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "NetworkSubnet"@en ; + rdfs:comment "A network subnet is a logical subdivision of an IP network. [based on https://en.wikipedia.org/wiki/Subnetwork]"@en ; + sh:targetClass observable:NetworkSubnet ; + . + +observable:Note + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Note"@en ; + rdfs:comment "A note is a brief textual record."@en ; + sh:targetClass observable:Note ; + . + +observable:NoteFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "NoteFacet"@en ; + rdfs:comment "A note facet is a grouping of characteristics unique to a brief textual record."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:text ; + ] + ; + sh:targetClass observable:NoteFacet ; + . + +observable:Observable + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Observable"@en ; + rdfs:comment "An observable is a characterizable item or action within the digital domain."@en ; + sh:targetClass observable:Observable ; + . + +observable:ObservableAction + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + action:Action , + observable:Observable + ; + rdfs:label "ObservableAction"@en ; + rdfs:comment "An observable action is a grouping of characteristics unique to something that may be done or performed within the digital domain."@en ; + sh:targetClass observable:ObservableAction ; + . + +observable:ObservableObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + core:Item , + observable:Observable + ; + rdfs:label "ObservableObject"@en ; + rdfs:comment "An observable object is a grouping of characteristics unique to a distinct article or unit within the digital domain."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:hasChanged ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:state ; + ] + ; + sh:targetClass observable:ObservableObject ; + . + +observable:ObservablePattern + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Observable ; + rdfs:label "ObservablePattern"@en ; + rdfs:comment "An observable pattern is a grouping of characteristics unique to a logical pattern composed of observable object and observable action properties."@en ; + sh:targetClass observable:ObservablePattern ; + . + +observable:ObservableRelationship + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + core:Relationship , + observable:Observable + ; + rdfs:label "ObservableRelationship"@en ; + rdfs:comment "An observable relationship is a grouping of characteristics unique to an assertion of an association between two observable objects."@en ; + sh:targetClass observable:ObservableRelationship ; + . + +observable:Observation + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf action:Action ; + rdfs:label "Observation"@en ; + rdfs:comment "An observation is a temporal perception of an observable."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:hasValue "observe" ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] ; + sh:targetClass observable:Observation ; + . + +observable:OnlineService + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "OnlineService"@en ; + rdfs:comment "An online service is a particular provision mechanism of information access, distribution or manipulation over the Internet."@en ; + sh:targetClass observable:OnlineService ; + . + +observable:OnlineServiceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "OnlineServiceFacet"@en-US ; + rdfs:comment "An online service facet is a grouping of characteristics unique to a particular provision mechanism of information access, distribution or manipulation over the Internet."@en-US ; + sh:property + [ + sh:class location:Location ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:location ; + ] , + [ + sh:class observable:ObservableObject ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:inetLocation ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] + ; + sh:targetClass observable:OnlineServiceFacet ; + . + +observable:OperatingSystem + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:OperatingSystem ; + . + +observable:OperatingSystemFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "OperatingSystemFacet"@en ; + rdfs:comment "An operating system facet is a grouping of characteristics unique to 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:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:manufacturer ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:environmentVariables ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isLimitAdTrackingEnabled ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:installDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bitness ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:advertisingID ; + ] + ; + sh:targetClass observable:OperatingSystemFacet ; + . + +observable:PDFFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "PDFFile"@en ; + rdfs:comment "A PDF file is a Portable Document Format (PDF) file."@en ; + sh:targetClass observable:PDFFile ; + . + +observable:PDFFileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "PDFFileFacet"@en ; + rdfs:comment "A PDF file facet is a grouping of characteristics unique to a PDF (Portable Document Format) file."@en ; + sh:property + [ + sh:class types:ControlledDictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:documentInformationDictionary ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isOptimized ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pdfCreationDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pdfModDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pdfId1 ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:pdfId0 ; + ] + ; + sh:targetClass observable:PDFFileFacet ; + . + +observable:PIN + a owl:DatatypeProperty ; + rdfs:label "PIN"@en ; + rdfs:comment "Personal Identification Number (PIN)."@en ; + rdfs:range xsd:string ; + . + +observable:PUK + a owl:DatatypeProperty ; + rdfs:label "PUK"@en ; + rdfs:comment "Personal Unlocking Key (PUK) to unlock the SIM card."@en ; + rdfs:range xsd:string ; + . + +observable:PathRelationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "PathRelationFacet"@en ; + rdfs:comment "A path relation facet is a grouping of characteristics unique to the location of one object within another containing object."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:path ; + ] ; + sh:targetClass observable:PathRelationFacet ; + . + +observable:PaymentCard + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "PaymentCard"@en ; + rdfs:comment "A payment card is a physical token that is part of a payment system issued by financial institutions, such as a bank, to a customer that enables its owner (the cardholder) to access the funds in the customer's designated bank accounts, or through a credit account and make payments by electronic funds transfer and access automated teller machines (ATMs). [based on https://en.wikipedia.org/wiki/Payment_card]"@en ; + sh:targetClass observable:PaymentCard ; + . + +observable:PhoneAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "PhoneAccount"@en ; + rdfs:comment "A phone account is an arrangement with an entity to enable and control the provision of a telephony capability or service."@en ; + sh:targetClass observable:PhoneAccount ; + . + +observable:PhoneAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "PhoneAccountFacet"@en ; + rdfs:comment "A phone account facet is a grouping of characteristics unique to an arrangement with an entity to enable and control the provision of a telephony capability or service."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:phoneNumber ; + ] ; + sh:targetClass observable:PhoneAccountFacet ; + . + +observable:Pipe + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Pipe"@en ; + rdfs:comment "A pipe is a mechanism for one-way inter-process communication using message passing where data written by one process is buffered by the operating system until it is read by the next process, and this uni-directional channel disappears when the processes are completed. [based on https://en.wikipedia.org/wiki/Pipeline_(Unix) ; https://en.wikipedia.org/wiki/Anonymous_pipe]"@en ; + sh:targetClass observable:Pipe ; + . + +observable:Post + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "Post"@en ; + rdfs:comment "A post is message submitted to an online discussion/publishing site (forum, blog, etc.)."@en ; + sh:targetClass observable:Post ; + . + +observable:Process + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:Process ; + . + +observable:ProcessFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ProcessFacet"@en ; + rdfs:comment "A process facet is a grouping of characteristics unique to an instance of a computer program executed on an operating system."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:binary ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:creatorUser ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:parent ; + ] , + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:environmentVariables ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isHidden ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:exitTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:exitStatus ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:currentWorkingDirectory ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:status ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:arguments ; + ] + ; + sh:targetClass observable:ProcessFacet ; + . + +observable:ProcessThread + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:ProcessThread ; + . + +observable:Profile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Profile"@en ; + rdfs:comment "A profile is an explicit digital representation of identity and characteristics of the owner of a single user account associated with an online service or application. [based on https://en.wikipedia.org/wiki/User_profile]"@en ; + sh:targetClass observable:Profile ; + . + +observable:ProfileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "ProfileFacet"@en-US ; + rdfs:comment "A profile facet is a grouping of characteristics unique to an explicit digital representation of identity and characteristics of the owner of a single user account associated with an online service or application. [based on https://en.wikipedia.org/wiki/User_profile]"@en-US ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileIdentity ; + ] , + [ + sh:class observable:ContactAddress ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactAddress ; + ] , + [ + sh:class observable:ContactEmail ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactEmail ; + ] , + [ + sh:class observable:ContactMessaging ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactMessaging ; + ] , + [ + sh:class observable:ContactPhone ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhone ; + ] , + [ + sh:class observable:ContactURL ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactURL ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileAccount ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileService ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileWebsite ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:profileCreated ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:profileLanguage ; + ] + ; + sh:targetClass observable:ProfileFacet ; + . + +observable:PropertiesEnumeratedEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + core:Facet , + observable:DefinedEffectFacet + ; + rdfs:label "PropertiesEnumeratedEffectFacet"@en ; + rdfs:comment "A properties enumerated effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a characteristic of the observable object is enumerated. An example of this would be startup parameters for a process."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:properties ; + ] ; + sh:targetClass observable:PropertiesEnumeratedEffectFacet ; + . + +observable:PropertyReadEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DefinedEffectFacet ; + rdfs:label "PropertyReadEffectFacet"@en ; + rdfs:comment "A properties read effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a characteristic is read from an observable object. An example of this would be the current running state of a process."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:propertyName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:value ; + ] + ; + sh:targetClass observable:PropertyReadEffectFacet ; + . + +observable:ProtocolConverter + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "ProtocolConverter"@en-US ; + rdfs:comment "A protocol converter is a device that converts from one protocol to another (e.g. SD to USB, SATA to USB, etc."@en-US ; + sh:targetClass observable:ProtocolConverter ; + . + +observable:RasterPicture + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "RasterPicture"@en ; + rdfs:comment "A raster picture is a raster (or bitmap) image."@en ; + sh:targetClass observable:RasterPicture ; + . + +observable:RasterPictureFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "RasterPictureFacet"@en ; + rdfs:comment "A raster picture facet is a grouping of characteristics unique to a raster (or bitmap) image."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:camera ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:bitsPerPixel ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pictureHeight ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pictureWidth ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:imageCompressionMethod ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pictureType ; + ] + ; + sh:targetClass observable:RasterPictureFacet ; + . + +observable:RecoveredObject + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "RecoveredObject"@en ; + rdfs:comment "An observable object that was the result of a recovery operation."@en ; + sh:targetClass observable:RecoveredObject ; + . + +observable:RecoveredObjectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "RecoveredObjectFacet"@en ; + rdfs:comment "Recoverability status of name, metadata, and content."@en ; + sh:property + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:message "Value is outside the default vocabulary RecoveredObjectStatusVocab." ; + sh:path observable:contentRecoveredStatus ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:message "Value is outside the default vocabulary RecoveredObjectStatusVocab." ; + sh:path observable:metadataRecoveredStatus ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:message "Value is outside the default vocabulary RecoveredObjectStatusVocab." ; + sh:path observable:nameRecoveredStatus ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:nameRecoveredStatus ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:metadataRecoveredStatus ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contentRecoveredStatus ; + ] , + [ + sh:message "Value is not member of the vocabulary RecoveredObjectStatusVocab." ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:in ( + "recovered"^^vocabulary:RecoveredObjectStatusVocab + "partially recovered"^^vocabulary:RecoveredObjectStatusVocab + "overwritten"^^vocabulary:RecoveredObjectStatusVocab + "unknown"^^vocabulary:RecoveredObjectStatusVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:nameRecoveredStatus ; + ] , + [ + sh:message "Value is not member of the vocabulary RecoveredObjectStatusVocab." ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:in ( + "recovered"^^vocabulary:RecoveredObjectStatusVocab + "partially recovered"^^vocabulary:RecoveredObjectStatusVocab + "overwritten"^^vocabulary:RecoveredObjectStatusVocab + "unknown"^^vocabulary:RecoveredObjectStatusVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:metadataRecoveredStatus ; + ] , + [ + sh:message "Value is not member of the vocabulary RecoveredObjectStatusVocab." ; + sh:or ( + [ + sh:datatype vocabulary:RecoveredObjectStatusVocab ; + sh:in ( + "recovered"^^vocabulary:RecoveredObjectStatusVocab + "partially recovered"^^vocabulary:RecoveredObjectStatusVocab + "overwritten"^^vocabulary:RecoveredObjectStatusVocab + "unknown"^^vocabulary:RecoveredObjectStatusVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:contentRecoveredStatus ; + ] + ; + sh:targetClass observable:RecoveredObjectFacet ; + . + +observable:RegistryDatatype + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "reg_binary" + "reg_dword" + "reg_dword_big_endian" + "reg_expand_sz" + "reg_full_resource_descriptor" + "reg_invalid_type" + "reg_link" + "reg_multi_sz" + "reg_none" + "reg_qword" + "reg_resource_list" + "reg_resource_requirements_list" + "reg_sz" + ) ; + ] ; + . + +observable:ReparsePoint + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "ReparsePoint"@en ; + rdfs:comment "A reparse point is a type of NTFS (New Technology File System) object which is an optional attribute of files and directories meant to define some sort of preprocessing before accessing the said file or directory. For instance reparse points can be used to redirect access to files which have been moved to long term storage so that some application would retrieve them and make them directly accessible. A reparse point contains a reparse tag and data that are interpreted by a filesystem filter identified by the tag. [based on https://jp-andre.pagesperso-orange.fr/junctions.html ; https://en.wikipedia.org/wiki/NTFS_reparse_point]"@en ; + sh:targetClass observable:ReparsePoint ; + . + +observable:SIMCard + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "SIMCard" ; + rdfs:comment "A SIM card is a subscriber identification module card intended to securely store the international mobile subscriber identity (IMSI) number and its related key, which are used to identify and authenticate subscribers on mobile telephony. [based on https://en.wikipedia.org/wiki/SIM_card]"@en ; + sh:targetClass observable:SIMCard ; + . + +observable:SIMCardFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SIMCardFacet"@en ; + rdfs:comment "A SIM card facet is a grouping of characteristics unique to a subscriber identification module card intended to securely store the international mobile subscriber identity (IMSI) number and its related key, which are used to identify and authenticate subscribers on mobile telephony devices (such as mobile phones and computers). [based on https://en.wikipedia.org/wiki/SIM_card]"@en ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:carrier ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:storageCapacityInBytes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ICCID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:IMSI ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:PIN ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:PUK ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:SIMForm ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:SIMType ; + ] + ; + sh:targetClass observable:SIMCardFacet ; + . + +observable:SIMForm + a owl:DatatypeProperty ; + rdfs:label "SIMForm"@en ; + rdfs:comment "The form of SIM card such as SIM, Micro SIM, Nano SIM."@en ; + rdfs:range xsd:string ; + . + +observable:SIMType + a owl:DatatypeProperty ; + rdfs:label "SIMType"@en ; + rdfs:comment "The type of SIM card such as SIM, USIM, UICC."@en ; + rdfs:range xsd:string ; + . + +observable:SIPAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddress ; + rdfs:label "SIPAddress"@en ; + rdfs:comment "A SIP address is an identifier for Session Initiation Protocol (SIP) communication."@en ; + sh:targetClass observable:SIPAddress ; + . + +observable:SIPAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAddressFacet ; + rdfs:label "SIPAddressFacet"@en ; + rdfs:comment "A SIP address facet is a grouping of characteristics unique to a Session Initiation Protocol (SIP) standards conformant identifier assigned to a user to enable routing and management of SIP standards conformant communication to or from that user loosely coupled from any particular devices."@en ; + sh:targetClass observable:SIPAddressFacet ; + . + +observable:SMSMessage + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "SMSMessage"@en ; + rdfs:comment "An SMS message is a message conformant to the short message service (SMS) communication protocol standards."@en ; + sh:targetClass observable:SMSMessage ; + . + +observable:SMSMessageFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SMSMessageFacet"@en ; + rdfs:comment "A SMS message facet is a grouping of characteristics unique to a message conformant to the short message service (SMS) communication protocol standards."@en ; + sh:property [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isRead ; + ] ; + sh:targetClass observable:SMSMessageFacet ; + . + +observable:SQLiteBlob + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "SQLiteBlob"@en ; + rdfs:comment "An SQLite blob is a blob (binary large object) of data within an SQLite database. [based on https://en.wikipedia.org/wiki/SQLite]"@en ; + sh:targetClass observable:SQLiteBlob ; + . + +observable:SQLiteBlobFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SQLiteBlobFacet"@en ; + rdfs:comment "An SQLite blob facet is a grouping of characteristics unique to a blob (binary large object) of data within an SQLite database. [based on https://en.wikipedia.org/wiki/SQLite]"@en ; + sh:property + [ + sh:datatype xsd:positiveInteger ; + sh:nodeKind sh:Literal ; + sh:path observable:rowIndex ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:columnName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:rowCondition ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:tableName ; + ] + ; + sh:targetClass observable:SQLiteBlobFacet ; + . + +observable:SecurityAppliance + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Appliance ; + rdfs:label "SecurityAppliance"@en ; + rdfs:comment "A security appliance is a purpose-built computer with software or firmware that is designed to provide a specific security function to protect computer networks."@en ; + sh:targetClass observable:SecurityAppliance ; + . + +observable:Semaphore + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Semaphore"@en ; + rdfs:comment "A semaphore is a variable or abstract data type used to control access to a common resource by multiple processes and avoid critical section problems in a concurrent system such as a multitasking operating system. [based on https://en.wikipedia.org/wiki/Semaphore_(programming)]"@en ; + sh:targetClass observable:Semaphore ; + . + +observable:SendControlCodeEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DefinedEffectFacet ; + rdfs:label "SendControlCodeEffectFacet"@en ; + rdfs:comment "A send control code effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a control code, or other control-oriented communication signal, is sent to the observable object. An example of this would be an action sending a control code changing the running state of a process."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:controlCode ; + ] ; + sh:targetClass observable:SendControlCodeEffectFacet ; + . + +observable:Server + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Computer ; + rdfs:label "Server"@en-US ; + rdfs:comment "A server is a server rack-mount based computer, minicomputer, supercomputer, etc."@en-US ; + sh:targetClass observable:Server ; + . + +observable:ShopListing + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "ShopListing"@en ; + rdfs:comment "A shop listing is a listing of offered products on an online marketplace/shop."@en ; + sh:targetClass observable:ShopListing ; + . + +observable:SmartDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "SmartDevice"@en-US ; + rdfs:comment "A smart device is a microprocessor IoT device that is expected to be connected directly to cloud-based networks or via smartphone"@en-US ; + sh:targetClass observable:SmartDevice ; + . + +observable:SmartPhone + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + observable:Computer , + observable:MobilePhone , + observable:SmartDevice + ; + rdfs:label "SmartPhone"@en-US ; + rdfs:comment "A smartphone is a portable device that combines mobile telephone and computing functions into one unit. Examples include iPhone, Samsung Galaxy, Huawei, Blackberry. (Inferred by model and OperatingSystemFacet)"@en-US ; + sh:targetClass observable:SmartPhone ; + . + +observable:Snapshot + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "Snapshot"@en ; + rdfs:comment "A snapshot is a file system object representing a snapshot of the contents of a part of a file system at a point in time."@en ; + sh:targetClass observable:Snapshot ; + . + +observable:Socket + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "Socket"@en ; + rdfs:comment "A socket is a special file used for inter-process communication, which enables communication between two processes. In addition to sending data, processes can send file descriptors across a Unix domain socket connection using the sendmsg() and recvmsg() system calls. Unlike named pipes which allow only unidirectional data flow, sockets are fully duplex-capable. [based on https://en.wikipedia.org/wiki/Unix_file_types]"@en ; + sh:targetClass observable:Socket ; + . + +observable:SocketAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Address ; + rdfs:label "SocketAddress"@en ; + rdfs:comment "A socket address (combining and IP address and a port number) is a composite identifier for a network socket endpoint supporting internet protocol communications."@en ; + sh:targetClass observable:SocketAddress ; + . + +observable:Software + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Software"@en ; + rdfs:comment "Software is a definitely scoped instance of a collection of data or computer instructions that tell the computer how to work. [based on https://en.wikipedia.org/wiki/Software]"@en ; + sh:targetClass observable:Software ; + . + +observable:SoftwareFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SoftwareFacet"@en ; + rdfs:comment "A software facet is a grouping of characteristics unique to a software program (a definitively scoped instance of a collection of data or computer instructions that tell the computer how to work). [based on https://en.wikipedia.org/wiki/Software]"@en ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:manufacturer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:cpeid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:language ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:swid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:SoftwareFacet ; + . + +observable:StateChangeEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DefinedEffectFacet ; + rdfs:label "StateChangeEffectFacet"@en ; + rdfs:comment "A state change effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a state of the observable object is changed."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:newObject ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:oldObject ; + ] + ; + sh:targetClass observable:StateChangeEffectFacet ; + . + +observable:StorageMedium + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "StorageMedium"@en-US ; + rdfs:comment "A storage medium is any digital storage device that applies electromagnetic or optical surfaces, or depends solely on electronic circuits as solid state storage, for storing digital data. Examples include HDD (PATA), SATA, SSD, Optical, Memory_Card, Tape, etc"@en-US ; + sh:targetClass observable:StorageMedium ; + . + +observable:StorageMediumFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "StorageMediumFacet"@en ; + rdfs:comment "A storage medium facet is a grouping of characteristics unique to a the storage capabilities of a piece of equipment or a mechanism designed to serve a special purpose or perform a special function."@en ; + sh:property [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:totalStorageCapacityInBytes ; + ] ; + sh:targetClass observable:StorageMediumFacet ; + . + +observable:SymbolicLink + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:FileSystemObject ; + rdfs:label "SymbolicLink"@en ; + rdfs:comment "A symbolic link is a file that contains a reference to another file or directory in the form of an absolute or relative path and that affects pathname resolution. [based on https://en.wikipedia.org/wiki/Symbolic_link]"@en ; + sh:targetClass observable:SymbolicLink ; + . + +observable:SymbolicLinkFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "SymbolicLinkFacet"@en ; + rdfs:comment "A symbolic link facet is a grouping of characteristics unique to a file that contains a reference to another file or directory in the form of an absolute or relative path and that affects pathname resolution. [based on https://en.wikipedia.org/wiki/Symbolic_link]"@en ; + sh:property [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:targetFile ; + ] ; + sh:targetClass observable:SymbolicLinkFacet ; + . + +observable:TCPConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:NetworkConnection ; + rdfs:label "TCPConnection"@en ; + rdfs:comment "A TCP connection is a network connection that is conformant to the Transfer "@en ; + sh:targetClass observable:TCPConnection ; + . + +observable:TCPConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "TCPConnectionFacet"@en ; + rdfs:comment "A TCP connection facet is a grouping of characteristics unique to portions of a network connection that are conformant to the Transmission Control Protocl (TCP) standard."@en ; + sh:property + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:destinationFlags ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:sourceFlags ; + ] + ; + sh:targetClass observable:TCPConnectionFacet ; + . + +observable:TableField + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "TableField"@en ; + rdfs:comment "A database table field and its associated value contained within a relational database."@en ; + sh:targetClass observable:TableField ; + . + +observable:TableFieldFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "TableFieldFacet"@en ; + rdfs:comment "A database record facet contains properties associated with a specific table record value from a database."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:recordFieldIsNull ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:recordFieldName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:tableName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:tableSchema ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype xsd:base64Binary ; + ] + [ + sh:datatype xsd:decimal ; + ] + [ + sh:datatype xsd:integer ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:recordFieldValue ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype xsd:integer ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:recordRowID ; + ] + ; + sh:targetClass observable:TableFieldFacet ; + sh:xone ( + [ + a sh:NodeShape ; + sh:property [ + sh:hasValue "false"^^xsd:boolean ; + sh:path observable:recordFieldIsNull ; + ] ; + ] + [ + a sh:NodeShape ; + sh:property + [ + sh:hasValue "true"^^xsd:boolean ; + sh:path observable:recordFieldIsNull ; + ] , + [ + sh:maxCount "0"^^xsd:integer ; + sh:path observable:recordFieldValue ; + ] + ; + ] + [ + a sh:NodeShape ; + sh:property [ + sh:maxCount "0"^^xsd:integer ; + sh:path observable:recordFieldIsNull ; + ] ; + ] + ) ; + . + +observable:Tablet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + observable:Computer , + observable:MobileDevice , + observable:SmartDevice + ; + rdfs:label "Tablet"@en-US ; + rdfs:comment "A tablet is a mobile computer that is primarily operated by touching the screen. (Devices categorized by their manufacturer as a Tablet)"@en-US ; + sh:targetClass observable:Tablet ; + . + +observable:TaskActionType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "TaskActionType"@en ; + rdfs:comment "A task action type is a grouping of characteristics for a scheduled action to be completed."@en ; + sh:property + [ + sh:class observable:IComHandlerActionType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:iComHandlerAction ; + ] , + [ + sh:class observable:IExecActionType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:iExecAction ; + ] , + [ + sh:class observable:IShowMessageActionType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:iShowMessageAction ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:iEmailAction ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:actionID ; + ] , + [ + sh:datatype vocabulary:TaskActionTypeVocab ; + sh:message "Value is outside the default vocabulary TaskActionTypeVocab." ; + sh:path observable:actionType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TaskActionTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:actionType ; + ] , + [ + sh:message "Value is not member of the vocabulary TaskActionTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TaskActionTypeVocab ; + sh:in ( + "TASK_ACTION_COM_HANDLER"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_EXEC"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_SEND_EMAIL"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_SHOW_MESSAGE"^^vocabulary:TaskActionTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:actionType ; + ] + ; + sh:targetClass observable:TaskActionType ; + . + +observable:TriggerType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "TriggerType"@en ; + rdfs:comment "A trigger type is a grouping of characterizes unique to a set of criteria that, when met, starts the execution of a task within a Windows operating system. [based on https://docs.microsoft.com/en-us/windows/win32/taskschd/task-triggers]"@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isEnabled ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerBeginTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerEndTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerDelay ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerMaxRunTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:triggerSessionChangeType ; + ] , + [ + sh:datatype vocabulary:TriggerFrequencyVocab ; + sh:message "Value is outside the default vocabulary TriggerFrequencyVocab." ; + sh:path observable:triggerFrequency ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:TriggerTypeVocab ; + sh:message "Value is outside the default vocabulary TriggerTypeVocab." ; + sh:path observable:triggerType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TriggerFrequencyVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:triggerFrequency ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TriggerTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:triggerType ; + ] , + [ + sh:message "Value is not member of the vocabulary TriggerFrequencyVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TriggerFrequencyVocab ; + sh:in ( + "TASK_EVENT_TRIGGER_AT_LOGON"^^vocabulary:TriggerFrequencyVocab + "TASK_EVENT_TRIGGER_AT_SYSTEMSTART"^^vocabulary:TriggerFrequencyVocab + "TASK_EVENT_TRIGGER_ON_IDLE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_DAILY"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_MONTHLYDATE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_MONTHLYDOW"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_ONCE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_WEEKLY"^^vocabulary:TriggerFrequencyVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:triggerFrequency ; + ] , + [ + sh:message "Value is not member of the vocabulary TriggerTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TriggerTypeVocab ; + sh:in ( + "TASK_TRIGGER_BOOT"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_EVENT"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_IDLE"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_LOGON"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_REGISTRATION"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_SESSION_STATE_CHANGE"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_TIME"^^vocabulary:TriggerTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:triggerType ; + ] + ; + sh:targetClass observable:TriggerType ; + . + +observable:Tweet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Message ; + rdfs:label "Tweet"@en ; + rdfs:comment "A tweet is message submitted by a Twitter user account to the Twitter microblogging platform."@en ; + sh:targetClass observable:Tweet ; + . + +observable:TwitterProfileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "TwitterProfileFacet" ; + rdfs:comment "A twitter profile facet is a grouping of characteristics unique to an explicit digital representation of identity and characteristics of the owner of a single Twitter user account. [based on https://en.wikipedia.org/wiki/User_profile]" ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileBackgroundLocation ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileBannerLocation ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileImageLocation ; + ] , + [ + sh:class types:Hash ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileBackgroundHash ; + ] , + [ + sh:class types:Hash ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileBannerHash ; + ] , + [ + sh:class types:Hash ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:profileImageHash ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:profileIsProtected ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:profileIsVerified ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:listedCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:favoritesCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:followersCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:friendsCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:statusesCount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:twitterHandle ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:twitterId ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:userLocationString ; + ] + ; + sh:targetClass observable:TwitterProfileFacet ; + . + +observable:UNIXAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "UNIXAccount"@en ; + rdfs:comment "A UNIX account is an account on a UNIX operating system."@en ; + sh:targetClass observable:UNIXAccount ; + . + +observable:UNIXAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UNIXAccountFacet"@en ; + rdfs:comment "A UNIX account facet is a grouping of characteristics unique to an account on a UNIX operating system."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:gid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:shell ; + ] + ; + sh:targetClass observable:UNIXAccountFacet ; + . + +observable:UNIXFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "UNIXFile"@en ; + rdfs:comment "A UNIX file is a file pertaining to the UNIX operating system."@en ; + sh:targetClass observable:UNIXFile ; + . + +observable:UNIXFilePermissionsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UNIXFilePermissionsFacet"@en ; + rdfs:comment "A UNIX file permissions facet is a grouping of characteristics unique to the access rights (e.g., view, change, navigate, execute) of a file on a UNIX file system."@en ; + sh:targetClass observable:UNIXFilePermissionsFacet ; + . + +observable:UNIXProcess + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Process ; + rdfs:label "UNIXProcess"@en ; + rdfs:comment "A UNIX process is an instance of a computer program executed on a UNIX operating system."@en ; + sh:targetClass observable:UNIXProcess ; + . + +observable:UNIXProcessFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UNIXProcessFacet"@en ; + rdfs:comment "A UNIX process facet is a grouping of characteristics unique to an instance of a computer program executed on a UNIX operating system."@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:openFileDescriptor ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:nodeKind sh:Literal ; + sh:path observable:ruid ; + ] + ; + sh:targetClass observable:UNIXProcessFacet ; + . + +observable:UNIXVolumeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UNIXVolumeFacet"@en ; + rdfs:comment "A UNIX volume facet is a grouping of characteristics unique to a single accessible storage area (volume) with a single UNIX file system. [based on https://en.wikipedia.org/wiki/Volume_(computing)]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mountPoint ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:options ; + ] + ; + sh:targetClass observable:UNIXVolumeFacet ; + . + +observable:URL + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "URL"@en ; + rdfs:comment "A URL is a uniform resource locator (URL) acting as a resolvable address to a particular WWW (World Wide Web) accessible resource."@en ; + sh:targetClass observable:URL ; + . + +observable:URLFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "URLFacet"@en ; + rdfs:comment "A URL facet is a grouping of characteristics unique to a uniform resource locator (URL) acting as a resolvable address to a particular WWW (World Wide Web) accessible resource."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:host ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:port ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:fragment ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:fullValue ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:password ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:path ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:query ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:scheme ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:userName ; + ] + ; + sh:targetClass observable:URLFacet ; + . + +observable:URLHistory + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "URLHistory"@en ; + rdfs:comment "A URL history characterizes the stored URL history for a particular web browser"@en ; + sh:targetClass observable:URLHistory ; + . + +observable:URLHistoryEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "URL History Entry"@en-US ; + rdfs:comment "A URL history entry is a grouping of characteristics unique to the properties of a single URL history entry for a particular browser."@en-US ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:url ; + ] , + [ + sh:class observable:ObservableObject ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:referrerUrl ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:expirationTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:firstVisit ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastVisit ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visitCount ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:manuallyEnteredCount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:browserUserProfile ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:hostname ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:pageTitle ; + ] , + [ + sh:datatype xsd:string ; + sh:minCount "0"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:keywordSearchTerm ; + ] + ; + sh:targetClass observable:URLHistoryEntry ; + . + +observable:URLHistoryFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "URLHistoryFacet"@en-US ; + rdfs:comment "A URL history facet is a grouping of characteristics unique to the stored URL history for a particular web browser"@en-US ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:browserInformation ; + ] , + [ + sh:class observable:URLHistoryEntry ; + sh:nodeKind sh:IRI ; + sh:path observable:urlHistoryEntry ; + ] + ; + sh:targetClass observable:URLHistoryFacet ; + . + +observable:URLVisit + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "URLVisit"@en ; + rdfs:comment "A URL visit characterizes the properties of a visit of a URL within a particular browser."@en ; + sh:targetClass observable:URLVisit ; + . + +observable:URLVisitFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "URLVisitFacet"@en ; + rdfs:comment "A URL visit facet is a grouping of characteristics unique to the properties of a visit of a URL within a particular browser."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:browserInformation ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:fromURLVisit ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:url ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visitTime ; + ] , + [ + sh:datatype xsd:duration ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:visitDuration ; + ] , + [ + sh:datatype vocabulary:URLTransitionTypeVocab ; + sh:message "Value is outside the default vocabulary URLTransitionTypeVocab." ; + sh:path observable:urlTransitionType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:URLTransitionTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:urlTransitionType ; + ] , + [ + sh:message "Value is not member of the vocabulary URLTransitionTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:URLTransitionTypeVocab ; + sh:in ( + "link"^^vocabulary:URLTransitionTypeVocab + "typed"^^vocabulary:URLTransitionTypeVocab + "auto_bookmark"^^vocabulary:URLTransitionTypeVocab + "auto_subframe"^^vocabulary:URLTransitionTypeVocab + "manual_subframe"^^vocabulary:URLTransitionTypeVocab + "generated"^^vocabulary:URLTransitionTypeVocab + "auto_toplevel"^^vocabulary:URLTransitionTypeVocab + "form_submit"^^vocabulary:URLTransitionTypeVocab + "reload"^^vocabulary:URLTransitionTypeVocab + "keyword"^^vocabulary:URLTransitionTypeVocab + "keyword_generated"^^vocabulary:URLTransitionTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:urlTransitionType ; + ] + ; + sh:targetClass observable:URLVisitFacet ; + . + +observable:UserAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "UserAccount"@en ; + rdfs:comment "A user account is an account controlling a user's access to a network, system or platform."@en ; + sh:targetClass observable:UserAccount ; + . + +observable:UserAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UserAccountFacet"@en ; + rdfs:comment "A user account facet is a grouping of characteristics unique to an account controlling a user's access to a network, system, or platform."@en ; + sh:property + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:canEscalatePrivs ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isPrivileged ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isServiceAccount ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:homeDirectory ; + ] + ; + sh:targetClass observable:UserAccountFacet ; + . + +observable:UserSession + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "UserSession"@en ; + rdfs:comment "A user session is a temporary and interactive information interchange between two or more communicating devices within the managed scope of a single user. [based on https://en.wikipedia.org/wiki/Session_(computer_science)]"@en ; + sh:targetClass observable:UserSession ; + . + +observable:UserSessionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "UserSessionFacet"@en ; + rdfs:comment "A user session facet is a grouping of characteristics unique to a temporary and interactive information interchange between two or more communicating devices within the managed scope of a single user. [based on https://en.wikipedia.org/wiki/Session_(computer_science)]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:effectiveUser ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:loginTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:logoutTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:effectiveGroup ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:effectiveGroupID ; + ] + ; + sh:targetClass observable:UserSessionFacet ; + . + +observable:ValuesEnumeratedEffectFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DefinedEffectFacet ; + rdfs:label "ValuesEnumeratedEffectFacet"@en ; + rdfs:comment "A values enumerated effect facet is a grouping of characteristics unique to the effects of actions upon observable objects where a value of the observable object is enumerated. An example of this would be the values of a registry key."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:values ; + ] ; + sh:targetClass observable:ValuesEnumeratedEffectFacet ; + . + +observable:Volume + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Volume"@en ; + rdfs:comment "A volume is a single accessible storage area (volume) with a single file system. [based on https://en.wikipedia.org/wiki/Volume_(computing)]"@en ; + sh:targetClass observable:Volume ; + . + +observable:VolumeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "VolumeFacet"@en ; + rdfs:comment "A volume facet is a grouping of characteristics unique to a single accessible storage area (volume) with a single file system. [based on https://en.wikipedia.org/wiki/Volume_(computing)]"@en ; + sh:property + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sectorSize ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:volumeID ; + ] + ; + sh:targetClass observable:VolumeFacet ; + . + +observable:WearableDevice + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:SmartDevice ; + rdfs:label "WearableDevice"@en-US ; + rdfs:comment "A wearable device is an electronic device that is designed to be worn on a person's body."@en-US ; + sh:targetClass observable:WearableDevice ; + . + +observable:WebPage + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WebPage"@en ; + rdfs:comment "A web page is a specific collection of information provided by a website and displayed to a user in a web browser. A website typically consists of many web pages linked together in a coherent fashion. [based on https://en.wikipedia.org/wiki/Web_page]"@en ; + sh:targetClass observable:WebPage ; + . + +observable:WhoIs + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WhoIs"@en ; + rdfs:comment "WhoIs is a response record conformant to the WHOIS protocol standard (RFC 3912). [based on https://en.wikipedia.org/wiki/WHOIS]"@en ; + sh:targetClass observable:WhoIs ; + . + +observable:WhoIsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WhoIsFacet"@en ; + rdfs:comment "A whois facet is a grouping of characteristics unique to a response record conformant to the WHOIS protocol standard (RFC 3912). [based on https://en.wikipedia.org/wiki/WHOIS]"@en ; + sh:property + observable:regionalInternetRegistry-shape-value-not-vocabulary-member , + observable:regionalInternetRegistry-shape-value-outside-default-vocabulary , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:domainName ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:ipAddress ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:registrantContactInfo ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:serverName ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:nameServer ; + ] , + [ + sh:class observable:WhoisRegistrarInfoType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:registrarInfo ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:creationDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:expirationDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lookupDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:updatedDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:domainID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:remarks ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sponsoringRegistrar ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:registrantIDs ; + ] , + [ + sh:datatype vocabulary:WhoisDNSSECTypeVocab ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dnssec ; + ] , + [ + sh:datatype vocabulary:WhoisStatusTypeVocab ; + sh:message "Value is outside the default vocabulary WhoisStatusTypeVocab." ; + sh:path observable:status ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:RegionalRegistryTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:regionalInternetRegistry ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:WhoisStatusTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:status ; + ] , + [ + sh:message "Value is not member of the vocabulary WhoisStatusTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:WhoisStatusTypeVocab ; + sh:in ( + "ADD_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "AUTO_RENEW_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_DELETE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_HOLD"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_RENEW_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_TRANSFER_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_UPDATE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "DELETE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "HOLD"^^vocabulary:WhoisStatusTypeVocab + "INACTIVE"^^vocabulary:WhoisStatusTypeVocab + "OK"^^vocabulary:WhoisStatusTypeVocab + "PENDING_DELETE_RESTORABLE"^^vocabulary:WhoisStatusTypeVocab + "PENDING_DELETE_SCHEDULED_FOR_RELEASE"^^vocabulary:WhoisStatusTypeVocab + "PENDING_RESTORE"^^vocabulary:WhoisStatusTypeVocab + "RENEW_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "RENEW_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "TRANSFER_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "TRANSFER_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "UPDATE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:status ; + ] + ; + sh:targetClass observable:WhoIsFacet ; + . + +observable:WhoisContactFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ContactFacet ; + rdfs:label "WhoIsContactFacet"@en ; + rdfs:comment "A Whois contact type is a grouping of characteristics unique to contact-related information present in a response record conformant to the WHOIS protocol standard (RFC 3912). [based on https://en.wikipedia.org/wiki/WHOIS]"@en ; + sh:property + [ + sh:datatype vocabulary:WhoisContactTypeVocab ; + sh:message "Value is outside the default vocabulary WhoisContactTypeVocab." ; + sh:path observable:whoisContactType ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:WhoisContactTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:whoisContactType ; + ] , + [ + sh:message "Value is not member of the vocabulary WhoisContactTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:WhoisContactTypeVocab ; + sh:in ( + "ADMIN"^^vocabulary:WhoisContactTypeVocab + "BILLING"^^vocabulary:WhoisContactTypeVocab + "TECHNICAL"^^vocabulary:WhoisContactTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:whoisContactType ; + ] + ; + sh:targetClass observable:WhoisContactFacet ; + . + +observable:WhoisRegistrarInfoType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WhoisRegistrarInfoType"@en ; + rdfs:comment "A Whois registrar info type is a grouping of characteristics unique to registrar-related information present in a response record conformant to the WHOIS protocol standard (RFC 3912). [based on https://en.wikipedia.org/wiki/WHOIS]"@en ; + sh:property + [ + sh:class location:Location ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:geolocationAddress ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:contactPhoneNumber ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:emailAddress ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:referralURL ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:whoisServer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:registrarGUID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:registrarID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:registrarName ; + ] + ; + sh:targetClass observable:WhoisRegistrarInfoType ; + . + +observable:WifiAddress + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MACAddress ; + rdfs:label "WifiAddress"@en ; + rdfs:comment "A Wi-Fi address is a media access control (MAC) standards-conformant identifier assigned to a device network interface to enable routing and management of IEEE 802.11 standards-conformant communications to and from that device."@en ; + sh:targetClass observable:WifiAddress ; + . + +observable:WifiAddressFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:MACAddressFacet ; + rdfs:label "WifiAddressFacet"@en ; + rdfs:comment "A Wi-Fi address facet is a grouping of characteristics unique to a media access control (MAC) standards conformant identifier assigned to a device network interface to enable routing and management of IEEE 802.11 standards-conformant communications to and from that device."@en ; + sh:targetClass observable:WifiAddressFacet ; + . + +observable:Wiki + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "Wiki"@en ; + rdfs:comment "A wiki is an online hypertext publication collaboratively edited and managed by its own audience directly using a web browser. A typical wiki contains multiple pages/articles for the subjects or scope of the project and could be either open to the public or limited to use within an organization for maintaining its internal knowledge base. [based on https://en.wikipedia.org/wiki/Wiki]"@en ; + sh:targetClass observable:Wiki ; + . + +observable:WikiArticle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WikiArticle"@en ; + rdfs:comment "A wiki article is one or more pages in a wiki focused on characterizing a particular topic."@en ; + sh:targetClass observable:WikiArticle ; + . + +observable:WindowsAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "WindowsAccount"@en ; + rdfs:comment "A Windows account is a user account on a Windows operating system."@en ; + sh:targetClass observable:WindowsAccount ; + . + +observable:WindowsAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsAccountFacet"@en ; + rdfs:comment "A Windows account facet is a grouping of characteristics unique to a user account on a Windows operating system."@en ; + sh:property [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:groups ; + ] ; + sh:targetClass observable:WindowsAccountFacet ; + . + +observable:WindowsActiveDirectoryAccount + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:DigitalAccount ; + rdfs:label "WindowsActiveDirectoryAccount"@en ; + rdfs:comment "A Windows Active Directory account is an account managed by directory-based identity-related services of a Windows operating system."@en ; + sh:targetClass observable:WindowsActiveDirectoryAccount ; + . + +observable:WindowsActiveDirectoryAccountFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsActiveDirectoryAccountFacet"@en ; + rdfs:comment "A Windows Active Directory account facet is a grouping of characteristics unique to an account managed by directory-based identity-related services of a Windows operating system."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:objectGUID ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:activeDirectoryGroups ; + ] + ; + sh:targetClass observable:WindowsActiveDirectoryAccountFacet ; + . + +observable:WindowsComputerSpecification + a + owl:Class , + sh:NodeShape + ; + 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 ; + sh:targetClass observable:WindowsComputerSpecification ; + . + +observable:WindowsComputerSpecificationFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsComputerSpecificationFacet"@en ; + rdfs:comment "A Windows computer specification facet is a grouping of characteristics unique to 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:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:registeredOrganization ; + ] , + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:registeredOwner ; + ] , + [ + sh:class observable:GlobalFlagType ; + sh:nodeKind sh:IRI ; + sh:path observable:globalFlagList ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:windowsDirectory ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:windowsSystemDirectory ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:windowsTempDirectory ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastShutdownDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:osInstallDate ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:osLastUpgradeDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:msProductID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:msProductName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:netBIOSName ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:domain ; + ] + ; + sh:targetClass observable:WindowsComputerSpecificationFacet ; + . + +observable:WindowsCriticalSection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsCriticalSection"@en ; + rdfs:comment "A Windows critical section is a Windows object that provides synchronization similar to that provided by a mutex object, except that a critical section can be used only by the threads of a single process. Critical section objects cannot be shared across processes. Event, mutex, and semaphore objects can also be used in a single-process application, but critical section objects provide a slightly faster, more efficient mechanism for mutual-exclusion synchronization (a processor-specific test and set instruction). Like a mutex object, a critical section object can be owned by only one thread at a time, which makes it useful for protecting a shared resource from simultaneous access. Unlike a mutex object, there is no way to tell whether a critical section has been abandoned. [based on https://docs.microsoft.com/en-us/windows/win32/sync/critical-section-objects]"@en ; + sh:targetClass observable:WindowsCriticalSection ; + . + +observable:WindowsEvent + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsEvent"@en ; + rdfs:comment "A Windows event is a notification record of an occurance of interest (system, security, application, etc.) on a Windows operating system."@en ; + sh:targetClass observable:WindowsEvent ; + . + +observable:WindowsFilemapping + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsFilemapping"@en ; + rdfs:comment "A Windows file mapping is the association of a file's contents with a portion of the virtual address space of a process within a Windows operating system. The system creates a file mapping object (also known as a section object) to maintain this association. A file view is the portion of virtual address space that a process uses to access the file's contents. File mapping allows the process to use both random input and output (I/O) and sequential I/O. It also allows the process to work efficiently with a large data file, such as a database, without having to map the whole file into memory. Multiple processes can also use memory-mapped files to share data. Processes read from and write to the file view using pointers, just as they would with dynamically allocated memory. The use of file mapping improves efficiency because the file resides on disk, but the file view resides in memory.[based on https://docs.microsoft.com/en-us/windows/win32/memory/file-mapping]"@en ; + sh:targetClass observable:WindowsFilemapping ; + . + +observable:WindowsHandle + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsHandle"@en ; + rdfs:comment "A Windows handle is an abstract reference to a resource within the Windows operating system, such as a window, memory, an open file or a pipe. It is the mechanism by which applications interact with such resources in the Windows operating system."@en ; + sh:targetClass observable:WindowsHandle ; + . + +observable:WindowsHook + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsHook"@en ; + rdfs:comment "A Windows hook is a mechanism by which an application can intercept events, such as messages, mouse actions, and keystrokes within the Windows operating system. A function that intercepts a particular type of event is known as a hook procedure. A hook procedure can act on each event it receives, and then modify or discard the event. [based on https://docs.microsoft.com/en-us/windows/win32/winmsg/about-hooks]"@en ; + sh:targetClass observable:WindowsHook ; + . + +observable:WindowsMailslot + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsMailslot"@en ; + rdfs:comment "A Windows mailslot is is a pseudofile that resides in memory, and may be accessed using standard file functions. The data in a mailslot message can be in any form, but cannot be larger than 424 bytes when sent between computers. Unlike disk files, mailslots are temporary. When all handles to a mailslot are closed, the mailslot and all the data it contains are deleted. [based on https://docs.microsoft.com/en-us/windows/win32/ipc/about-mailslots]"@en ; + sh:targetClass observable:WindowsMailslot ; + . + +observable:WindowsNetworkShare + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsNetworkShare"@en ; + rdfs:comment "A Windows network share is a Windows computer resource made available from one host to other hosts on a computer network. It is a device or piece of information on a computer that can be remotely accessed from another computer transparently as if it were a resource in the local machine. Network sharing is made possible by inter-process communication over the network. [based on https://en.wikipedia.org/wiki/Shared_resource]"@en ; + sh:targetClass observable:WindowsNetworkShare ; + . + +observable:WindowsPEBinaryFile + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:File ; + rdfs:label "WindowsPEBinaryFile"@en ; + rdfs:comment "A Windows PE binary file is a Windows portable executable (PE) file."@en ; + sh:targetClass observable:WindowsPEBinaryFile ; + . + +observable:WindowsPEBinaryFileFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsPEBinaryFileFacet"@en ; + rdfs:comment "A Windows PE binary file facet is a grouping of characteristics unique to a Windows portable executable (PE) file."@en ; + sh:property + [ + sh:class observable:WindowsPEOptionalHeader ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:optionalHeader ; + ] , + [ + sh:class observable:WindowsPESection ; + sh:nodeKind sh:IRI ; + sh:path observable:sections ; + ] , + [ + sh:class types:Hash ; + sh:nodeKind sh:IRI ; + sh:path observable:fileHeaderHashes ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timeDateStamp ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:pointerToSymbolTable ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfSections ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfSymbols ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfOptionalHeader ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:impHash ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:peType ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:machine ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:characteristics ; + ] + ; + sh:targetClass observable:WindowsPEBinaryFileFacet ; + . + +observable:WindowsPEBinaryType + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "dll" + "exe" + "sys" + ) ; + ] ; + . + +observable:WindowsPEFileHeader + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WindowsPEFileHeader"@en ; + rdfs:comment "A Windows PE file header is a grouping of characteristics unique to the 'header' of a Windows PE (Portable Executable) file, consisting of a collection of metadata about the overall nature and structure of the file."@en ; + sh:property [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timeDateStamp ; + ] ; + sh:targetClass observable:WindowsPEFileHeader ; + . + +observable:WindowsPEOptionalHeader + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WindowsPEOptionalHeader"@en ; + rdfs:comment "A Windows PE optional header is a grouping of characteristics unique to the 'optional header' of a Windows PE (Portable Executable) file, consisting of a collection of metadata about the executable code structure of the file."@en ; + sh:property + [ + sh:datatype xsd:byte ; + sh:nodeKind sh:Literal ; + sh:path observable:majorLinkerVersion ; + ] , + [ + sh:datatype xsd:byte ; + sh:nodeKind sh:Literal ; + sh:path observable:minorLinkerVersion ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:addressOfEntryPoint ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:baseOfCode ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:checksum ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:fileAlignment ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:imageBase ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:loaderFlags ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfRVAAndSizes ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sectionAlignment ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfCode ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfHeaders ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfHeapCommit ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfHeapReserve ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfImage ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfInitializedData ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfStackCommit ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfStackReserve ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeOfUninitializedData ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:win32VersionValue ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:dllCharacteristics ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:magic ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:majorImageVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:majorOSVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:majorSubsystemVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:minorImageVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:minorOSVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:minorSubsystemVersion ; + ] , + [ + sh:datatype xsd:unsignedShort ; + sh:nodeKind sh:Literal ; + sh:path observable:subsystem ; + ] + ; + sh:targetClass observable:WindowsPEOptionalHeader ; + . + +observable:WindowsPESection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WindowsPESection"@en ; + rdfs:comment "A Windows PE section is a grouping of characteristics unique to a specific default or custom-defined region of a Windows PE (Portable Executable) file, consisting of an individual portion of the actual executable content of the file delineated according to unique purpose and memory protection requirements."@en ; + sh:property + [ + sh:class types:Hash ; + sh:nodeKind sh:IRI ; + sh:path observable:hashes ; + ] , + [ + sh:datatype xsd:decimal ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:entropy ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:size ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] + ; + sh:targetClass observable:WindowsPESection ; + . + +observable:WindowsPrefetch + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsPrefetch"@en ; + rdfs:comment "The Windows prefetch contains entries in a Windows prefetch file (used to speed up application startup starting with Windows XP)."@en ; + sh:targetClass observable:WindowsPrefetch ; + . + +observable:WindowsPrefetchFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsPrefetchFacet"@en ; + rdfs:comment "A Windows prefetch facet is a grouping of characteristics unique to entries in the Windows prefetch file (used to speed up application startup starting with Windows XP)."@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:volume ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:accessedDirectory ; + ] , + [ + sh:class observable:ObservableObject ; + sh:nodeKind sh:IRI ; + sh:path observable:accessedFile ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:firstRun ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:lastRun ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:timesExecuted ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:applicationFileName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:prefetchHash ; + ] + ; + sh:targetClass observable:WindowsPrefetchFacet ; + . + +observable:WindowsProcess + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Process ; + rdfs:label "WindowsProcess"@en ; + rdfs:comment "A Windows process is a program running on a Windows operating system."@en ; + sh:targetClass observable:WindowsProcess ; + . + +observable:WindowsProcessFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsProcessFacet"@en ; + rdfs:comment "A Windows process facet is a grouping of characteristics unique to a program running on a Windows operating system."@en ; + sh:property + [ + sh:class types:Dictionary ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:startupInfo ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:aslrEnabled ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:depEnabled ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ownerSID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:priority ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:windowTitle ; + ] + ; + sh:targetClass observable:WindowsProcessFacet ; + . + +observable:WindowsRegistryHive + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsRegistryHive"@en ; + rdfs:comment "The Windows registry hive is a particular logical group of keys, subkeys, and values in a Windows registry (a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry). [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:targetClass observable:WindowsRegistryHive ; + . + +observable:WindowsRegistryHiveFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsRegistryHiveFacet"@en ; + rdfs:comment "A Windows registry hive facet is a grouping of characteristics unique to a particular logical group of keys, subkeys, and values in a Windows registry (a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry). [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:property [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:hiveType ; + ] ; + sh:targetClass observable:WindowsRegistryHiveFacet ; + . + +observable:WindowsRegistryKey + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsRegistryKey"@en ; + rdfs:comment "A Windows registry key is a particular key within a Windows registry (a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry). [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:targetClass observable:WindowsRegistryKey ; + . + +observable:WindowsRegistryKeyFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsRegistryKeyFacet"@en ; + rdfs:comment "A Windows registry key facet is a grouping of characteristics unique to a particular key within a Windows registry (A hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry). [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:creator ; + ] , + [ + sh:class observable:WindowsRegistryValue ; + sh:nodeKind sh:IRI ; + sh:path observable:registryValues ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:modifiedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:numberOfSubkeys ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:key ; + ] + ; + sh:targetClass observable:WindowsRegistryKeyFacet ; + . + +observable:WindowsRegistryValue + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "WindowsRegistryValue"@en ; + rdfs:comment "A Windows registry value is a grouping of characteristics unique to a particular value within a Windows registry (a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. [based on https://en.wikipedia.org/wiki/Windows_Registry]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path core:name ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:data ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:dataType ; + ] + ; + sh:targetClass observable:WindowsRegistryValue ; + . + +observable:WindowsService + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:WindowsService ; + . + +observable:WindowsServiceFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsServiceFacet"@en ; + rdfs:comment "A Windows service facet is a grouping of characteristics unique to 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:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:displayName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:groupName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serviceName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serviceStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serviceType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startCommandLine ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:startType ; + ] , + [ + sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:path observable:descriptions ; + ] + ; + sh:targetClass observable:WindowsServiceFacet ; + . + +observable:WindowsServiceStartType + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "service_auto_start" + "service_boot_start" + "service_demand_start" + "service_disabled" + "service_system_alert" + ) ; + ] ; + . + +observable:WindowsServiceStatus + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "service_continue_pending" + "service_pause_pending" + "service_paused" + "service_running" + "service_start_pending" + "service_stop_pending" + "service_stopped" + ) ; + ] ; + . + +observable:WindowsServiceType + a rdfs:Datatype ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:oneOf ( + "service_file_system_driver" + "service_kernel_driver" + "service_win32_own_process" + "service_win32_share_process" + ) ; + ] ; + . + +observable:WindowsSystemRestore + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsSystemRestore"@en ; + rdfs:comment "A Windows system restore is a capture of a Windows computer's state (including system files, installed applications, Windows Registry, and system settings) at a particular point in time such that the computer can be reverted to that state in the event of system malfunctions or other problems. [based on https://en.wikipedia.org/wiki/System_Restore]"@en ; + sh:targetClass observable:WindowsSystemRestore ; + . + +observable:WindowsTask + a + owl:Class , + sh:NodeShape + ; + 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:targetClass observable:WindowsTask ; + . + +observable:WindowsTaskFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsTaskFacet"@en ; + rdfs:comment "A Windows Task facet is a grouping of characteristics unique to a Windows Task (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:property + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:account ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:application ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:workItemData ; + ] , + [ + sh:class observable:ObservableObject ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:workingDirectory ; + ] , + [ + sh:class observable:TaskActionType ; + sh:nodeKind sh:IRI ; + sh:path observable:actionList ; + ] , + [ + sh:class observable:TriggerType ; + sh:nodeKind sh:IRI ; + sh:path observable:triggerList ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:mostRecentRunTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:nextRunTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:exitCode ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:maxRunTime ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accountLogonType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:accountRunLevel ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:imageName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:parameters ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:taskComment ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:taskCreator ; + ] , + [ + sh:datatype vocabulary:TaskFlagVocab ; + sh:message "Value is outside the default vocabulary TaskFlagVocab." ; + sh:path observable:flags ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:TaskPriorityVocab ; + sh:message "Value is outside the default vocabulary TaskPriorityVocab." ; + sh:path observable:priority ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:TaskStatusVocab ; + sh:message "Value is outside the default vocabulary TaskStatusVocab." ; + sh:path observable:status ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TaskPriorityVocab ; + ] + [ + sh:datatype xsd:integer ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:priority ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TaskStatusVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:status ; + ] , + [ + sh:message "Value is not member of the vocabulary TaskFlagVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TaskFlagVocab ; + sh:in ( + "TASK_FLAG_DELETE_WHEN_DONE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_DISABLED"^^vocabulary:TaskFlagVocab + "TASK_FLAG_DONT_START_IF_ON_BATTERIES"^^vocabulary:TaskFlagVocab + "TASK_FLAG_HIDDEN"^^vocabulary:TaskFlagVocab + "TASK_FLAG_INTERACTIVE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_KILL_IF_GOING_ON_BATTERIES"^^vocabulary:TaskFlagVocab + "TASK_FLAG_KILL_ON_IDLE_END"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RESTART_ON_IDLE_RESUME"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNET"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RUN_ONLY_IF_LOGGED_ON"^^vocabulary:TaskFlagVocab + "TASK_FLAG_START_ONLY_IF_IDLE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_SYSTEM_REQUIRED"^^vocabulary:TaskFlagVocab + "TASK_FLAG_ZERO"^^vocabulary:TaskFlagVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:flags ; + ] , + [ + sh:message "Value is not member of the vocabulary TaskPriorityVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TaskPriorityVocab ; + sh:in ( + "ABOVE_NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "BELOW_NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "HIGH_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "IDLE_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "REALTIME_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + ) ; + ] + [ + sh:datatype xsd:integer ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:priority ; + ] , + [ + sh:message "Value is not member of the vocabulary TaskStatusVocab." ; + sh:or ( + [ + sh:datatype vocabulary:TaskStatusVocab ; + sh:in ( + "SCHED_E_ACCOUNT_DBASE_CORRUPT"^^vocabulary:TaskStatusVocab + "SCHED_E_ACCOUNT_INFORMATION_NOT_SET"^^vocabulary:TaskStatusVocab + "SCHED_E_ACCOUNT_NAME_NOT_FOUND"^^vocabulary:TaskStatusVocab + "SCHED_E_CANNOT_OPEN_TASK"^^vocabulary:TaskStatusVocab + "SCHED_E_INVALID_TASK"^^vocabulary:TaskStatusVocab + "SCHED_E_NO_SECURITY_SERVICES"^^vocabulary:TaskStatusVocab + "SCHED_E_SERVICE_NOT_INSTALLED"^^vocabulary:TaskStatusVocab + "SCHED_E_SERVICE_NOT_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_E_TASK_NOT_READY"^^vocabulary:TaskStatusVocab + "SCHED_E_TASK_NOT_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_E_TRIGGER_NOT_FOUND"^^vocabulary:TaskStatusVocab + "SCHED_E_UNKNOWN_OBJECT_VERSION"^^vocabulary:TaskStatusVocab + "SCHED_E_UNSUPPORTED_ACCOUNT_OPTION"^^vocabulary:TaskStatusVocab + "SCHED_S_EVENT_TRIGGER"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_DISABLED"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_HAS_NOT_RUN"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NOT_SCHEDULED"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NO_MORE_RUNS"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NO_VALID_TRIGGERS"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_READY"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_TERMINATED"^^vocabulary:TaskStatusVocab + "TASK_STATE_QUEUED"^^vocabulary:TaskStatusVocab + "TASK_STATE_UNKNOWN"^^vocabulary:TaskStatusVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:status ; + ] , + [ + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:TaskFlagVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:flags ; + ] + ; + sh:targetClass observable:WindowsTaskFacet ; + . + +observable:WindowsThread + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ProcessThread ; + rdfs:label "WindowsThread"@en ; + rdfs:comment "A Windows thread is a single thread of execution within a Windows process."@en ; + sh:targetClass observable:WindowsThread ; + . + +observable:WindowsThreadFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsThreadFacet"@en ; + rdfs:comment "A Windows thread facet is a grouping os characteristics unique to a single thread of execution within a Windows process."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:creationTime ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:observableCreatedTime ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:parameterAddress ; + ] , + [ + sh:datatype xsd:hexBinary ; + sh:nodeKind sh:Literal ; + sh:path observable:startAddress ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:priority ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:nodeKind sh:Literal ; + sh:path observable:stackSize ; + ] , + [ + sh:datatype xsd:nonNegativeInteger ; + sh:nodeKind sh:Literal ; + sh:path observable:threadID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:context ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:runningStatus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:securityAttributes ; + ] , + [ + sh:datatype xsd:unsignedInt ; + sh:nodeKind sh:Literal ; + sh:path observable:creationFlags ; + ] + ; + sh:targetClass observable:WindowsThreadFacet ; + . + +observable:WindowsVolumeFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WindowsVolumeFacet"@en ; + rdfs:comment "A Windows volume facet is a grouping of characteristics unique to a single accessible storage area (volume) with a single Windows file system. [based on https://en.wikipedia.org/wiki/Volume_(computing)]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:driveLetter ; + ] , + [ + sh:datatype vocabulary:WindowsDriveTypeVocab ; + sh:message "Value is outside the default vocabulary WindowsDriveTypeVocab." ; + sh:path observable:driveType ; + sh:severity sh:Info ; + ] , + [ + sh:datatype vocabulary:WindowsVolumeAttributeVocab ; + sh:maxCount "4"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:windowsVolumeAttributes ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:WindowsDriveTypeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:driveType ; + ] , + [ + sh:message "Value is not member of the vocabulary WindowsDriveTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:WindowsDriveTypeVocab ; + sh:in ( + "DRIVE_CDROM"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_FIXED"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_NO_ROOT_DIR"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_RAMDISK"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_REMOTE"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_REMOVABLE"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_UNKNOWN"^^vocabulary:WindowsDriveTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:driveType ; + ] + ; + sh:targetClass observable:WindowsVolumeFacet ; + . + +observable:WindowsWaitableTime + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "WindowsWaitableTime"@en ; + rdfs:comment "A Windows waitable timer is a synchronization object within the Windows operating system whose state is set to signaled when a specified due time arrives. There are two types of waitable timers that can be created: manual-reset and synchronization. A timer of either type can also be a periodic timer. [based on https://docs.microsoft.com/en-us/windows/win32/sync/waitable-timer-objects]"@en ; + sh:targetClass observable:WindowsWaitableTime ; + . + +observable:WirelessNetworkConnection + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:NetworkConnection ; + rdfs:label "WirelessNetworkConnection"@en ; + rdfs:comment "A wireless network connection is a connection (completed or attempted) across an IEEE 802.11 standards-confromant digital network (a group of two or more computer systems linked together). [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:targetClass observable:WirelessNetworkConnection ; + . + +observable:WirelessNetworkConnectionFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "WirelessNetworkConnectionFacet"@en ; + rdfs:comment "A wireless network connection facet is a grouping of characteristics unique to a connection (completed or attempted) across an IEEE 802.11 standards-conformant digital network (a group of two or more computer systems linked together). [based on https://www.webopedia.com/TERM/N/network.html]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:baseStation ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:password ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:ssid ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:WirelessNetworkSecurityModeVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:wirelessNetworkSecurityMode ; + ] , + [ + sh:message "Value is not member of the vocabulary WirelessNetworkSecurityModeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:WirelessNetworkSecurityModeVocab ; + sh:in ( + "None"^^vocabulary:WirelessNetworkSecurityModeVocab + "WEP"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA2-PSK"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA2-Enterprise"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA3-PSK"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA3-Enterprise"^^vocabulary:WirelessNetworkSecurityModeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:wirelessNetworkSecurityMode ; + ] + ; + sh:targetClass observable:WirelessNetworkConnectionFacet ; + . + +observable:WriteBlocker + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:Device ; + rdfs:label "WriteBlocker"@en-US ; + rdfs:comment "A write blocker is a device that allows read-only access to storage mediums in order to preserve the integrity of the data being analyzed. Examples include Tableau, Cellibrite, Talon, etc."@en-US ; + sh:targetClass observable:WriteBlocker ; + . + +observable:X509Certificate + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "X509Certificate"@en ; + rdfs:comment "A X.509 certificate is a public key digital identity certificate conformant to the X.509 PKI (Public Key Infrastructure) standard."@en ; + sh:targetClass observable:X509Certificate ; + . + +observable:X509CertificateFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "X509CertificateFacet"@en ; + rdfs:comment "A X.509 certificate facet is a grouping of characteristics unique to a public key digital identity certificate conformant to the X.509 PKI (Public Key Infrastructure) standard. "@en ; + sh:property + [ + sh:class observable:X509V3ExtensionsFacet ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:x509v3extensions ; + ] , + [ + sh:class types:Hash ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:issuerHash ; + ] , + [ + sh:class types:Hash ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:subjectHash ; + ] , + [ + sh:class types:Hash ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path observable:thumbprintHash ; + ] , + [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:isSelfSigned ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:validityNotAfter ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:validityNotBefore ; + ] , + [ + sh:datatype xsd:integer ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectPublicKeyExponent ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:issuer ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:serialNumber ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signature ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:signatureAlgorithm ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subject ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectPublicKeyAlgorithm ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectPublicKeyModulus ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:version ; + ] + ; + sh:targetClass observable:X509CertificateFacet ; + . + +observable:X509V3Certificate + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf observable:ObservableObject ; + rdfs:label "X509V3Certificate"@en ; + rdfs:comment "An X.509 v3 certificate is a public key digital identity certificate conformant to the X.509 v3 PKI (Public Key Infrastructure) standard. "@en ; + sh:targetClass observable:X509V3Certificate ; + . + +observable:X509V3ExtensionsFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "X509V3ExtensionsFacet"@en ; + rdfs:comment "An X.509 v3 certificate extensions facet is a grouping of characteristics unique to a public key digital identity certificate conformant to the X.509 v3 PKI (Public Key Infrastructure) standard."@en ; + sh:property + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:privateKeyUsagePeriodNotAfter ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:privateKeyUsagePeriodNotBefore ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:authorityKeyIdentifier ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:basicConstraints ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:certificatePolicies ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:crlDistributionPoints ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:extendedKeyUsage ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:inhibitAnyPolicy ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:issuerAlternativeName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:keyUsage ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:nameConstraints ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:policyConstraints ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:policyMappings ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectAlternativeName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectDirectoryAttributes ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:subjectKeyIdentifier ; + ] + ; + sh:targetClass observable:X509V3ExtensionsFacet ; + . + +observable:abbreviation + a owl:DatatypeProperty ; + rdfs:label "abbreviation"@en ; + rdfs:comment "The abbreviation of a global flag. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549646(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:accessedDirectory + a owl:ObjectProperty ; + rdfs:label "accessedDirectory"@en ; + rdfs:comment "Directories accessed by the prefetch application during startup."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:accessedFile + a owl:ObjectProperty ; + rdfs:label "accessedFile"@en ; + rdfs:comment "Files (e.g., DLLs and other support files) used by the application during startup."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:accessedTime + a owl:DatatypeProperty ; + rdfs:label "accessedTime"@en ; + rdfs:comment "The date and time at which the Object was accessed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:account + a owl:ObjectProperty ; + rdfs:label "account"@en ; + rdfs:comment "Specifies the account referenced in an event log entry or used to run the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381228(v=vs.85).aspx."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:accountIdentifier + a owl:DatatypeProperty ; + rdfs:label "accountIdentifier"@en ; + rdfs:comment "The unique identifier for the account."@en ; + rdfs:range xsd:string ; + . + +observable:accountIssuer + a owl:ObjectProperty ; + rdfs:label "accountIssuer"@en ; + rdfs:comment "The issuer of this account."@en ; + rdfs:range core:UcoObject ; + . + +observable:accountLogin + a owl:DatatypeProperty ; + rdfs:label "accountLogin"@en ; + rdfs:comment "The login identifier for the digital account."@en ; + rdfs:range xsd:string ; + . + +observable:accountLogonType + a owl:DatatypeProperty ; + rdfs:label "accountLogonType"@en ; + rdfs:comment "Specifies the security logon method required to run the tasks associated with the account. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383013(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:accountRunLevel + a owl:DatatypeProperty ; + rdfs:label "accountRunLevel"@en ; + rdfs:comment "Specifies the permission level of the account that the task will be run at."@en ; + rdfs:range xsd:string ; + . + +observable:accountType + a owl:DatatypeProperty ; + rdfs:label "accountType"@en ; + rdfs:comment "The type of account, for instance bank, phone, application, service, etc."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:AccountTypeVocab + xsd:string + ) ; + ] ; + . + +observable:actionID + a owl:DatatypeProperty ; + rdfs:label "actionID"@en ; + rdfs:comment "Specifies the user-defined identifier for the action. This identifier is used by the Task Scheduler for logging purposes. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380590(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:actionList + a owl:ObjectProperty ; + rdfs:label "actionList"@en ; + rdfs:comment "Specifies a list of actions to be performed by the scheduled task."@en ; + rdfs:range observable:TaskActionType ; + . + +observable:actionType + a owl:DatatypeProperty ; + rdfs:label "actionType"@en ; + rdfs:comment "Specifies the type of the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380596(v=vs.85).aspx."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TaskActionTypeVocab + xsd:string + ) ; + ] ; + . + +observable:activeDirectoryGroups + a owl:DatatypeProperty ; + rdfs:label "activeDirectoryGroups"@en ; + rdfs:range xsd:string ; + . + +observable:adapterName + a owl:DatatypeProperty ; + rdfs:label "adapterName"@en ; + rdfs:comment "Specifies the name of the network adapter used by the network interface."@en ; + rdfs:range xsd:string ; + . + +observable:addressOfEntryPoint + a owl:DatatypeProperty ; + rdfs:label "addressOfEntryPoint"@en ; + rdfs:comment "Specifies the address of the entry point relative to the image base when the executable is loaded into memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:addressValue + a owl:DatatypeProperty ; + rdfs:label "addressValue"@en ; + rdfs:comment "The value of an address."@en ; + rdfs:range xsd:string ; + . + +observable:advertisingID + a owl:DatatypeProperty ; + rdfs:label "advertisingID"@en ; + rdfs:comment "Advertising ID as a UUID. [based on https://developer.android.com/reference/androidx/ads/identifier/AdvertisingIdInfo]"@en ; + rdfs:range xsd:string ; + . + +observable:allocationStatus + a owl:DatatypeProperty ; + rdfs:label "allocationStatus"@en ; + rdfs:comment "The allocation status of a file."@en ; + rdfs:range xsd:string ; + . + +observable:alternateDataStreams + a owl:ObjectProperty ; + rdfs:label "alternateDataStreams"@en ; + rdfs:range observable:AlternateDataStream ; + . + +observable:androidFingerprint + a owl:DatatypeProperty ; + rdfs:label "androidFingerprint"@en ; + rdfs:comment "A string that uniquely identifies a build of the Android operating system. [based on https://developer.android.com/reference/android/os/Build#FINGERPRINT]"@en ; + rdfs:range xsd:string ; + . + +observable:androidID + a owl:DatatypeProperty ; + rdfs:label "androidID"@en ; + rdfs:comment "A 64-bit number (expressed as a hexadecimal string), unique to each combination of app-signing key, user, and device. [based on https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID]"@en ; + rdfs:range xsd:hexBinary ; + . + +observable:androidVersion + a owl:DatatypeProperty ; + rdfs:label "androidVersion"@en ; + rdfs:comment "The user-visible version string. E.g., '1.0' or '3.4b5' or 'bananas'. This field is an opaque string. Do not assume that its value has any particular structure or that values of RELEASE from different releases can be somehow ordered. [based on https://developer.android.com/reference/android/os/Build.VERSION#RELEASE]"@en ; + rdfs:range xsd:string ; + . + +observable:antennaHeight + a owl:DatatypeProperty ; + rdfs:label "antennaHeight"@en ; + rdfs:comment "The height (in meters) of the antenna from the ground."@en ; + rdfs:range xsd:decimal ; + . + +observable:application + a owl:ObjectProperty ; + rdfs:label "application"@en ; + rdfs:comment "The application associated with this object."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:applicationFileName + a owl:DatatypeProperty ; + rdfs:label "applicationFileName"@en ; + rdfs:comment "Name of the executable of the prefetch file."@en ; + rdfs:range xsd:string ; + . + +observable:applicationIdentifier + a owl:DatatypeProperty ; + rdfs:label "applicationIdentifier"@en ; + rdfs:range xsd:string ; + . + +observable:archiveType + a owl:DatatypeProperty ; + rdfs:label "archiveType"@en ; + rdfs:comment "The type of a file archive, e.g. ZIP, GZIP or RAR."@en ; + rdfs:range xsd:string ; + . + +observable:arguments + a owl:DatatypeProperty ; + rdfs:label "arguments"@en ; + rdfs:comment "A list of arguments utilized in initiating the process."@en ; + rdfs:range xsd:string ; + . + +observable:asHandle + a owl:DatatypeProperty ; + rdfs:label "asHandle"@en ; + rdfs:range xsd:string ; + . + +observable:aslrEnabled + a owl:DatatypeProperty ; + rdfs:label "aslrEnabled"@en ; + rdfs:range xsd:boolean ; + . + +observable:attendant + a owl:ObjectProperty ; + rdfs:label "attendant"@en ; + rdfs:comment "The attendants of the event."@en ; + rdfs:range identity:Identity ; + . + +observable:audioType + a owl:DatatypeProperty ; + rdfs:label "audioType"@en ; + rdfs:comment "The type of a audio. For example: music or speech."@en ; + rdfs:range xsd:string ; + . + +observable:authorityKeyIdentifier + a owl:DatatypeProperty ; + rdfs:label "authorityKeyIdentifier"@en ; + rdfs:range xsd:string ; + . + +observable:availableRam + a owl:DatatypeProperty ; + rdfs:label "availableRam"@en ; + rdfs:comment "Specifies the amount of physical memory available on the system, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:azimuth + a owl:DatatypeProperty ; + rdfs:label "azimuth"@en ; + rdfs:comment "The median rotation in degrees around a vertical axis of the cell antenna sector accessed."@en ; + rdfs:range xsd:decimal ; + . + +observable:baseOfCode + a owl:DatatypeProperty ; + rdfs:label "baseOfCode"@en ; + rdfs:comment "Specifies the address that is relative to the image base of the beginning-of-code section when it is loaded into memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:baseStation + a owl:DatatypeProperty ; + rdfs:label "baseStation"@en ; + rdfs:comment "The base station."@en ; + rdfs:range xsd:string ; + . + +observable:basicConstraints + a owl:DatatypeProperty ; + rdfs:label "basicConstraints"@en ; + rdfs:range xsd:string ; + . + +observable:bcc + a owl:ObjectProperty ; + rdfs:label "bcc"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:binary + a owl:ObjectProperty ; + rdfs:label "binary"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:biosDate + a owl:DatatypeProperty ; + rdfs:label "biosDate"@en ; + rdfs:comment "Specifies the date of the BIOS (e.g. the datestamp of the BIOS revision)."@en ; + rdfs:range xsd:dateTime ; + . + +observable:biosManufacturer + a owl:DatatypeProperty ; + rdfs:label "biosManufacturer"@en ; + rdfs:comment "Specifies the manufacturer of the BIOS."@en ; + rdfs:range xsd:string ; + . + +observable:biosReleaseDate + a owl:DatatypeProperty ; + rdfs:label "biosReleaseDate"@en ; + rdfs:comment "Specifies the date the BIOS was released."@en ; + rdfs:range xsd:dateTime ; + . + +observable:biosSerialNumber + a owl:DatatypeProperty ; + rdfs:label "biosSerialNumber"@en ; + rdfs:comment "Specifies the serial number of the BIOS."@en ; + rdfs:range xsd:string ; + . + +observable:biosVersion + a owl:DatatypeProperty ; + rdfs:label "biosVersion"@en ; + rdfs:comment "Specifies the version of the BIOS."@en ; + rdfs:range xsd:string ; + . + +observable:bitRate + a owl:DatatypeProperty ; + rdfs:label "bitRate"@en ; + rdfs:comment "The bitrate of the audio in bits per second."@en ; + rdfs:range xsd:integer ; + . + +observable:bitness + a owl:DatatypeProperty ; + rdfs:label "bitness"@en ; + rdfs:comment "Specifies the bitness of the operating system (i.e. 32 or 64). Note that this is potentially different from the word size of the underlying hardware or CPU. A 32-bit operating system can be installed on a machine running a 64-bit processor."@en ; + rdfs:range xsd:string ; + . + +observable:bitsPerPixel + a owl:DatatypeProperty ; + rdfs:label "bitsPerPixel"@en ; + rdfs:range xsd:integer ; + . + +observable:blockType + a owl:DatatypeProperty ; + rdfs:label "blockType"@en ; + rdfs:comment "The blockType property specifies the block type of a particular memory object."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:MemoryBlockTypeVocab + xsd:string + ) ; + ] ; + . + +observable:bluetoothDeviceName + a owl:DatatypeProperty ; + rdfs:label "bluetoothDeviceName"@en ; + rdfs:comment "Name configured withing Bluetooth settings on a device."@en ; + rdfs:range xsd:string ; + . + +observable:body + a owl:DatatypeProperty ; + rdfs:label "body"@en ; + rdfs:range xsd:string ; + . + +observable:bodyMultipart + a owl:ObjectProperty ; + rdfs:label "bodyMultipart"@en ; + rdfs:comment "A list of the MIME parts that make up the email body. This field MAY only be used if isMultipart is true."@en ; + rdfs:range observable:MimePartType ; + . + +observable:bodyRaw + a owl:ObjectProperty ; + rdfs:label "bodyRaw"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:bookmarkPath + a owl:DatatypeProperty ; + rdfs:label "bookmarkPath"@en ; + rdfs:comment "The folder containing the bookmark."@en ; + rdfs:range xsd:string ; + . + +observable:browserInformation + a owl:ObjectProperty ; + rdfs:label "Browser Information"@en ; + rdfs:comment "Specifies information about the particular Web Browser."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:browserUserProfile + a owl:DatatypeProperty ; + rdfs:label "Browser User Profile"@en ; + rdfs:comment "Specifies the web browser user profile for which the URL history entry was created."@en ; + rdfs:range xsd:string ; + . + +observable:byteOrder + a owl:DatatypeProperty ; + rdfs:label "byteOrder"@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:EndiannessTypeVocab + xsd:string + ) ; + ] ; + . + +observable:byteStringValue + a owl:DatatypeProperty ; + rdfs:label "byteStringValue"@en ; + rdfs:comment "Specifies the raw, byte-string representation of the extracted string."@en ; + rdfs:range xsd:base64Binary ; + . + +observable:callType + a owl:DatatypeProperty ; + rdfs:label "callType"@en ; + rdfs:comment "The type of a phone call,for example incoming, outgoing, missed."@en ; + rdfs:range xsd:string ; + . + +observable:camera + a owl:ObjectProperty ; + rdfs:label "camera"@en ; + rdfs:comment "The name/make of the camera that was used for taking the picture."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:canEscalatePrivs + a owl:DatatypeProperty ; + rdfs:label "canEscalatePrivs"@en ; + rdfs:range xsd:boolean ; + . + +observable:captureCellSite + a owl:ObjectProperty ; + rdfs:label "captureCellSite"@en ; + rdfs:comment "Specifies the cell site accessed."@en ; + rdfs:range observable:CellSite ; + . + +observable:carrier + a owl:ObjectProperty ; + rdfs:label "carrier"@en ; + rdfs:comment "Telecommunications service provider that sold the SIM card."@en ; + rdfs:range identity:Identity ; + . + +observable:categories + a owl:DatatypeProperty ; + rdfs:label "categories"@en ; + rdfs:comment "Categories applied to the object."@en ; + rdfs:range xsd:string ; + . + +observable:cc + a owl:ObjectProperty ; + rdfs:label "cc"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:cellSiteCountryCode + a owl:DatatypeProperty ; + rdfs:label "cellSiteCountryCode"@en ; + rdfs:comment "The country code represents the country of the cell site. For GSM, this is the Mobile Country Code (MCC)."@en ; + rdfs:range xsd:string ; + . + +observable:cellSiteIdentifier + a owl:DatatypeProperty ; + rdfs:label "cellSiteIdentifier"@en ; + rdfs:comment "Specifies the unique number used to identify each Cell Site within a location area code."@en ; + rdfs:range xsd:string ; + . + +observable:cellSiteLocationAreaCode + a owl:DatatypeProperty ; + rdfs:label "cellSiteLocationAreaCode"@en ; + rdfs:comment "The location area code is a unique number of current location area of the cell site. A location area is a set of cell site that are grouped together to optimize signalling. For GSM, this is the LAC."@en ; + rdfs:range xsd:string ; + . + +observable:cellSiteNetworkCode + a owl:DatatypeProperty ; + rdfs:label "cellSiteNetworkCode"@en ; + rdfs:comment "This code identifies the mobile operator of the cell site. For GSM, this is the Mobile Network Code (MNC) and for CMDA this is the network identifier (NID)."@en ; + rdfs:range xsd:string ; + . + +observable:cellSiteType + a owl:DatatypeProperty ; + rdfs:label "cellSiteType"@en ; + rdfs:comment "Specifies the technology used by the Cell Site (e.g., GSM, CDMA, or LTE)."@en ; + rdfs:range xsd:string ; + . + +observable:certificateIssuer + a owl:ObjectProperty ; + rdfs:label "certificateIssuer"@en ; + rdfs:range identity:Identity ; + . + +observable:certificatePolicies + a owl:DatatypeProperty ; + rdfs:label "certificatePolicies"@en ; + rdfs:range xsd:string ; + . + +observable:certificateSubject + a owl:ObjectProperty ; + rdfs:label "certificateSubject"@en ; + rdfs:range core:UcoObject ; + . + +observable:characteristics + a owl:DatatypeProperty ; + rdfs:label "characteristics"@en ; + rdfs:comment "Specifies the flags that indicate the file’s characteristics."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:checksum + a owl:DatatypeProperty ; + rdfs:label "checksum"@en ; + rdfs:comment "Specifies the checksum of the PE binary."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:clockSetting + a owl:DatatypeProperty ; + rdfs:label "clockSetting"@en ; + rdfs:comment "The generalizedTime value on the mobile device when it was processed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:clusterSize + a owl:DatatypeProperty ; + rdfs:label "clusterSize"@en ; + rdfs:comment "The size of cluster allocation units in a file system."@en ; + rdfs:range xsd:integer ; + . + +observable:columnName + a owl:DatatypeProperty ; + rdfs:label "columnName"@en ; + rdfs:range xsd:string ; + . + +observable:comClassID + a owl:DatatypeProperty ; + rdfs:label "comClassID"@en ; + rdfs:comment "Specifies the ID of the COM action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380613(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:comData + a owl:DatatypeProperty ; + rdfs:label "comData"@en ; + rdfs:comment "Specifies the data associated with the COM handler. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380613(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:comment + a owl:DatatypeProperty ; + rdfs:label "comment"@en ; + rdfs:range xsd:string ; + . + +observable:compressionMethod + a owl:DatatypeProperty ; + rdfs:label "compressionMethod"@en ; + rdfs:comment "The algorithm used to compress the data."@en ; + rdfs:range xsd:string ; + . + +observable:compressionRatio + a owl:DatatypeProperty ; + rdfs:label "compressionRatio"@en ; + rdfs:comment "The compression ratio of the compressed data."@en ; + rdfs:range xsd:decimal ; + . + +observable:contact + a owl:ObjectProperty ; + rdfs:label "contact"@en ; + rdfs:comment "Contact specifies information characterizing contact details for a single entity."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:contactAddress + a owl:ObjectProperty ; + rdfs:label "contactAddress"@en ; + rdfs:comment "Contact address specifies information characterizing a geolocation address of a contact entity."@en ; + rdfs:range observable:ContactAddress ; + . + +observable:contactAddressScope + a owl:DatatypeProperty ; + rdfs:label "contactAddressScope"@en ; + rdfs:comment "Contact address scope specifies the relevant scope (home, work, school, etc) for a geolocation address of a contact entity."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactAddressScopeVocab + ) ; + ] ; + . + +observable:contactAffiliation + a owl:ObjectProperty ; + rdfs:label "contactAffiliation"@en ; + rdfs:comment "Contact affiliation specifies information characterizing details of an organizational affiliation for a single contact entity."@en ; + rdfs:range observable:ContactAffiliation ; + . + +observable:contactEmail + a owl:ObjectProperty ; + rdfs:label "contactEmail"@en ; + rdfs:comment "Contact email specifies information characterizing details for contacting a contact entity by email."@en ; + rdfs:range observable:ContactEmail ; + . + +observable:contactEmailScope + a owl:DatatypeProperty ; + rdfs:label "contactEmailScope"@en ; + rdfs:comment "Contact email scope specifies the relevant scope (home, work, school, etc) of details for contacting a contact entity by email."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactEmailScopeVocab + ) ; + ] ; + . + +observable:contactGroup + a owl:DatatypeProperty ; + rdfs:label "contactGroup"@en ; + rdfs:comment "Contact group specifies the name/tag of a particular named/tagged grouping of contacts."@en ; + rdfs:range xsd:string ; + . + +observable:contactID + a owl:DatatypeProperty ; + rdfs:label "contactID"@en ; + rdfs:comment "Specifies an ID for the contact."@en ; + rdfs:range xsd:string ; + . + +observable:contactMessaging + a owl:ObjectProperty ; + rdfs:label "contactMessaging"@en ; + rdfs:comment "Contact messaging specifies information characterizing details for contacting a contact entity by digital messaging."@en ; + rdfs:range observable:ContactMessaging ; + . + +observable:contactMessagingPlatform + a owl:ObjectProperty ; + rdfs:label "contactMessagingPlatform"@en ; + rdfs:comment "A contact messaging platform specifies a digital messaging platform associated with a contact."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:contactNote + a owl:DatatypeProperty ; + rdfs:label "contactNote"@en ; + rdfs:comment "Contact note specifies a comment/note associated with a given contact."@en ; + rdfs:range xsd:string ; + . + +observable:contactOrganization + a owl:ObjectProperty ; + rdfs:label "contactOrganization"@en ; + rdfs:comment "The name of the organization a contact works for or is assocciated with."@en ; + rdfs:range identity:Organization ; + . + +observable:contactPhone + a owl:ObjectProperty ; + rdfs:label "contactPhone"@en ; + rdfs:comment "Contact phone specifies information characterizing details for contacting a contact entity by telephone."@en ; + rdfs:range observable:ContactPhone ; + . + +observable:contactPhoneNumber + a owl:ObjectProperty ; + rdfs:label "contactPhoneNumber"@en ; + rdfs:comment "Contact phone number specifies a telephone service account number for contacting a contact entity by telephone."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:contactPhoneScope + a owl:DatatypeProperty ; + rdfs:label "contactPhoneScope"@en ; + rdfs:comment "Contact phone scope specifies the relevant scope (home, work, school, etc) of details for contacting a contact entity by telephone."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactPhoneScopeVocab + ) ; + ] ; + . + +observable:contactProfile + a owl:ObjectProperty ; + rdfs:label "contactProfile"@en ; + rdfs:comment "Contact profile specifies information characterizing details for contacting a contact entity by online service."@en ; + rdfs:range observable:ContactProfile ; + . + +observable:contactProfilePlatform + a owl:ObjectProperty ; + rdfs:label "contactProfilePlatform"@en ; + rdfs:comment "A contact profile platform specifies an online service platform associated with a contact."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:contactSIP + a owl:ObjectProperty ; + rdfs:label "contactSIP"@en ; + rdfs:comment "Contact SIP specifies information characterizing details for contacting a contact entity by Session Initiation Protocol (SIP)."@en ; + rdfs:range observable:ContactSIP ; + . + +observable:contactSIPScope + a owl:DatatypeProperty ; + rdfs:label "contactSIPScope"@en ; + rdfs:comment "Contact SIP scope specifies the relevant scope (home, work, school, etc) of details for contacting a contact entity by Session Initiation Protocol (SIP)."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactSIPScopeVocab + ) ; + ] ; + . + +observable:contactURL + a owl:ObjectProperty ; + rdfs:label "contactURL"@en ; + rdfs:comment "Contact URL specifies information characterizing details for contacting a contact entity by Uniform Resource Locator (URL)."@en ; + rdfs:range observable:ContactURL ; + . + +observable:contactURLScope + a owl:DatatypeProperty ; + rdfs:label "contactURLScope"@en ; + rdfs:comment "Contact url scope specifies the relevant scope (homepage, home, work, school, etc) of details for contacting a contact entity by Uniform Resource Locator (URL)."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:ContactURLScopeVocab + ) ; + ] ; + . + +observable:contentDisposition + a owl:DatatypeProperty ; + rdfs:label "contentDisposition"@en ; + rdfs:range xsd:string ; + . + +observable:contentRecoveredStatus + a owl:DatatypeProperty ; + rdfs:label "contentRecoveredStatus"@en ; + rdfs:comment "Specifies the recoverability status of the content of an object."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:RecoveredObjectStatusVocab + xsd:string + ) ; + ] ; + . + +observable:contentType + a owl:DatatypeProperty ; + rdfs:label "contentType"@en ; + rdfs:range xsd:string ; + . + +observable:context + a owl:DatatypeProperty ; + rdfs:label "context"@en ; + rdfs:range xsd:string ; + . + +observable:controlCode + a owl:DatatypeProperty ; + rdfs:label "controlCode"@en ; + rdfs:comment "Specifies the actual control code that was sent to the observable object."@en ; + rdfs:range xsd:string ; + . + +observable:cookieDomain + a owl:ObjectProperty ; + rdfs:label "cookieDomain"@en ; + rdfs:comment "The domain for which the cookie is stored, for example nfi.minjus.nl."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:cookieName + a owl:DatatypeProperty ; + rdfs:label "cookieName"@en ; + rdfs:comment "The name of the cookie."@en ; + rdfs:range xsd:string ; + . + +observable:cookiePath + a owl:DatatypeProperty ; + rdfs:label "cookiePath"@en ; + rdfs:comment "String representation of the path of the cookie."@en ; + rdfs:range xsd:string ; + . + +observable:cpeid + a owl:DatatypeProperty ; + rdfs:label "cpeid"@en ; + rdfs:comment "Specifies the Common Platform Enumeration identifier for the software."@en ; + rdfs:range xsd:string ; + . + +observable:cpu + a owl:DatatypeProperty ; + rdfs:label "cpu"@en ; + rdfs:comment "Specifies the name of the CPU used by the system."@en ; + rdfs:range xsd:string ; + . + +observable:cpuFamily + a owl:DatatypeProperty ; + rdfs:label "cpuFamily"@en ; + rdfs:comment "Specifies the name of the CPU family used by the system."@en ; + rdfs:range xsd:string ; + . + +observable:creationDate + a owl:DatatypeProperty ; + rdfs:label "creationDate"@en ; + rdfs:comment "Specifies the date in which the registered domain was created."@en ; + rdfs:range xsd:dateTime ; + . + +observable:creationFlags + a owl:DatatypeProperty ; + rdfs:label "creationFlags"@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:creationTime + a + owl:DatatypeProperty , + owl:DeprecatedProperty + ; + rdfs:label "creationTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:creationTime-deprecation-shape + a sh:NodeShape ; + sh:property [ + 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:targetSubjectsOf observable:creationTime ; + . + +observable:creator + a owl:ObjectProperty ; + rdfs:label "creator"@en ; + rdfs:comment "Specifies the name of the creator of the registry key."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:creatorUser + a owl:ObjectProperty ; + rdfs:label "creatorUser"@en ; + rdfs:comment "The user that created/owns the process."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:crlDistributionPoints + a owl:DatatypeProperty ; + rdfs:label "crlDistributionPoints"@en ; + rdfs:range xsd:string ; + . + +observable:currentSystemDate + a owl:DatatypeProperty ; + rdfs:label "currentSystemDate"@en ; + rdfs:comment "Specifies the current date on the system."@en ; + rdfs:range xsd:dateTime ; + . + +observable:currentWorkingDirectory + a owl:DatatypeProperty ; + rdfs:label "currentWorkingDirectory"@en ; + rdfs:range xsd:string ; + . + +observable:cyberAction + a owl:ObjectProperty ; + rdfs:label "cyberAction"@en ; + rdfs:comment "The action taken in response to the event."@en ; + rdfs:range observable:ObservableAction ; + . + +observable:data + a owl:DatatypeProperty ; + rdfs:label "data"@en ; + rdfs:range xsd:string ; + . + +observable:dataPayload + a owl:DatatypeProperty ; + rdfs:label "dataPayload"@en ; + rdfs:range xsd:string ; + . + +observable:dataPayloadReferenceURL + a owl:ObjectProperty ; + rdfs:label "dataPayloadReferenceURL"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:dataType + a owl:DatatypeProperty ; + rdfs:label "dataType"@en ; + rdfs:range xsd:string ; + . + +observable:depEnabled + a owl:DatatypeProperty ; + rdfs:label "depEnabled"@en ; + rdfs:range xsd:boolean ; + . + +observable:descriptions + a owl:DatatypeProperty ; + rdfs:label "descriptions"@en ; + rdfs:range xsd:string ; + . + +observable:destination + a owl:DatatypeProperty ; + rdfs:label "destination"@en ; + rdfs:comment "The destination of a global flag. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549646(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:destinationFlags + a owl:DatatypeProperty ; + rdfs:label "destinationFlags"@en ; + rdfs:comment "Specifies the destination TCP flags."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:destinationPort + a owl:DatatypeProperty ; + rdfs:label "destinationPort"@en ; + rdfs:comment "Specifies the destination port used in the connection, as an integer in the range of 0 - 65535."@en ; + rdfs:range xsd:integer ; + . + +observable:deviceType + a owl:DatatypeProperty ; + rdfs:label "deviceType"@en ; + rdfs:range xsd:string ; + . + +observable:dhcpLeaseExpires + a owl:DatatypeProperty ; + rdfs:label "dhcpLeaseExpires"@en ; + rdfs:comment "Specifies the date/time that the DHCP lease obtained on the network interface expires."@en ; + rdfs:range xsd:dateTime ; + . + +observable:dhcpLeaseObtained + a owl:DatatypeProperty ; + rdfs:label "dhcpLeaseObtained"@en ; + rdfs:comment "Specifies the date/time that the DHCP lease was obtained on the network interface."@en ; + rdfs:range xsd:dateTime ; + . + +observable:dhcpServer + a owl:ObjectProperty ; + rdfs:label "dhcpServer"@en ; + rdfs:comment "Specifies the list of DHCP server IP Addresses used by the network interface."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:diskPartitionType + a owl:DatatypeProperty ; + rdfs:label "diskPartitionType"@en ; + rdfs:comment "Specifies the type of partition being characterized."@en ; + rdfs:range xsd:string ; + . + +observable:diskSize + a owl:DatatypeProperty ; + rdfs:label "diskSize"@en ; + rdfs:comment "The size of the disk, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:diskType + a owl:DatatypeProperty ; + rdfs:label "diskType"@en ; + rdfs:comment "The type of disk being characterized, e.g., removable."@en ; + rdfs:range xsd:string ; + . + +observable:displayName + a owl:DatatypeProperty ; + rdfs:label "displayName"@en ; + rdfs:comment "Display name specifies the name to display for some entity within a user interface."@en ; + rdfs:range xsd:string ; + . + +observable:dllCharacteristics + a owl:DatatypeProperty ; + rdfs:label "dllCharacteristics"@en ; + rdfs:comment "Specifies the flags that characterize the PE binary."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:dnssec + a owl:DatatypeProperty ; + rdfs:label "dnssec"@en ; + rdfs:comment "Specifies the DNSSEC property associated with a Whois entry. Acceptable values are: 'Signed' or 'Unsigned'."@en ; + rdfs:range vocabulary:WhoisDNSSECTypeVocab ; + . + +observable:documentInformationDictionary + a owl:ObjectProperty ; + rdfs:label "documentInformationDictionary"@en ; + rdfs:range types:ControlledDictionary ; + . + +observable:domain + a owl:DatatypeProperty ; + rdfs:label "domain"@en ; + rdfs:comment "The domain(s) that the system belongs to."@en ; + rdfs:range xsd:string ; + . + +observable:domainID + a owl:DatatypeProperty ; + rdfs:label "domainID"@en ; + rdfs:comment "Specifies the domain id for the domain associated with a Whois entry."@en ; + rdfs:range xsd:string ; + . + +observable:domainName + a owl:ObjectProperty ; + rdfs:label "domainName"@en ; + rdfs:comment "Specifies the corresponding domain name for a whois entry."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:driveLetter + a owl:DatatypeProperty ; + rdfs:label "driveLetter"@en ; + rdfs:comment "Specifies the drive letter of a windows volume."@en ; + rdfs:range xsd:string ; + . + +observable:driveType + a owl:DatatypeProperty ; + rdfs:label "driveType"@en ; + rdfs:comment "Specifies the drive type of a windows volume."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:WindowsDriveTypeVocab + xsd:string + ) ; + ] ; + . + +observable:dst + a owl:ObjectProperty ; + rdfs:label "dst"@en ; + rdfs:comment "Specifies the destination(s) of the network connection."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:dstBytes + a owl:DatatypeProperty ; + rdfs:label "dstBytes"@en ; + rdfs:range xsd:integer ; + . + +observable:dstPackets + a owl:DatatypeProperty ; + rdfs:label "dstPackets"@en ; + rdfs:range xsd:integer ; + . + +observable:dstPayload + a owl:ObjectProperty ; + rdfs:label "dstPayload"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:duration + a owl:DatatypeProperty ; + rdfs:label "duration"@en ; + rdfs:comment "The duration of the phone call in seconds."@en ; + rdfs:range xsd:integer ; + . + +observable:effectiveGroup + a owl:DatatypeProperty ; + rdfs:label "effectiveGroup"@en ; + rdfs:comment "Specifies the name of the effective group used in the user session."@en ; + rdfs:range xsd:string ; + . + +observable:effectiveGroupID + a owl:DatatypeProperty ; + rdfs:label "effectiveGroupID"@en ; + rdfs:comment "Specifies the effective group ID of the group used in the user session."@en ; + rdfs:range xsd:string ; + . + +observable:effectiveUser + a owl:ObjectProperty ; + rdfs:label "effectiveUser"@en ; + rdfs:comment "Specifies the effective user details used in the user session."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:elevation + a owl:DatatypeProperty ; + rdfs:label "elevation"@en ; + rdfs:comment "The angle in degrees of the antenna from the local horizontal plane."@en ; + rdfs:range xsd:decimal ; + . + +observable:emailAddress + a owl:ObjectProperty ; + rdfs:label "emailAddress"@en ; + rdfs:comment "An email address."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:encoding + a owl:DatatypeProperty ; + rdfs:label "Encoding"@en ; + rdfs:comment "The encoding method used for the extracted string."@en ; + rdfs:range xsd:string ; + . + +observable:encodingMethod + a owl:DatatypeProperty ; + rdfs:label "encodingMethod"@en ; + rdfs:range xsd:string ; + . + +observable:encryptionIV + a owl:DatatypeProperty ; + rdfs:label "encryptionIV"@en ; + rdfs:range xsd:string ; + . + +observable:encryptionKey + a owl:DatatypeProperty ; + rdfs:label "encryptionKey"@en ; + rdfs:range xsd:string ; + . + +observable:encryptionMethod + a owl:DatatypeProperty ; + rdfs:label "encryptionMethod"@en ; + rdfs:range xsd:string ; + . + +observable:encryptionMode + a owl:DatatypeProperty ; + rdfs:label "encryptionMode"@en ; + rdfs:range xsd:string ; + . + +observable:endTime + a owl:DatatypeProperty ; + rdfs:label "endTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:englishTranslation + a owl:DatatypeProperty ; + rdfs:label "englishTranslation"@en ; + rdfs:comment "Specifies the English translation of the string, if it is not written in English."@en ; + rdfs:range xsd:string ; + . + +observable:entropy + a owl:DatatypeProperty ; + rdfs:label "entropy"@en ; + rdfs:comment "Shannon entropy (a measure of randomness) of the data."@en ; + rdfs:range xsd:decimal ; + . + +observable:entryID + a owl:DatatypeProperty ; + rdfs:label "entryID"@en ; + rdfs:comment "A unique identifier for the file within the filesystem."@en ; + rdfs:range xsd:integer ; + . + +observable:environmentVariables + a owl:ObjectProperty ; + rdfs:label "environmentVariables"@en ; + rdfs:comment "A list of environment variables associated with the process. "@en ; + rdfs:range types:Dictionary ; + . + +observable:eventRecordDevice + a owl:ObjectProperty ; + rdfs:label "device"@en ; + rdfs:comment "The device on which the log entry was generated."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:eventRecordID + a owl:DatatypeProperty ; + rdfs:label "eventRecordID"@en ; + rdfs:comment "The identifier of the event record."@en ; + rdfs:range xsd:string ; + . + +observable:eventRecordRaw + a owl:DatatypeProperty ; + rdfs:label "eventRecordRaw"@en ; + rdfs:comment "The complete raw content of the event record."@en ; + rdfs:range xsd:string ; + . + +observable:eventRecordServiceName + a owl:DatatypeProperty ; + rdfs:label "eventServiceName"@en ; + rdfs:comment "The service that generated the event record. A single application can have multiple services generating event records."@en ; + rdfs:range xsd:string ; + . + +observable:eventRecordText + a owl:DatatypeProperty ; + rdfs:label "eventRecordText"@en ; + rdfs:comment "The textual representation of the event."@en ; + rdfs:range xsd:string ; + . + +observable:eventStatus + a owl:DatatypeProperty ; + rdfs:label "eventStatus"@en ; + rdfs:comment "The status of the event, for instance accepted, pending or cancelled."@en ; + rdfs:range xsd:string ; + . + +observable:eventType + a owl:DatatypeProperty ; + rdfs:label "eventType"@en ; + rdfs:comment "The type of the event, for example 'information', 'warning' or 'error'."@en ; + rdfs:range xsd:string ; + . + +observable:execArguments + a owl:DatatypeProperty ; + rdfs:label "execArguments"@en ; + rdfs:comment "Specifies the arguments associated with the command-line operation launched by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380715(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:execProgramHashes + a owl:ObjectProperty ; + rdfs:label "execProgramHashes"@en ; + rdfs:comment "Specifies the hashes of the executable file launched by the action."@en ; + rdfs:range types:Hash ; + . + +observable:execProgramPath + a owl:DatatypeProperty ; + rdfs:label "execProgramPath"@en ; + rdfs:comment "Specifies the path to the executable file launched by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380715(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:execWorkingDirectory + a owl:DatatypeProperty ; + rdfs:label "execWorkingDirectory"@en ; + rdfs:comment "Specifies the directory that contains either the executable file or the files that are used by the executable file launched by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380715(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:exifData + a owl:ObjectProperty ; + rdfs:label "exifData"@en ; + rdfs:range types:ControlledDictionary ; + . + +observable:exitCode + a owl:DatatypeProperty ; + rdfs:label "exitCode"@en ; + rdfs:comment "Specifies the last exit code of the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381245(v=vs.85).aspx."@en ; + rdfs:range xsd:integer ; + . + +observable:exitStatus + a owl:DatatypeProperty ; + rdfs:label "exitStatus"@en ; + rdfs:comment "A small number passed from the process to the parent process when it has finished executing. In general, 0 indicates successful termination, any other number indicates a failure."@en ; + rdfs:range xsd:integer ; + . + +observable:exitTime + a owl:DatatypeProperty ; + rdfs:label "exitTime"@en ; + rdfs:comment "The time at which the process exited."@en ; + rdfs:range xsd:dateTime ; + . + +observable:expirationDate + a owl:DatatypeProperty ; + rdfs:label "expirationDate"@en ; + rdfs:comment "Specifies the date in which the registered domain will expire."@en ; + rdfs:range xsd:dateTime ; + . + +observable:expirationTime + a owl:DatatypeProperty ; + rdfs:label "expirationTime"@en ; + rdfs:comment "The date and time at which the validity of the object expires."@en ; + rdfs:range xsd:dateTime ; + . + +observable:extDeletionTime + a owl:DatatypeProperty ; + rdfs:label "extDeletionTime"@en ; + rdfs:comment "Specifies the time at which the file represented by an Inode was 'deleted'."@en ; + rdfs:range xsd:dateTime ; + . + +observable:extFileType + a owl:DatatypeProperty ; + rdfs:label "extFileType"@en ; + rdfs:comment "Specifies the EXT file type (FIFO, Directory, Regular file, Symbolic link, etc) for the Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extFlags + a owl:DatatypeProperty ; + rdfs:label "extFlags"@en ; + rdfs:comment "Specifies user flags to further protect (limit its use and modification) the file represented by an Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extHardLinkCount + a owl:DatatypeProperty ; + rdfs:label "extHardLinkCount"@en ; + rdfs:comment "Specifies a count of how many hard links point to an Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extInodeChangeTime + a owl:DatatypeProperty ; + rdfs:label "extInodeChangeTime"@en ; + rdfs:comment "The date and time at which the file Inode metadata was last modified."@en ; + rdfs:range xsd:dateTime ; + . + +observable:extInodeID + a owl:DatatypeProperty ; + rdfs:label "extInodeID"@en ; + rdfs:comment "Specifies a single Inode identifier."@en ; + rdfs:range xsd:integer ; + . + +observable:extPermissions + a owl:DatatypeProperty ; + rdfs:label "extPermissions"@en ; + rdfs:comment "Specifies the read/write/execute permissions for the file represented by an EXT Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extSGID + a owl:DatatypeProperty ; + rdfs:label "extSGID"@en ; + rdfs:comment "Specifies the group ID for the file represented by an Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extSUID + a owl:DatatypeProperty ; + rdfs:label "extSUID"@en ; + rdfs:comment "Specifies the user ID that 'owns' the file represented by an Inode."@en ; + rdfs:range xsd:integer ; + . + +observable:extendedKeyUsage + a owl:DatatypeProperty ; + rdfs:label "extendedKeyUsage"@en ; + rdfs:range xsd:string ; + . + +observable:extension + a owl:DatatypeProperty ; + rdfs:label "extension"@en ; + rdfs:comment "The file name extension: everything after the last dot. Not present if the file has no dot in its name."@en ; + rdfs:range xsd:string ; + . + +observable:favoritesCount + a owl:DatatypeProperty ; + rdfs:label "Favorites Count"@en-US ; + rdfs:comment "Specifies the number of times that this profile has favorited a tweet."@en-US ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:fileAlignment + a owl:DatatypeProperty ; + rdfs:label "fileAlignment"@en ; + rdfs:comment "Specifies the factor (in bytes) that is used to align the raw data of sections in the image file."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:fileHeaderHashes + a owl:ObjectProperty ; + rdfs:label "fileHeaderHashes"@en ; + rdfs:comment "Specifies any hashes that were computed for the file header."@en ; + rdfs:range types:Hash ; + . + +observable:fileName + a owl:DatatypeProperty ; + rdfs:label "fileName"@en ; + rdfs:comment "Specifies the name associated with a file in a file system."@en ; + rdfs:range xsd:string ; + . + +observable:filePath + a owl:DatatypeProperty ; + rdfs:label "filePath"@en ; + rdfs:comment "Specifies the file path for the location of a file within a filesystem."@en ; + rdfs:range xsd:string ; + . + +observable:fileSystemType + a owl:DatatypeProperty ; + rdfs:label "fileSystemType"@en ; + rdfs:comment "The specific type of a file system."@en ; + rdfs:range xsd:string ; + . + +observable:firstLoginTime + a owl:DatatypeProperty ; + rdfs:label "firstLoginTime"@en ; + rdfs:comment "The date and time of the first login of the account."@en ; + rdfs:range xsd:dateTime ; + . + +observable:firstName + a owl:DatatypeProperty ; + rdfs:label "firstName"@en ; + rdfs:comment "The first name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:firstRun + a owl:DatatypeProperty ; + rdfs:label "firstRun"@en ; + rdfs:comment "Timestamp of when the prefetch application was first run."@en ; + rdfs:range xsd:dateTime ; + . + +observable:firstVisit + a owl:DatatypeProperty ; + rdfs:label "First Visit Time"@en ; + rdfs:comment "Specifies the date/time that the URL referred to by the URL field was first visited."@en-US ; + rdfs:range xsd:dateTime ; + . + +observable:flags + a owl:DatatypeProperty ; + rdfs:label "flags"@en ; + rdfs:comment "Specifies any flags that modify the behavior of the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381248(v=vs.85).aspx."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TaskFlagVocab + xsd:string + ) ; + ] ; + . + +observable:followersCount + a owl:DatatypeProperty ; + rdfs:label "Followers Count"@en-US ; + rdfs:comment "Specifies the followers count associated with the twitter profile."@en-US ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:format + a owl:DatatypeProperty ; + rdfs:label "format"@en ; + rdfs:comment "The format of the audio. For example: mp3 or flac."@en ; + rdfs:range xsd:string ; + . + +observable:fragment + a owl:DatatypeProperty ; + rdfs:label "fragment"@en ; + rdfs:comment "Fragment pointing to a specific part in the resource."@en ; + rdfs:range xsd:string ; + . + +observable:fragmentIndex + a owl:DatatypeProperty ; + rdfs:label "fragmentIndex"@en ; + rdfs:range xsd:integer ; + . + +observable:freeSpace + a owl:DatatypeProperty ; + rdfs:label "freeSpace"@en ; + rdfs:comment "The amount of free space on the disk, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:friendsCount + a owl:DatatypeProperty ; + rdfs:label "Friends Count"@en-US ; + rdfs:comment "Specifies the friends count associated with the twitter profile."@en-US ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:from + a owl:ObjectProperty ; + rdfs:label "from"@en ; + rdfs:comment "The phone number of the initiating party."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:fromURLVisit + a owl:ObjectProperty ; + rdfs:label "From URL Visit"@en ; + rdfs:comment "Specifies the URL visit origination point (i.e., URL) of the URL captured in the URL history entry, if applicable."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:fullValue + a owl:DatatypeProperty ; + rdfs:label "fullValue"@en ; + rdfs:comment "The full string value of the URL."@en ; + rdfs:range xsd:string ; + . + +observable:geoLocationEntry + a owl:ObjectProperty ; + rdfs:label "geoLocationEntry"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:geolocationAddress + a owl:ObjectProperty ; + rdfs:label "geolocationAddress"@en ; + rdfs:comment "An administrative address for a particular geolocation."@en ; + rdfs:range location:Location ; + . + +observable:gid + a owl:DatatypeProperty ; + rdfs:label "gid"@en ; + rdfs:range xsd:integer ; + . + +observable:globalFlagList + a owl:ObjectProperty ; + rdfs:label "globalFlagList"@en ; + rdfs:comment "A list of global flags. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549557(v=vs.85).aspx."@en ; + rdfs:range observable:GlobalFlagType ; + . + +observable:gpu + a owl:DatatypeProperty ; + rdfs:label "gpu"@en ; + rdfs:comment "Specifies the name of the GPU used by the system."@en ; + rdfs:range xsd:string ; + . + +observable:gpuFamily + a owl:DatatypeProperty ; + rdfs:label "gpuFamily"@en ; + rdfs:comment "Specifies the name of the GPU family used by the system."@en ; + rdfs:range xsd:string ; + . + +observable:groupName + a owl:DatatypeProperty ; + rdfs:label "groupName"@en ; + rdfs:range xsd:string ; + . + +observable:groups + a owl:DatatypeProperty ; + rdfs:label "groups"@en ; + rdfs:range xsd:string ; + . + +observable:hasChanged + a owl:DatatypeProperty ; + rdfs:label "hasChanged"@en ; + rdfs:range xsd:boolean ; + . + +observable:hash + a owl:ObjectProperty ; + rdfs:label "hash"@en ; + rdfs:comment "Hash values of the data."@en ; + rdfs:range types:Hash ; + . + +observable:hashes + a owl:ObjectProperty ; + rdfs:label "hashes"@en ; + rdfs:comment "Specifies any hashes computed over the section."@en ; + rdfs:range types:Hash ; + . + +observable:headerRaw + a owl:ObjectProperty ; + rdfs:label "headerRaw"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:hexadecimalValue + a owl:DatatypeProperty ; + rdfs:label "hexadecimalValue"@en ; + rdfs:comment "The hexadecimal value of a global flag. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549646(v=vs.85).aspx."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:hiveType + a owl:DatatypeProperty ; + rdfs:label "hiveType"@en ; + rdfs:comment "The type of a registry hive."@en ; + rdfs:range xsd:string ; + . + +observable:homeDirectory + a owl:DatatypeProperty ; + rdfs:label "homeDirectory"@en ; + rdfs:range xsd:string ; + . + +observable:horizontalBeamWidth + a owl:DatatypeProperty ; + rdfs:label "horizontalBeamWidth"@en ; + rdfs:comment "The width of the antenna beam in degrees."@en ; + rdfs:range xsd:string ; + . + +observable:host + a owl:ObjectProperty ; + rdfs:label "host"@en ; + rdfs:comment "Domain name or IP address where the resource is located."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:hostname + a owl:DatatypeProperty ; + rdfs:label "hostname"@en ; + rdfs:comment "Specifies the hostname of the system."@en ; + rdfs:range xsd:string ; + . + +observable:httpMesageBodyLength + a owl:DatatypeProperty ; + rdfs:label "httpMesageBodyLength"@en ; + rdfs:comment "Specifies the length of an HTTP message body in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:httpMessageBodyData + a owl:ObjectProperty ; + rdfs:label "httpMessageBodyData"@en ; + rdfs:comment "Specifies the data contained in an HTTP message body."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:httpRequestHeader + a owl:ObjectProperty ; + rdfs:label "httpRequestHeader"@en ; + rdfs:comment "Specifies all of the HTTP header fields that may be found in the HTTP client request"@en ; + rdfs:range types:Dictionary ; + . + +observable:iComHandlerAction + a owl:ObjectProperty ; + rdfs:label "iComHandlerAction"@en ; + rdfs:comment "Specifies the data associated with the task action-fired COM handler."@en ; + rdfs:range observable:IComHandlerActionType ; + . + +observable:iEmailAction + a owl:ObjectProperty ; + rdfs:label "iEmailAction"@en ; + rdfs:comment "Specifies an action that sends an e-mail, which in this context refers to actual email message sent. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380693(v=vs.85).aspx."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:iExecAction + a owl:ObjectProperty ; + rdfs:label "iExecAction"@en ; + rdfs:comment "Specifies an action that executes a command-line operation. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380715(v=vs.85).aspx."@en ; + rdfs:range observable:IExecActionType ; + . + +observable:iShowMessageAction + a owl:ObjectProperty ; + rdfs:label "iShowMessageAction"@en ; + rdfs:comment "Specifies an action that shows a message box when a task is activated. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381302(v=vs.85).aspx."@en ; + rdfs:range observable:IShowMessageActionType ; + . + +observable:icmpCode + a owl:DatatypeProperty ; + rdfs:label "icmpCode"@en ; + rdfs:comment "Specifies the ICMP code byte."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:icmpType + a owl:DatatypeProperty ; + rdfs:label "icmpType"@en ; + rdfs:comment "Specifies the ICMP type byte."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:imageBase + a owl:DatatypeProperty ; + rdfs:label "imageBase"@en ; + rdfs:comment "Specifies the address that is relative to the image base of the beginning-of-data section when it is loaded into memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:imageCompressionMethod + a owl:DatatypeProperty ; + rdfs:label "imageCompressionMethod"@en ; + rdfs:range xsd:string ; + . + +observable:imageName + a owl:DatatypeProperty ; + rdfs:label "imageName"@en ; + rdfs:comment "Specifies the image name for the task."@en ; + rdfs:range xsd:string ; + . + +observable:imageType + a owl:DatatypeProperty ; + rdfs:label "imageType"@en ; + rdfs:comment "The type of the image, e.g. EnCase, RAW or LocalFolder."@en ; + rdfs:range xsd:string ; + . + +observable:impHash + a owl:DatatypeProperty ; + rdfs:label "impHash"@en ; + rdfs:comment "Specifies the special import hash, or ‘imphash’, calculated for the PE Binary based on its imported libraries and functions. "@en ; + rdfs:range xsd:string ; + . + +observable:inReplyTo + a owl:DatatypeProperty ; + rdfs:label "inReplyTo"@en ; + rdfs:comment "One of more unique identifiers for identifying the email(s) this email is a reply to."@en ; + rdfs:range xsd:string ; + . + +observable:inetLocation + a owl:ObjectProperty ; + rdfs:label "Internet Location"@en-US ; + rdfs:comment "Specifies a location on the Internet."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:inhibitAnyPolicy + a owl:DatatypeProperty ; + rdfs:label "inhibitAnyPolicy"@en ; + rdfs:range xsd:string ; + . + +observable:installDate + a owl:DatatypeProperty ; + rdfs:label "installDate"@en ; + rdfs:comment "Specifies the date the operating system or application was installed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:installedVersionHistory + a owl:ObjectProperty ; + rdfs:label "installedVersionHistory"@en ; + rdfs:comment "Specifies the history of installed application version(s)."@en ; + rdfs:range observable:ApplicationVersion ; + . + +observable:interceptedCallState + a owl:DatatypeProperty ; + rdfs:label "interceptedCallState"@en ; + rdfs:comment "State of the call in a Call Detail Record (e.g. idle)."@en ; + rdfs:range xsd:string ; + . + +observable:ip + a owl:ObjectProperty ; + rdfs:label "ip"@en ; + rdfs:comment "Specifies the list of IP addresses used by the network interface."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:ipAddress + a owl:ObjectProperty ; + rdfs:label "ipAddress"@en ; + rdfs:comment "Specifies the corresponding ip address for a whois entry. Usually corresponds to a name server lookup."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:ipGateway + a owl:ObjectProperty ; + rdfs:label "ipGateway"@en ; + rdfs:comment "Specifies the list of IP Gateway IP Addresses used by the network interface."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:ipfix + a owl:ObjectProperty ; + rdfs:label "ipfix"@en ; + rdfs:comment "Specifies any IP Flow Information Export (IPFIX) data for the network traffic flow."@en ; + rdfs:range types:Dictionary ; + . + +observable:isADBRootEnabled + a owl:DatatypeProperty ; + rdfs:label "isADBRootEnabled"@en ; + rdfs:comment "Root access through the Android Debug Bridge (ADB) daemon observed to be enabled. [based on https://developer.android.com/studio/command-line/adb]"@en ; + rdfs:range xsd:boolean ; + . + +observable:isActive + a owl:DatatypeProperty ; + rdfs:label "isActive"@en ; + rdfs:comment "Indicates whether the network connection is still active."@en ; + rdfs:range xsd:boolean ; + . + +observable:isDirectory + a owl:DatatypeProperty ; + rdfs:label "isDirectory"@en ; + rdfs:comment "Specifies whether a file entry represents a directory."@en ; + rdfs:range xsd:boolean ; + . + +observable:isDisabled + a owl:DatatypeProperty ; + rdfs:label "isDisabled"@en ; + rdfs:comment "Is the digital account disabled?"@en ; + rdfs:range xsd:boolean ; + . + +observable:isEnabled + a owl:DatatypeProperty ; + rdfs:label "isEnabled"@en ; + rdfs:comment "Specifies whether the trigger is enabled."@en ; + rdfs:range xsd:boolean ; + . + +observable:isEncrypted + a owl:DatatypeProperty ; + rdfs:label "isEncrypted"@en ; + rdfs:range xsd:boolean ; + . + +observable:isHidden + a owl:DatatypeProperty ; + rdfs:label "isHidden"@en ; + rdfs:comment """The isHidden property specifies whether the process is hidden or not. + """@en ; + rdfs:range xsd:boolean ; + . + +observable:isInjected + a owl:DatatypeProperty ; + rdfs:label "isInjected"@en ; + rdfs:comment "The isInjected property specifies whether or not the particular memory object has had data/code injected into it by another process."@en ; + rdfs:range xsd:boolean ; + . + +observable:isLimitAdTrackingEnabled + a owl:DatatypeProperty ; + rdfs:label "isLimitAdTrackingEnabled"@en ; + rdfs:comment "Limits advertising tracking if enabled. [based on https://developer.android.com/reference/androidx/ads/identifier/AdvertisingIdInfo]"@en ; + rdfs:range xsd:boolean ; + . + +observable:isMapped + a owl:DatatypeProperty ; + rdfs:label "isMapped"@en ; + rdfs:comment "The isMapped property specifies whether or not the particular memory object has been assigned a byte-for-byte correlation with some portion of a file or file-like resource."@en ; + rdfs:range xsd:boolean ; + . + +observable:isMimeEncoded + a owl:DatatypeProperty ; + rdfs:label "isMimeEncoded"@en ; + rdfs:range xsd:boolean ; + . + +observable:isMultipart + a owl:DatatypeProperty ; + rdfs:label "isMultipart"@en ; + rdfs:range xsd:boolean ; + . + +observable:isNamed + a owl:DatatypeProperty ; + rdfs:label "isNamed"@en ; + rdfs:range xsd:boolean ; + . + +observable:isOptimized + a owl:DatatypeProperty ; + rdfs:label "isOptimized"@en ; + rdfs:range xsd:boolean ; + . + +observable:isPrivate + a owl:DatatypeProperty ; + rdfs:label "isPrivate"@en ; + rdfs:comment "Is the event marked as private?"@en ; + rdfs:range xsd:boolean ; + . + +observable:isPrivileged + a owl:DatatypeProperty ; + rdfs:label "isPrivileged"@en ; + rdfs:range xsd:boolean ; + . + +observable:isProtected + a owl:DatatypeProperty ; + rdfs:label "isProtected"@en ; + rdfs:comment "The isProtected property specifies whether or not the particular memory object is protected (read/write only from the process that allocated it)."@en ; + rdfs:range xsd:boolean ; + . + +observable:isRead + a owl:DatatypeProperty ; + rdfs:label "isRead"@en ; + rdfs:range xsd:boolean ; + . + +observable:isSURootEnabled + a owl:DatatypeProperty ; + rdfs:label "isSURootEnabled"@en ; + rdfs:comment "Root access through Linux SU binary observed to be enabled. [based on https://en.wikipedia.org/wiki/Rooting_(Android)]"@en ; + rdfs:range xsd:boolean ; + . + +observable:isSecure + a owl:DatatypeProperty ; + rdfs:label "isSecure"@en ; + rdfs:comment "Is the cookie secure? If the cookie is secure it cannot be delivered over an unencrypted session such as http."@en ; + rdfs:range xsd:boolean ; + . + +observable:isSelfSigned + a owl:DatatypeProperty ; + rdfs:label "isSelfSigned"@en ; + rdfs:range xsd:boolean ; + . + +observable:isServiceAccount + a owl:DatatypeProperty ; + rdfs:label "isServiceAccount"@en ; + rdfs:range xsd:boolean ; + . + +observable:isTLD + a owl:DatatypeProperty ; + rdfs:label "isTLD"@en ; + rdfs:range xsd:boolean ; + . + +observable:isVolatile + a owl:DatatypeProperty ; + rdfs:label "isVolatile"@en ; + rdfs:comment "The isVolatile property specifies whether or not the particular memory object is volatile."@en ; + rdfs:range xsd:boolean ; + . + +observable:issuer + a owl:DatatypeProperty ; + rdfs:label "issuer"@en ; + rdfs:range xsd:string ; + . + +observable:issuerAlternativeName + a owl:DatatypeProperty ; + rdfs:label "issuerAlternativeName"@en ; + rdfs:range xsd:string ; + . + +observable:issuerHash + a owl:ObjectProperty ; + rdfs:label "issuerHash"@en ; + rdfs:comment "A hash calculated on the certificate issuer name."@en ; + rdfs:range types:Hash ; + . + +observable:key + a owl:DatatypeProperty ; + rdfs:label "key"@en ; + rdfs:range xsd:string ; + . + +observable:keyUsage + a owl:DatatypeProperty ; + rdfs:label "keyUsage"@en ; + rdfs:range xsd:string ; + . + +observable:keypadUnlockCode + a owl:DatatypeProperty ; + rdfs:label "keypadUnlockCode"@en ; + rdfs:comment "A code or password set on a device for security that must be entered to gain access to the device."@en ; + rdfs:range xsd:string ; + . + +observable:keywordSearchTerm + a owl:DatatypeProperty ; + rdfs:label "Keyword Search Term"@en ; + rdfs:comment "Specifies a string representing a keyword search term contained within the URL field."@en ; + rdfs:range xsd:string ; + . + +observable:labels + a owl:DatatypeProperty ; + rdfs:label "labels"@en ; + rdfs:comment "Named and colored label."@en ; + rdfs:range xsd:string ; + . + +observable:language + a owl:DatatypeProperty ; + rdfs:label "language"@en ; + rdfs:comment """Specifies the language the string is written in, e.g. English. + For consistency, it is strongly recommended to use the ISO 639-2 language code, if available. Please see http://www.loc.gov/standards/iso639-2/php/code_list.php for a list of ISO 639-2 codes."""@en ; + rdfs:range xsd:string ; + . + +observable:lastLoginTime + a owl:DatatypeProperty ; + rdfs:label "lastLoginTime"@en ; + rdfs:comment "The date and time of the last login of the account."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lastName + a owl:DatatypeProperty ; + rdfs:label "lastName"@en ; + rdfs:comment "The last name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:lastRun + a owl:DatatypeProperty ; + rdfs:label "lastRun"@en ; + rdfs:comment "Timestamp of when the prefetch application was last run."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lastShutdownDate + a owl:DatatypeProperty ; + rdfs:label "lastShutdownDate"@en ; + rdfs:comment "Specifies the date on which the device was last shutdown."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lastTimeContacted + a owl:DatatypeProperty ; + rdfs:label "lastTimeContacted"@en ; + rdfs:comment "Last time contacted specifies the date and time that a particular contact was last contacted."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lastVisit + a owl:DatatypeProperty ; + rdfs:label "Last Visit Time"@en ; + rdfs:comment "Specifies the date/time that the URL referred to by the URL field was last visited."@en ; + rdfs:range xsd:dateTime ; + . + +observable:length + a owl:DatatypeProperty ; + rdfs:label "length"@en ; + rdfs:comment "Specifies the length, in characters, of the extracted string."@en ; + rdfs:range xsd:integer ; + . + +observable:libraryType + a owl:DatatypeProperty ; + rdfs:label "libraryType"@en ; + rdfs:comment "Specifies the type of library being characterized."@en ; + rdfs:range xsd:string ; + . + +observable:listedCount + a owl:DatatypeProperty ; + rdfs:label "listedCount"@en ; + rdfs:comment "Specifies the number of public lists that this profile is associated with."@en ; + rdfs:range xsd:integer ; + . + +observable:loaderFlags + a owl:DatatypeProperty ; + rdfs:label "loaderFlags"@en ; + rdfs:comment "Specifies the reserved loader flags"@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:localTime + a owl:DatatypeProperty ; + rdfs:label "localTime"@en ; + rdfs:comment "Specifies the local time on the system."@en ; + rdfs:range xsd:dateTime ; + . + +observable:location + a owl:ObjectProperty ; + rdfs:label "location"@en ; + rdfs:comment "An associated location."@en ; + rdfs:range location:Location ; + . + +observable:loginTime + a owl:DatatypeProperty ; + rdfs:label "loginTime"@en ; + rdfs:comment "Specifies the date/time of the login for the user session."@en ; + rdfs:range xsd:dateTime ; + . + +observable:logoutTime + a owl:DatatypeProperty ; + rdfs:label "logoutTime"@en ; + rdfs:comment "Specifies the date/time of the logout for the user session."@en ; + rdfs:range xsd:dateTime ; + . + +observable:lookupDate + a owl:DatatypeProperty ; + rdfs:label "lookupDate"@en ; + rdfs:comment "Specifies the date and time that the Whois record was queried."@en ; + rdfs:range xsd:dateTime ; + . + +observable:macAddress + a owl:ObjectProperty ; + rdfs:label "macAddress"@en ; + rdfs:comment "Specifies the MAC or hardware address of the physical network card. "@en ; + rdfs:range observable:ObservableObject ; + . + +observable:machine + a owl:DatatypeProperty ; + rdfs:label "machine"@en ; + rdfs:comment "Specifies the type of target machine."@en ; + rdfs:range xsd:string ; + . + +observable:magic + a owl:DatatypeProperty ; + rdfs:label "magic"@en ; + rdfs:comment "Specifies the value that indicates the type of the PE binary."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:magicNumber + a owl:DatatypeProperty ; + rdfs:label "magicNumber"@en ; + rdfs:range xsd:string ; + . + +observable:majorImageVersion + a owl:DatatypeProperty ; + rdfs:label "majorImageVersion"@en ; + rdfs:comment "Specifies the major version number of the image."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:majorLinkerVersion + a owl:DatatypeProperty ; + rdfs:label "majorLinkerVersion"@en ; + rdfs:comment "Specifies the linker major version number."@en ; + rdfs:range xsd:byte ; + . + +observable:majorOSVersion + a owl:DatatypeProperty ; + rdfs:label "majorOSVersion"@en ; + rdfs:comment "Specifies the major version number of the required operating system."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:majorSubsystemVersion + a owl:DatatypeProperty ; + rdfs:label "majorSubsystemVersion"@en ; + rdfs:comment "Specifies the major version number of the subsystem."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:manuallyEnteredCount + a owl:DatatypeProperty ; + rdfs:label "Manually-Entered Count"@en ; + rdfs:comment "Specifies the number of times the URL referred to by the URL field was manually entered into the browser's address field by the user. This field is only applicable for URL history entries generated by Google's Chrome browser."@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:manufacturer + a owl:ObjectProperty ; + rdfs:label "manufacturer"@en ; + rdfs:range identity:Identity ; + . + +observable:maxRunTime + a owl:DatatypeProperty ; + rdfs:label "maxRunTime"@en ; + rdfs:comment "Specifies the maximum run time of the scheduled task before terminating, in milliseconds. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381874(v=vs.85).aspx."@en ; + rdfs:range xsd:integer ; + . + +observable:messageID + a owl:DatatypeProperty ; + rdfs:label "messageID"@en ; + rdfs:comment "An unique identifier for the message."@en ; + rdfs:range xsd:string ; + . + +observable:messageText + a owl:DatatypeProperty ; + rdfs:label "messageText"@en ; + rdfs:comment "The contents of the message."@en ; + rdfs:range xsd:string ; + . + +observable:messageThread + a owl:ObjectProperty ; + rdfs:label "messageThread"@en ; + rdfs:range types:Thread ; + . + +observable:messageType + a owl:DatatypeProperty ; + rdfs:label "messageType"@en ; + rdfs:comment "Message type specifies what sort of message (email, chat, SMS, etc) a Message is."@en ; + rdfs:range xsd:string ; + . + +observable:messagingAddress + a owl:ObjectProperty ; + rdfs:label "messagingAddress"@en ; + rdfs:comment "A messaging address specifies details of an identifier for digital messsaging communication."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:metadataChangeTime + a owl:DatatypeProperty ; + rdfs:label "metadataChangeTime"@en ; + rdfs:comment "The date and time at which the file metadata was last modified."@en ; + rdfs:range xsd:dateTime ; + . + +observable:metadataRecoveredStatus + a owl:DatatypeProperty ; + rdfs:label "metadataRecoveredStatus"@en ; + rdfs:comment "Specifies the recoverability status of the metadata of an object."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:RecoveredObjectStatusVocab + xsd:string + ) ; + ] ; + . + +observable:mftFileID + a owl:DatatypeProperty ; + rdfs:label "mftFileID"@en ; + rdfs:comment "Specifies the record number for the file within an NTFS Master File Table."@en ; + rdfs:range xsd:integer ; + . + +observable:mftFileNameAccessedTime + a owl:DatatypeProperty ; + rdfs:label "mftFileNameAccessedTime"@en ; + rdfs:comment "The access date and time recorded in an MFT entry $File_Name attribute."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mftFileNameCreatedTime + a owl:DatatypeProperty ; + rdfs:label "mftFileNameCreatedTime"@en ; + rdfs:comment "The creation date and time recorded in an MFT entry $File_Name attribute."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mftFileNameLength + a owl:DatatypeProperty ; + rdfs:label "mftFileNameLength"@en ; + rdfs:comment " Specifies the length of an NTFS file name, in unicode characters."@en ; + rdfs:range xsd:integer ; + . + +observable:mftFileNameModifiedTime + a owl:DatatypeProperty ; + rdfs:label "mftFileNameModifiedTime"@en ; + rdfs:comment "The modification date and time recorded in an MFT entry $File_Name attribute."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mftFileNameRecordChangeTime + a owl:DatatypeProperty ; + rdfs:label "mftFileNameRecordChangeTime"@en ; + rdfs:comment "The metadata modification date and time recorded in an MFT entry $File_Name attribute."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mftFlags + a owl:DatatypeProperty ; + rdfs:label "mftFlags"@en ; + rdfs:comment "Specifies basic permissions for the file (Read-Only, Hidden, Archive, Compressed, etc.)."@en ; + rdfs:range xsd:integer ; + . + +observable:mftParentID + a owl:DatatypeProperty ; + rdfs:label "mftParentID"@en ; + rdfs:comment "Specifies the record number within an NTFS Master File Table for parent directory of the file."@en ; + rdfs:range xsd:integer ; + . + +observable:mftRecordChangeTime + a owl:DatatypeProperty ; + rdfs:label "mftRecordChangeTime"@en ; + rdfs:comment "The date and time at which an NTFS file metadata was last modified."@en ; + rdfs:range xsd:dateTime ; + . + +observable:middleName + a owl:DatatypeProperty ; + rdfs:label "middleName"@en ; + rdfs:comment "The middle name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:mimeClass + a owl:DatatypeProperty ; + rdfs:label "mimeClass"@en ; + rdfs:range xsd:string ; + . + +observable:mimeType + a owl:DatatypeProperty ; + rdfs:label "mimeType"@en ; + rdfs:comment "MIME type of the data. For example 'text/html' or 'audio/mp3'."@en ; + rdfs:range xsd:string ; + . + +observable:minorImageVersion + a owl:DatatypeProperty ; + rdfs:label "minorImageVersion"@en ; + rdfs:comment "Specifies the minor version number of the image."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:minorLinkerVersion + a owl:DatatypeProperty ; + rdfs:label "minorLinkerVersion"@en ; + rdfs:comment "Specifies the linker minor version number."@en ; + rdfs:range xsd:byte ; + . + +observable:minorOSVersion + a owl:DatatypeProperty ; + rdfs:label "minorOSVersion"@en ; + rdfs:comment "Specifies the minor version number of the required operating system."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:minorSubsystemVersion + a owl:DatatypeProperty ; + rdfs:label "minorSubsystemVersion"@en ; + rdfs:comment """Specifies the minor version number of the subsystem. + """@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:mockLocationsAllowed + a owl:DatatypeProperty ; + rdfs:label "mockLocationsAllowed"@en ; + rdfs:comment "???."@en ; + rdfs:range xsd:boolean ; + . + +observable:model + a owl:DatatypeProperty ; + rdfs:label "model"@en ; + rdfs:range xsd:string ; + . + +observable:modifiedTime + a owl:DatatypeProperty ; + rdfs:label "modifiedTime"@en ; + rdfs:comment "The date and time at which the Object was last modified."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mostRecentRunTime + a owl:DatatypeProperty ; + rdfs:label "mostRecentRunTime"@en ; + rdfs:comment "Specifies the most recent run date/time of this scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381254(v=vs.85).aspx."@en ; + rdfs:range xsd:dateTime ; + . + +observable:mountPoint + a owl:DatatypeProperty ; + rdfs:label "mountPoint"@en ; + rdfs:comment "Specifies the mount point of the partition."@en ; + rdfs:range xsd:string ; + . + +observable:msProductID + a owl:DatatypeProperty ; + rdfs:label "msProductID"@en ; + rdfs:comment "The Microsoft Product ID. See also: http://support.microsoft.com/gp/pidwin."@en ; + rdfs:range xsd:string ; + . + +observable:msProductName + a owl:DatatypeProperty ; + rdfs:label "msProductName"@en ; + rdfs:comment "The Microsoft ProductName of the current installation of Windows. This is typically found in HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion!ProductName."@en ; + rdfs:range xsd:string ; + . + +observable:mutexName + a owl:DatatypeProperty ; + rdfs:label "mutexName"@en ; + rdfs:comment "Specifies the name identifier for a specific instance of a mechanism that enforces limits on access to a resource when there are many threads of execution ."@en ; + rdfs:range xsd:string ; + . + +observable:nameConstraints + a owl:DatatypeProperty ; + rdfs:label "nameConstraints"@en ; + rdfs:range xsd:string ; + . + +observable:namePhonetic + a owl:DatatypeProperty ; + rdfs:label "namePhonetic"@en ; + rdfs:comment "Name phonetic specifies the phonetic pronunciation of the name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:namePrefix + a owl:DatatypeProperty ; + rdfs:label "namePrefix"@en ; + rdfs:comment "Name prefix specifies an honorific prefix (coming ordinally before first/given name) for the name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:nameRecoveredStatus + a owl:DatatypeProperty ; + rdfs:label "nameRecoveredStatus"@en ; + rdfs:comment "Specifies the recoverability status of the name of an object."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:RecoveredObjectStatusVocab + xsd:string + ) ; + ] ; + . + +observable:nameServer + a owl:ObjectProperty ; + rdfs:label "nameServer"@en ; + rdfs:comment "Specifies a list of name server entries for a Whois entry."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:nameSuffix + a owl:DatatypeProperty ; + rdfs:label "nameSuffix"@en ; + rdfs:comment "Name suffix specifies an suffix (coming ordinally after last/family name) for the name of a person."@en ; + rdfs:range xsd:string ; + . + +observable:netBIOSName + a owl:DatatypeProperty ; + rdfs:label "netBIOSName"@en ; + rdfs:comment "Specifies the NetBIOS (Network Basic Input/Output System) name of the Windows system. This is not the same as the host name."@en ; + rdfs:range xsd:string ; + . + +observable:network + a owl:DatatypeProperty ; + rdfs:label "network"@en ; + rdfs:comment "???."@en ; + rdfs:range xsd:string ; + . + +observable:networkInterface + a owl:ObjectProperty ; + rdfs:label "networkInterface"@en ; + rdfs:comment "Specifies the list of network interfaces present on the system."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:newObject + a owl:ObjectProperty ; + rdfs:label "newObject"@en ; + rdfs:comment "Specifies the observable object and its properties as they are after the state change effect occurred."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:nextRunTime + a owl:DatatypeProperty ; + rdfs:label "nextRunTime"@en ; + rdfs:comment "Specifies the next run date/time of the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381257(v=vs.85).aspx."@en ; + rdfs:range xsd:dateTime ; + . + +observable:nickname + a owl:DatatypeProperty ; + rdfs:label "nickname"@en ; + rdfs:comment "Nickname specifies an alternate, unofficial and typically informal name for a person independent of their official name."@en ; + rdfs:range xsd:string ; + . + +observable:ntfsHardLinkCount + a owl:DatatypeProperty ; + rdfs:label "ntfsHardLinkCount"@en ; + rdfs:comment "Specifies the number of directory entries that reference an NTFS file record."@en ; + rdfs:range xsd:integer ; + . + +observable:ntfsOwnerID + a owl:DatatypeProperty ; + rdfs:label "ntfsOwnerID"@en ; + rdfs:comment "Specifies the identifier of the file owner, from the security index."@en ; + rdfs:range xsd:string ; + . + +observable:ntfsOwnerSID + a owl:DatatypeProperty ; + rdfs:label "ntfsOwnerSID"@en ; + rdfs:comment "Specifies the security ID (key in the $SII Index and $SDS DataStream in the file $Secure) for an NTFS file."@en ; + rdfs:range xsd:string ; + . + +observable:number + a owl:DatatypeProperty ; + rdfs:label "number"@en ; + rdfs:range xsd:integer ; + . + +observable:numberOfLaunches + a owl:DatatypeProperty ; + rdfs:label "numberOfLaunches"@en ; + rdfs:range xsd:integer ; + . + +observable:numberOfRVAAndSizes + a owl:DatatypeProperty ; + rdfs:label "numberOfRVAAndSizes"@en ; + rdfs:comment "Specifies the number of data-directory entries in the remainder of the optional header."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:numberOfSections + a owl:DatatypeProperty ; + rdfs:label "numberOfSections"@en ; + rdfs:comment "Specifies the number of sections in the PE binary, as a non-negative integer."@en ; + rdfs:range xsd:integer ; + . + +observable:numberOfSubkeys + a owl:DatatypeProperty ; + rdfs:label "numberOfSubkeys"@en ; + rdfs:range xsd:integer ; + . + +observable:numberOfSymbols + a owl:DatatypeProperty ; + rdfs:label "numberOfSymbols"@en ; + rdfs:comment "Specifies the number of entries in the symbol table of the PE binary, as a non-negative integer."@en ; + rdfs:range xsd:integer ; + . + +observable:numberTimesContacted + a owl:DatatypeProperty ; + rdfs:label "numberTimesContacted"@en ; + rdfs:comment "Number times contacted specifies the number of times a particular contact has been contacted."@en ; + rdfs:range xsd:integer ; + . + +observable:objectGUID + a owl:DatatypeProperty ; + rdfs:label "objectGUID"@en ; + rdfs:range xsd:string ; + . + +observable:observableCreatedTime + a owl:DatatypeProperty ; + rdfs:label "observableCreatedTime"@en ; + rdfs:comment "The date and time at which the observable object being characterized was created. This time pertains to an intrinsic characteristic of the observable object, and would be consistent across independent characterizations or observations of the observable object."@en ; + rdfs:range xsd:dateTime ; + . + +observable:oldObject + a owl:ObjectProperty ; + rdfs:label "oldObject"@en ; + rdfs:comment "Specifies the observable object and its properties as they were before the state change effect occurred."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:openFileDescriptor + a owl:DatatypeProperty ; + rdfs:label "openFileDescriptor"@en ; + rdfs:comment "Specifies a listing of the current file descriptors used by the Unix process."@en ; + rdfs:range xsd:integer ; + . + +observable:operatingSystem + a owl:ObjectProperty ; + rdfs:label "operatingSystem"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:optionalHeader + a owl:ObjectProperty ; + rdfs:label "optionalHeader"@en ; + rdfs:comment "Specifies the PE optional header of the PE binary."@en ; + rdfs:range observable:WindowsPEOptionalHeader ; + . + +observable:options + a owl:DatatypeProperty ; + rdfs:label "options"@en ; + rdfs:comment "Specifies any options used when mounting the volume."@en ; + rdfs:range xsd:string ; + . + +observable:organizationDepartment + a owl:DatatypeProperty ; + rdfs:label "organizationDepartment"@en ; + rdfs:comment "Specifies a particular suborganization (division, branch, office, etc.) that exists within a larger organization."@en ; + rdfs:range xsd:string ; + . + +observable:organizationLocation + a owl:ObjectProperty ; + rdfs:label "organizationLocation"@en ; + rdfs:comment "Specifies a geolocation address of an organization."@en ; + rdfs:range observable:ContactAddress ; + . + +observable:organizationPosition + a owl:DatatypeProperty ; + rdfs:label "organizationPosition"@en ; + rdfs:comment "Specifies the title or role that a person plays within an organization."@en ; + rdfs:range xsd:string ; + . + +observable:osInstallDate + a owl:DatatypeProperty ; + rdfs:label "osInstallDate"@en ; + rdfs:comment "Specifies the date on which the operating system (OS) was installed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:osLastUpgradeDate + a owl:DatatypeProperty ; + rdfs:label "osLastUpgradeDate"@en ; + rdfs:comment "Specifies the date on which the operating system (OS) was last upgraded."@en ; + rdfs:range xsd:dateTime ; + . + +observable:otherHeaders + a owl:ObjectProperty ; + rdfs:label "otherHeaders"@en ; + rdfs:range types:Dictionary ; + . + +observable:owner + a owl:ObjectProperty ; + rdfs:label "owner"@en ; + rdfs:comment "Specifies the owner of an Observable Object."@en ; + rdfs:range core:UcoObject ; + . + +observable:ownerSID + a owl:DatatypeProperty ; + rdfs:label "ownerSID"@en ; + rdfs:range xsd:string ; + . + +observable:pageTitle + a owl:DatatypeProperty ; + rdfs:label "Page Title"@en ; + rdfs:comment "Specifies the title of a web page."@en ; + rdfs:range xsd:string ; + . + +observable:parameterAddress + a owl:DatatypeProperty ; + rdfs:label "parameterAddress"@en ; + rdfs:range xsd:hexBinary ; + . + +observable:parameters + a owl:DatatypeProperty ; + rdfs:label "parameters"@en ; + rdfs:comment "Specifies the command line parameters used to launch the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381875(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:parent + a owl:ObjectProperty ; + rdfs:label "parent"@en ; + rdfs:comment "The process that created this process."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:participant + a owl:ObjectProperty ; + rdfs:label "participant"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:partition + a owl:ObjectProperty ; + rdfs:label "partition"@en ; + rdfs:comment "The partitions that reside on the disk."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:partitionID + a owl:DatatypeProperty ; + rdfs:label "partitionID"@en ; + rdfs:comment "Specifies the identifier of the partition, as provided by the containing partition table. This identifier is the index value within the partition table, and is expected to be an incrementing alphanumeric value (numeric in most partition systems), not a GUID or UUID. Sorting partitions by this index should first attempt to sort a numeric cast of the value."@en ; + rdfs:range xsd:string ; + . + +observable:partitionLength + a owl:DatatypeProperty ; + rdfs:label "partitionLength"@en ; + rdfs:comment "Specifies the length of the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:partitionOffset + a owl:DatatypeProperty ; + rdfs:label "partitionOffset"@en ; + rdfs:comment "Specifies the starting offset of the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:password + a owl:DatatypeProperty ; + rdfs:label "password"@en ; + rdfs:comment "Specifies an authentication password."@en ; + rdfs:range xsd:string ; + . + +observable:passwordLastChanged + a owl:DatatypeProperty ; + rdfs:label "passwordLastChanged"@en ; + rdfs:comment "The date and time that the password was last changed."@en ; + rdfs:range xsd:dateTime ; + . + +observable:passwordType + a owl:DatatypeProperty ; + rdfs:label "passwordType"@en ; + rdfs:comment "The type of password, for instance plain-text or encrypted."@en ; + rdfs:range xsd:string ; + . + +observable:path + a owl:DatatypeProperty ; + rdfs:label "path"@en ; + rdfs:comment "Specifies the location of one object within another containing object."@en ; + rdfs:range xsd:string ; + . + +observable:pdfCreationDate + a owl:DatatypeProperty ; + rdfs:label "pdfCreationDate"@en ; + rdfs:comment "The PDF CreationDate property is defined in ISO 32000-1:2008 as 'The date and time the document was created, in human-readable form' (Table 317). As a UCO property, its value is converted to xsd:dateTime."@en ; + rdfs:range xsd:dateTime ; + . + +observable:pdfId0 + a owl:DatatypeProperty ; + rdfs:label "pdfId0"@en ; + rdfs:range xsd:string ; + . + +observable:pdfId1 + a owl:DatatypeProperty ; + rdfs:label "pdfId1"@en ; + rdfs:range xsd:string ; + . + +observable:pdfModDate + a owl:DatatypeProperty ; + rdfs:label "pdfModDate"@en ; + rdfs:comment "The PDF ModDate property is defined in ISO 32000-1:2008 as 'The date and time the document was most recently modified, in human-readable form' (Table 317). As a UCO property, its value is converted to xsd:dateTime."@en ; + rdfs:range xsd:dateTime ; + . + +observable:peType + a owl:DatatypeProperty ; + rdfs:label "peType"@en ; + rdfs:comment "Specifies the type of the PE binary."@en ; + rdfs:range xsd:string ; + . + +observable:phoneActivationTime + a owl:DatatypeProperty ; + rdfs:label "phoneActivationTime"@en ; + rdfs:comment "The date and time that a device was activated."@en ; + rdfs:range xsd:dateTime ; + . + +observable:phoneNumber + a owl:DatatypeProperty ; + rdfs:label "phoneNumber"@en ; + rdfs:comment "A phone number(account)."@en ; + rdfs:range xsd:string ; + . + +observable:pictureHeight + a owl:DatatypeProperty ; + rdfs:label "pictureHeight"@en ; + rdfs:range xsd:integer ; + . + +observable:pictureType + a owl:DatatypeProperty ; + rdfs:label "pictureType"@en ; + rdfs:comment "The type of a picture, for example a thumbnail."@en ; + rdfs:range xsd:string ; + . + +observable:pictureWidth + a owl:DatatypeProperty ; + rdfs:label "pictureWidth"@en ; + rdfs:comment "The width of the picture in pixels."@en ; + rdfs:range xsd:integer ; + . + +observable:pid + a owl:DatatypeProperty ; + rdfs:label "pid"@en ; + rdfs:comment "The Process ID, or PID, of the process."@en ; + rdfs:range xsd:integer ; + . + +observable:pointerToSymbolTable + a owl:DatatypeProperty ; + rdfs:label "pointerToSymbolTable"@en ; + rdfs:comment "Specifies the file offset of the COFF symbol table."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:policyConstraints + a owl:DatatypeProperty ; + rdfs:label "policyConstraints"@en ; + rdfs:range xsd:string ; + . + +observable:policyMappings + a owl:DatatypeProperty ; + rdfs:label "policyMappings"@en ; + rdfs:range xsd:string ; + . + +observable:port + a owl:DatatypeProperty ; + rdfs:label "port"@en ; + rdfs:comment "Port on which communication takes place."@en ; + rdfs:range xsd:integer ; + . + +observable:prefetchHash + a owl:DatatypeProperty ; + rdfs:label "prefetchHash"@en ; + rdfs:comment "An eight character hash of the location from which the application was run."@en ; + rdfs:range xsd:string ; + . + +observable:priority + a owl:DatatypeProperty ; + rdfs:label "priority"@en ; + rdfs:comment "The priority of the email."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:integer + xsd:string + vocabulary:TaskPriorityVocab + ) ; + ] ; + . + +observable:privateKeyUsagePeriodNotAfter + a owl:DatatypeProperty ; + rdfs:label "privateKeyUsagePeriodNotAfter"@en ; + rdfs:range xsd:dateTime ; + . + +observable:privateKeyUsagePeriodNotBefore + a owl:DatatypeProperty ; + rdfs:label "privateKeyUsagePeriodNotBefore"@en ; + rdfs:range xsd:dateTime ; + . + +observable:processorArchitecture + a owl:DatatypeProperty ; + rdfs:label "processorArchitecture"@en ; + rdfs:comment "Specifies the specific architecture (e.g. x86) used by the CPU of the system."@en ; + rdfs:range xsd:string ; + . + +observable:profile + a owl:ObjectProperty ; + rdfs:label "profile"@en ; + rdfs:comment "A profile specifies a particular online service profile."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:profileAccount + a owl:ObjectProperty ; + rdfs:label "Profile Account"@en-US ; + rdfs:comment "Specifies the online service account associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileBackgroundHash + a owl:ObjectProperty ; + rdfs:label "Profile Background Hash"@en-US ; + rdfs:comment "Specifies hashes of the background associated with the profile."@en-US ; + rdfs:range types:Hash ; + . + +observable:profileBackgroundLocation + a owl:ObjectProperty ; + rdfs:label "Profile Background Location"@en-US ; + rdfs:comment "Specifies the network location of the background associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileBannerHash + a owl:ObjectProperty ; + rdfs:label "Profile Banner Hash"@en-US ; + rdfs:comment "Specifies hashes of the banner associated with the profile."@en-US ; + rdfs:range types:Hash ; + . + +observable:profileBannerLocation + a owl:ObjectProperty ; + rdfs:label "Profile Banner Location"@en-US ; + rdfs:comment "Specifies the network location of the banner associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileCreated + a owl:DatatypeProperty ; + rdfs:label "Profile Created"@en-US ; + rdfs:comment "Specifies the date and time the profile was created."@en-US ; + rdfs:range xsd:dateTime ; + . + +observable:profileIdentity + a owl:ObjectProperty ; + rdfs:label "Profile Identity"@en-US ; + rdfs:comment "Specifies the identity associated with the profile."@en-US ; + rdfs:range identity:Identity ; + . + +observable:profileImageHash + a owl:ObjectProperty ; + rdfs:label "Profile Image Hash"@en-US ; + rdfs:comment "Specifies hashes of the profile image associated with the profile."@en-US ; + rdfs:range types:Hash ; + . + +observable:profileImageLocation + a owl:ObjectProperty ; + rdfs:label "Profile Image Location"@en-US ; + rdfs:comment "Specifies the network location of the profile image associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileIsProtected + a owl:DatatypeProperty ; + rdfs:label "Is_Protected"@en-US ; + rdfs:comment "Specifies whether the twitter profile is protected."@en-US ; + rdfs:range xsd:boolean ; + . + +observable:profileIsVerified + a owl:DatatypeProperty ; + rdfs:label "Is_Verified"@en-US ; + rdfs:comment "Specifies whether the twitter profile is verified."@en-US ; + rdfs:range xsd:boolean ; + . + +observable:profileLanguage + a owl:DatatypeProperty ; + rdfs:label "Profile Language"@en-US ; + rdfs:comment "Specifies the language associated with the profile. When present, it MUST be a language code conformant to RFC 5646/BCP47."@en-US ; + rdfs:range xsd:string ; + . + +observable:profileService + a owl:ObjectProperty ; + rdfs:label "Profile Service"@en-US ; + rdfs:comment "Specifies the online service associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:profileWebsite + a owl:ObjectProperty ; + rdfs:label "Profile Website"@en-US ; + rdfs:comment "Specifies the website URL associated with the profile."@en-US ; + rdfs:range observable:ObservableObject ; + . + +observable:properties + a owl:DatatypeProperty ; + rdfs:label "properties"@en ; + rdfs:comment "Specifies the properties that were enumerated as a result of the action on the observable object."@en ; + rdfs:range xsd:string ; + . + +observable:propertyName + a owl:DatatypeProperty ; + rdfs:label "propertyName"@en ; + rdfs:comment "Specifies the Name of the property being read."@en ; + rdfs:range xsd:string ; + . + +observable:protocols + a owl:ObjectProperty ; + rdfs:label "protocols"@en ; + rdfs:comment "Specifies the protocols involved in the network connection, along with their corresponding state. "@en ; + rdfs:range types:ControlledDictionary ; + . + +observable:query + a owl:DatatypeProperty ; + rdfs:label "query"@en ; + rdfs:comment "Query passed to the resource."@en ; + rdfs:range xsd:string ; + . + +observable:rangeOffset + a owl:DatatypeProperty ; + rdfs:label "rangeOffset"@en ; + rdfs:comment "The offset at which the start of data can be found, relative to the rangeOffsetType defined."@en ; + rdfs:range xsd:integer ; + . + +observable:rangeOffsetType + a owl:DatatypeProperty ; + rdfs:label "rangeOffsetType"@en ; + rdfs:comment "The type of offset defined for the range (e.g., image, file, address)."@en ; + rdfs:range xsd:string ; + . + +observable:rangeSize + a owl:DatatypeProperty ; + rdfs:label "rangeSize"@en ; + rdfs:comment "The size of the data in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:receivedLines + a owl:DatatypeProperty ; + rdfs:label "receivedLines"@en ; + rdfs:range xsd:string ; + . + +observable:receivedTime + a owl:DatatypeProperty ; + rdfs:label "receivedTime"@en ; + rdfs:comment "The date and time at which the message received. "@en ; + rdfs:range xsd:dateTime ; + . + +observable:recordFieldIsNull + a owl:DatatypeProperty ; + rdfs:label "recordFieldIsNull"@en ; + rdfs:comment "Whether the specified database record field is null."@en ; + rdfs:range xsd:boolean ; + . + +observable:recordFieldName + a owl:DatatypeProperty ; + rdfs:label "recordFieldName"@en ; + rdfs:comment "A field name of a database record value being identified."@en ; + rdfs:range xsd:string ; + . + +observable:recordFieldValue + a owl:DatatypeProperty ; + rdfs:label "recordFieldValue"@en ; + rdfs:comment "The field value of a specified database record."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:base64Binary + xsd:decimal + xsd:integer + xsd:string + ) ; + ] ; + . + +observable:recordRowID + a owl:DatatypeProperty ; + rdfs:label "recordRowID"@en ; + rdfs:comment "The unique ID that identifies a database record, supplied by the originating database engine."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:integer + xsd:string + ) ; + ] ; + . + +observable:recurrence + a owl:DatatypeProperty ; + rdfs:label "recurrence"@en ; + rdfs:comment "Recurrence of the event."@en ; + rdfs:range xsd:string ; + . + +observable:references + a owl:ObjectProperty ; + rdfs:label "references"@en ; + rdfs:comment "A list of email message identifiers this email relates to."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:referralURL + a owl:ObjectProperty ; + rdfs:label "referralURL"@en ; + rdfs:comment "Specifies the corresponding referral URL for a registrar."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:referrerUrl + a owl:ObjectProperty ; + rdfs:label "referrerURL"@en ; + rdfs:comment "Specifies the origination point (i.e., URL) of a URL request."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:regionEndAddress + a owl:DatatypeProperty ; + rdfs:label "regionEndAddress"@en ; + rdfs:comment "The regionEndAddress property specifies the ending address of the particular memory region."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:regionSize + a owl:DatatypeProperty ; + rdfs:label "regionSize"@en ; + rdfs:comment "The regionSize property specifies the size of the particular memory region, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:regionStartAddress + a owl:DatatypeProperty ; + rdfs:label "regionStartAddress"@en ; + rdfs:comment """The regionStartAddress property specifies the starting address of the particular memory region. + """@en ; + rdfs:range xsd:hexBinary ; + . + +observable:regionalInternetRegistry + a owl:DatatypeProperty ; + rdfs:label "regionalInternetRegistry"@en ; + rdfs:comment "specifies the name of the Regional Internet Registry (RIR) which allocated the IP address contained in a WHOIS entry."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:RegionalRegistryTypeVocab + xsd:string + ) ; + ] ; + . + +observable:regionalInternetRegistry-shape-value-not-vocabulary-member + a sh:PropertyShape ; + sh:message "Value is not member of the vocabulary RegionalRegistryTypeVocab." ; + sh:or ( + [ + sh:datatype vocabulary:RegionalRegistryTypeVocab ; + sh:in ( + "APNIC"^^vocabulary:RegionalRegistryTypeVocab + "ARIN"^^vocabulary:RegionalRegistryTypeVocab + "AfriNIC"^^vocabulary:RegionalRegistryTypeVocab + "LACNIC"^^vocabulary:RegionalRegistryTypeVocab + "RIPE NCC"^^vocabulary:RegionalRegistryTypeVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path observable:regionalInternetRegistry ; + . + +observable:regionalInternetRegistry-shape-value-outside-default-vocabulary + a sh:PropertyShape ; + sh:datatype vocabulary:RegionalRegistryTypeVocab ; + sh:message "Value is outside the default vocabulary RegionalRegistryTypeVocab." ; + sh:path observable:regionalInternetRegistry ; + sh:severity sh:Info ; + . + +observable:registeredOrganization + a owl:ObjectProperty ; + rdfs:label "registeredOrganization"@en ; + rdfs:comment "The organization that this copy of Windows is registered to."@en ; + rdfs:range identity:Identity ; + . + +observable:registeredOwner + a owl:ObjectProperty ; + rdfs:label "registeredOwner"@en ; + rdfs:comment "The person or organization that is the registered owner of this copy of Windows."@en ; + rdfs:range identity:Identity ; + . + +observable:registrantContactInfo + a owl:ObjectProperty ; + rdfs:label "registrantContactInfo"@en ; + rdfs:comment "Specifies contact info for the registrant of a domain within a WHOIS entity."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:registrantIDs + a owl:DatatypeProperty ; + rdfs:label "registrantIDs"@en ; + rdfs:comment "Specifies the registrant IDs associated with a domain lookup."@en ; + rdfs:range xsd:string ; + . + +observable:registrarGUID + a owl:DatatypeProperty ; + rdfs:label "registrarGUID"@en ; + rdfs:comment "Specifies the Registrar GUID field of a Whois entry."@en ; + rdfs:range xsd:string ; + . + +observable:registrarID + a owl:DatatypeProperty ; + rdfs:label "registrarID"@en ; + rdfs:comment "Specifies the Registrar ID field of a Whois entry."@en ; + rdfs:range xsd:string ; + . + +observable:registrarInfo + a owl:ObjectProperty ; + rdfs:label "registrarInfo"@en ; + rdfs:comment "Specifies registrar info that would be returned from a registrar lookup."@en ; + rdfs:range observable:WhoisRegistrarInfoType ; + . + +observable:registrarName + a owl:DatatypeProperty ; + rdfs:label "registrarName"@en ; + rdfs:comment "The name of the registrar organization."@en ; + rdfs:range xsd:string ; + . + +observable:registryValues + a owl:ObjectProperty ; + rdfs:label "registryValues"@en ; + rdfs:comment "The values that were enumerated as a result of the action on the object."@en ; + rdfs:range observable:WindowsRegistryValue ; + . + +observable:remarks + a owl:DatatypeProperty ; + rdfs:label "remarks"@en ; + rdfs:comment "Specifies any remarks associated with this Whois entry."@en ; + rdfs:range xsd:string ; + . + +observable:remindTime + a owl:DatatypeProperty ; + rdfs:label "remindTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:requestMethod + a owl:DatatypeProperty ; + rdfs:label "requestMethod"@en ; + rdfs:comment """Specifies the HTTP method portion of the HTTP request line, as a lowercase string. + """@en ; + rdfs:range xsd:string ; + . + +observable:requestValue + a owl:DatatypeProperty ; + rdfs:label "requestValue"@en ; + rdfs:comment "Specifies the value (typically a resource path) portion of the HTTP request line."@en ; + rdfs:range xsd:string ; + . + +observable:requestVersion + a owl:DatatypeProperty ; + rdfs:label "requestVersion"@en ; + rdfs:comment "Specifies the HTTP version portion of the HTTP request line, as a lowercase string."@en ; + rdfs:range xsd:string ; + . + +observable:rowCondition + a owl:DatatypeProperty ; + rdfs:label "rowCondition"@en ; + rdfs:range xsd:string ; + . + +observable:rowIndex + a owl:DatatypeProperty ; + rdfs:label "rowIndex"@en ; + rdfs:range xsd:positiveInteger ; + . + +observable:ruid + a owl:DatatypeProperty ; + rdfs:label "ruid"@en ; + rdfs:comment "Specifies the real user ID, which represents the Unix user who created the process."@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:runningStatus + a owl:DatatypeProperty ; + rdfs:label "runningStatus"@en ; + rdfs:range xsd:string ; + . + +observable:scheme + a owl:DatatypeProperty ; + rdfs:label "scheme"@en ; + rdfs:comment "Identifies the type of URL."@en ; + rdfs:range xsd:string ; + . + +observable:sectionAlignment + a owl:DatatypeProperty ; + rdfs:label "sectionAlignment"@en ; + rdfs:comment "Specifies the alignment (in bytes) of PE sections when they are loaded into memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sections + a owl:ObjectProperty ; + rdfs:label "sections"@en ; + rdfs:comment "Specifies metadata about the sections in the PE file."@en ; + rdfs:range observable:WindowsPESection ; + . + +observable:sectorSize + a owl:DatatypeProperty ; + rdfs:label "sectorSize"@en ; + rdfs:comment "The sector size of the volume in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:securityAttributes + a owl:DatatypeProperty ; + rdfs:label "securityAttributes"@en ; + rdfs:range xsd:string ; + . + +observable:sender + a owl:ObjectProperty ; + rdfs:label "sender"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:sentTime + a owl:DatatypeProperty ; + rdfs:label "sentTime"@en ; + rdfs:comment "The date and time at which the message sent."@en ; + rdfs:range xsd:dateTime ; + . + +observable:serialNumber + a owl:DatatypeProperty ; + rdfs:label "serialNumber"@en ; + rdfs:range xsd:string ; + . + +observable:serverName + a owl:ObjectProperty ; + rdfs:label "serverName"@en ; + rdfs:comment "Specifies the corresponding server name for a whois entry. This usually corresponds to a name server lookup."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:serviceName + a owl:DatatypeProperty ; + rdfs:label "serviceName"@en ; + rdfs:range xsd:string ; + . + +observable:serviceStatus + a owl:DatatypeProperty ; + rdfs:label "serviceStatus"@en ; + rdfs:range xsd:string ; + . + +observable:serviceType + a owl:DatatypeProperty ; + rdfs:label "serviceType"@en ; + rdfs:range xsd:string ; + . + +observable:sessionID + a owl:DatatypeProperty ; + rdfs:label "sessionID"@en ; + rdfs:comment "An identifier for the session from which the message originates."@en ; + rdfs:range xsd:string ; + . + +observable:shell + a owl:DatatypeProperty ; + rdfs:label "shell"@en ; + rdfs:range xsd:string ; + . + +observable:showMessageBody + a owl:DatatypeProperty ; + rdfs:label "showMessageBody"@en ; + rdfs:comment "Specifies the message text that is displayed in the body of the message box by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381302(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:showMessageTitle + a owl:DatatypeProperty ; + rdfs:label "showMessageTitle"@en ; + rdfs:comment "Specifies the title of the message box shown by the action. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381302(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:sid + a owl:DatatypeProperty ; + rdfs:label "sid"@en ; + rdfs:range xsd:string ; + . + +observable:signalStrength + a owl:DatatypeProperty ; + rdfs:label "signalStrength"@en ; + rdfs:comment "The strength of the antenna signal."@en ; + rdfs:range xsd:string ; + . + +observable:signature + a owl:DatatypeProperty ; + rdfs:label "signature"@en ; + rdfs:comment "A"@en ; + rdfs:range xsd:string ; + . + +observable:signatureAlgorithm + a owl:DatatypeProperty ; + rdfs:label "signatureAlgorithm"@en ; + rdfs:range xsd:string ; + . + +observable:signatureDescription + a owl:DatatypeProperty ; + rdfs:label "signatureDescription"@en ; + rdfs:range xsd:string ; + . + +observable:signatureExists + a owl:DatatypeProperty ; + rdfs:label "signatureExists"@en ; + rdfs:range xsd:boolean ; + . + +observable:signatureVerified + a owl:DatatypeProperty ; + rdfs:label "signatureVerified"@en ; + rdfs:range xsd:boolean ; + . + +observable:sipAddress + a owl:ObjectProperty ; + rdfs:label "sipAddress"@en ; + rdfs:comment "A SIP address specifies Session Initiation Protocol (SIP) identifier."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:size + a owl:DatatypeProperty ; + rdfs:label "size"@en ; + rdfs:comment "Specifies the size of the section, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:sizeInBytes + a owl:DatatypeProperty ; + rdfs:label "sizeInBytes"@en ; + rdfs:comment "The size of the data in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:sizeOfCode + a owl:DatatypeProperty ; + rdfs:label "sizeOfCode"@en ; + rdfs:comment "Specifies the size of the code (text) section. If there are multiple such sections, this refers to the sum of the sizes of each section."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfHeaders + a owl:DatatypeProperty ; + rdfs:label "sizeOfHeaders"@en ; + rdfs:comment "Specifies the combined size of the MS-DOS, PE header, and section headers, rounded up a multiple of the value specified in the file_alignment header."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfHeapCommit + a owl:DatatypeProperty ; + rdfs:label "sizeOfHeapCommit"@en ; + rdfs:comment "Specifies the size of the local heap space to commit."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfHeapReserve + a owl:DatatypeProperty ; + rdfs:label "sizeOfHeapReserve"@en ; + rdfs:comment "Specifies the size of the local heap space to reserve."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfImage + a owl:DatatypeProperty ; + rdfs:label "sizeOfImage"@en ; + rdfs:comment "Specifies the size, in bytes, of the image, including all headers, as the image is loaded in memory."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfInitializedData + a owl:DatatypeProperty ; + rdfs:label "sizeOfInitializedData"@en ; + rdfs:comment "Specifies the size of the initialized data section. If there are multiple such sections, this refers to the sum of the sizes of each section."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfOptionalHeader + a owl:DatatypeProperty ; + rdfs:label "sizeOfOptionalHeader"@en ; + rdfs:comment "Specifies the size of the optional header of the PE binary. "@en ; + rdfs:range xsd:integer ; + . + +observable:sizeOfStackCommit + a owl:DatatypeProperty ; + rdfs:label "sizeOfStackCommit"@en ; + rdfs:comment "Specifies the size of the stack to commit."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfStackReserve + a owl:DatatypeProperty ; + rdfs:label "sizeOfStackReserve"@en ; + rdfs:comment "Specifies the size of the stack to reserve."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:sizeOfUninitializedData + a owl:DatatypeProperty ; + rdfs:label "sizeOfUninitializedData"@en ; + rdfs:comment "Specifies the size of the uninitialized data section. If there are multiple such sections, this refers to the sum of the sizes of each section."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:skew + a owl:DatatypeProperty ; + rdfs:label "skew"@en ; + rdfs:comment "The angle in degrees of the radial rotation around its main beam direction."@en ; + rdfs:range xsd:decimal ; + . + +observable:sourceApplication + a owl:ObjectProperty ; + rdfs:label "sourceApplication"@en ; + rdfs:comment "Source application specifies the software application that a particular contact or contact list is associated with."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:sourceFlags + a owl:DatatypeProperty ; + rdfs:label "sourceFlags"@en ; + rdfs:comment "Specifies the source TCP flags."@en ; + rdfs:range xsd:hexBinary ; + . + +observable:sourcePort + a owl:DatatypeProperty ; + rdfs:label "sourcePort"@en ; + rdfs:comment """Specifies the source port used in the connection, as an integer in the range of 0 - 65535. + """@en ; + rdfs:range xsd:integer ; + . + +observable:spaceLeft + a owl:DatatypeProperty ; + rdfs:label "spaceLeft"@en ; + rdfs:comment "Specifies the amount of space left on the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:spaceUsed + a owl:DatatypeProperty ; + rdfs:label "spaceUsed"@en ; + rdfs:comment "Specifies the amount of space used on the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:sponsoringRegistrar + a owl:DatatypeProperty ; + rdfs:label "sponsoringRegistrar"@en ; + rdfs:comment "Specifies the name of the sponsoring registrar for a domain."@en ; + rdfs:range xsd:string ; + . + +observable:src + a owl:ObjectProperty ; + rdfs:label "src"@en ; + rdfs:comment "Specifies the source(s) of the network connection."@en ; + rdfs:range core:UcoObject ; + . + +observable:srcBytes + a owl:DatatypeProperty ; + rdfs:label "srcBytes"@en ; + rdfs:range xsd:integer ; + . + +observable:srcPackets + a owl:DatatypeProperty ; + rdfs:label "srcPackets"@en ; + rdfs:range xsd:integer ; + . + +observable:srcPayload + a owl:ObjectProperty ; + rdfs:label "srcPayload"@en ; + rdfs:range observable:ObservableObject ; + . + +observable:ssid + a owl:DatatypeProperty ; + rdfs:label "ssid"@en ; + rdfs:comment "Network identifier."@en ; + rdfs:range xsd:string ; + . + +observable:stackSize + a owl:DatatypeProperty ; + rdfs:label "stackSize"@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:startAddress + a owl:DatatypeProperty ; + rdfs:label "startAddress"@en ; + rdfs:range xsd:hexBinary ; + . + +observable:startCommandLine + a owl:DatatypeProperty ; + rdfs:label "startCommandLine"@en ; + rdfs:range xsd:string ; + . + +observable:startTime + a owl:DatatypeProperty ; + rdfs:label "startTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:startType + a owl:DatatypeProperty ; + rdfs:label "startType"@en ; + rdfs:range xsd:string ; + . + +observable:startupInfo + a owl:ObjectProperty ; + rdfs:label "startupInfo"@en ; + rdfs:range types:Dictionary ; + . + +observable:state + a owl:DatatypeProperty ; + rdfs:label "State"@en ; + rdfs:range xsd:string ; + . + +observable:status + a owl:DatatypeProperty ; + rdfs:label "status"@en ; + rdfs:comment "Specifies a list of statuses for a given Whois entry."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:TaskStatusVocab + vocabulary:WhoisStatusTypeVocab + ) ; + ] ; + . + +observable:statusesCount + a owl:DatatypeProperty ; + rdfs:label "Statuses Count"@en-US ; + rdfs:comment "Specifies the number of tweets that this profile has issued."@en-US ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:storageCapacityInBytes + a owl:DatatypeProperty ; + rdfs:label "storageCapacityInBytes"@en ; + rdfs:comment "The number of bytes that can be stored on a SIM card."@en ; + rdfs:range xsd:integer ; + . + +observable:stringValue + a owl:DatatypeProperty ; + rdfs:label "stringValue"@en ; + rdfs:comment "Specifies the actual value of the extracted string."@en ; + rdfs:range xsd:string ; + . + +observable:strings + a owl:ObjectProperty ; + rdfs:label "strings"@en ; + rdfs:range observable:ExtractedString ; + . + +observable:subject + a owl:DatatypeProperty ; + rdfs:label "subject"@en ; + rdfs:comment "The subject of the email."@en ; + rdfs:range xsd:string ; + . + +observable:subjectAlternativeName + a owl:DatatypeProperty ; + rdfs:label "subjectAlternativeName"@en ; + rdfs:range xsd:string ; + . + +observable:subjectDirectoryAttributes + a owl:DatatypeProperty ; + rdfs:label "subjectDirectoryAttributes"@en ; + rdfs:range xsd:string ; + . + +observable:subjectHash + a owl:ObjectProperty ; + rdfs:label "subjectHash"@en ; + rdfs:comment "A hash calculated on the certificate subject name."@en ; + rdfs:range types:Hash ; + . + +observable:subjectKeyIdentifier + a owl:DatatypeProperty ; + rdfs:label "subjectKeyIdentifier"@en ; + rdfs:range xsd:string ; + . + +observable:subjectPublicKeyAlgorithm + a owl:DatatypeProperty ; + rdfs:label "subjectPublicKeyAlgorithm"@en ; + rdfs:range xsd:string ; + . + +observable:subjectPublicKeyExponent + a owl:DatatypeProperty ; + rdfs:label "subjectPublicKeyExponent"@en ; + rdfs:range xsd:integer ; + . + +observable:subjectPublicKeyModulus + a owl:DatatypeProperty ; + rdfs:label "subjectPublicKeyModulus"@en ; + rdfs:range xsd:string ; + . + +observable:subsystem + a owl:DatatypeProperty ; + rdfs:label "subsystem"@en ; + rdfs:comment "Specifies the subsystem (e.g., GUI, device driver, etc.) that is required to run this image."@en ; + rdfs:range xsd:unsignedShort ; + . + +observable:swid + a owl:DatatypeProperty ; + rdfs:label "swid"@en ; + rdfs:comment "Specifies the SWID tag for the software."@en ; + rdfs:range xsd:string ; + . + +observable:symbolicName + a owl:DatatypeProperty ; + rdfs:label "symbolicName"@en ; + rdfs:comment "The symbolic name of a global flag. See also: http://msdn.microsoft.com/en-us/library/windows/hardware/ff549646(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:systemTime + a owl:DatatypeProperty ; + rdfs:label "systemTime"@en ; + rdfs:range xsd:dateTime ; + . + +observable:tableName + a owl:DatatypeProperty ; + rdfs:label "tableName"@en ; + rdfs:comment "The table containing a specified database record."@en ; + rdfs:range xsd:string ; + . + +observable:tableSchema + a owl:DatatypeProperty ; + rdfs:label "tableSchema"@en ; + rdfs:comment "The schema that contains the identified database record."@en ; + rdfs:range xsd:string ; + . + +observable:targetFile + a owl:ObjectProperty ; + rdfs:label "targetFile"@en ; + rdfs:comment "Specifies the file targeted by a symbolic link."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:taskComment + a owl:DatatypeProperty ; + rdfs:label "taskComment"@en ; + rdfs:comment "Specifies a comment for the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381232(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:taskCreator + a owl:DatatypeProperty ; + rdfs:label "taskCreator"@en ; + rdfs:comment "Specifies the name of the creator of the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381235(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:text + a owl:DatatypeProperty ; + rdfs:label "text"@en ; + rdfs:range xsd:string ; + . + +observable:threadID + a owl:DatatypeProperty ; + rdfs:label "threadID"@en ; + rdfs:range xsd:nonNegativeInteger ; + . + +observable:thumbprintHash + a owl:ObjectProperty ; + rdfs:label "thumbprintHash"@en ; + rdfs:comment "A hash calculated on the entire certificate including signature."@en ; + rdfs:range types:Hash ; + . + +observable:timeDateStamp + a owl:DatatypeProperty ; + rdfs:label "timeDateStamp"@en ; + rdfs:comment "Specifies the time when the PE binary was created."@en ; + rdfs:range xsd:dateTime ; + . + +observable:timesExecuted + a owl:DatatypeProperty ; + rdfs:label "timesExecuted"@en ; + rdfs:comment "The number of times the prefetch application has executed."@en ; + rdfs:range xsd:integer ; + . + +observable:timezoneDST + a owl:DatatypeProperty ; + rdfs:label "timezoneDST"@en ; + rdfs:comment "Specifies the time zone used by the system, taking daylight savings time (DST) into account."@en ; + rdfs:range xsd:string ; + . + +observable:timezoneStandard + a owl:DatatypeProperty ; + rdfs:label "timezoneStandard"@en ; + rdfs:comment "Specifies the time zone used by the system, without taking daylight savings time (DST) into account."@en ; + rdfs:range xsd:string ; + . + +observable:to + a owl:ObjectProperty ; + rdfs:label "to"@en ; + rdfs:comment "The receiver's phone number."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:totalFragments + a owl:DatatypeProperty ; + rdfs:label "totalFragments"@en ; + rdfs:range xsd:integer ; + . + +observable:totalRam + a owl:DatatypeProperty ; + rdfs:label "totalRam"@en ; + rdfs:comment "Specifies the total amount of physical memory present on the system, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:totalSpace + a owl:DatatypeProperty ; + rdfs:label "totalSpace"@en ; + rdfs:comment "Specifies the total amount of space available on the partition, in bytes."@en ; + rdfs:range xsd:integer ; + . + +observable:totalStorageCapacityInBytes + a owl:DatatypeProperty ; + rdfs:label "totalStorageCapacityInBytes"@en ; + rdfs:comment "The maximum number of bytes that can be stored on a storage device."@en ; + rdfs:range xsd:integer ; + . + +observable:triggerBeginTime + a owl:DatatypeProperty ; + rdfs:label "triggerBeginTime"@en ; + rdfs:comment "Specifies the date/time that the trigger is activated."@en ; + rdfs:range xsd:dateTime ; + . + +observable:triggerDelay + a owl:DatatypeProperty ; + rdfs:label "triggerDelay"@en ; + rdfs:comment "Specifies the delay that takes place between when the task is registered and when the task is started."@en ; + rdfs:range xsd:string ; + . + +observable:triggerEndTime + a owl:DatatypeProperty ; + rdfs:label "triggerEndTime"@en ; + rdfs:comment "Specifies the date/time that the trigger is deactivated."@en ; + rdfs:range xsd:dateTime ; + . + +observable:triggerFrequency + a owl:DatatypeProperty ; + rdfs:label "triggerFrequency"@en ; + rdfs:comment "Specifies the frequency at which the trigger repeats."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TriggerFrequencyVocab + xsd:string + ) ; + ] ; + . + +observable:triggerList + a owl:ObjectProperty ; + rdfs:label "triggerList"@en ; + rdfs:comment "Specifies a set of triggers used by the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383264(v=vs.85).aspx."@en ; + rdfs:range observable:TriggerType ; + . + +observable:triggerMaxRunTime + a owl:DatatypeProperty ; + rdfs:label "triggerMaxRunTime"@en ; + rdfs:comment "The maximum amount of time that the task launched by the trigger is allowed to run. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383868(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:triggerSessionChangeType + a owl:DatatypeProperty ; + rdfs:label "triggerSessionChangeType"@en ; + rdfs:comment "Specifies the type of Terminal Server session change that would trigger a task launch. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381298(v=vs.85).aspx."@en ; + rdfs:range xsd:string ; + . + +observable:triggerType + a owl:DatatypeProperty ; + rdfs:label "triggerType"@en ; + rdfs:comment "Specifies the type of the task trigger."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:TriggerTypeVocab + xsd:string + ) ; + ] ; + . + +observable:twitterHandle + a owl:DatatypeProperty ; + rdfs:label "Twitter Handle"@en-US ; + rdfs:comment "Specifies the twitter handle associated with the profile."@en-US ; + rdfs:range xsd:string ; + . + +observable:twitterId + a owl:DatatypeProperty ; + rdfs:label "Twitter ID"@en-US ; + rdfs:comment "Specifies the twitter id associated with the profile."@en-US ; + rdfs:range xsd:string ; + . + +observable:uninstallDate + a owl:DatatypeProperty ; + rdfs:label "uninstallDate"@en ; + rdfs:comment "Specifies the date the operating system or application was uninstalled."@en ; + rdfs:range xsd:dateTime ; + . + +observable:updatedDate + a owl:DatatypeProperty ; + rdfs:label "updatedDate"@en ; + rdfs:comment "Specifies the date in which the registered domain information was last updated."@en ; + rdfs:range xsd:dateTime ; + . + +observable:uptime + a owl:DatatypeProperty ; + rdfs:label "uptime"@en ; + rdfs:comment "Specifies the duration that represents the current amount of time that the system has been up."@en ; + rdfs:range xsd:string ; + . + +observable:url + a owl:ObjectProperty ; + rdfs:label "url"@en ; + rdfs:comment "Specifies a URL associated with a particular observable object or facet."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:urlHistoryEntry + a owl:ObjectProperty ; + rdfs:label "URL History Entries"@en ; + rdfs:comment "Specifies a URL history record stored in the browser's history."@en ; + rdfs:range observable:URLHistoryEntry ; + . + +observable:urlTargeted + a owl:DatatypeProperty ; + rdfs:label "urlTargeted"@en ; + rdfs:comment "The target of the bookmark."@en ; + rdfs:range xsd:anyURI ; + . + +observable:urlTransitionType + a owl:DatatypeProperty ; + rdfs:label "Transition Type"@en ; + rdfs:comment "Specifies how a browser navigated to a particular URL on a particular visit."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:URLTransitionTypeVocab + ) ; + ] ; + . + +observable:userLocationString + a owl:DatatypeProperty ; + rdfs:label "User Location String"@en-US ; + rdfs:comment "Specifies the user-provided location string associated with the profile."@en-US ; + rdfs:range xsd:string ; + . + +observable:userName + a owl:DatatypeProperty ; + rdfs:label "userName"@en ; + rdfs:comment "Username used to authenticate to this resource."@en ; + rdfs:range xsd:string ; + . + +observable:validityNotAfter + a owl:DatatypeProperty ; + rdfs:label "validityNotAfter"@en ; + rdfs:range xsd:dateTime ; + . + +observable:validityNotBefore + a owl:DatatypeProperty ; + rdfs:label "validityNotBefore"@en ; + rdfs:range xsd:dateTime ; + . + +observable:value + a owl:DatatypeProperty ; + rdfs:label "value"@en ; + rdfs:range xsd:string ; + . + +observable:values + a owl:DatatypeProperty ; + rdfs:label "values"@en ; + rdfs:comment "The values that were enumerated as a result of the action on the object."@en ; + rdfs:range xsd:string ; + . + +observable:version + a owl:DatatypeProperty ; + rdfs:label "version"@en ; + rdfs:range xsd:string ; + . + +observable:visibility + a owl:DatatypeProperty ; + rdfs:label "visibility"@en ; + rdfs:range xsd:boolean ; + . + +observable:visitCount + a owl:DatatypeProperty ; + rdfs:label "visitCount"@en ; + rdfs:comment "Specifies the number of times a URL has been visited by a particular web browser."@en ; + rdfs:range xsd:integer ; + . + +observable:visitDuration + a owl:DatatypeProperty ; + rdfs:label "Visit Duration"@en ; + rdfs:comment "Specifies the duration of a specific visit of a URL within a particular browser."@en ; + rdfs:range xsd:duration ; + . + +observable:visitTime + a owl:DatatypeProperty ; + rdfs:label "Visit Time"@en ; + rdfs:comment "Specifies the date/time of a specific visit of a URL within a particular browser."@en ; + rdfs:range xsd:dateTime ; + . + +observable:volume + a owl:ObjectProperty ; + rdfs:label "volume"@en ; + rdfs:comment "The volume from which the prefetch application was run. If the applicatin was run from multiple volumes, there will be a separate prefetch file for each."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:volumeID + a owl:DatatypeProperty ; + rdfs:label "volumeID"@en ; + rdfs:comment "The unique identifier of the volume."@en ; + rdfs:range xsd:string ; + . + +observable:whoisContactType + a owl:DatatypeProperty ; + rdfs:label "whoisContactType"@en ; + rdfs:comment "Specifies what type of WHOIS contact this is."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + xsd:string + vocabulary:WhoisContactTypeVocab + ) ; + ] ; + . + +observable:whoisServer + a owl:ObjectProperty ; + rdfs:label "whoisServer"@en ; + rdfs:comment "Specifies the corresponding whois server for a registrar."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:win32VersionValue + a owl:DatatypeProperty ; + rdfs:label "win32VersionValue"@en ; + rdfs:comment "Specifies the reserved win32 version value."@en ; + rdfs:range xsd:unsignedInt ; + . + +observable:windowTitle + a owl:DatatypeProperty ; + rdfs:label "windowTitle"@en ; + rdfs:range xsd:string ; + . + +observable:windowsDirectory + a owl:ObjectProperty ; + rdfs:label "windowsDirectory"@en ; + rdfs:comment "The Windows_Directory field specifies the fully-qualified path to the Windows install directory."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:windowsSystemDirectory + a owl:ObjectProperty ; + rdfs:label "windowsSystemDirectory"@en ; + rdfs:comment "The Windows_System_Directory field specifies the fully-qualified path to the Windows system directory."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:windowsTempDirectory + a owl:ObjectProperty ; + rdfs:label "windowsTempDirectory"@en ; + rdfs:comment "The Windows_Temp_Directory field specifies the fully-qualified path to the Windows temporary files directory."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:windowsVolumeAttributes + a owl:DatatypeProperty ; + rdfs:label "windowsVolumeAttributes"@en ; + rdfs:comment "Specifies the attributes of a windows volume."@en ; + rdfs:range vocabulary:WindowsVolumeAttributeVocab ; + . + +observable:wirelessNetworkSecurityMode + a owl:DatatypeProperty ; + rdfs:label "wirelessNetworkSecurityMode"@en ; + rdfs:comment "Specifies the security mode of a wireless network (None, WEP, WPA, etc)."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:WirelessNetworkSecurityModeVocab + xsd:string + ) ; + ] ; + . + +observable:workItemData + a owl:ObjectProperty ; + rdfs:label "workItemData"@en ; + rdfs:comment "Specifies application defined data associated with the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381271(v=vs.85).aspx."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:workingDirectory + a owl:ObjectProperty ; + rdfs:label "workingDirectory"@en ; + rdfs:comment "Specifies the working directory for the scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381878(v=vs.85).aspx."@en ; + rdfs:range observable:ObservableObject ; + . + +observable:x509v3extensions + a owl:ObjectProperty ; + rdfs:label "x509V3Extensions"@en ; + rdfs:range observable:X509V3ExtensionsFacet ; + . + +observable:xMailer + a owl:DatatypeProperty ; + rdfs:label "xMailer"@en ; + rdfs:range xsd:string ; + . + +observable:xOriginatingIP + a owl:ObjectProperty ; + rdfs:label "xOriginatingIP"@en ; + rdfs:range observable:ObservableObject ; + . + +pattern:LogicalPattern + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf pattern:Pattern ; + rdfs:label "LogicalPattern"@en ; + rdfs:comment "A logical pattern is a grouping of characteristics unique to an informational pattern expressed via a structured pattern expression following the rules of logic."@en ; + sh:property [ + sh:datatype pattern:PatternExpression ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path pattern:patternExpression ; + ] ; + sh:targetClass pattern:LogicalPattern ; + . + +pattern:Pattern + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Pattern"@en ; + rdfs:comment "A pattern is a combination of properties, acts, tendencies, etc., forming a consistent or characteristic arrangement."@en ; + sh:targetClass pattern:Pattern ; + . + +pattern:PatternExpression + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "PatternExpression"@en ; + rdfs:comment "A pattern expression is a grouping of characteristics unique to an explicit logical expression defining a pattern (e.g., regular expression, SQL Select expression, etc.)."@en ; + sh:targetClass pattern:PatternExpression ; + . + +pattern:patternExpression + a owl:DatatypeProperty ; + rdfs:label "patternExpression"@en ; + rdfs:comment "An explicit logical pattern expression."@en ; + rdfs:range pattern:PatternExpression ; + . + +role:BenevolentRole + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "BenevolentRole"@en ; + rdfs:comment "A benevolent role is a role with positive and/or beneficial intent."@en ; + sh:targetClass role:BenevolentRole ; + . + +role:MaliciousRole + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "MaliciousRole"@en ; + rdfs:comment "A malicious role is a role with malevolent intent."@en ; + sh:targetClass role:MaliciousRole ; + . + +role:NeutralRole + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:Role ; + rdfs:label "NeutralRole"@en ; + rdfs:comment "A neutral role is a role with impartial intent."@en ; + sh:targetClass role:NeutralRole ; + . + +role:Role + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Role"@en ; + rdfs:comment "A role is a usual or customary function based on contextual perspective."@en ; + sh:targetClass role:Role ; + . + +time1:Time + a rdfs:Datatype ; + . + +time1:TimeRange + a rdfs:Datatype ; + . + +time1:Timestamp + a rdfs:Datatype ; + . + +tool:AnalyticTool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf tool:Tool ; + rdfs:label "AnalyticTool"@en ; + rdfs:comment "An analytic tool is an artifact of hardware and/or software utilized to accomplish a task or purpose of explanation, interpretation or logical reasoning."@en ; + sh:targetClass tool:AnalyticTool ; + . + +tool:BuildFacet + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:Facet ; + rdfs:label "BuildFacet"@en ; + rdfs:comment "A build facet is a grouping of characteristics unique to a particular version of a software."@en ; + sh:property [ + sh:class tool:BuildInformationType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path tool:buildInformation ; + ] ; + sh:targetClass tool:BuildFacet ; + . + +tool:BuildInformationType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "BuildInformationType"@en ; + rdfs:comment "A build information type is a grouping of characteristics that describe how a particular version of software was converted from source code to executable code."@en ; + sh:property + [ + sh:class configuration:Configuration ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path tool:buildConfiguration ; + ] , + [ + sh:class tool:BuildUtilityType ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path tool:buildUtility ; + ] , + [ + sh:class tool:CompilerType ; + sh:nodeKind sh:IRI ; + sh:path tool:compilers ; + ] , + [ + sh:class tool:LibraryType ; + sh:nodeKind sh:IRI ; + sh:path tool:libraries ; + ] , + [ + sh:datatype xsd:dateTime ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:compilationDate ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildID ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildLabel ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildOutputLog ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildProject ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildScript ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildVersion ; + ] + ; + sh:targetClass tool:BuildInformationType ; + . + +tool:BuildUtilityType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "BuildUtilityType"@en ; + rdfs:comment "A build utility type characterizes the tool used to convert from source code to executable code for a particular version of software."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:buildUtilityName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:cpeid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:swid ; + ] + ; + sh:targetClass tool:BuildUtilityType ; + . + +tool:CompilerType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "CompilerType"@en ; + rdfs:comment "A compiler type is a grouping of characteristics unique to a specific program that translates computer code written in one programming language (the source language) into another language (the target language). Typically a program that translates source code from a high-level programming language to a lower-level language (e.g., assembly language, object code, or machine code) to create an executable program. [based on https://en.wikipedia.org/wiki/Compiler]"@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:compilerInformalDescription ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:cpeid ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:swid ; + ] + ; + sh:targetClass tool:CompilerType ; + . + +tool:ConfiguredTool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf tool:Tool ; + rdfs:label "ConfiguredTool"@en ; + rdfs:comment "A ConfiguredTool is a Tool that is known to be configured to run in a more specified manner than some unconfigured or less-configured Tool."@en ; + sh:property + [ + sh:class configuration:Configuration ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:usesConfiguration ; + ] , + [ + sh:class tool:Tool ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path configuration:isConfigurationOf ; + ] + ; + sh:targetClass tool:ConfiguredTool ; + . + +tool:DefensiveTool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf tool:Tool ; + rdfs:label "DefensiveTool"@en ; + rdfs:comment "A defensive tool is an artifact of hardware and/or software utilized to accomplish a task or purpose of guarding."@en ; + sh:targetClass tool:DefensiveTool ; + . + +tool:LibraryType + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "LibraryType"@en ; + rdfs:comment "A library type is a grouping of characteristics unique to a collection of resources incorporated into the build of a software."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:libraryName ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:libraryVersion ; + ] + ; + sh:targetClass tool:LibraryType ; + . + +tool:MaliciousTool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf tool:Tool ; + rdfs:label "MaliciousTool"@en ; + rdfs:comment "A malicious tool is an artifact of hardware and/or software utilized to accomplish a malevolent task or purpose."@en ; + sh:targetClass tool:MaliciousTool ; + . + +tool:Tool + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Tool"@en ; + rdfs:comment "A tool is an element of hardware and/or software utilized to carry out a particular function."@en ; + sh:property + [ + sh:class identity:Identity ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path tool:creator ; + ] , + [ + sh:datatype xsd:anyURI ; + sh:nodeKind sh:Literal ; + sh:path tool:references ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:servicePack ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:toolType ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path tool:version ; + ] + ; + sh:targetClass tool:Tool ; + . + +tool:buildConfiguration + a owl:ObjectProperty ; + rdfs:label "buildConfiguration"@en ; + rdfs:comment "How the build utility was configured for a particular build of a particular software."@en ; + rdfs:range configuration:Configuration ; + . + +tool:buildID + a owl:DatatypeProperty ; + rdfs:label "buildID"@en ; + rdfs:comment "An externally defined unique identifier for a particular build of a software."@en ; + rdfs:range xsd:string ; + . + +tool:buildInformation + a owl:ObjectProperty ; + rdfs:label "buildInformation"@en ; + rdfs:comment "Describes how a particular tool was built."@en ; + rdfs:range tool:BuildInformationType ; + . + +tool:buildLabel + a owl:DatatypeProperty ; + rdfs:label "buildLabel"@en ; + rdfs:comment "Relevant label for a particular build of a particular software."@en ; + rdfs:range xsd:string ; + . + +tool:buildOutputLog + a owl:DatatypeProperty ; + rdfs:label "buildOutputLog"@en ; + rdfs:comment "The output log of the build process for a software."@en ; + rdfs:range xsd:string ; + . + +tool:buildProject + a owl:DatatypeProperty ; + rdfs:label "buildProject"@en ; + rdfs:comment "The project name of a build of a software."@en ; + rdfs:range xsd:string ; + . + +tool:buildScript + a owl:DatatypeProperty ; + rdfs:label "buildScript"@en ; + rdfs:comment "The actual build script for a particular build of a particular software."@en ; + rdfs:range xsd:string ; + . + +tool:buildUtility + a owl:ObjectProperty ; + rdfs:label "buildUtility"@en ; + rdfs:comment "Identifies the utility used to build a software."@en ; + rdfs:range tool:BuildUtilityType ; + . + +tool:buildUtilityName + a owl:DatatypeProperty ; + rdfs:label "buildUtilityName"@en ; + rdfs:comment "The informally defined name of the utility used to build a particular software."@en ; + rdfs:range xsd:string ; + . + +tool:buildVersion + a owl:DatatypeProperty ; + rdfs:label "buildVersion"@en ; + rdfs:comment "The appropriate version descriptor of a particular build of a particular software."@en ; + rdfs:range xsd:string ; + . + +tool:compilationDate + a owl:DatatypeProperty ; + rdfs:label "compilationDate"@en ; + rdfs:comment "The compilation date for the build of a software."@en ; + rdfs:range xsd:dateTime ; + . + +tool:compilerInformalDescription + a owl:DatatypeProperty ; + rdfs:label "compilerInformalDescription"@en ; + rdfs:comment "An informal description of a compiler."@en ; + rdfs:range xsd:string ; + . + +tool:compilers + a owl:ObjectProperty ; + rdfs:label "compilers"@en ; + rdfs:comment "The compilers utilized during a particular build of a particular software."@en ; + rdfs:range tool:CompilerType ; + . + +tool:cpeid + a owl:DatatypeProperty ; + rdfs:label "cpeid"@en ; + rdfs:comment "Specifies the Common Platform Enumeration identifier for the software."@en ; + rdfs:range xsd:string ; + . + +tool:creator + a owl:ObjectProperty ; + rdfs:label "creator"@en ; + rdfs:comment "The creator organization for a particular tool."@en ; + rdfs:range identity:Identity ; + . + +tool:libraries + a owl:ObjectProperty ; + rdfs:label "libraries"@en ; + rdfs:comment "The libraries incorporated into a particular build of a software."@en ; + rdfs:range tool:LibraryType ; + . + +tool:libraryName + a owl:DatatypeProperty ; + rdfs:label "libraryName"@en ; + rdfs:comment "The name of the library."@en ; + rdfs:range xsd:string ; + . + +tool:libraryVersion + a owl:DatatypeProperty ; + rdfs:label "libraryVersion"@en ; + rdfs:comment "The version of the library."@en ; + rdfs:range xsd:string ; + . + +tool:references + a owl:DatatypeProperty ; + rdfs:label "references"@en ; + rdfs:comment "References to information describing a particular tool."@en ; + rdfs:range xsd:anyURI ; + . + +tool:servicePack + a owl:DatatypeProperty ; + rdfs:label "servicePack"@en ; + rdfs:comment "An appropriate service pack descriptor for a particular tool."@en ; + rdfs:range xsd:string ; + . + +tool:swid + a owl:DatatypeProperty ; + rdfs:label "swid"@en ; + rdfs:comment "Specifies the SWID tag for the software."@en ; + rdfs:range xsd:string ; + . + +tool:toolType + a owl:DatatypeProperty ; + rdfs:label "toolType"@en ; + rdfs:comment "The type of tool."@en ; + rdfs:range xsd:string ; + . + +tool:version + a owl:DatatypeProperty ; + rdfs:label "version"@en ; + rdfs:comment "An appropriate version descriptor of a particular tool."@en ; + rdfs:range xsd:string ; + . + +types:ControlledDictionary + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf types:Dictionary ; + rdfs:label "ControlledDictionary"@en ; + rdfs:comment "A controlled dictionary is a list of (term/key, value) pairs where each term/key exists no more than once and is constrained to an explicitly defined set of values."@en ; + sh:property [ + sh:class types:ControlledDictionaryEntry ; + sh:path types:entry ; + ] ; + sh:targetClass types:ControlledDictionary ; + . + +types:ControlledDictionaryEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf types:DictionaryEntry ; + rdfs:label "ControlledDictionaryEntry"@en ; + rdfs:comment "A controlled dictionary entry is a single (term/key, value) pair where the term/key is constrained to an explicitly defined set of values."@en ; + sh:targetClass types:ControlledDictionaryEntry ; + . + +types:Dictionary + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "Dictionary"@en ; + rdfs:comment "A dictionary is list of (term/key, value) pairs with each term/key existing no more than once."@en ; + sh:property [ + sh:class types:DictionaryEntry ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path types:entry ; + ] ; + sh:targetClass types:Dictionary ; + . + +types:DictionaryEntry + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "DictionaryEntry"@en ; + rdfs:comment "A dictionary entry is a single (term/key, value) pair."@en ; + sh:property + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path types:key ; + ] , + [ + sh:datatype xsd:string ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path types:value ; + ] + ; + sh:targetClass types:DictionaryEntry ; + . + +types:Hash + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoInherentCharacterizationThing ; + rdfs:label "Hash"@en ; + rdfs:comment "A hash is a grouping of characteristics unique to the result of applying a mathematical algorithm that maps data of arbitrary size to a bit string (the 'hash') and is a one-way function, that is, a function which is practically infeasible to invert. This is commonly used for integrity checking of data. [based on https://en.wikipedia.org/wiki/Cryptographic_hash_function]"@en ; + sh:property + [ + sh:datatype xsd:hexBinary ; + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path types:hashValue ; + ] , + [ + sh:datatype vocabulary:HashNameVocab ; + sh:message "Value is outside the default vocabulary HashNameVocab." ; + sh:path types:hashMethod ; + sh:severity sh:Info ; + ] , + [ + sh:maxCount "1"^^xsd:integer ; + sh:minCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:HashNameVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path types:hashMethod ; + ] , + [ + sh:message "Value is not member of the vocabulary HashNameVocab." ; + sh:or ( + [ + sh:datatype vocabulary:HashNameVocab ; + sh:in ( + "MD5"^^vocabulary:HashNameVocab + "MD6"^^vocabulary:HashNameVocab + "SHA1"^^vocabulary:HashNameVocab + "SHA224"^^vocabulary:HashNameVocab + "SHA256"^^vocabulary:HashNameVocab + "SHA3-224"^^vocabulary:HashNameVocab + "SHA3-256"^^vocabulary:HashNameVocab + "SHA3-384"^^vocabulary:HashNameVocab + "SHA3-512"^^vocabulary:HashNameVocab + "SHA384"^^vocabulary:HashNameVocab + "SHA512"^^vocabulary:HashNameVocab + "SSDEEP"^^vocabulary:HashNameVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path types:hashMethod ; + ] + ; + sh:targetClass types:Hash ; + . + +types:Identifier + a rdfs:Datatype ; + rdfs:comment "An identifier is a string conformant to the specified UUID-based format for UCO object identifiers."@en ; + . + +types:NativeFormatString + a rdfs:Datatype ; + rdfs:comment "Specifies data in its native format of some external language. The data may be encoded in Base64 per [RFC4648]. Data encoded in Base64 must be denoted as such using the encoded property."@en ; + . + +types:StructuredText + a rdfs:Datatype ; + rdfs:comment "Expresses string-based data in some information structuring format (e.g., HTML5)."@en ; + . + +types:Thread + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + co:Bag , + core:UcoThing + ; + rdfs:label "Thread"@en ; + rdfs:comment "A semi-ordered array of items, that can be present in multiple copies. Implemetation of a UCO Thread is similar to a Collections Ontology List, except a Thread may fork and merge - that is, one of its members may have two or more direct successors, and two or more direct predecessors."@en ; + owl:disjointWith co:List ; + sh:property [ + sh:class types:ThreadItem ; + sh:path co:item ; + ] ; + . + +types:ThreadItem + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf + co:Item , + core:UcoThing + ; + rdfs:label "ThreadItem"@en ; + rdfs:comment "A ThreadItem is a member of a thread."@en ; + owl:disjointWith co:ListItem ; + sh:property [ + sh:class core:UcoObject ; + sh:path co:itemContent ; + ] ; + . + +types:entry + a owl:ObjectProperty ; + rdfs:label "entry"@en ; + rdfs:comment "A dictionary entry."@en ; + rdfs:range types:DictionaryEntry ; + . + +types:hashMethod + a owl:DatatypeProperty ; + rdfs:label "hashMethod"@en ; + rdfs:comment "A particular cryptographic hashing method (e.g., MD5)."@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:HashNameVocab + xsd:string + ) ; + ] ; + . + +types:hashValue + a owl:DatatypeProperty ; + rdfs:label "hashValue"@en ; + rdfs:comment "A cryptographic hash value."@en ; + rdfs:range xsd:hexBinary ; + . + +types:key + a owl:DatatypeProperty ; + rdfs:label "key"@en ; + rdfs:comment "A key property of a single dictionary entry."@en ; + rdfs:range xsd:string ; + . + +types:threadNextItem + a owl:ObjectProperty ; + rdfs:subPropertyOf types:threadSuccessor ; + rdfs:label "threadNextItem"@en ; + rdfs:comment "The link to a next item in a thread."@en ; + rdfs:seeAlso co:nextItem ; + . + +types:threadNextItem-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadNextItem ; + sh:targetSubjectsOf types:threadNextItem ; + . + +types:threadOriginItem + a owl:ObjectProperty ; + rdfs:subPropertyOf co:item ; + rdfs:label "threadOriginItem"@en ; + rdfs:comment "A link to an item of the thread known to have no predecessor."@en ; + rdfs:domain types:Thread ; + rdfs:range [ + a owl:Class ; + owl:intersectionOf ( + types:ThreadItem + [ + a owl:Restriction ; + owl:onProperty types:threadPreviousItem ; + owl:cardinality "0"^^xsd:nonNegativeInteger ; + ] + ) ; + ] ; + rdfs:seeAlso co:firstItem ; + . + +types:threadOriginItem-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadOriginItem ; + sh:targetSubjectsOf types:threadOriginItem ; + . + +types:threadOriginItem-subjects-threadPredecessor-shape + a sh:PropertyShape ; + sh:description "An origin item in a thread must not have a predecessor."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path ( + types:threadOriginItem + types:threadPredecessor + ) ; + sh:targetSubjectsOf types:threadOriginItem ; + . + +types:threadOriginItem-subjects-threadPreviousItem-shape + a sh:PropertyShape ; + sh:description "An origin item in a thread must not have a previous item."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path ( + types:threadOriginItem + types:threadPreviousItem + ) ; + sh:targetSubjectsOf types:threadOriginItem ; + . + +types:threadPredecessor + a + owl:ObjectProperty , + owl:TransitiveProperty + ; + rdfs:label "threadPredecessor"@en ; + rdfs:comment "The link to the preceding item in a thread."@en ; + rdfs:domain types:ThreadItem ; + rdfs:range types:ThreadItem ; + rdfs:seeAlso co:precededBy ; + owl:inverseOf types:threadSuccessor ; + . + +types:threadPredecessor-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadPredecessor ; + sh:targetSubjectsOf types:threadPredecessor ; + . + +types:threadPreviousItem + a owl:ObjectProperty ; + rdfs:subPropertyOf types:threadPredecessor ; + rdfs:label "threadPreviousItem"@en ; + rdfs:comment "A direct link to a previous item in a thread."@en ; + rdfs:seeAlso co:previousItem ; + owl:inverseOf types:threadNextItem ; + . + +types:threadPreviousItem-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadPreviousItem ; + sh:targetSubjectsOf types:threadPreviousItem ; + . + +types:threadSuccessor + a + owl:ObjectProperty , + owl:TransitiveProperty + ; + rdfs:label "threadSuccessor"@en ; + rdfs:comment "A link to a following item in a thread."@en ; + rdfs:domain types:ThreadItem ; + rdfs:range types:ThreadItem ; + rdfs:seeAlso co:followedBy ; + . + +types:threadSuccessor-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadSuccessor ; + sh:targetSubjectsOf types:threadSuccessor ; + . + +types:threadTerminalItem + a owl:ObjectProperty ; + rdfs:subPropertyOf co:item ; + rdfs:label "threadTerminalItem"@en ; + rdfs:comment "A link to an item of the thread known to have no successor."@en ; + rdfs:domain types:Thread ; + rdfs:range [ + a owl:Class ; + owl:intersectionOf ( + types:ThreadItem + [ + a owl:Restriction ; + owl:onProperty types:threadNextItem ; + owl:cardinality "0"^^xsd:nonNegativeInteger ; + ] + ) ; + ] ; + rdfs:seeAlso co:lastItem ; + . + +types:threadTerminalItem-subjects-shape + a sh:PropertyShape ; + sh:class types:ThreadItem ; + sh:nodeKind sh:IRI ; + sh:path types:threadTerminalItem ; + sh:targetSubjectsOf types:threadTerminalItem ; + . + +types:threadTerminalItem-subjects-threadNextItem-shape + a sh:PropertyShape ; + sh:description "A terminal item in a thread must not have a next item."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path ( + types:threadTerminalItem + types:threadNextItem + ) ; + sh:targetSubjectsOf types:threadTerminalItem ; + . + +types:threadTerminalItem-subjects-threadSuccessor-shape + a sh:PropertyShape ; + sh:description "A terminal item in a thread must not have a successor."@en ; + sh:maxCount "0"^^xsd:integer ; + sh:nodeKind sh:IRI ; + sh:path ( + types:threadTerminalItem + types:threadSuccessor + ) ; + sh:targetSubjectsOf types:threadTerminalItem ; + . + +types:value + a owl:DatatypeProperty ; + rdfs:label "value"@en ; + rdfs:comment "A specific property value."@en ; + rdfs:range xsd:string ; + . + +victim:Victim + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf role:NeutralRole ; + rdfs:label "Victim"@en ; + rdfs:comment "A victim is a role played by a person or organization that is/was the target of some malicious action."@en ; + sh:targetClass victim:Victim ; + . + +victim:VictimTargeting + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf victim:Victim ; + rdfs:label "VictimTargeting"@en ; + rdfs:comment "A victim targeting is a grouping of characteristics unique to people or organizations that are the target of some malicious activity."@en ; + sh:targetClass victim:VictimTargeting ; + . + +vocabulary:AccountTypeVocab + a rdfs:Datatype ; + rdfs:label "Account Type Vocabulary"@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ldap"^^vocabulary:AccountTypeVocab + "nis"^^vocabulary:AccountTypeVocab + "openid"^^vocabulary:AccountTypeVocab + "radius"^^vocabulary:AccountTypeVocab + "tacacs"^^vocabulary:AccountTypeVocab + "unix"^^vocabulary:AccountTypeVocab + "windows_domain"^^vocabulary:AccountTypeVocab + "windows_local"^^vocabulary:AccountTypeVocab + ) ; + ] ; + . + +vocabulary:ActionArgumentNameVocab + a rdfs:Datatype ; + rdfs:label "Action Argument Name Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary for common arguments of cyber actions."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "APC Address"^^vocabulary:ActionArgumentNameVocab + "APC Mode"^^vocabulary:ActionArgumentNameVocab + "API"^^vocabulary:ActionArgumentNameVocab + "Access Mode"^^vocabulary:ActionArgumentNameVocab + "Application Name"^^vocabulary:ActionArgumentNameVocab + "Base Address"^^vocabulary:ActionArgumentNameVocab + "Callback Address"^^vocabulary:ActionArgumentNameVocab + "Code Address"^^vocabulary:ActionArgumentNameVocab + "Command"^^vocabulary:ActionArgumentNameVocab + "Control Code"^^vocabulary:ActionArgumentNameVocab + "Control Parameter"^^vocabulary:ActionArgumentNameVocab + "Creation Flags"^^vocabulary:ActionArgumentNameVocab + "Database Name"^^vocabulary:ActionArgumentNameVocab + "Delay Time (ms)"^^vocabulary:ActionArgumentNameVocab + "Destination Address"^^vocabulary:ActionArgumentNameVocab + "Error Control"^^vocabulary:ActionArgumentNameVocab + "File Information Class"^^vocabulary:ActionArgumentNameVocab + "Flags"^^vocabulary:ActionArgumentNameVocab + "Function Address"^^vocabulary:ActionArgumentNameVocab + "Function Name"^^vocabulary:ActionArgumentNameVocab + "Function Ordinal"^^vocabulary:ActionArgumentNameVocab + "Hook Type"^^vocabulary:ActionArgumentNameVocab + "Host Name"^^vocabulary:ActionArgumentNameVocab + "Hostname"^^vocabulary:ActionArgumentNameVocab + "Initial Owner"^^vocabulary:ActionArgumentNameVocab + "Mapping Offset"^^vocabulary:ActionArgumentNameVocab + "Number of Bytes Per Send"^^vocabulary:ActionArgumentNameVocab + "Options"^^vocabulary:ActionArgumentNameVocab + "Parameter Address"^^vocabulary:ActionArgumentNameVocab + "Password"^^vocabulary:ActionArgumentNameVocab + "Privilege Name"^^vocabulary:ActionArgumentNameVocab + "Protection"^^vocabulary:ActionArgumentNameVocab + "Proxy Bypass"^^vocabulary:ActionArgumentNameVocab + "Proxy Name"^^vocabulary:ActionArgumentNameVocab + "Reason"^^vocabulary:ActionArgumentNameVocab + "Request Size"^^vocabulary:ActionArgumentNameVocab + "Requested Version"^^vocabulary:ActionArgumentNameVocab + "Server"^^vocabulary:ActionArgumentNameVocab + "Service Name"^^vocabulary:ActionArgumentNameVocab + "Service State"^^vocabulary:ActionArgumentNameVocab + "Service Type"^^vocabulary:ActionArgumentNameVocab + "Share Mode"^^vocabulary:ActionArgumentNameVocab + "Shutdown Flag"^^vocabulary:ActionArgumentNameVocab + "Size (bytes)"^^vocabulary:ActionArgumentNameVocab + "Sleep Time (ms)"^^vocabulary:ActionArgumentNameVocab + "Source Address"^^vocabulary:ActionArgumentNameVocab + "Starting Address"^^vocabulary:ActionArgumentNameVocab + "System Metric Index"^^vocabulary:ActionArgumentNameVocab + "Target PID"^^vocabulary:ActionArgumentNameVocab + "Transfer Flags"^^vocabulary:ActionArgumentNameVocab + "Username"^^vocabulary:ActionArgumentNameVocab + ) ; + ] ; + . + +vocabulary:ActionNameVocab + a rdfs:Datatype ; + rdfs:label "Action Name Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of common specific cyber action names."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Accept Socket Connection"^^vocabulary:ActionNameVocab + "Add Connection to Network Share"^^vocabulary:ActionNameVocab + "Add Network Share"^^vocabulary:ActionNameVocab + "Add Scheduled Task"^^vocabulary:ActionNameVocab + "Add System Call Hook"^^vocabulary:ActionNameVocab + "Add User"^^vocabulary:ActionNameVocab + "Add Windows Hook"^^vocabulary:ActionNameVocab + "Allocate Virtual Memory in Process"^^vocabulary:ActionNameVocab + "Bind Address to Socket"^^vocabulary:ActionNameVocab + "Change Service Configuration"^^vocabulary:ActionNameVocab + "Check for Remote Debugger"^^vocabulary:ActionNameVocab + "Close Port"^^vocabulary:ActionNameVocab + "Close Registry Key"^^vocabulary:ActionNameVocab + "Close Socket"^^vocabulary:ActionNameVocab + "Configure Service"^^vocabulary:ActionNameVocab + "Connect to IP"^^vocabulary:ActionNameVocab + "Connect to Named Pipe"^^vocabulary:ActionNameVocab + "Connect to Network Share"^^vocabulary:ActionNameVocab + "Connect to Socket"^^vocabulary:ActionNameVocab + "Connect to URL"^^vocabulary:ActionNameVocab + "Control Driver"^^vocabulary:ActionNameVocab + "Control Service"^^vocabulary:ActionNameVocab + "Copy File"^^vocabulary:ActionNameVocab + "Create Dialog Box"^^vocabulary:ActionNameVocab + "Create Directory"^^vocabulary:ActionNameVocab + "Create Event"^^vocabulary:ActionNameVocab + "Create File"^^vocabulary:ActionNameVocab + "Create File Alternate Data Stream"^^vocabulary:ActionNameVocab + "Create File Mapping"^^vocabulary:ActionNameVocab + "Create File Symbolic Link"^^vocabulary:ActionNameVocab + "Create Hidden File"^^vocabulary:ActionNameVocab + "Create Mailslot"^^vocabulary:ActionNameVocab + "Create Module"^^vocabulary:ActionNameVocab + "Create Mutex"^^vocabulary:ActionNameVocab + "Create Named Pipe"^^vocabulary:ActionNameVocab + "Create Process"^^vocabulary:ActionNameVocab + "Create Process as User"^^vocabulary:ActionNameVocab + "Create Registry Key"^^vocabulary:ActionNameVocab + "Create Registry Key Value"^^vocabulary:ActionNameVocab + "Create Remote Thread in Process"^^vocabulary:ActionNameVocab + "Create Service"^^vocabulary:ActionNameVocab + "Create Socket"^^vocabulary:ActionNameVocab + "Create Symbolic Link"^^vocabulary:ActionNameVocab + "Create Thread"^^vocabulary:ActionNameVocab + "Create Window"^^vocabulary:ActionNameVocab + "Delete Directory"^^vocabulary:ActionNameVocab + "Delete File"^^vocabulary:ActionNameVocab + "Delete Named Pipe"^^vocabulary:ActionNameVocab + "Delete Network Share"^^vocabulary:ActionNameVocab + "Delete Registry Key"^^vocabulary:ActionNameVocab + "Delete Registry Key Value"^^vocabulary:ActionNameVocab + "Delete Service"^^vocabulary:ActionNameVocab + "Delete User"^^vocabulary:ActionNameVocab + "Disconnect from Named Pipe"^^vocabulary:ActionNameVocab + "Disconnect from Network Share"^^vocabulary:ActionNameVocab + "Disconnect from Socket"^^vocabulary:ActionNameVocab + "Download File"^^vocabulary:ActionNameVocab + "Enumerate DLLs"^^vocabulary:ActionNameVocab + "Enumerate Network Shares"^^vocabulary:ActionNameVocab + "Enumerate Processes"^^vocabulary:ActionNameVocab + "Enumerate Protocols"^^vocabulary:ActionNameVocab + "Enumerate Registry Key Subkeys"^^vocabulary:ActionNameVocab + "Enumerate Registry Key Values"^^vocabulary:ActionNameVocab + "Enumerate Services"^^vocabulary:ActionNameVocab + "Enumerate System Handles"^^vocabulary:ActionNameVocab + "Enumerate Threads"^^vocabulary:ActionNameVocab + "Enumerate Threads in Process"^^vocabulary:ActionNameVocab + "Enumerate Users"^^vocabulary:ActionNameVocab + "Enumerate Windows"^^vocabulary:ActionNameVocab + "Find File"^^vocabulary:ActionNameVocab + "Find Window"^^vocabulary:ActionNameVocab + "Flush Process Instruction Cache"^^vocabulary:ActionNameVocab + "Free Library"^^vocabulary:ActionNameVocab + "Free Process Virtual Memory"^^vocabulary:ActionNameVocab + "Get Disk Free Space"^^vocabulary:ActionNameVocab + "Get Disk Type"^^vocabulary:ActionNameVocab + "Get Elapsed System Up Time"^^vocabulary:ActionNameVocab + "Get File Attributes"^^vocabulary:ActionNameVocab + "Get Function Address"^^vocabulary:ActionNameVocab + "Get Host By Address"^^vocabulary:ActionNameVocab + "Get Host By Name"^^vocabulary:ActionNameVocab + "Get Host Name"^^vocabulary:ActionNameVocab + "Get Library File Name"^^vocabulary:ActionNameVocab + "Get Library Handle"^^vocabulary:ActionNameVocab + "Get NetBIOS Name"^^vocabulary:ActionNameVocab + "Get Process Current Directory"^^vocabulary:ActionNameVocab + "Get Process Environment Variable"^^vocabulary:ActionNameVocab + "Get Process Startup Information"^^vocabulary:ActionNameVocab + "Get Processes Snapshot"^^vocabulary:ActionNameVocab + "Get Registry Key Attributes"^^vocabulary:ActionNameVocab + "Get Service Status"^^vocabulary:ActionNameVocab + "Get System Global Flags"^^vocabulary:ActionNameVocab + "Get System Host Name"^^vocabulary:ActionNameVocab + "Get System Local Time"^^vocabulary:ActionNameVocab + "Get System NetBIOS Name"^^vocabulary:ActionNameVocab + "Get System Network Parameters"^^vocabulary:ActionNameVocab + "Get System Time"^^vocabulary:ActionNameVocab + "Get Thread Context"^^vocabulary:ActionNameVocab + "Get Thread Username"^^vocabulary:ActionNameVocab + "Get User Attributes"^^vocabulary:ActionNameVocab + "Get Username"^^vocabulary:ActionNameVocab + "Get Windows Directory"^^vocabulary:ActionNameVocab + "Get Windows System Directory"^^vocabulary:ActionNameVocab + "Get Windows Temporary Files Directory"^^vocabulary:ActionNameVocab + "Hide Window"^^vocabulary:ActionNameVocab + "Impersonate Process"^^vocabulary:ActionNameVocab + "Impersonate Thread"^^vocabulary:ActionNameVocab + "Inject Memory Page"^^vocabulary:ActionNameVocab + "Kill Process"^^vocabulary:ActionNameVocab + "Kill Thread"^^vocabulary:ActionNameVocab + "Kill Window"^^vocabulary:ActionNameVocab + "Listen on Port"^^vocabulary:ActionNameVocab + "Listen on Socket"^^vocabulary:ActionNameVocab + "Load Driver"^^vocabulary:ActionNameVocab + "Load Library"^^vocabulary:ActionNameVocab + "Load Module"^^vocabulary:ActionNameVocab + "Load and Call Driver"^^vocabulary:ActionNameVocab + "Lock File"^^vocabulary:ActionNameVocab + "Logon as User"^^vocabulary:ActionNameVocab + "Map File"^^vocabulary:ActionNameVocab + "Map Library"^^vocabulary:ActionNameVocab + "Map View of File"^^vocabulary:ActionNameVocab + "Modify File"^^vocabulary:ActionNameVocab + "Modify Named Pipe"^^vocabulary:ActionNameVocab + "Modify Process"^^vocabulary:ActionNameVocab + "Modify Registry Key"^^vocabulary:ActionNameVocab + "Modify Registry Key Value"^^vocabulary:ActionNameVocab + "Modify Service"^^vocabulary:ActionNameVocab + "Monitor Registry Key"^^vocabulary:ActionNameVocab + "Move File"^^vocabulary:ActionNameVocab + "Open File"^^vocabulary:ActionNameVocab + "Open File Mapping"^^vocabulary:ActionNameVocab + "Open Mutex"^^vocabulary:ActionNameVocab + "Open Port"^^vocabulary:ActionNameVocab + "Open Process"^^vocabulary:ActionNameVocab + "Open Registry Key"^^vocabulary:ActionNameVocab + "Open Service"^^vocabulary:ActionNameVocab + "Open Service Control Manager"^^vocabulary:ActionNameVocab + "Protect Virtual Memory"^^vocabulary:ActionNameVocab + "Query DNS"^^vocabulary:ActionNameVocab + "Query Disk Attributes"^^vocabulary:ActionNameVocab + "Query Process Virtual Memory"^^vocabulary:ActionNameVocab + "Queue APC in Thread"^^vocabulary:ActionNameVocab + "Read File"^^vocabulary:ActionNameVocab + "Read From Named Pipe"^^vocabulary:ActionNameVocab + "Read From Process Memory"^^vocabulary:ActionNameVocab + "Read Registry Key Value"^^vocabulary:ActionNameVocab + "Receive Data on Socket"^^vocabulary:ActionNameVocab + "Receive Email Message"^^vocabulary:ActionNameVocab + "Release Mutex"^^vocabulary:ActionNameVocab + "Rename File"^^vocabulary:ActionNameVocab + "Revert Thread to Self"^^vocabulary:ActionNameVocab + "Send Control Code to File"^^vocabulary:ActionNameVocab + "Send Control Code to Pipe"^^vocabulary:ActionNameVocab + "Send Control Code to Service"^^vocabulary:ActionNameVocab + "Send DNS Query"^^vocabulary:ActionNameVocab + "Send Data on Socket"^^vocabulary:ActionNameVocab + "Send Data to Address on Socket"^^vocabulary:ActionNameVocab + "Send Email Message"^^vocabulary:ActionNameVocab + "Send ICMP Request"^^vocabulary:ActionNameVocab + "Send Reverse DNS Query"^^vocabulary:ActionNameVocab + "Set File Attributes"^^vocabulary:ActionNameVocab + "Set NetBIOS Name"^^vocabulary:ActionNameVocab + "Set Process Current Directory"^^vocabulary:ActionNameVocab + "Set Process Environment Variable"^^vocabulary:ActionNameVocab + "Set System Global Flags"^^vocabulary:ActionNameVocab + "Set System Host Name"^^vocabulary:ActionNameVocab + "Set System Time"^^vocabulary:ActionNameVocab + "Set Thread Context"^^vocabulary:ActionNameVocab + "Show Window"^^vocabulary:ActionNameVocab + "Shutdown System"^^vocabulary:ActionNameVocab + "Sleep Process"^^vocabulary:ActionNameVocab + "Sleep System"^^vocabulary:ActionNameVocab + "Start Service"^^vocabulary:ActionNameVocab + "Unload Driver"^^vocabulary:ActionNameVocab + "Unload Module"^^vocabulary:ActionNameVocab + "Unlock File"^^vocabulary:ActionNameVocab + "Unmap File"^^vocabulary:ActionNameVocab + "Upload File"^^vocabulary:ActionNameVocab + "Write to File"^^vocabulary:ActionNameVocab + "Write to Process Virtual Memory"^^vocabulary:ActionNameVocab + ) ; + ] ; + . + +vocabulary:ActionRelationshipTypeVocab + a rdfs:Datatype ; + rdfs:label "Action Relationship Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary for capturing types of relationships between actions."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Dependent_On"^^vocabulary:ActionRelationshipTypeVocab + "Equivalent_To"^^vocabulary:ActionRelationshipTypeVocab + "Followed_By"^^vocabulary:ActionRelationshipTypeVocab + "Initiated"^^vocabulary:ActionRelationshipTypeVocab + "Initiated_By"^^vocabulary:ActionRelationshipTypeVocab + "Preceded_By"^^vocabulary:ActionRelationshipTypeVocab + "Related_To"^^vocabulary:ActionRelationshipTypeVocab + ) ; + ] ; + . + +vocabulary:ActionStatusTypeVocab + a rdfs:Datatype ; + rdfs:label "Action Status Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of action status types."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Complete/Finish"^^vocabulary:ActionStatusTypeVocab + "Error"^^vocabulary:ActionStatusTypeVocab + "Fail"^^vocabulary:ActionStatusTypeVocab + "Ongoing"^^vocabulary:ActionStatusTypeVocab + "Pending"^^vocabulary:ActionStatusTypeVocab + "Success"^^vocabulary:ActionStatusTypeVocab + "Unknown"^^vocabulary:ActionStatusTypeVocab + ) ; + ] ; + . + +vocabulary:ActionTypeVocab + a rdfs:Datatype ; + rdfs:label "Action Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of common general action types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Accept"^^vocabulary:ActionTypeVocab + "Access"^^vocabulary:ActionTypeVocab + "Add"^^vocabulary:ActionTypeVocab + "Alert"^^vocabulary:ActionTypeVocab + "Allocate"^^vocabulary:ActionTypeVocab + "Archive"^^vocabulary:ActionTypeVocab + "Assign"^^vocabulary:ActionTypeVocab + "Audit"^^vocabulary:ActionTypeVocab + "Backup"^^vocabulary:ActionTypeVocab + "Bind"^^vocabulary:ActionTypeVocab + "Block"^^vocabulary:ActionTypeVocab + "Call"^^vocabulary:ActionTypeVocab + "Change"^^vocabulary:ActionTypeVocab + "Check"^^vocabulary:ActionTypeVocab + "Clean"^^vocabulary:ActionTypeVocab + "Click"^^vocabulary:ActionTypeVocab + "Close"^^vocabulary:ActionTypeVocab + "Compare"^^vocabulary:ActionTypeVocab + "Compress"^^vocabulary:ActionTypeVocab + "Configure"^^vocabulary:ActionTypeVocab + "Connect"^^vocabulary:ActionTypeVocab + "Control"^^vocabulary:ActionTypeVocab + "Copy/Duplicate"^^vocabulary:ActionTypeVocab + "Create"^^vocabulary:ActionTypeVocab + "Decode"^^vocabulary:ActionTypeVocab + "Decompress"^^vocabulary:ActionTypeVocab + "Decrypt"^^vocabulary:ActionTypeVocab + "Deny"^^vocabulary:ActionTypeVocab + "Depress"^^vocabulary:ActionTypeVocab + "Detect"^^vocabulary:ActionTypeVocab + "Disconnect"^^vocabulary:ActionTypeVocab + "Download"^^vocabulary:ActionTypeVocab + "Draw"^^vocabulary:ActionTypeVocab + "Drop"^^vocabulary:ActionTypeVocab + "Encode"^^vocabulary:ActionTypeVocab + "Encrypt"^^vocabulary:ActionTypeVocab + "Enumerate"^^vocabulary:ActionTypeVocab + "Execute"^^vocabulary:ActionTypeVocab + "Extract"^^vocabulary:ActionTypeVocab + "Filter"^^vocabulary:ActionTypeVocab + "Find"^^vocabulary:ActionTypeVocab + "Flush"^^vocabulary:ActionTypeVocab + "Fork"^^vocabulary:ActionTypeVocab + "Free"^^vocabulary:ActionTypeVocab + "Get"^^vocabulary:ActionTypeVocab + "Hide"^^vocabulary:ActionTypeVocab + "Hook"^^vocabulary:ActionTypeVocab + "Impersonate"^^vocabulary:ActionTypeVocab + "Initialize"^^vocabulary:ActionTypeVocab + "Inject"^^vocabulary:ActionTypeVocab + "Install"^^vocabulary:ActionTypeVocab + "Interleave"^^vocabulary:ActionTypeVocab + "Join"^^vocabulary:ActionTypeVocab + "Kill"^^vocabulary:ActionTypeVocab + "Listen"^^vocabulary:ActionTypeVocab + "Load"^^vocabulary:ActionTypeVocab + "Lock"^^vocabulary:ActionTypeVocab + "Login/Logon"^^vocabulary:ActionTypeVocab + "Logout/Logoff"^^vocabulary:ActionTypeVocab + "Map"^^vocabulary:ActionTypeVocab + "Merge"^^vocabulary:ActionTypeVocab + "Modify"^^vocabulary:ActionTypeVocab + "Monitor"^^vocabulary:ActionTypeVocab + "Move"^^vocabulary:ActionTypeVocab + "Open"^^vocabulary:ActionTypeVocab + "Pack"^^vocabulary:ActionTypeVocab + "Pause"^^vocabulary:ActionTypeVocab + "Press"^^vocabulary:ActionTypeVocab + "Protect"^^vocabulary:ActionTypeVocab + "Quarantine"^^vocabulary:ActionTypeVocab + "Query"^^vocabulary:ActionTypeVocab + "Queue"^^vocabulary:ActionTypeVocab + "Raise"^^vocabulary:ActionTypeVocab + "Read"^^vocabulary:ActionTypeVocab + "Receive"^^vocabulary:ActionTypeVocab + "Release"^^vocabulary:ActionTypeVocab + "Remove/Delete"^^vocabulary:ActionTypeVocab + "Rename"^^vocabulary:ActionTypeVocab + "Replicate"^^vocabulary:ActionTypeVocab + "Restore"^^vocabulary:ActionTypeVocab + "Resume"^^vocabulary:ActionTypeVocab + "Revert"^^vocabulary:ActionTypeVocab + "Run"^^vocabulary:ActionTypeVocab + "Save"^^vocabulary:ActionTypeVocab + "Scan"^^vocabulary:ActionTypeVocab + "Schedule"^^vocabulary:ActionTypeVocab + "Search"^^vocabulary:ActionTypeVocab + "Send"^^vocabulary:ActionTypeVocab + "Set"^^vocabulary:ActionTypeVocab + "Shutdown"^^vocabulary:ActionTypeVocab + "Sleep"^^vocabulary:ActionTypeVocab + "Snapshot"^^vocabulary:ActionTypeVocab + "Start"^^vocabulary:ActionTypeVocab + "Stop"^^vocabulary:ActionTypeVocab + "Suspend"^^vocabulary:ActionTypeVocab + "Synchronize"^^vocabulary:ActionTypeVocab + "Throw"^^vocabulary:ActionTypeVocab + "Transmit"^^vocabulary:ActionTypeVocab + "Unblock"^^vocabulary:ActionTypeVocab + "Unhide"^^vocabulary:ActionTypeVocab + "Unhook"^^vocabulary:ActionTypeVocab + "Uninstall"^^vocabulary:ActionTypeVocab + "Unload"^^vocabulary:ActionTypeVocab + "Unlock"^^vocabulary:ActionTypeVocab + "Unmap"^^vocabulary:ActionTypeVocab + "Unpack"^^vocabulary:ActionTypeVocab + "Update"^^vocabulary:ActionTypeVocab + "Upgrade"^^vocabulary:ActionTypeVocab + "Upload"^^vocabulary:ActionTypeVocab + "Wipe/Destroy/Purge"^^vocabulary:ActionTypeVocab + "Write"^^vocabulary:ActionTypeVocab + ) ; + ] ; + . + +vocabulary:BitnessVocab + a rdfs:Datatype ; + rdfs:label "Bitness Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of word sizes that define classes of operating systems."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "32"^^vocabulary:BitnessVocab + "64"^^vocabulary:BitnessVocab + ) ; + ] ; + . + +vocabulary:CharacterEncodingVocab + a rdfs:Datatype ; + rdfs:label "Character Encoding Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of character encodings."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ASCII"^^vocabulary:CharacterEncodingVocab + "UTF-16"^^vocabulary:CharacterEncodingVocab + "UTF-32"^^vocabulary:CharacterEncodingVocab + "UTF-8"^^vocabulary:CharacterEncodingVocab + "Windows-1250"^^vocabulary:CharacterEncodingVocab + "Windows-1251"^^vocabulary:CharacterEncodingVocab + "Windows-1252"^^vocabulary:CharacterEncodingVocab + "Windows-1253"^^vocabulary:CharacterEncodingVocab + "Windows-1254"^^vocabulary:CharacterEncodingVocab + "Windows-1255"^^vocabulary:CharacterEncodingVocab + "Windows-1256"^^vocabulary:CharacterEncodingVocab + "Windows-1257"^^vocabulary:CharacterEncodingVocab + "Windows-1258"^^vocabulary:CharacterEncodingVocab + ) ; + ] ; + . + +vocabulary:ContactAddressScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact Address Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for address entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactAddressScopeVocab + "work"^^vocabulary:ContactAddressScopeVocab + "school"^^vocabulary:ContactAddressScopeVocab + ) ; + ] ; + . + +vocabulary:ContactEmailScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact Email Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for email entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactEmailScopeVocab + "work"^^vocabulary:ContactEmailScopeVocab + "school"^^vocabulary:ContactEmailScopeVocab + "cloud"^^vocabulary:ContactEmailScopeVocab + ) ; + ] ; + . + +vocabulary:ContactPhoneScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact Phone Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for phone entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactPhoneScopeVocab + "work"^^vocabulary:ContactPhoneScopeVocab + "school"^^vocabulary:ContactPhoneScopeVocab + "mobile"^^vocabulary:ContactPhoneScopeVocab + "main"^^vocabulary:ContactPhoneScopeVocab + "home fax"^^vocabulary:ContactPhoneScopeVocab + "work fax"^^vocabulary:ContactPhoneScopeVocab + "pager"^^vocabulary:ContactPhoneScopeVocab + ) ; + ] ; + . + +vocabulary:ContactSIPScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact SIP Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for Session Initiation Protocol (SIP) entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactSIPScopeVocab + "work"^^vocabulary:ContactSIPScopeVocab + "school"^^vocabulary:ContactSIPScopeVocab + ) ; + ] ; + . + +vocabulary:ContactURLScopeVocab + a rdfs:Datatype ; + rdfs:label "Contact URL Scope Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of scopes for URL entries of digital contacts."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "home"^^vocabulary:ContactURLScopeVocab + "work"^^vocabulary:ContactURLScopeVocab + "school"^^vocabulary:ContactURLScopeVocab + "homepage"^^vocabulary:ContactURLScopeVocab + ) ; + ] ; + . + +vocabulary:DiskTypeVocab + a rdfs:Datatype ; + rdfs:label "Disk Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of disk types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "CDRom"^^vocabulary:DiskTypeVocab + "Fixed"^^vocabulary:DiskTypeVocab + "RAMDisk"^^vocabulary:DiskTypeVocab + "Remote"^^vocabulary:DiskTypeVocab + "Removable"^^vocabulary:DiskTypeVocab + ) ; + ] ; + . + +vocabulary:EndiannessTypeVocab + a rdfs:Datatype ; + rdfs:label "Endianness Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of byte ordering methods."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Big-endian"^^vocabulary:EndiannessTypeVocab + "Little-endian"^^vocabulary:EndiannessTypeVocab + "Middle-endian"^^vocabulary:EndiannessTypeVocab + ) ; + ] ; + . + +vocabulary:HashNameVocab + a rdfs:Datatype ; + rdfs:label "Hash Name Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of hashing algorithm names."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "MD5"^^vocabulary:HashNameVocab + "MD6"^^vocabulary:HashNameVocab + "SHA1"^^vocabulary:HashNameVocab + "SHA224"^^vocabulary:HashNameVocab + "SHA256"^^vocabulary:HashNameVocab + "SHA3-224"^^vocabulary:HashNameVocab + "SHA3-256"^^vocabulary:HashNameVocab + "SHA3-384"^^vocabulary:HashNameVocab + "SHA3-512"^^vocabulary:HashNameVocab + "SHA384"^^vocabulary:HashNameVocab + "SHA512"^^vocabulary:HashNameVocab + "SSDEEP"^^vocabulary:HashNameVocab + ) ; + ] ; + . + +vocabulary:LibraryTypeVocab + a rdfs:Datatype ; + rdfs:label "Library Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of library types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Dynamic"^^vocabulary:LibraryTypeVocab + "Other"^^vocabulary:LibraryTypeVocab + "Remote"^^vocabulary:LibraryTypeVocab + "Shared"^^vocabulary:LibraryTypeVocab + "Static"^^vocabulary:LibraryTypeVocab + ) ; + ] ; + . + +vocabulary:MemoryBlockTypeVocab + a rdfs:Datatype ; + rdfs:label "Memory Block Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of types of memory blocks."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Bit-mapped"^^vocabulary:MemoryBlockTypeVocab + "Byte-mapped"^^vocabulary:MemoryBlockTypeVocab + "Initialized"^^vocabulary:MemoryBlockTypeVocab + "Overlay"^^vocabulary:MemoryBlockTypeVocab + "Uninitialized"^^vocabulary:MemoryBlockTypeVocab + ) ; + ] ; + . + +vocabulary:ObservableObjectRelationshipVocab + a rdfs:Datatype ; + rdfs:label "Cyber Item Relationship Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of inter-observable object relationships."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Allocated"^^vocabulary:ObservableObjectRelationshipVocab + "Allocated_By"^^vocabulary:ObservableObjectRelationshipVocab + "Attachment_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Bound"^^vocabulary:ObservableObjectRelationshipVocab + "Bound_By"^^vocabulary:ObservableObjectRelationshipVocab + "Characterized_By"^^vocabulary:ObservableObjectRelationshipVocab + "Characterizes"^^vocabulary:ObservableObjectRelationshipVocab + "Child_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Closed"^^vocabulary:ObservableObjectRelationshipVocab + "Closed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Compressed"^^vocabulary:ObservableObjectRelationshipVocab + "Compressed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Compressed_From"^^vocabulary:ObservableObjectRelationshipVocab + "Compressed_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Connected_From"^^vocabulary:ObservableObjectRelationshipVocab + "Connected_To"^^vocabulary:ObservableObjectRelationshipVocab + "Contained_Within"^^vocabulary:ObservableObjectRelationshipVocab + "Contains"^^vocabulary:ObservableObjectRelationshipVocab + "Copied"^^vocabulary:ObservableObjectRelationshipVocab + "Copied_By"^^vocabulary:ObservableObjectRelationshipVocab + "Copied_From"^^vocabulary:ObservableObjectRelationshipVocab + "Copied_To"^^vocabulary:ObservableObjectRelationshipVocab + "Created"^^vocabulary:ObservableObjectRelationshipVocab + "Created_By"^^vocabulary:ObservableObjectRelationshipVocab + "Decoded"^^vocabulary:ObservableObjectRelationshipVocab + "Decoded_By"^^vocabulary:ObservableObjectRelationshipVocab + "Decompressed"^^vocabulary:ObservableObjectRelationshipVocab + "Decompressed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Decrypted"^^vocabulary:ObservableObjectRelationshipVocab + "Decrypted_By"^^vocabulary:ObservableObjectRelationshipVocab + "Deleted"^^vocabulary:ObservableObjectRelationshipVocab + "Deleted_By"^^vocabulary:ObservableObjectRelationshipVocab + "Deleted_From"^^vocabulary:ObservableObjectRelationshipVocab + "Downloaded"^^vocabulary:ObservableObjectRelationshipVocab + "Downloaded_By"^^vocabulary:ObservableObjectRelationshipVocab + "Downloaded_From"^^vocabulary:ObservableObjectRelationshipVocab + "Downloaded_To"^^vocabulary:ObservableObjectRelationshipVocab + "Dropped"^^vocabulary:ObservableObjectRelationshipVocab + "Dropped_By"^^vocabulary:ObservableObjectRelationshipVocab + "Encoded"^^vocabulary:ObservableObjectRelationshipVocab + "Encoded_By"^^vocabulary:ObservableObjectRelationshipVocab + "Encrypted"^^vocabulary:ObservableObjectRelationshipVocab + "Encrypted_By"^^vocabulary:ObservableObjectRelationshipVocab + "Encrypted_From"^^vocabulary:ObservableObjectRelationshipVocab + "Encrypted_To"^^vocabulary:ObservableObjectRelationshipVocab + "Extracted_From"^^vocabulary:ObservableObjectRelationshipVocab + "FQDN_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Freed"^^vocabulary:ObservableObjectRelationshipVocab + "Freed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Had_Attachment"^^vocabulary:ObservableObjectRelationshipVocab + "Hooked"^^vocabulary:ObservableObjectRelationshipVocab + "Hooked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Initialized_By"^^vocabulary:ObservableObjectRelationshipVocab + "Initialized_To"^^vocabulary:ObservableObjectRelationshipVocab + "Injected"^^vocabulary:ObservableObjectRelationshipVocab + "Injected_As"^^vocabulary:ObservableObjectRelationshipVocab + "Injected_By"^^vocabulary:ObservableObjectRelationshipVocab + "Injected_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Installed"^^vocabulary:ObservableObjectRelationshipVocab + "Installed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Joined"^^vocabulary:ObservableObjectRelationshipVocab + "Joined_By"^^vocabulary:ObservableObjectRelationshipVocab + "Killed"^^vocabulary:ObservableObjectRelationshipVocab + "Killed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Listened_On"^^vocabulary:ObservableObjectRelationshipVocab + "Listened_On_By"^^vocabulary:ObservableObjectRelationshipVocab + "Loaded_From"^^vocabulary:ObservableObjectRelationshipVocab + "Loaded_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Locked"^^vocabulary:ObservableObjectRelationshipVocab + "Locked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Mapped_By"^^vocabulary:ObservableObjectRelationshipVocab + "Mapped_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Merged"^^vocabulary:ObservableObjectRelationshipVocab + "Merged_By"^^vocabulary:ObservableObjectRelationshipVocab + "Modified_Properties_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Monitored"^^vocabulary:ObservableObjectRelationshipVocab + "Monitored_By"^^vocabulary:ObservableObjectRelationshipVocab + "Moved"^^vocabulary:ObservableObjectRelationshipVocab + "Moved_By"^^vocabulary:ObservableObjectRelationshipVocab + "Moved_From"^^vocabulary:ObservableObjectRelationshipVocab + "Moved_To"^^vocabulary:ObservableObjectRelationshipVocab + "Opened"^^vocabulary:ObservableObjectRelationshipVocab + "Opened_By"^^vocabulary:ObservableObjectRelationshipVocab + "Packed"^^vocabulary:ObservableObjectRelationshipVocab + "Packed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Packed_From"^^vocabulary:ObservableObjectRelationshipVocab + "Packed_Into"^^vocabulary:ObservableObjectRelationshipVocab + "Parent_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Paused"^^vocabulary:ObservableObjectRelationshipVocab + "Paused_By"^^vocabulary:ObservableObjectRelationshipVocab + "Previously_Contained"^^vocabulary:ObservableObjectRelationshipVocab + "Properties_Modified_By"^^vocabulary:ObservableObjectRelationshipVocab + "Properties_Queried"^^vocabulary:ObservableObjectRelationshipVocab + "Properties_Queried_By"^^vocabulary:ObservableObjectRelationshipVocab + "Read_From"^^vocabulary:ObservableObjectRelationshipVocab + "Read_From_By"^^vocabulary:ObservableObjectRelationshipVocab + "Received"^^vocabulary:ObservableObjectRelationshipVocab + "Received_By"^^vocabulary:ObservableObjectRelationshipVocab + "Received_From"^^vocabulary:ObservableObjectRelationshipVocab + "Received_Via_Upload"^^vocabulary:ObservableObjectRelationshipVocab + "Redirects_To"^^vocabulary:ObservableObjectRelationshipVocab + "Related_To"^^vocabulary:ObservableObjectRelationshipVocab + "Renamed"^^vocabulary:ObservableObjectRelationshipVocab + "Renamed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Renamed_From"^^vocabulary:ObservableObjectRelationshipVocab + "Renamed_To"^^vocabulary:ObservableObjectRelationshipVocab + "Resolved_To"^^vocabulary:ObservableObjectRelationshipVocab + "Resumed"^^vocabulary:ObservableObjectRelationshipVocab + "Resumed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Root_Domain_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Searched_For"^^vocabulary:ObservableObjectRelationshipVocab + "Searched_For_By"^^vocabulary:ObservableObjectRelationshipVocab + "Sent"^^vocabulary:ObservableObjectRelationshipVocab + "Sent_By"^^vocabulary:ObservableObjectRelationshipVocab + "Sent_To"^^vocabulary:ObservableObjectRelationshipVocab + "Sent_Via_Upload"^^vocabulary:ObservableObjectRelationshipVocab + "Set_From"^^vocabulary:ObservableObjectRelationshipVocab + "Set_To"^^vocabulary:ObservableObjectRelationshipVocab + "Signed_By"^^vocabulary:ObservableObjectRelationshipVocab + "Sub-domain_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Supra-domain_Of"^^vocabulary:ObservableObjectRelationshipVocab + "Suspended"^^vocabulary:ObservableObjectRelationshipVocab + "Suspended_By"^^vocabulary:ObservableObjectRelationshipVocab + "Unhooked"^^vocabulary:ObservableObjectRelationshipVocab + "Unhooked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Unlocked"^^vocabulary:ObservableObjectRelationshipVocab + "Unlocked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Unpacked"^^vocabulary:ObservableObjectRelationshipVocab + "Unpacked_By"^^vocabulary:ObservableObjectRelationshipVocab + "Uploaded"^^vocabulary:ObservableObjectRelationshipVocab + "Uploaded_By"^^vocabulary:ObservableObjectRelationshipVocab + "Uploaded_From"^^vocabulary:ObservableObjectRelationshipVocab + "Uploaded_To"^^vocabulary:ObservableObjectRelationshipVocab + "Used"^^vocabulary:ObservableObjectRelationshipVocab + "Used_By"^^vocabulary:ObservableObjectRelationshipVocab + "Values_Enumerated"^^vocabulary:ObservableObjectRelationshipVocab + "Values_Enumerated_By"^^vocabulary:ObservableObjectRelationshipVocab + "Written_To_By"^^vocabulary:ObservableObjectRelationshipVocab + "Wrote_To"^^vocabulary:ObservableObjectRelationshipVocab + ) ; + ] ; + . + +vocabulary:ObservableObjectStateVocab + a rdfs:Datatype ; + rdfs:label "Cyber Item State Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of observable object states."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Active"^^vocabulary:ObservableObjectStateVocab + "Closed"^^vocabulary:ObservableObjectStateVocab + "Does Not Exist"^^vocabulary:ObservableObjectStateVocab + "Exists"^^vocabulary:ObservableObjectStateVocab + "Inactive"^^vocabulary:ObservableObjectStateVocab + "Locked"^^vocabulary:ObservableObjectStateVocab + "Open"^^vocabulary:ObservableObjectStateVocab + "Started"^^vocabulary:ObservableObjectStateVocab + "Stopped"^^vocabulary:ObservableObjectStateVocab + "Unlocked"^^vocabulary:ObservableObjectStateVocab + ) ; + ] ; + . + +vocabulary:PartitionTypeVocab + a rdfs:Datatype ; + rdfs:label "Partition Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of partition types. See http://www.win.tue.nl/~aeb/partitions/partition_types-1.html for more information about the various partition types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "PARTITION_ENTRY_UNUSED"^^vocabulary:PartitionTypeVocab + "PARTITION_EXTENDED"^^vocabulary:PartitionTypeVocab + "PARTITION_FAT32"^^vocabulary:PartitionTypeVocab + "PARTITION_FAT32_XINT13"^^vocabulary:PartitionTypeVocab + "PARTITION_FAT_12"^^vocabulary:PartitionTypeVocab + "PARTITION_FAT_16"^^vocabulary:PartitionTypeVocab + "PARTITION_HUGE"^^vocabulary:PartitionTypeVocab + "PARTITION_IFS"^^vocabulary:PartitionTypeVocab + "PARTITION_LDM"^^vocabulary:PartitionTypeVocab + "PARTITION_NTFT"^^vocabulary:PartitionTypeVocab + "PARTITION_OS2BOOTMGR"^^vocabulary:PartitionTypeVocab + "PARTITION_PREP"^^vocabulary:PartitionTypeVocab + "PARTITION_UNIX"^^vocabulary:PartitionTypeVocab + "PARTITION_XENIX_1"^^vocabulary:PartitionTypeVocab + "PARTITION_XENIX_2"^^vocabulary:PartitionTypeVocab + "PARTITION_XINT13"^^vocabulary:PartitionTypeVocab + "PARTITION_XINT13_EXTENDED"^^vocabulary:PartitionTypeVocab + "UNKNOWN"^^vocabulary:PartitionTypeVocab + "VALID_NTFT"^^vocabulary:PartitionTypeVocab + ) ; + ] ; + . + +vocabulary:ProcessorArchVocab + a rdfs:Datatype ; + rdfs:label "Processor Architecture Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of computer processor architectures."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ARM"^^vocabulary:ProcessorArchVocab + "Alpha"^^vocabulary:ProcessorArchVocab + "IA-64"^^vocabulary:ProcessorArchVocab + "MIPS"^^vocabulary:ProcessorArchVocab + "Motorola 68k"^^vocabulary:ProcessorArchVocab + "Other"^^vocabulary:ProcessorArchVocab + "PowerPC"^^vocabulary:ProcessorArchVocab + "SPARC"^^vocabulary:ProcessorArchVocab + "eSi-RISC"^^vocabulary:ProcessorArchVocab + "x86-32"^^vocabulary:ProcessorArchVocab + "x86-64"^^vocabulary:ProcessorArchVocab + "z/Architecture"^^vocabulary:ProcessorArchVocab + ) ; + ] ; + . + +vocabulary:RecoveredObjectStatusVocab + a rdfs:Datatype ; + rdfs:label "Recovered Object Status Vocabulary"@en-US ; + rdfs:comment "Defines the vocabulary for Recovered Object status of data."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "recovered"^^vocabulary:RecoveredObjectStatusVocab + "partially recovered"^^vocabulary:RecoveredObjectStatusVocab + "overwritten"^^vocabulary:RecoveredObjectStatusVocab + "unknown"^^vocabulary:RecoveredObjectStatusVocab + ) ; + ] ; + . + +vocabulary:RegionalRegistryTypeVocab + a rdfs:Datatype ; + rdfs:label "Regional Registry Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of Regional Internet Registries (RIRs) names, represented via their respective acronyms."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "APNIC"^^vocabulary:RegionalRegistryTypeVocab + "ARIN"^^vocabulary:RegionalRegistryTypeVocab + "AfriNIC"^^vocabulary:RegionalRegistryTypeVocab + "LACNIC"^^vocabulary:RegionalRegistryTypeVocab + "RIPE NCC"^^vocabulary:RegionalRegistryTypeVocab + ) ; + ] ; + . + +vocabulary:RegistryDatatypeVocab + a rdfs:Datatype ; + rdfs:label "Registry Datatype Vocabulary"@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "reg_binary"^^vocabulary:RegistryDatatypeVocab + "reg_dword"^^vocabulary:RegistryDatatypeVocab + "reg_dword_big_endian"^^vocabulary:RegistryDatatypeVocab + "reg_expand_sz"^^vocabulary:RegistryDatatypeVocab + "reg_full_resource_descriptor"^^vocabulary:RegistryDatatypeVocab + "reg_invalid_type"^^vocabulary:RegistryDatatypeVocab + "reg_link"^^vocabulary:RegistryDatatypeVocab + "reg_multi_sz"^^vocabulary:RegistryDatatypeVocab + "reg_none"^^vocabulary:RegistryDatatypeVocab + "reg_qword"^^vocabulary:RegistryDatatypeVocab + "reg_resource_list"^^vocabulary:RegistryDatatypeVocab + "reg_resource_requirements_list"^^vocabulary:RegistryDatatypeVocab + "reg_sz"^^vocabulary:RegistryDatatypeVocab + ) ; + ] ; + . + +vocabulary:SIMFormVocab + a rdfs:Datatype ; + rdfs:label "SIM Form Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of common SIM card form factors."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Full-size SIM"^^vocabulary:SIMFormVocab + "Micro SIM"^^vocabulary:SIMFormVocab + "Nano SIM"^^vocabulary:SIMFormVocab + ) ; + ] ; + . + +vocabulary:SIMTypeVocab + a rdfs:Datatype ; + rdfs:label "SIM Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of common SIM card types."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "SIM"^^vocabulary:SIMTypeVocab + "UICC"^^vocabulary:SIMTypeVocab + "USIM"^^vocabulary:SIMTypeVocab + ) ; + ] ; + . + +vocabulary:TaskActionTypeVocab + a rdfs:Datatype ; + rdfs:label "Task Action Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of task action types. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380596(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "TASK_ACTION_COM_HANDLER"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_EXEC"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_SEND_EMAIL"^^vocabulary:TaskActionTypeVocab + "TASK_ACTION_SHOW_MESSAGE"^^vocabulary:TaskActionTypeVocab + ) ; + ] ; + . + +vocabulary:TaskFlagVocab + a rdfs:Datatype ; + rdfs:label "Task Flag Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the run flags for a task scheduler task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381283(v=vs.85).aspx See Also: http://msdn.microsoft.com/en-us/library/microsoft.office.excel.server.addins.computecluster.taskscheduler.taskflags(v=office.12).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "TASK_FLAG_DELETE_WHEN_DONE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_DISABLED"^^vocabulary:TaskFlagVocab + "TASK_FLAG_DONT_START_IF_ON_BATTERIES"^^vocabulary:TaskFlagVocab + "TASK_FLAG_HIDDEN"^^vocabulary:TaskFlagVocab + "TASK_FLAG_INTERACTIVE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_KILL_IF_GOING_ON_BATTERIES"^^vocabulary:TaskFlagVocab + "TASK_FLAG_KILL_ON_IDLE_END"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RESTART_ON_IDLE_RESUME"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNET"^^vocabulary:TaskFlagVocab + "TASK_FLAG_RUN_ONLY_IF_LOGGED_ON"^^vocabulary:TaskFlagVocab + "TASK_FLAG_START_ONLY_IF_IDLE"^^vocabulary:TaskFlagVocab + "TASK_FLAG_SYSTEM_REQUIRED"^^vocabulary:TaskFlagVocab + "TASK_FLAG_ZERO"^^vocabulary:TaskFlagVocab + ) ; + ] ; + . + +vocabulary:TaskPriorityVocab + a rdfs:Datatype ; + rdfs:label "Task Priority Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the priority levels of task scheduler tasks. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383512(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ABOVE_NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "BELOW_NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "HIGH_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "IDLE_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "NORMAL_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + "REALTIME_PRIORITY_CLASS"^^vocabulary:TaskPriorityVocab + ) ; + ] ; + . + +vocabulary:TaskStatusVocab + a rdfs:Datatype ; + rdfs:label "Task Status Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the possible statuses of a scheduled task. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383604(v=vs.85).aspx See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381263(v=vs.85).aspx See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa381833(v=vs.85).aspx See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383617(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "SCHED_E_ACCOUNT_DBASE_CORRUPT"^^vocabulary:TaskStatusVocab + "SCHED_E_ACCOUNT_INFORMATION_NOT_SET"^^vocabulary:TaskStatusVocab + "SCHED_E_ACCOUNT_NAME_NOT_FOUND"^^vocabulary:TaskStatusVocab + "SCHED_E_CANNOT_OPEN_TASK"^^vocabulary:TaskStatusVocab + "SCHED_E_INVALID_TASK"^^vocabulary:TaskStatusVocab + "SCHED_E_NO_SECURITY_SERVICES"^^vocabulary:TaskStatusVocab + "SCHED_E_SERVICE_NOT_INSTALLED"^^vocabulary:TaskStatusVocab + "SCHED_E_SERVICE_NOT_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_E_TASK_NOT_READY"^^vocabulary:TaskStatusVocab + "SCHED_E_TASK_NOT_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_E_TRIGGER_NOT_FOUND"^^vocabulary:TaskStatusVocab + "SCHED_E_UNKNOWN_OBJECT_VERSION"^^vocabulary:TaskStatusVocab + "SCHED_E_UNSUPPORTED_ACCOUNT_OPTION"^^vocabulary:TaskStatusVocab + "SCHED_S_EVENT_TRIGGER"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_DISABLED"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_HAS_NOT_RUN"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NOT_SCHEDULED"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NO_MORE_RUNS"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_NO_VALID_TRIGGERS"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_READY"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_RUNNING"^^vocabulary:TaskStatusVocab + "SCHED_S_TASK_TERMINATED"^^vocabulary:TaskStatusVocab + "TASK_STATE_QUEUED"^^vocabulary:TaskStatusVocab + "TASK_STATE_UNKNOWN"^^vocabulary:TaskStatusVocab + ) ; + ] ; + . + +vocabulary:ThreadRunningStatusVocab + a rdfs:Datatype ; + rdfs:label "Thread Running Status Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the various states that a thread may be in before, during, or after execution. See http://msdn.microsoft.com/en-us/library/system.diagnostics.threadstate(v=vs.110).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Initialized"^^vocabulary:ThreadRunningStatusVocab + "Ready"^^vocabulary:ThreadRunningStatusVocab + "Running"^^vocabulary:ThreadRunningStatusVocab + "Standby"^^vocabulary:ThreadRunningStatusVocab + "Terminated"^^vocabulary:ThreadRunningStatusVocab + "Transition"^^vocabulary:ThreadRunningStatusVocab + "Unknown"^^vocabulary:ThreadRunningStatusVocab + "Waiting"^^vocabulary:ThreadRunningStatusVocab + ) ; + ] ; + . + +vocabulary:TimestampPrecisionVocab + a rdfs:Datatype ; + rdfs:label "Timestamp Precision Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of timestamp precision granularities."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "day"^^vocabulary:TimestampPrecisionVocab + "hour"^^vocabulary:TimestampPrecisionVocab + "minute"^^vocabulary:TimestampPrecisionVocab + "month"^^vocabulary:TimestampPrecisionVocab + "second"^^vocabulary:TimestampPrecisionVocab + "year"^^vocabulary:TimestampPrecisionVocab + ) ; + ] ; + . + +vocabulary:TrendVocab + a rdfs:Datatype ; + rdfs:label "Trend Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of trend values."@en-US ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Decreasing"^^vocabulary:TrendVocab + "Increasing"^^vocabulary:TrendVocab + ) ; + ] ; + . + +vocabulary:TriggerFrequencyVocab + a rdfs:Datatype ; + rdfs:label "Trigger Frequency Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the frequency types that a trigger may use. See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383620(v=vs.85).aspx and http://msdn.microsoft.com/en-us/library/windows/desktop/aa383987(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "TASK_EVENT_TRIGGER_AT_LOGON"^^vocabulary:TriggerFrequencyVocab + "TASK_EVENT_TRIGGER_AT_SYSTEMSTART"^^vocabulary:TriggerFrequencyVocab + "TASK_EVENT_TRIGGER_ON_IDLE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_DAILY"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_MONTHLYDATE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_MONTHLYDOW"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_ONCE"^^vocabulary:TriggerFrequencyVocab + "TASK_TIME_TRIGGER_WEEKLY"^^vocabulary:TriggerFrequencyVocab + ) ; + ] ; + . + +vocabulary:TriggerTypeVocab + a rdfs:Datatype ; + rdfs:label "Trigger Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of the types of triggers associated with a task."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "TASK_TRIGGER_BOOT"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_EVENT"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_IDLE"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_LOGON"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_REGISTRATION"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_SESSION_STATE_CHANGE"^^vocabulary:TriggerTypeVocab + "TASK_TRIGGER_TIME"^^vocabulary:TriggerTypeVocab + ) ; + ] ; + . + +vocabulary:URLTransitionTypeVocab + a rdfs:Datatype ; + rdfs:label "URL Transition Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of types of URL transitions."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "link"^^vocabulary:URLTransitionTypeVocab + "typed"^^vocabulary:URLTransitionTypeVocab + "auto_bookmark"^^vocabulary:URLTransitionTypeVocab + "auto_subframe"^^vocabulary:URLTransitionTypeVocab + "manual_subframe"^^vocabulary:URLTransitionTypeVocab + "generated"^^vocabulary:URLTransitionTypeVocab + "auto_toplevel"^^vocabulary:URLTransitionTypeVocab + "form_submit"^^vocabulary:URLTransitionTypeVocab + "reload"^^vocabulary:URLTransitionTypeVocab + "keyword"^^vocabulary:URLTransitionTypeVocab + "keyword_generated"^^vocabulary:URLTransitionTypeVocab + ) ; + ] ; + . + +vocabulary:UnixProcessStateVocab + a rdfs:Datatype ; + rdfs:label "UNIX Process State Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of Unix process states"@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Dead"^^vocabulary:UnixProcessStateVocab + "InterruptibleSleep"^^vocabulary:UnixProcessStateVocab + "Paging"^^vocabulary:UnixProcessStateVocab + "Running"^^vocabulary:UnixProcessStateVocab + "Stopped"^^vocabulary:UnixProcessStateVocab + "UninterruptibleSleep"^^vocabulary:UnixProcessStateVocab + "Zombie"^^vocabulary:UnixProcessStateVocab + ) ; + ] ; + . + +vocabulary:WhoisContactTypeVocab + a rdfs:Datatype ; + rdfs:label "Whois Contact Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of types of registrar contacts listed in a whois entry."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ADMIN"^^vocabulary:WhoisContactTypeVocab + "BILLING"^^vocabulary:WhoisContactTypeVocab + "TECHNICAL"^^vocabulary:WhoisContactTypeVocab + ) ; + ] ; + . + +vocabulary:WhoisDNSSECTypeVocab + a rdfs:Datatype ; + rdfs:label "Whois DNSSEC Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of acceptable values for the DNSSEC field in a Whois entry."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Signed"^^vocabulary:WhoisDNSSECTypeVocab + "Unsigned"^^vocabulary:WhoisDNSSECTypeVocab + ) ; + ] ; + . + +vocabulary:WhoisStatusTypeVocab + a rdfs:Datatype ; + rdfs:label "Whois Status Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of all valid statuses for a domain within a whois entry."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "ADD_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "AUTO_RENEW_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_DELETE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_HOLD"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_RENEW_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_TRANSFER_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "CLIENT_UPDATE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "DELETE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "HOLD"^^vocabulary:WhoisStatusTypeVocab + "INACTIVE"^^vocabulary:WhoisStatusTypeVocab + "OK"^^vocabulary:WhoisStatusTypeVocab + "PENDING_DELETE_RESTORABLE"^^vocabulary:WhoisStatusTypeVocab + "PENDING_DELETE_SCHEDULED_FOR_RELEASE"^^vocabulary:WhoisStatusTypeVocab + "PENDING_RESTORE"^^vocabulary:WhoisStatusTypeVocab + "RENEW_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "RENEW_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "TRANSFER_PERIOD"^^vocabulary:WhoisStatusTypeVocab + "TRANSFER_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + "UPDATE_PROHIBITED"^^vocabulary:WhoisStatusTypeVocab + ) ; + ] ; + . + +vocabulary:WindowsDriveTypeVocab + a rdfs:Datatype ; + rdfs:label "Windows Drive Type Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of possible drive types, as enumerated by the WINAPI GetDriveType function: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364939(v=vs.85).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "DRIVE_CDROM"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_FIXED"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_NO_ROOT_DIR"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_RAMDISK"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_REMOTE"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_REMOVABLE"^^vocabulary:WindowsDriveTypeVocab + "DRIVE_UNKNOWN"^^vocabulary:WindowsDriveTypeVocab + ) ; + ] ; + . + +vocabulary:WindowsVolumeAttributeVocab + a rdfs:Datatype ; + rdfs:label "Windows Volume Attribute Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of attributes that may be returned by the diskpart attributes command: http://technet.microsoft.com/en-us/library/cc766465(v=ws.10).aspx."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "Hidden"^^vocabulary:WindowsVolumeAttributeVocab + "NoDefaultDriveLetter"^^vocabulary:WindowsVolumeAttributeVocab + "ReadOnly"^^vocabulary:WindowsVolumeAttributeVocab + "ShadowCopy"^^vocabulary:WindowsVolumeAttributeVocab + ) ; + ] ; + . + +vocabulary:WirelessNetworkSecurityModeVocab + a rdfs:Datatype ; + rdfs:label "Wireless Network Security Mode Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of security modes that may be configured for wireless network connections."@en ; + owl:equivalentClass [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:oneOf ( + "None"^^vocabulary:WirelessNetworkSecurityModeVocab + "WEP"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA2-PSK"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA2-Enterprise"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA3-PSK"^^vocabulary:WirelessNetworkSecurityModeVocab + "WPA3-Enterprise"^^vocabulary:WirelessNetworkSecurityModeVocab + ) ; + ] ; + . + +[] + a owl:AllDisjointClasses ; + owl:members ( + core:UcoInherentCharacterizationThing + core:UcoObject + ) ; + . + +[] + a owl:Axiom ; + rdfs:comment "This triple is repeated from the Collections Ontology."@en ; + owl:annotatedProperty rdfs:subClassOf ; + owl:annotatedSource co:ListItem ; + owl:annotatedTarget co:Item ; + . + diff --git a/case_utils/ontology/ontology_and_version_iris.txt b/case_utils/ontology/ontology_and_version_iris.txt new file mode 100644 index 0000000..5766763 --- /dev/null +++ b/case_utils/ontology/ontology_and_version_iris.txt @@ -0,0 +1,115 @@ +http://case.example.org/core +https://ontology.caseontology.org/case/case +https://ontology.caseontology.org/case/case/0.7.1 +https://ontology.caseontology.org/case/case/1.0.0 +https://ontology.caseontology.org/case/case/1.1.0 +https://ontology.caseontology.org/case/case/1.2.0 +https://ontology.caseontology.org/case/investigation +https://ontology.caseontology.org/case/investigation/0.7.1 +https://ontology.caseontology.org/case/investigation/1.0.0 +https://ontology.caseontology.org/case/investigation/1.1.0 +https://ontology.caseontology.org/case/investigation/1.2.0 +https://ontology.caseontology.org/case/vocabulary +https://ontology.caseontology.org/case/vocabulary/0.7.1 +https://ontology.caseontology.org/case/vocabulary/1.0.0 +https://ontology.caseontology.org/case/vocabulary/1.1.0 +https://ontology.caseontology.org/case/vocabulary/1.2.0 +https://ontology.unifiedcyberontology.org/co +https://ontology.unifiedcyberontology.org/co/1.0.0 +https://ontology.unifiedcyberontology.org/co/1.1.0 +https://ontology.unifiedcyberontology.org/co/1.2.0 +https://ontology.unifiedcyberontology.org/owl +https://ontology.unifiedcyberontology.org/owl/1.0.0 +https://ontology.unifiedcyberontology.org/owl/1.1.0 +https://ontology.unifiedcyberontology.org/owl/1.2.0 +https://ontology.unifiedcyberontology.org/uco/action +https://ontology.unifiedcyberontology.org/uco/action/0.9.1 +https://ontology.unifiedcyberontology.org/uco/action/1.0.0 +https://ontology.unifiedcyberontology.org/uco/action/1.1.0 +https://ontology.unifiedcyberontology.org/uco/action/1.2.0 +https://ontology.unifiedcyberontology.org/uco/analysis +https://ontology.unifiedcyberontology.org/uco/analysis/1.1.0 +https://ontology.unifiedcyberontology.org/uco/analysis/1.2.0 +https://ontology.unifiedcyberontology.org/uco/configuration +https://ontology.unifiedcyberontology.org/uco/configuration/1.0.0 +https://ontology.unifiedcyberontology.org/uco/configuration/1.1.0 +https://ontology.unifiedcyberontology.org/uco/configuration/1.2.0 +https://ontology.unifiedcyberontology.org/uco/core +https://ontology.unifiedcyberontology.org/uco/core/0.9.1 +https://ontology.unifiedcyberontology.org/uco/core/1.0.0 +https://ontology.unifiedcyberontology.org/uco/core/1.1.0 +https://ontology.unifiedcyberontology.org/uco/core/1.2.0 +https://ontology.unifiedcyberontology.org/uco/identity +https://ontology.unifiedcyberontology.org/uco/identity/0.9.1 +https://ontology.unifiedcyberontology.org/uco/identity/1.0.0 +https://ontology.unifiedcyberontology.org/uco/identity/1.1.0 +https://ontology.unifiedcyberontology.org/uco/identity/1.2.0 +https://ontology.unifiedcyberontology.org/uco/location +https://ontology.unifiedcyberontology.org/uco/location/0.9.1 +https://ontology.unifiedcyberontology.org/uco/location/1.0.0 +https://ontology.unifiedcyberontology.org/uco/location/1.1.0 +https://ontology.unifiedcyberontology.org/uco/location/1.2.0 +https://ontology.unifiedcyberontology.org/uco/marking +https://ontology.unifiedcyberontology.org/uco/marking/0.9.1 +https://ontology.unifiedcyberontology.org/uco/marking/1.0.0 +https://ontology.unifiedcyberontology.org/uco/marking/1.1.0 +https://ontology.unifiedcyberontology.org/uco/marking/1.2.0 +https://ontology.unifiedcyberontology.org/uco/observable +https://ontology.unifiedcyberontology.org/uco/observable/0.9.1 +https://ontology.unifiedcyberontology.org/uco/observable/1.0.0 +https://ontology.unifiedcyberontology.org/uco/observable/1.1.0 +https://ontology.unifiedcyberontology.org/uco/observable/1.2.0 +https://ontology.unifiedcyberontology.org/uco/pattern +https://ontology.unifiedcyberontology.org/uco/pattern/0.9.1 +https://ontology.unifiedcyberontology.org/uco/pattern/1.0.0 +https://ontology.unifiedcyberontology.org/uco/pattern/1.1.0 +https://ontology.unifiedcyberontology.org/uco/pattern/1.2.0 +https://ontology.unifiedcyberontology.org/uco/role +https://ontology.unifiedcyberontology.org/uco/role/0.9.1 +https://ontology.unifiedcyberontology.org/uco/role/1.0.0 +https://ontology.unifiedcyberontology.org/uco/role/1.1.0 +https://ontology.unifiedcyberontology.org/uco/role/1.2.0 +https://ontology.unifiedcyberontology.org/uco/time +https://ontology.unifiedcyberontology.org/uco/time/0.9.1 +https://ontology.unifiedcyberontology.org/uco/time/1.0.0 +https://ontology.unifiedcyberontology.org/uco/time/1.1.0 +https://ontology.unifiedcyberontology.org/uco/time/1.2.0 +https://ontology.unifiedcyberontology.org/uco/tool +https://ontology.unifiedcyberontology.org/uco/tool/0.9.1 +https://ontology.unifiedcyberontology.org/uco/tool/1.0.0 +https://ontology.unifiedcyberontology.org/uco/tool/1.1.0 +https://ontology.unifiedcyberontology.org/uco/tool/1.2.0 +https://ontology.unifiedcyberontology.org/uco/types +https://ontology.unifiedcyberontology.org/uco/types/0.9.1 +https://ontology.unifiedcyberontology.org/uco/types/1.0.0 +https://ontology.unifiedcyberontology.org/uco/types/1.1.0 +https://ontology.unifiedcyberontology.org/uco/types/1.2.0 +https://ontology.unifiedcyberontology.org/uco/uco +https://ontology.unifiedcyberontology.org/uco/uco/0.9.1 +https://ontology.unifiedcyberontology.org/uco/uco/1.0.0 +https://ontology.unifiedcyberontology.org/uco/uco/1.1.0 +https://ontology.unifiedcyberontology.org/uco/uco/1.2.0 +https://ontology.unifiedcyberontology.org/uco/victim +https://ontology.unifiedcyberontology.org/uco/victim/0.9.1 +https://ontology.unifiedcyberontology.org/uco/victim/1.0.0 +https://ontology.unifiedcyberontology.org/uco/victim/1.1.0 +https://ontology.unifiedcyberontology.org/uco/victim/1.2.0 +https://ontology.unifiedcyberontology.org/uco/vocabulary +https://ontology.unifiedcyberontology.org/uco/vocabulary/0.9.1 +https://ontology.unifiedcyberontology.org/uco/vocabulary/1.0.0 +https://ontology.unifiedcyberontology.org/uco/vocabulary/1.1.0 +https://ontology.unifiedcyberontology.org/uco/vocabulary/1.2.0 +https://unifiedcyberontology.org/ontology/uco/action +https://unifiedcyberontology.org/ontology/uco/core +https://unifiedcyberontology.org/ontology/uco/identity +https://unifiedcyberontology.org/ontology/uco/location +https://unifiedcyberontology.org/ontology/uco/marking +https://unifiedcyberontology.org/ontology/uco/observable +https://unifiedcyberontology.org/ontology/uco/pattern +https://unifiedcyberontology.org/ontology/uco/role +https://unifiedcyberontology.org/ontology/uco/time +https://unifiedcyberontology.org/ontology/uco/tool +https://unifiedcyberontology.org/ontology/uco/types +https://unifiedcyberontology.org/ontology/uco/uco +https://unifiedcyberontology.org/ontology/uco/victim +https://unifiedcyberontology.org/ontology/uco/vocabulary diff --git a/case_utils/ontology/src/ontology_and_version_iris.py b/case_utils/ontology/src/ontology_and_version_iris.py new file mode 100644 index 0000000..f0139ed --- /dev/null +++ b/case_utils/ontology/src/ontology_and_version_iris.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 + +# This software was developed at the National Institute of Standards +# and Technology by employees of the Federal Government in the course +# of their official duties. Pursuant to title 17 Section 105 of the +# United States Code this software is not subject to copyright +# protection and is in the public domain. NIST assumes no +# responsibility whatsoever for its use by other parties, and makes +# no guarantees, expressed or implied, about its quality, +# reliability, or any other characteristic. +# +# We would appreciate acknowledgement if the software is used. + +""" +This script creates a list of all ontology and version IRIs that have ever existed in a CDO ontology to describe a CDO ontology. I.e. the subject of triples with owl:Ontology as predicate are included, as are the objects of version-referencing triples (owl:versionIRI, owl:incompatibleWith, etc.). +""" + +__version__ = "0.1.1" + +import argparse +import typing + +import rdflib + +NS_OWL = rdflib.OWL +NS_RDF = rdflib.RDF + + +def concept_is_cdo_concept(n_concept: rdflib.URIRef) -> bool: + """ + This function is purposefully distinct from the function used in case_validate. Within this script, the publishing history of CASE and UCO is reviewed. + + >>> concept_is_cdo_concept(rdflib.URIRef("http://example.org/ontology/Thing")) + False + >>> concept_is_cdo_concept(rdflib.URIRef("https://ontology.unifiedcyberontology.org/uco/core/UcoThing")) + True + """ + concept_iri = str(n_concept) + return ( + concept_iri.startswith("https://ontology.unifiedcyberontology.org/") + or concept_iri.startswith("https://ontology.caseontology.org/") + or concept_iri.startswith("https://unifiedcyberontology.org/ontology/") + or concept_iri.startswith("https://caseontology.org/ontology/") + or concept_iri == "http://case.example.org/core" + ) + + +def extract_ontology_iris(ontology_graph: rdflib.Graph) -> typing.Set[rdflib.URIRef]: + """ + Return all concepts describing the OWL Ontology in the input graph. This does not return classes, properties, etc. defined within the ontology; instead, it only returns the ontology IRI and annotations about the ontology. + """ + ontology_concepts: typing.Set[rdflib.URIRef] = set() + for n_ontology_predicate in [ + NS_OWL.backwardCompatibleWith, + NS_OWL.imports, + NS_OWL.incompatibleWith, + NS_OWL.priorVersion, + NS_OWL.versionIRI, + ]: + for ontology_triple in ontology_graph.triples( + (None, n_ontology_predicate, None) + ): + assert isinstance(ontology_triple[0], rdflib.URIRef) + assert isinstance(ontology_triple[2], rdflib.URIRef) + ontology_concepts.add(ontology_triple[0]) + ontology_concepts.add(ontology_triple[2]) + for ontology_triple in ontology_graph.triples((None, NS_RDF.type, NS_OWL.Ontology)): + if not isinstance(ontology_triple[0], rdflib.URIRef): + continue + if concept_is_cdo_concept(ontology_triple[0]): + ontology_concepts.add(ontology_triple[0]) + return ontology_concepts + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("out_txt") + parser.add_argument("in_ttl", nargs="+") + args = parser.parse_args() + + cdo_concepts: typing.Set[rdflib.URIRef] = set() + for in_ttl in args.in_ttl: + ontology_graph = rdflib.Graph() + ontology_graph.parse(in_ttl) + ontology_concepts = extract_ontology_iris(ontology_graph) + for ontology_concept in ontology_concepts: + if concept_is_cdo_concept(ontology_concept): + cdo_concepts.add(ontology_concept) + + with open(args.out_txt, "w") as out_fh: + for cdo_concept in sorted(cdo_concepts): + print(cdo_concept, file=out_fh) + + +if __name__ == "__main__": + main() diff --git a/case_utils/ontology/version_info.py b/case_utils/ontology/version_info.py index 450951b..e603eb7 100644 --- a/case_utils/ontology/version_info.py +++ b/case_utils/ontology/version_info.py @@ -19,12 +19,12 @@ When preparing to build a new monolithic ontology, please edit this variable to match the new respective version. """ -__version__ = "0.4.0" +__version__ = "0.6.0" __all__ = ["CURRENT_CASE_VERSION", "built_version_choices_list"] # Tested with CI to match versionInfo of . -CURRENT_CASE_VERSION: str = "1.0.0" +CURRENT_CASE_VERSION: str = "1.2.0" # Tested with CI to match set of ontology files available. built_version_choices_list = [ @@ -33,6 +33,8 @@ "case-0.6.0", "case-0.7.0", "case-0.7.1", + "case-1.0.0", + "case-1.1.0", "case-" + CURRENT_CASE_VERSION, ] diff --git a/dependencies/CASE b/dependencies/CASE index 82d96f6..efc880c 160000 --- a/dependencies/CASE +++ b/dependencies/CASE @@ -1 +1 @@ -Subproject commit 82d96f66b46a95bcbe887e142a432e13a9273dd4 +Subproject commit efc880ccbcd1d19058061d87bbfc31dc4c39eeb8 diff --git a/setup.cfg b/setup.cfg index 401504c..7420867 100644 --- a/setup.cfg +++ b/setup.cfg @@ -21,11 +21,11 @@ include_package_data = true install_requires = pandas pyshacl - rdflib >= 6.2.0 + rdflib >= 6.2.0, < 7.0.0 requests tabulate packages = find: -python_requires = >=3.7 +python_requires = >=3.8 [options.entry_points] console_scripts = @@ -34,9 +34,19 @@ console_scripts = case_sparql_select = case_utils.case_sparql_select:main case_validate = case_utils.case_validate:main +[options.extras_require] +testing = + PyLD + mypy + pytest + python-dateutil + types-python-dateutil + [options.package_data] case_utils = py.typed -case_utils.ontology = *.ttl +case_utils.ontology = + *.ttl + ontology_and_version_iris.txt [flake8] # https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html#flake8 diff --git a/tests/Makefile b/tests/Makefile index 85dfd2a..37ad7e3 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -23,6 +23,7 @@ all: \ .PHONY: \ all-case_utils \ check-case_utils \ + check-doctest \ check-isomorphic_diff \ check-mypy \ download @@ -31,8 +32,7 @@ all: \ $(top_srcdir)/.git_submodule_init.done.log \ $(top_srcdir)/case_utils/__init__.py \ $(top_srcdir)/setup.cfg \ - $(top_srcdir)/setup.py \ - requirements.txt + $(top_srcdir)/setup.py rm -rf venv $(PYTHON3) -m venv \ venv @@ -42,14 +42,11 @@ all: \ pip \ setuptools \ wheel - source venv/bin/activate \ - && pip install \ - --requirement requirements.txt source venv/bin/activate \ && cd $(top_srcdir) \ && pip install \ --editable \ - . + .[testing] touch $@ all-case_utils: \ @@ -61,6 +58,7 @@ all-case_utils: \ # These check calls are provided in preferred run-order. check: \ check-mypy \ + check-doctest \ check-isomorphic_diff \ check-case_utils source venv/bin/activate \ @@ -75,18 +73,27 @@ check-case_utils: \ --directory case_utils \ check +check-doctest: \ + .venv.done.log + source venv/bin/activate \ + && pytest \ + --doctest-modules \ + --log-level=DEBUG \ + $(top_srcdir)/case_utils + check-isomorphic_diff: \ .venv.done.log $(MAKE) \ --directory isomorphic_diff \ check -# TODO - Fix type signatures in UCO test. +# TODO - Add and strict-check type signatures for CASE and UCO tests. check-mypy: \ .venv.done.log source venv/bin/activate \ && mypy \ --exclude case_utils/case_validate/case_test_examples/test_case_validation.py \ + --exclude case_utils/case_validate/uco_test_examples/test_uco_validation.py \ --exclude venv \ --strict \ $(top_srcdir)/case_utils \ diff --git a/tests/case_utils/Makefile b/tests/case_utils/Makefile index e77c927..3c65a40 100644 --- a/tests/case_utils/Makefile +++ b/tests/case_utils/Makefile @@ -65,6 +65,7 @@ check: \ && pytest \ --ignore case_file \ --ignore case_sparql_construct \ + --ignore case_sparql_select \ --ignore case_validate \ --log-level=DEBUG diff --git a/tests/case_utils/case_file/Makefile b/tests/case_utils/case_file/Makefile index 254a27d..e2014ec 100644 --- a/tests/case_utils/case_file/Makefile +++ b/tests/case_utils/case_file/Makefile @@ -82,6 +82,9 @@ kb.ttl: \ #TODO - kb.json has a conversion error with context dictionary construction and custom datatypes. kb_validation.ttl: \ + $(top_srcdir)/case_utils/case_validate/__init__.py \ + $(top_srcdir)/case_utils/case_validate/validate_types.py \ + $(top_srcdir)/case_utils/case_validate/validate_utils.py \ kb.ttl source $(tests_srcdir)/venv/bin/activate \ && case_validate \ @@ -110,6 +113,7 @@ sample.txt.json: \ $(tests_srcdir)/src/compact.py \ $(tests_srcdir)/src/isomorphic_diff.py \ $(top_srcdir)/case_utils/case_file/__init__.py \ + $(top_srcdir)/case_utils/inherent_uuid.py \ $(top_srcdir)/case_utils/local_uuid.py \ $(top_srcdir)/case_utils/namespace.py \ sample.txt-nocompact.json @@ -118,6 +122,7 @@ sample.txt.json: \ && source $(tests_srcdir)/venv/bin/activate \ && case_file \ --debug \ + --use-deterministic-uuids \ __$@ \ sample.txt source $(tests_srcdir)/venv/bin/activate \ @@ -143,6 +148,7 @@ sample.txt.ttl: \ $(RDF_TOOLKIT_JAR) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/case_utils/case_file/__init__.py \ + $(top_srcdir)/case_utils/inherent_uuid.py \ $(top_srcdir)/case_utils/local_uuid.py \ $(top_srcdir)/case_utils/namespace.py \ sample.txt.done.log @@ -151,6 +157,7 @@ sample.txt.ttl: \ && source $(tests_srcdir)/venv/bin/activate \ && case_file \ --debug \ + --use-deterministic-uuids \ __$@ \ sample.txt java -jar $(RDF_TOOLKIT_JAR) \ @@ -167,6 +174,7 @@ sample.txt-disable_hashes.ttl: \ $(RDF_TOOLKIT_JAR) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/case_utils/case_file/__init__.py \ + $(top_srcdir)/case_utils/inherent_uuid.py \ $(top_srcdir)/case_utils/local_uuid.py \ $(top_srcdir)/case_utils/namespace.py \ sample.txt.done.log @@ -176,6 +184,7 @@ sample.txt-disable_hashes.ttl: \ && case_file \ --debug \ --disable-hashes \ + --use-deterministic-uuids \ __$@ \ sample.txt java -jar $(RDF_TOOLKIT_JAR) \ @@ -193,6 +202,7 @@ sample.txt-nocompact.json: \ $(tests_srcdir)/.venv.done.log \ $(tests_srcdir)/src/isomorphic_diff.py \ $(top_srcdir)/case_utils/case_file/__init__.py \ + $(top_srcdir)/case_utils/inherent_uuid.py \ $(top_srcdir)/case_utils/local_uuid.py \ $(top_srcdir)/case_utils/namespace.py \ sample.txt.done.log @@ -201,6 +211,7 @@ sample.txt-nocompact.json: \ && source $(tests_srcdir)/venv/bin/activate \ && case_file \ --debug \ + --use-deterministic-uuids \ _$@ \ sample.txt # To avoid making noisy, uninformative updates from blank node identifiers, only move the new file into place if it is not isomorphic with the Git-tracked version of the target. diff --git a/tests/case_utils/case_file/kb.json b/tests/case_utils/case_file/kb.json index 771a30b..57549e7 100644 --- a/tests/case_utils/case_file/kb.json +++ b/tests/case_utils/case_file/kb.json @@ -9,20 +9,26 @@ }, "@graph": [ { - "@id": "kb:content-data-facet-1833f979-1f19-5543-9d82-6cefd144b169", + "@id": "kb:ContentDataFacet-e154c2c4-bbf7-54f5-b7a0-837a3bbbeac8", "@type": "uco-observable:ContentDataFacet", "uco-observable:hash": [ { - "@id": "kb:hash-24644904-83ea-5911-aea8-be687a9f3caf" + "@id": "kb:Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337" }, { - "@id": "kb:hash-295bdeb5-7f23-5a3f-8b7f-4bb1191b7c21" + "@id": "kb:Hash-7395c349-e7ab-59b4-acdd-9d857c32413a" }, { - "@id": "kb:hash-39127f5c-598b-51d4-a720-2e949f18f85f" + "@id": "kb:Hash-9527b473-6268-5385-9a74-4eb1a98fef93" }, { - "@id": "kb:hash-49e81fee-c6b3-5f5f-af8b-0746d32e4932" + "@id": "kb:Hash-acdba760-7dc3-5601-8d5f-480c1def8492" + }, + { + "@id": "kb:Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72" + }, + { + "@id": "kb:Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af" } ], "uco-observable:sizeInBytes": { @@ -31,26 +37,26 @@ } }, { - "@id": "kb:file-800784de-5c9e-5eb2-b843-0ac51a1bd4b9", + "@id": "kb:File-23016945-cf7c-5c9c-9fe0-8cefc221ccb2", "@type": "uco-observable:File", "uco-core:hasFacet": { - "@id": "kb:file-facet-ffa3e6bb-dffc-549d-a7c4-ffc5e90ac55d" + "@id": "kb:FileFacet-d086baca-c585-5b5e-b34d-4592bcddb659" } }, { - "@id": "kb:file-ace6460a-92a9-58b9-83ea-a18ae87f6e04", + "@id": "kb:File-fd45a350-f052-5558-b8f1-b4d7d82482a9", "@type": "uco-observable:File", "uco-core:hasFacet": [ { - "@id": "kb:content-data-facet-1833f979-1f19-5543-9d82-6cefd144b169" + "@id": "kb:ContentDataFacet-e154c2c4-bbf7-54f5-b7a0-837a3bbbeac8" }, { - "@id": "kb:file-facet-1297a4bd-563b-54c3-ad8a-f67f01ba9b10" + "@id": "kb:FileFacet-c36436e1-734c-53e5-9e0f-adecdb5e3ab5" } ] }, { - "@id": "kb:file-facet-1297a4bd-563b-54c3-ad8a-f67f01ba9b10", + "@id": "kb:FileFacet-c36436e1-734c-53e5-9e0f-adecdb5e3ab5", "@type": "uco-observable:FileFacet", "uco-observable:fileName": "sample.txt", "uco-observable:modifiedTime": { @@ -63,7 +69,7 @@ } }, { - "@id": "kb:file-facet-ffa3e6bb-dffc-549d-a7c4-ffc5e90ac55d", + "@id": "kb:FileFacet-d086baca-c585-5b5e-b34d-4592bcddb659", "@type": "uco-observable:FileFacet", "uco-observable:fileName": "sample.txt", "uco-observable:modifiedTime": { @@ -76,7 +82,7 @@ } }, { - "@id": "kb:hash-24644904-83ea-5911-aea8-be687a9f3caf", + "@id": "kb:Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337", "@type": "uco-types:Hash", "uco-types:hashMethod": { "@type": "uco-vocabulary:HashNameVocab", @@ -88,19 +94,19 @@ } }, { - "@id": "kb:hash-295bdeb5-7f23-5a3f-8b7f-4bb1191b7c21", + "@id": "kb:Hash-7395c349-e7ab-59b4-acdd-9d857c32413a", "@type": "uco-types:Hash", "uco-types:hashMethod": { "@type": "uco-vocabulary:HashNameVocab", - "@value": "SHA1" + "@value": "SHA3-512" }, "uco-types:hashValue": { "@type": "xsd:hexBinary", - "@value": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" + "@value": "9ece086e9bac491fac5c1d1046ca11d737b92a2b2ebd93f005d7b710110c0a678288166e7fbe796883a4f2e9b3ca9f484f521d0ce464345cc1aec96779149c14" } }, { - "@id": "kb:hash-39127f5c-598b-51d4-a720-2e949f18f85f", + "@id": "kb:Hash-9527b473-6268-5385-9a74-4eb1a98fef93", "@type": "uco-types:Hash", "uco-types:hashMethod": { "@type": "uco-vocabulary:HashNameVocab", @@ -112,7 +118,7 @@ } }, { - "@id": "kb:hash-49e81fee-c6b3-5f5f-af8b-0746d32e4932", + "@id": "kb:Hash-acdba760-7dc3-5601-8d5f-480c1def8492", "@type": "uco-types:Hash", "uco-types:hashMethod": { "@type": "uco-vocabulary:HashNameVocab", @@ -122,6 +128,30 @@ "@type": "xsd:hexBinary", "@value": "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff" } + }, + { + "@id": "kb:Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72", + "@type": "uco-types:Hash", + "uco-types:hashMethod": { + "@type": "uco-vocabulary:HashNameVocab", + "@value": "SHA3-256" + }, + "uco-types:hashValue": { + "@type": "xsd:hexBinary", + "@value": "36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80" + } + }, + { + "@id": "kb:Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af", + "@type": "uco-types:Hash", + "uco-types:hashMethod": { + "@type": "uco-vocabulary:HashNameVocab", + "@value": "SHA1" + }, + "uco-types:hashValue": { + "@type": "xsd:hexBinary", + "@value": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" + } } ] } \ No newline at end of file diff --git a/tests/case_utils/case_file/kb.ttl b/tests/case_utils/case_file/kb.ttl index 0de60e3..eaf4727 100644 --- a/tests/case_utils/case_file/kb.ttl +++ b/tests/case_utils/case_file/kb.ttl @@ -8,65 +8,79 @@ @prefix uco-vocabulary: . @prefix xsd: . -kb:content-data-facet-1833f979-1f19-5543-9d82-6cefd144b169 +kb:ContentDataFacet-e154c2c4-bbf7-54f5-b7a0-837a3bbbeac8 a uco-observable:ContentDataFacet ; uco-observable:hash - kb:hash-24644904-83ea-5911-aea8-be687a9f3caf , - kb:hash-295bdeb5-7f23-5a3f-8b7f-4bb1191b7c21 , - kb:hash-39127f5c-598b-51d4-a720-2e949f18f85f , - kb:hash-49e81fee-c6b3-5f5f-af8b-0746d32e4932 + kb:Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337 , + kb:Hash-7395c349-e7ab-59b4-acdd-9d857c32413a , + kb:Hash-9527b473-6268-5385-9a74-4eb1a98fef93 , + kb:Hash-acdba760-7dc3-5601-8d5f-480c1def8492 , + kb:Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72 , + kb:Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af ; uco-observable:sizeInBytes "4"^^xsd:integer ; . -kb:file-800784de-5c9e-5eb2-b843-0ac51a1bd4b9 +kb:File-23016945-cf7c-5c9c-9fe0-8cefc221ccb2 a uco-observable:File ; - uco-core:hasFacet kb:file-facet-ffa3e6bb-dffc-549d-a7c4-ffc5e90ac55d ; + uco-core:hasFacet kb:FileFacet-d086baca-c585-5b5e-b34d-4592bcddb659 ; . -kb:file-ace6460a-92a9-58b9-83ea-a18ae87f6e04 +kb:File-fd45a350-f052-5558-b8f1-b4d7d82482a9 a uco-observable:File ; uco-core:hasFacet - kb:content-data-facet-1833f979-1f19-5543-9d82-6cefd144b169 , - kb:file-facet-1297a4bd-563b-54c3-ad8a-f67f01ba9b10 + kb:ContentDataFacet-e154c2c4-bbf7-54f5-b7a0-837a3bbbeac8 , + kb:FileFacet-c36436e1-734c-53e5-9e0f-adecdb5e3ab5 ; . -kb:file-facet-1297a4bd-563b-54c3-ad8a-f67f01ba9b10 +kb:FileFacet-c36436e1-734c-53e5-9e0f-adecdb5e3ab5 a uco-observable:FileFacet ; uco-observable:fileName "sample.txt" ; uco-observable:modifiedTime "2010-01-02T03:04:56+00:00"^^xsd:dateTime ; uco-observable:sizeInBytes "4"^^xsd:integer ; . -kb:file-facet-ffa3e6bb-dffc-549d-a7c4-ffc5e90ac55d +kb:FileFacet-d086baca-c585-5b5e-b34d-4592bcddb659 a uco-observable:FileFacet ; uco-observable:fileName "sample.txt" ; uco-observable:modifiedTime "2010-01-02T03:04:56+00:00"^^xsd:dateTime ; uco-observable:sizeInBytes "4"^^xsd:integer ; . -kb:hash-24644904-83ea-5911-aea8-be687a9f3caf +kb:Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337 a uco-types:Hash ; uco-types:hashMethod "MD5"^^uco-vocabulary:HashNameVocab ; uco-types:hashValue "098f6bcd4621d373cade4e832627b4f6"^^xsd:hexBinary ; . -kb:hash-295bdeb5-7f23-5a3f-8b7f-4bb1191b7c21 +kb:Hash-7395c349-e7ab-59b4-acdd-9d857c32413a a uco-types:Hash ; - uco-types:hashMethod "SHA1"^^uco-vocabulary:HashNameVocab ; - uco-types:hashValue "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"^^xsd:hexBinary ; + uco-types:hashMethod "SHA3-512"^^uco-vocabulary:HashNameVocab ; + uco-types:hashValue "9ece086e9bac491fac5c1d1046ca11d737b92a2b2ebd93f005d7b710110c0a678288166e7fbe796883a4f2e9b3ca9f484f521d0ce464345cc1aec96779149c14"^^xsd:hexBinary ; . -kb:hash-39127f5c-598b-51d4-a720-2e949f18f85f +kb:Hash-9527b473-6268-5385-9a74-4eb1a98fef93 a uco-types:Hash ; uco-types:hashMethod "SHA256"^^uco-vocabulary:HashNameVocab ; uco-types:hashValue "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"^^xsd:hexBinary ; . -kb:hash-49e81fee-c6b3-5f5f-af8b-0746d32e4932 +kb:Hash-acdba760-7dc3-5601-8d5f-480c1def8492 a uco-types:Hash ; uco-types:hashMethod "SHA512"^^uco-vocabulary:HashNameVocab ; uco-types:hashValue "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff"^^xsd:hexBinary ; . +kb:Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72 + a uco-types:Hash ; + uco-types:hashMethod "SHA3-256"^^uco-vocabulary:HashNameVocab ; + uco-types:hashValue "36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80"^^xsd:hexBinary ; + . + +kb:Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af + a uco-types:Hash ; + uco-types:hashMethod "SHA1"^^uco-vocabulary:HashNameVocab ; + uco-types:hashValue "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"^^xsd:hexBinary ; + . + diff --git a/tests/case_utils/case_file/sample.txt-disable_hashes.ttl b/tests/case_utils/case_file/sample.txt-disable_hashes.ttl index d9bc216..904ad82 100644 --- a/tests/case_utils/case_file/sample.txt-disable_hashes.ttl +++ b/tests/case_utils/case_file/sample.txt-disable_hashes.ttl @@ -6,12 +6,12 @@ @prefix uco-observable: . @prefix xsd: . -kb:file-800784de-5c9e-5eb2-b843-0ac51a1bd4b9 +kb:File-23016945-cf7c-5c9c-9fe0-8cefc221ccb2 a uco-observable:File ; - uco-core:hasFacet kb:file-facet-ffa3e6bb-dffc-549d-a7c4-ffc5e90ac55d ; + uco-core:hasFacet kb:FileFacet-d086baca-c585-5b5e-b34d-4592bcddb659 ; . -kb:file-facet-ffa3e6bb-dffc-549d-a7c4-ffc5e90ac55d +kb:FileFacet-d086baca-c585-5b5e-b34d-4592bcddb659 a uco-observable:FileFacet ; uco-observable:fileName "sample.txt" ; uco-observable:modifiedTime "2010-01-02T03:04:56+00:00"^^xsd:dateTime ; diff --git a/tests/case_utils/case_file/sample.txt-nocompact.json b/tests/case_utils/case_file/sample.txt-nocompact.json index 8c59f44..d863fcb 100644 --- a/tests/case_utils/case_file/sample.txt-nocompact.json +++ b/tests/case_utils/case_file/sample.txt-nocompact.json @@ -1,19 +1,55 @@ { "@context": { + "brick": "https://brickschema.org/schema/Brick#", + "csvw": "http://www.w3.org/ns/csvw#", + "dc": "http://purl.org/dc/elements/1.1/", + "dcam": "http://purl.org/dc/dcam/", + "dcat": "http://www.w3.org/ns/dcat#", + "dcmitype": "http://purl.org/dc/dcmitype/", + "dcterms": "http://purl.org/dc/terms/", + "doap": "http://usefulinc.com/ns/doap#", + "foaf": "http://xmlns.com/foaf/0.1/", + "geo": "http://www.opengis.net/ont/geosparql#", "kb": "http://example.org/kb/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "org": "http://www.w3.org/ns/org#", "owl": "http://www.w3.org/2002/07/owl#", + "prof": "http://www.w3.org/ns/dx/prof/", + "prov": "http://www.w3.org/ns/prov#", + "qb": "http://purl.org/linked-data/cube#", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "https://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "skos": "http://www.w3.org/2004/02/skos/core#", + "sosa": "http://www.w3.org/ns/sosa/", + "ssn": "http://www.w3.org/ns/ssn/", + "time": "http://www.w3.org/2006/time#", "uco-core": "https://ontology.unifiedcyberontology.org/uco/core/", "uco-observable": "https://ontology.unifiedcyberontology.org/uco/observable/", "uco-types": "https://ontology.unifiedcyberontology.org/uco/types/", "uco-vocabulary": "https://ontology.unifiedcyberontology.org/uco/vocabulary/", + "vann": "http://purl.org/vocab/vann/", + "void": "http://rdfs.org/ns/void#", + "wgs": "https://www.w3.org/2003/01/geo/wgs84_pos#", "xml": "http://www.w3.org/XML/1998/namespace", "xsd": "http://www.w3.org/2001/XMLSchema#" }, "@graph": [ { - "@id": "http://example.org/kb/hash-c77cb4f1-ac2a-52c7-b67e-016e209515cb", + "@id": "http://example.org/kb/Hash-7395c349-e7ab-59b4-acdd-9d857c32413a", + "@type": "https://ontology.unifiedcyberontology.org/uco/types/Hash", + "https://ontology.unifiedcyberontology.org/uco/types/hashMethod": { + "@type": "https://ontology.unifiedcyberontology.org/uco/vocabulary/HashNameVocab", + "@value": "SHA3-512" + }, + "https://ontology.unifiedcyberontology.org/uco/types/hashValue": { + "@type": "http://www.w3.org/2001/XMLSchema#hexBinary", + "@value": "9ece086e9bac491fac5c1d1046ca11d737b92a2b2ebd93f005d7b710110c0a678288166e7fbe796883a4f2e9b3ca9f484f521d0ce464345cc1aec96779149c14" + } + }, + { + "@id": "http://example.org/kb/Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af", "@type": "https://ontology.unifiedcyberontology.org/uco/types/Hash", "https://ontology.unifiedcyberontology.org/uco/types/hashMethod": { "@type": "https://ontology.unifiedcyberontology.org/uco/vocabulary/HashNameVocab", @@ -25,19 +61,19 @@ } }, { - "@id": "http://example.org/kb/file-23f45d80-7b16-5e7f-ba34-40392fa4f8fc", - "@type": "https://ontology.unifiedcyberontology.org/uco/observable/File", - "https://ontology.unifiedcyberontology.org/uco/core/hasFacet": [ - { - "@id": "http://example.org/kb/file-facet-a5d9606e-a5cf-5531-9462-5bed0ac4219c" - }, - { - "@id": "http://example.org/kb/content-data-facet-bda9b72d-2753-54ab-9292-e1e260be4f6d" - } - ] + "@id": "http://example.org/kb/Hash-acdba760-7dc3-5601-8d5f-480c1def8492", + "@type": "https://ontology.unifiedcyberontology.org/uco/types/Hash", + "https://ontology.unifiedcyberontology.org/uco/types/hashMethod": { + "@type": "https://ontology.unifiedcyberontology.org/uco/vocabulary/HashNameVocab", + "@value": "SHA512" + }, + "https://ontology.unifiedcyberontology.org/uco/types/hashValue": { + "@type": "http://www.w3.org/2001/XMLSchema#hexBinary", + "@value": "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff" + } }, { - "@id": "http://example.org/kb/hash-bdb2ba7d-8cb2-5591-a051-0c20d134e894", + "@id": "http://example.org/kb/Hash-9527b473-6268-5385-9a74-4eb1a98fef93", "@type": "https://ontology.unifiedcyberontology.org/uco/types/Hash", "https://ontology.unifiedcyberontology.org/uco/types/hashMethod": { "@type": "https://ontology.unifiedcyberontology.org/uco/vocabulary/HashNameVocab", @@ -49,38 +85,44 @@ } }, { - "@id": "http://example.org/kb/hash-bf689e82-1cc4-507f-a6fb-7fc01b9289c6", + "@id": "http://example.org/kb/Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72", "@type": "https://ontology.unifiedcyberontology.org/uco/types/Hash", "https://ontology.unifiedcyberontology.org/uco/types/hashMethod": { "@type": "https://ontology.unifiedcyberontology.org/uco/vocabulary/HashNameVocab", - "@value": "SHA512" + "@value": "SHA3-256" }, "https://ontology.unifiedcyberontology.org/uco/types/hashValue": { "@type": "http://www.w3.org/2001/XMLSchema#hexBinary", - "@value": "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff" + "@value": "36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80" } }, { - "@id": "http://example.org/kb/content-data-facet-bda9b72d-2753-54ab-9292-e1e260be4f6d", + "@id": "http://example.org/kb/ContentDataFacet-3258a70d-6307-5a70-b796-b6ffd530700a", "@type": "https://ontology.unifiedcyberontology.org/uco/observable/ContentDataFacet", "https://ontology.unifiedcyberontology.org/uco/observable/hash": [ { - "@id": "http://example.org/kb/hash-8ebb651a-314b-554a-b63e-78b9e69111d8" + "@id": "http://example.org/kb/Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337" + }, + { + "@id": "http://example.org/kb/Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af" + }, + { + "@id": "http://example.org/kb/Hash-9527b473-6268-5385-9a74-4eb1a98fef93" }, { - "@id": "http://example.org/kb/hash-c77cb4f1-ac2a-52c7-b67e-016e209515cb" + "@id": "http://example.org/kb/Hash-acdba760-7dc3-5601-8d5f-480c1def8492" }, { - "@id": "http://example.org/kb/hash-bdb2ba7d-8cb2-5591-a051-0c20d134e894" + "@id": "http://example.org/kb/Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72" }, { - "@id": "http://example.org/kb/hash-bf689e82-1cc4-507f-a6fb-7fc01b9289c6" + "@id": "http://example.org/kb/Hash-7395c349-e7ab-59b4-acdd-9d857c32413a" } ], "https://ontology.unifiedcyberontology.org/uco/observable/sizeInBytes": 4 }, { - "@id": "http://example.org/kb/file-facet-a5d9606e-a5cf-5531-9462-5bed0ac4219c", + "@id": "http://example.org/kb/FileFacet-3e49a502-dc39-5ff2-9148-2601e1929e2b", "@type": "https://ontology.unifiedcyberontology.org/uco/observable/FileFacet", "https://ontology.unifiedcyberontology.org/uco/observable/fileName": "sample.txt", "https://ontology.unifiedcyberontology.org/uco/observable/modifiedTime": { @@ -90,7 +132,19 @@ "https://ontology.unifiedcyberontology.org/uco/observable/sizeInBytes": 4 }, { - "@id": "http://example.org/kb/hash-8ebb651a-314b-554a-b63e-78b9e69111d8", + "@id": "http://example.org/kb/File-a28858e3-5087-5c84-a2b6-710b00b15605", + "@type": "https://ontology.unifiedcyberontology.org/uco/observable/File", + "https://ontology.unifiedcyberontology.org/uco/core/hasFacet": [ + { + "@id": "http://example.org/kb/FileFacet-3e49a502-dc39-5ff2-9148-2601e1929e2b" + }, + { + "@id": "http://example.org/kb/ContentDataFacet-3258a70d-6307-5a70-b796-b6ffd530700a" + } + ] + }, + { + "@id": "http://example.org/kb/Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337", "@type": "https://ontology.unifiedcyberontology.org/uco/types/Hash", "https://ontology.unifiedcyberontology.org/uco/types/hashMethod": { "@type": "https://ontology.unifiedcyberontology.org/uco/vocabulary/HashNameVocab", diff --git a/tests/case_utils/case_file/sample.txt.json b/tests/case_utils/case_file/sample.txt.json index a4a97c8..ddd6f39 100644 --- a/tests/case_utils/case_file/sample.txt.json +++ b/tests/case_utils/case_file/sample.txt.json @@ -1,84 +1,114 @@ { "@context": { + "brick": "https://brickschema.org/schema/Brick#", + "csvw": "http://www.w3.org/ns/csvw#", + "dc": "http://purl.org/dc/elements/1.1/", + "dcam": "http://purl.org/dc/dcam/", + "dcat": "http://www.w3.org/ns/dcat#", + "dcmitype": "http://purl.org/dc/dcmitype/", + "dcterms": "http://purl.org/dc/terms/", + "doap": "http://usefulinc.com/ns/doap#", + "foaf": "http://xmlns.com/foaf/0.1/", + "geo": "http://www.opengis.net/ont/geosparql#", "kb": "http://example.org/kb/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "org": "http://www.w3.org/ns/org#", "owl": "http://www.w3.org/2002/07/owl#", + "prof": "http://www.w3.org/ns/dx/prof/", + "prov": "http://www.w3.org/ns/prov#", + "qb": "http://purl.org/linked-data/cube#", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "https://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "skos": "http://www.w3.org/2004/02/skos/core#", + "sosa": "http://www.w3.org/ns/sosa/", + "ssn": "http://www.w3.org/ns/ssn/", + "time": "http://www.w3.org/2006/time#", "uco-core": "https://ontology.unifiedcyberontology.org/uco/core/", "uco-observable": "https://ontology.unifiedcyberontology.org/uco/observable/", "uco-types": "https://ontology.unifiedcyberontology.org/uco/types/", "uco-vocabulary": "https://ontology.unifiedcyberontology.org/uco/vocabulary/", + "vann": "http://purl.org/vocab/vann/", + "void": "http://rdfs.org/ns/void#", + "wgs": "https://www.w3.org/2003/01/geo/wgs84_pos#", "xml": "http://www.w3.org/XML/1998/namespace", "xsd": "http://www.w3.org/2001/XMLSchema#" }, "@graph": [ { - "@id": "kb:hash-2cae4ae2-d773-5ea2-ba3e-2c4092574959", + "@id": "kb:Hash-9527b473-6268-5385-9a74-4eb1a98fef93", "@type": "uco-types:Hash", "uco-types:hashMethod": { "@type": "uco-vocabulary:HashNameVocab", - "@value": "SHA1" + "@value": "SHA256" }, "uco-types:hashValue": { "@type": "xsd:hexBinary", - "@value": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" + "@value": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" } }, { - "@id": "kb:hash-f067246c-a31a-597d-a84b-7b70ce4c8795", + "@id": "kb:FileFacet-0f05ce89-c779-5bc7-a7f1-3521c895946b", + "@type": "uco-observable:FileFacet", + "uco-observable:fileName": "sample.txt", + "uco-observable:modifiedTime": { + "@type": "xsd:dateTime", + "@value": "2010-01-02T03:04:56+00:00" + }, + "uco-observable:sizeInBytes": 4 + }, + { + "@id": "kb:Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af", "@type": "uco-types:Hash", "uco-types:hashMethod": { "@type": "uco-vocabulary:HashNameVocab", - "@value": "MD5" + "@value": "SHA1" }, "uco-types:hashValue": { "@type": "xsd:hexBinary", - "@value": "098f6bcd4621d373cade4e832627b4f6" + "@value": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" } }, { - "@id": "kb:file-facet-e6bb7192-3a63-561b-87c2-9aea090b49e4", - "@type": "uco-observable:FileFacet", - "uco-observable:fileName": "sample.txt", - "uco-observable:modifiedTime": { - "@type": "xsd:dateTime", - "@value": "2010-01-02T03:04:56+00:00" + "@id": "kb:Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72", + "@type": "uco-types:Hash", + "uco-types:hashMethod": { + "@type": "uco-vocabulary:HashNameVocab", + "@value": "SHA3-256" }, - "uco-observable:sizeInBytes": 4 + "uco-types:hashValue": { + "@type": "xsd:hexBinary", + "@value": "36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80" + } }, { - "@id": "kb:file-789a91ef-6446-548c-9911-dcc5168f25ea", - "@type": "uco-observable:File", - "uco-core:hasFacet": [ + "@id": "kb:ContentDataFacet-bb169f87-b3b7-55b5-96a5-dec7738c441b", + "@type": "uco-observable:ContentDataFacet", + "uco-observable:hash": [ { - "@id": "kb:file-facet-e6bb7192-3a63-561b-87c2-9aea090b49e4" + "@id": "kb:Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337" }, { - "@id": "kb:content-data-facet-f48466e4-5394-584d-84ad-c46a7b9680bf" - } - ] - }, - { - "@id": "kb:content-data-facet-f48466e4-5394-584d-84ad-c46a7b9680bf", - "@type": "uco-observable:ContentDataFacet", - "uco-observable:hash": [ + "@id": "kb:Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af" + }, { - "@id": "kb:hash-f067246c-a31a-597d-a84b-7b70ce4c8795" + "@id": "kb:Hash-9527b473-6268-5385-9a74-4eb1a98fef93" }, { - "@id": "kb:hash-2cae4ae2-d773-5ea2-ba3e-2c4092574959" + "@id": "kb:Hash-acdba760-7dc3-5601-8d5f-480c1def8492" }, { - "@id": "kb:hash-2b723e8c-6125-5867-83c3-a46753e41a07" + "@id": "kb:Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72" }, { - "@id": "kb:hash-9652135a-b58d-592d-b0f4-ac684ecdf6ed" + "@id": "kb:Hash-7395c349-e7ab-59b4-acdd-9d857c32413a" } ], "uco-observable:sizeInBytes": 4 }, { - "@id": "kb:hash-9652135a-b58d-592d-b0f4-ac684ecdf6ed", + "@id": "kb:Hash-acdba760-7dc3-5601-8d5f-480c1def8492", "@type": "uco-types:Hash", "uco-types:hashMethod": { "@type": "uco-vocabulary:HashNameVocab", @@ -90,16 +120,40 @@ } }, { - "@id": "kb:hash-2b723e8c-6125-5867-83c3-a46753e41a07", + "@id": "kb:Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337", "@type": "uco-types:Hash", "uco-types:hashMethod": { "@type": "uco-vocabulary:HashNameVocab", - "@value": "SHA256" + "@value": "MD5" }, "uco-types:hashValue": { "@type": "xsd:hexBinary", - "@value": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" + "@value": "098f6bcd4621d373cade4e832627b4f6" } + }, + { + "@id": "kb:Hash-7395c349-e7ab-59b4-acdd-9d857c32413a", + "@type": "uco-types:Hash", + "uco-types:hashMethod": { + "@type": "uco-vocabulary:HashNameVocab", + "@value": "SHA3-512" + }, + "uco-types:hashValue": { + "@type": "xsd:hexBinary", + "@value": "9ece086e9bac491fac5c1d1046ca11d737b92a2b2ebd93f005d7b710110c0a678288166e7fbe796883a4f2e9b3ca9f484f521d0ce464345cc1aec96779149c14" + } + }, + { + "@id": "kb:File-d15507da-29e5-5575-bce6-f59dc788dcc9", + "@type": "uco-observable:File", + "uco-core:hasFacet": [ + { + "@id": "kb:FileFacet-0f05ce89-c779-5bc7-a7f1-3521c895946b" + }, + { + "@id": "kb:ContentDataFacet-bb169f87-b3b7-55b5-96a5-dec7738c441b" + } + ] } ] } \ No newline at end of file diff --git a/tests/case_utils/case_file/sample.txt.ttl b/tests/case_utils/case_file/sample.txt.ttl index 8f20b60..d84275d 100644 --- a/tests/case_utils/case_file/sample.txt.ttl +++ b/tests/case_utils/case_file/sample.txt.ttl @@ -8,53 +8,67 @@ @prefix uco-vocabulary: . @prefix xsd: . -kb:content-data-facet-1833f979-1f19-5543-9d82-6cefd144b169 +kb:ContentDataFacet-e154c2c4-bbf7-54f5-b7a0-837a3bbbeac8 a uco-observable:ContentDataFacet ; uco-observable:hash - kb:hash-24644904-83ea-5911-aea8-be687a9f3caf , - kb:hash-295bdeb5-7f23-5a3f-8b7f-4bb1191b7c21 , - kb:hash-39127f5c-598b-51d4-a720-2e949f18f85f , - kb:hash-49e81fee-c6b3-5f5f-af8b-0746d32e4932 + kb:Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337 , + kb:Hash-7395c349-e7ab-59b4-acdd-9d857c32413a , + kb:Hash-9527b473-6268-5385-9a74-4eb1a98fef93 , + kb:Hash-acdba760-7dc3-5601-8d5f-480c1def8492 , + kb:Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72 , + kb:Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af ; uco-observable:sizeInBytes "4"^^xsd:integer ; . -kb:file-ace6460a-92a9-58b9-83ea-a18ae87f6e04 +kb:File-fd45a350-f052-5558-b8f1-b4d7d82482a9 a uco-observable:File ; uco-core:hasFacet - kb:content-data-facet-1833f979-1f19-5543-9d82-6cefd144b169 , - kb:file-facet-1297a4bd-563b-54c3-ad8a-f67f01ba9b10 + kb:ContentDataFacet-e154c2c4-bbf7-54f5-b7a0-837a3bbbeac8 , + kb:FileFacet-c36436e1-734c-53e5-9e0f-adecdb5e3ab5 ; . -kb:file-facet-1297a4bd-563b-54c3-ad8a-f67f01ba9b10 +kb:FileFacet-c36436e1-734c-53e5-9e0f-adecdb5e3ab5 a uco-observable:FileFacet ; uco-observable:fileName "sample.txt" ; uco-observable:modifiedTime "2010-01-02T03:04:56+00:00"^^xsd:dateTime ; uco-observable:sizeInBytes "4"^^xsd:integer ; . -kb:hash-24644904-83ea-5911-aea8-be687a9f3caf +kb:Hash-244595b7-3a16-50e3-ab5d-1fc767d4f337 a uco-types:Hash ; uco-types:hashMethod "MD5"^^uco-vocabulary:HashNameVocab ; uco-types:hashValue "098f6bcd4621d373cade4e832627b4f6"^^xsd:hexBinary ; . -kb:hash-295bdeb5-7f23-5a3f-8b7f-4bb1191b7c21 +kb:Hash-7395c349-e7ab-59b4-acdd-9d857c32413a a uco-types:Hash ; - uco-types:hashMethod "SHA1"^^uco-vocabulary:HashNameVocab ; - uco-types:hashValue "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"^^xsd:hexBinary ; + uco-types:hashMethod "SHA3-512"^^uco-vocabulary:HashNameVocab ; + uco-types:hashValue "9ece086e9bac491fac5c1d1046ca11d737b92a2b2ebd93f005d7b710110c0a678288166e7fbe796883a4f2e9b3ca9f484f521d0ce464345cc1aec96779149c14"^^xsd:hexBinary ; . -kb:hash-39127f5c-598b-51d4-a720-2e949f18f85f +kb:Hash-9527b473-6268-5385-9a74-4eb1a98fef93 a uco-types:Hash ; uco-types:hashMethod "SHA256"^^uco-vocabulary:HashNameVocab ; uco-types:hashValue "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"^^xsd:hexBinary ; . -kb:hash-49e81fee-c6b3-5f5f-af8b-0746d32e4932 +kb:Hash-acdba760-7dc3-5601-8d5f-480c1def8492 a uco-types:Hash ; uco-types:hashMethod "SHA512"^^uco-vocabulary:HashNameVocab ; uco-types:hashValue "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff"^^xsd:hexBinary ; . +kb:Hash-ae02b896-5a0b-57c0-9441-c90ce6382a72 + a uco-types:Hash ; + uco-types:hashMethod "SHA3-256"^^uco-vocabulary:HashNameVocab ; + uco-types:hashValue "36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80"^^xsd:hexBinary ; + . + +kb:Hash-fe2030ac-2380-520f-8499-5f2a1e5d69af + a uco-types:Hash ; + uco-types:hashMethod "SHA1"^^uco-vocabulary:HashNameVocab ; + uco-types:hashValue "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"^^xsd:hexBinary ; + . + diff --git a/tests/case_utils/case_file/test_case_file.py b/tests/case_utils/case_file/test_case_file.py index 067afe9..9194f7d 100644 --- a/tests/case_utils/case_file/test_case_file.py +++ b/tests/case_utils/case_file/test_case_file.py @@ -56,6 +56,8 @@ def test_confirm_hashes(graph_case_file: rdflib.Graph) -> None: "SHA1": "A94A8FE5CCB19BA61C4C0873D391E987982FBBD3", "SHA256": "9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08", "SHA512": "EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF", + "SHA3-256": "36F028580BB02CC8272A9A020F4200E346E276AE664E45EE80745574E2F5AB80", + "SHA3-512": "9ECE086E9BAC491FAC5C1D1046CA11D737B92A2B2EBD93F005D7B710110C0A678288166E7FBE796883A4F2E9B3CA9F484F521D0CE464345CC1AEC96779149C14", } computed = dict() @@ -85,7 +87,11 @@ def test_confirm_hashes(graph_case_file: rdflib.Graph) -> None: ) for result in graph_case_file.query(query_object): - (l_hash_method, l_hash_value) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + assert isinstance(result[1], rdflib.Literal) + l_hash_method = result[0] + l_hash_value = result[1] # .toPython() with the non-XSD datatype returns the original Literal object again. Hence, str(). hash_method = str(l_hash_method) hash_value = binascii.hexlify(l_hash_value.toPython()).decode().upper() @@ -117,6 +123,7 @@ def test_confirm_mtime( n_observable_object = None for result in graph_case_file_disable_hashes.query(query_object): + assert isinstance(result, rdflib.query.ResultRow) (n_observable_object,) = result assert ( n_observable_object is not None @@ -124,6 +131,7 @@ def test_confirm_mtime( n_observable_object = None for result in graph_case_file.query(query_object): + assert isinstance(result, rdflib.query.ResultRow) (n_observable_object,) = result assert ( n_observable_object is not None diff --git a/tests/case_utils/case_sparql_construct/test_case_sparql_construct.py b/tests/case_utils/case_sparql_construct/test_case_sparql_construct.py index 53e0f71..2c3f37c 100644 --- a/tests/case_utils/case_sparql_construct/test_case_sparql_construct.py +++ b/tests/case_utils/case_sparql_construct/test_case_sparql_construct.py @@ -30,6 +30,8 @@ def _test_subclass_templates_result(filename: str, expected: typing.Set[str]) -> } """ for result in graph.query(query_string): + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.URIRef) n_entity = result[0] computed.add(n_entity.toPython()) assert expected == computed @@ -54,7 +56,11 @@ def _test_w3_templates_with_blank_nodes_result(filename: str) -> None: } """ for result in graph.query(query_string): - (l_given_name, l_family_name) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + assert isinstance(result[1], rdflib.term.Literal) + l_given_name = result[0] + l_family_name = result[1] computed.add((l_given_name.toPython(), l_family_name.toPython())) assert expected == computed diff --git a/tests/case_utils/case_sparql_select/.check-prefixed_results-indented.json b/tests/case_utils/case_sparql_select/.check-prefixed_results-indented.json new file mode 100644 index 0000000..c356eca --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-prefixed_results-indented.json @@ -0,0 +1,6 @@ +{ + "?nFile":{ + "0":"kb:file-1", + "1":"kb:file-2" + } +} diff --git a/tests/case_utils/case_sparql_select/.check-prefixed_results.csv b/tests/case_utils/case_sparql_select/.check-prefixed_results.csv new file mode 100644 index 0000000..60d4b78 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-prefixed_results.csv @@ -0,0 +1,3 @@ +,?nFile +0,kb:file-1 +1,kb:file-2 diff --git a/tests/case_utils/case_sparql_select/.check-prefixed_results.html b/tests/case_utils/case_sparql_select/.check-prefixed_results.html new file mode 100644 index 0000000..4b41f69 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-prefixed_results.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + +
?nFile
0kb:file-1
1kb:file-2
diff --git a/tests/case_utils/case_sparql_select/.check-prefixed_results.json b/tests/case_utils/case_sparql_select/.check-prefixed_results.json new file mode 100644 index 0000000..63a9d7f --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-prefixed_results.json @@ -0,0 +1 @@ +{"?nFile":{"0":"kb:file-1","1":"kb:file-2"}} diff --git a/tests/case_utils/case_sparql_select/.check-prefixed_results.md b/tests/case_utils/case_sparql_select/.check-prefixed_results.md new file mode 100644 index 0000000..f07d435 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-prefixed_results.md @@ -0,0 +1,4 @@ +| | ?nFile | +|----|-----------| +| 0 | kb:file-1 | +| 1 | kb:file-2 | diff --git a/tests/case_utils/case_sparql_select/.check-prefixed_results.tsv b/tests/case_utils/case_sparql_select/.check-prefixed_results.tsv new file mode 100644 index 0000000..9dac11d --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-prefixed_results.tsv @@ -0,0 +1,3 @@ + ?nFile +0 kb:file-1 +1 kb:file-2 diff --git a/tests/case_utils/case_sparql_select/.check-subclass-explicit-none.md b/tests/case_utils/case_sparql_select/.check-subclass-explicit-none.md index 5d9d1ef..587732b 100644 --- a/tests/case_utils/case_sparql_select/.check-subclass-explicit-none.md +++ b/tests/case_utils/case_sparql_select/.check-subclass-explicit-none.md @@ -1,3 +1,3 @@ | | ?nFile | |----|------------------------------| -| 0 | http://example.org/kb/file-1 | \ No newline at end of file +| 0 | http://example.org/kb/file-1 | diff --git a/tests/case_utils/case_sparql_select/.check-subclass-implicit-any.md b/tests/case_utils/case_sparql_select/.check-subclass-implicit-any.md index 251fcf6..c94f185 100644 --- a/tests/case_utils/case_sparql_select/.check-subclass-implicit-any.md +++ b/tests/case_utils/case_sparql_select/.check-subclass-implicit-any.md @@ -1,4 +1,4 @@ | | ?nFile | |----|------------------------------| | 0 | http://example.org/kb/file-1 | -| 1 | http://example.org/kb/file-2 | \ No newline at end of file +| 1 | http://example.org/kb/file-2 | diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-indented.json b/tests/case_utils/case_sparql_select/.check-w3-output-indented.json new file mode 100644 index 0000000..8f426c6 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-indented.json @@ -0,0 +1,10 @@ +{ + "?name":{ + "0":"Johnny Lee Outlaw", + "1":"Peter Goodguy" + }, + "?mbox":{ + "0":"mailto:jlow@example.com", + "1":"mailto:peter@example.org" + } +} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-columns.json b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-columns.json new file mode 100644 index 0000000..840035b --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-columns.json @@ -0,0 +1 @@ +{"?name":{"0":"Johnny Lee Outlaw","1":"Peter Goodguy"},"?mbox":{"0":"mailto:jlow@example.com","1":"mailto:peter@example.org"}} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-index.json b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-index.json new file mode 100644 index 0000000..717d3ae --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-index.json @@ -0,0 +1 @@ +{"0":{"?name":"Johnny Lee Outlaw","?mbox":"mailto:jlow@example.com"},"1":{"?name":"Peter Goodguy","?mbox":"mailto:peter@example.org"}} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-records.json b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-records.json new file mode 100644 index 0000000..f053616 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-records.json @@ -0,0 +1 @@ +[{"?name":"Johnny Lee Outlaw","?mbox":"mailto:jlow@example.com"},{"?name":"Peter Goodguy","?mbox":"mailto:peter@example.org"}] diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-split.json b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-split.json new file mode 100644 index 0000000..0401af1 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-split.json @@ -0,0 +1 @@ +{"columns":["?name","?mbox"],"index":[0,1],"data":[["Johnny Lee Outlaw","mailto:jlow@example.com"],["Peter Goodguy","mailto:peter@example.org"]]} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-table.json b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-table.json new file mode 100644 index 0000000..92f005c --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-table.json @@ -0,0 +1 @@ +{"schema":{"fields":[{"name":"index","type":"integer"},{"name":"?name","type":"string"},{"name":"?mbox","type":"string"}],"primaryKey":["index"],"pandas_version":"1.4.0"},"data":[{"index":0,"?name":"Johnny Lee Outlaw","?mbox":"mailto:jlow@example.com"},{"index":1,"?name":"Peter Goodguy","?mbox":"mailto:peter@example.org"}]} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-values.json b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-values.json new file mode 100644 index 0000000..e49c3eb --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index-orient-values.json @@ -0,0 +1 @@ +[["Johnny Lee Outlaw","mailto:jlow@example.com"],["Peter Goodguy","mailto:peter@example.org"]] diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.csv b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.csv new file mode 100644 index 0000000..063e950 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.csv @@ -0,0 +1,3 @@ +,?name,?mbox +0,Johnny Lee Outlaw,mailto:jlow@example.com +1,Peter Goodguy,mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.html b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.html new file mode 100644 index 0000000..bee5944 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.html @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + +
?name?mbox
0Johnny Lee Outlawmailto:jlow@example.com
1Peter Goodguymailto:peter@example.org
diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.md b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.md new file mode 100644 index 0000000..af68b84 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.md @@ -0,0 +1,4 @@ +| | ?name | ?mbox | +|----|-------------------|--------------------------| +| 0 | Johnny Lee Outlaw | mailto:jlow@example.com | +| 1 | Peter Goodguy | mailto:peter@example.org | diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.tsv b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.tsv new file mode 100644 index 0000000..a4fdfca --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-with_index.tsv @@ -0,0 +1,3 @@ + ?name ?mbox +0 Johnny Lee Outlaw mailto:jlow@example.com +1 Peter Goodguy mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index-orient-split.json b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index-orient-split.json new file mode 100644 index 0000000..885bc91 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index-orient-split.json @@ -0,0 +1 @@ +{"columns":["?name","?mbox"],"data":[["Johnny Lee Outlaw","mailto:jlow@example.com"],["Peter Goodguy","mailto:peter@example.org"]]} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index-orient-table.json b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index-orient-table.json new file mode 100644 index 0000000..c9e7c13 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index-orient-table.json @@ -0,0 +1 @@ +{"schema":{"fields":[{"name":"?name","type":"string"},{"name":"?mbox","type":"string"}],"pandas_version":"1.4.0"},"data":[{"?name":"Johnny Lee Outlaw","?mbox":"mailto:jlow@example.com"},{"?name":"Peter Goodguy","?mbox":"mailto:peter@example.org"}]} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.csv b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.csv new file mode 100644 index 0000000..6bd60fb --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.csv @@ -0,0 +1,3 @@ +?name,?mbox +Johnny Lee Outlaw,mailto:jlow@example.com +Peter Goodguy,mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.html b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.html new file mode 100644 index 0000000..041fd3b --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + +
?name?mbox
Johnny Lee Outlawmailto:jlow@example.com
Peter Goodguymailto:peter@example.org
diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.md b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.md new file mode 100644 index 0000000..3aa8a01 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.md @@ -0,0 +1,4 @@ +| ?name | ?mbox | +|-------------------|--------------------------| +| Johnny Lee Outlaw | mailto:jlow@example.com | +| Peter Goodguy | mailto:peter@example.org | diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.tsv b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.tsv new file mode 100644 index 0000000..dd1e81d --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-with_header-without_index.tsv @@ -0,0 +1,3 @@ +?name ?mbox +Johnny Lee Outlaw mailto:jlow@example.com +Peter Goodguy mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-columns.json b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-columns.json new file mode 100644 index 0000000..840035b --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-columns.json @@ -0,0 +1 @@ +{"?name":{"0":"Johnny Lee Outlaw","1":"Peter Goodguy"},"?mbox":{"0":"mailto:jlow@example.com","1":"mailto:peter@example.org"}} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-index.json b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-index.json new file mode 100644 index 0000000..717d3ae --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-index.json @@ -0,0 +1 @@ +{"0":{"?name":"Johnny Lee Outlaw","?mbox":"mailto:jlow@example.com"},"1":{"?name":"Peter Goodguy","?mbox":"mailto:peter@example.org"}} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-records.json b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-records.json new file mode 100644 index 0000000..f053616 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-records.json @@ -0,0 +1 @@ +[{"?name":"Johnny Lee Outlaw","?mbox":"mailto:jlow@example.com"},{"?name":"Peter Goodguy","?mbox":"mailto:peter@example.org"}] diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-split.json b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-split.json new file mode 100644 index 0000000..0401af1 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-split.json @@ -0,0 +1 @@ +{"columns":["?name","?mbox"],"index":[0,1],"data":[["Johnny Lee Outlaw","mailto:jlow@example.com"],["Peter Goodguy","mailto:peter@example.org"]]} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-table.json b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-table.json new file mode 100644 index 0000000..92f005c --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-table.json @@ -0,0 +1 @@ +{"schema":{"fields":[{"name":"index","type":"integer"},{"name":"?name","type":"string"},{"name":"?mbox","type":"string"}],"primaryKey":["index"],"pandas_version":"1.4.0"},"data":[{"index":0,"?name":"Johnny Lee Outlaw","?mbox":"mailto:jlow@example.com"},{"index":1,"?name":"Peter Goodguy","?mbox":"mailto:peter@example.org"}]} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-values.json b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-values.json new file mode 100644 index 0000000..e49c3eb --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index-orient-values.json @@ -0,0 +1 @@ +[["Johnny Lee Outlaw","mailto:jlow@example.com"],["Peter Goodguy","mailto:peter@example.org"]] diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.csv b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.csv new file mode 100644 index 0000000..7933d39 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.csv @@ -0,0 +1,2 @@ +0,Johnny Lee Outlaw,mailto:jlow@example.com +1,Peter Goodguy,mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.html b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.html new file mode 100644 index 0000000..b6a842b --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.html @@ -0,0 +1,14 @@ + + + + + + + + + + + + + +
0Johnny Lee Outlawmailto:jlow@example.com
1Peter Goodguymailto:peter@example.org
diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.md b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.md new file mode 100644 index 0000000..c5ee8c8 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.md @@ -0,0 +1,3 @@ +|---|-------------------|--------------------------| +| 0 | Johnny Lee Outlaw | mailto:jlow@example.com | +| 1 | Peter Goodguy | mailto:peter@example.org | diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.tsv b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.tsv new file mode 100644 index 0000000..992efe2 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-with_index.tsv @@ -0,0 +1,2 @@ +0 Johnny Lee Outlaw mailto:jlow@example.com +1 Peter Goodguy mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index-orient-split.json b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index-orient-split.json new file mode 100644 index 0000000..885bc91 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index-orient-split.json @@ -0,0 +1 @@ +{"columns":["?name","?mbox"],"data":[["Johnny Lee Outlaw","mailto:jlow@example.com"],["Peter Goodguy","mailto:peter@example.org"]]} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index-orient-table.json b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index-orient-table.json new file mode 100644 index 0000000..c9e7c13 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index-orient-table.json @@ -0,0 +1 @@ +{"schema":{"fields":[{"name":"?name","type":"string"},{"name":"?mbox","type":"string"}],"pandas_version":"1.4.0"},"data":[{"?name":"Johnny Lee Outlaw","?mbox":"mailto:jlow@example.com"},{"?name":"Peter Goodguy","?mbox":"mailto:peter@example.org"}]} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.csv b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.csv new file mode 100644 index 0000000..a4c2c82 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.csv @@ -0,0 +1,2 @@ +Johnny Lee Outlaw,mailto:jlow@example.com +Peter Goodguy,mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.html b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.html new file mode 100644 index 0000000..6dbc7c3 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.html @@ -0,0 +1,12 @@ + + + + + + + + + + + +
Johnny Lee Outlawmailto:jlow@example.com
Peter Goodguymailto:peter@example.org
diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.md b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.md new file mode 100644 index 0000000..6ad505c --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.md @@ -0,0 +1,3 @@ +|-------------------|--------------------------| +| Johnny Lee Outlaw | mailto:jlow@example.com | +| Peter Goodguy | mailto:peter@example.org | diff --git a/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.tsv b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.tsv new file mode 100644 index 0000000..833da47 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output-without_header-without_index.tsv @@ -0,0 +1,2 @@ +Johnny Lee Outlaw mailto:jlow@example.com +Peter Goodguy mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.check-w3-output.csv b/tests/case_utils/case_sparql_select/.check-w3-output.csv new file mode 100644 index 0000000..063e950 --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output.csv @@ -0,0 +1,3 @@ +,?name,?mbox +0,Johnny Lee Outlaw,mailto:jlow@example.com +1,Peter Goodguy,mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.check-w3-output.html b/tests/case_utils/case_sparql_select/.check-w3-output.html index aff9beb..bee5944 100644 --- a/tests/case_utils/case_sparql_select/.check-w3-output.html +++ b/tests/case_utils/case_sparql_select/.check-w3-output.html @@ -18,4 +18,4 @@ mailto:peter@example.org - \ No newline at end of file + diff --git a/tests/case_utils/case_sparql_select/.check-w3-output.json b/tests/case_utils/case_sparql_select/.check-w3-output.json new file mode 100644 index 0000000..840035b --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output.json @@ -0,0 +1 @@ +{"?name":{"0":"Johnny Lee Outlaw","1":"Peter Goodguy"},"?mbox":{"0":"mailto:jlow@example.com","1":"mailto:peter@example.org"}} diff --git a/tests/case_utils/case_sparql_select/.check-w3-output.md b/tests/case_utils/case_sparql_select/.check-w3-output.md index 77b05f4..af68b84 100644 --- a/tests/case_utils/case_sparql_select/.check-w3-output.md +++ b/tests/case_utils/case_sparql_select/.check-w3-output.md @@ -1,4 +1,4 @@ | | ?name | ?mbox | |----|-------------------|--------------------------| | 0 | Johnny Lee Outlaw | mailto:jlow@example.com | -| 1 | Peter Goodguy | mailto:peter@example.org | \ No newline at end of file +| 1 | Peter Goodguy | mailto:peter@example.org | diff --git a/tests/case_utils/case_sparql_select/.check-w3-output.tsv b/tests/case_utils/case_sparql_select/.check-w3-output.tsv new file mode 100644 index 0000000..a4fdfca --- /dev/null +++ b/tests/case_utils/case_sparql_select/.check-w3-output.tsv @@ -0,0 +1,3 @@ + ?name ?mbox +0 Johnny Lee Outlaw mailto:jlow@example.com +1 Peter Goodguy mailto:peter@example.org diff --git a/tests/case_utils/case_sparql_select/.gitignore b/tests/case_utils/case_sparql_select/.gitignore index 0ae4849..122f73b 100644 --- a/tests/case_utils/case_sparql_select/.gitignore +++ b/tests/case_utils/case_sparql_select/.gitignore @@ -1,2 +1,3 @@ +prefixed* subclass-*.md -w3-output.* +w3-output* diff --git a/tests/case_utils/case_sparql_select/Makefile b/tests/case_utils/case_sparql_select/Makefile index 22a849b..cf13029 100644 --- a/tests/case_utils/case_sparql_select/Makefile +++ b/tests/case_utils/case_sparql_select/Makefile @@ -18,26 +18,88 @@ top_srcdir := $(shell cd ../../.. ; pwd) tests_srcdir := $(top_srcdir)/tests all: \ + prefixed_results.csv \ + prefixed_results.html \ + prefixed_results.json \ + prefixed_results-indented.json \ + prefixed_results.md \ + prefixed_results.tsv \ subclass-explicit-none.md \ subclass-implicit-any.md \ + w3-output.csv \ w3-output.html \ - w3-output.md + w3-output.json \ + w3-output-indented.json \ + w3-output.md \ + w3-output.tsv .PHONY: \ check-subclass \ check-subclass-explicit-none \ check-subclass-implicit-any \ + check-w3-csv \ check-w3-html \ - check-w3-markdown + check-w3-json \ + check-w3-json-indented \ + check-w3-markdown \ + check-w3-tsv .PRECIOUS: \ + prefixed_results.% \ subclass-% \ w3-output.% check: \ + check-w3-csv \ check-w3-html \ + check-w3-json \ check-w3-markdown \ + check-w3-tsv \ + check-prefixed_results \ check-subclass + source $(tests_srcdir)/venv/bin/activate \ + && pytest \ + --log-level=DEBUG + +check-prefixed_results: \ + check-prefixed_results-csv \ + check-prefixed_results-html \ + check-prefixed_results-json \ + check-prefixed_results-md \ + check-prefixed_results-tsv + +check-prefixed_results-csv: \ + .check-prefixed_results.csv \ + prefixed_results.csv + diff $^ + +check-prefixed_results-html: \ + .check-prefixed_results.html \ + prefixed_results.html + diff $^ + +check-prefixed_results-json: \ + check-prefixed_results-json-indented \ + .check-prefixed_results.json \ + prefixed_results.json + diff \ + .check-prefixed_results.json \ + prefixed_results.json + +check-prefixed_results-json-indented: \ + .check-prefixed_results-indented.json \ + prefixed_results-indented.json + diff $^ + +check-prefixed_results-md: \ + .check-prefixed_results.md \ + prefixed_results.md + diff $^ + +check-prefixed_results-tsv: \ + .check-prefixed_results.tsv \ + prefixed_results.tsv + diff $^ check-subclass: \ check-subclass-explicit-none \ @@ -53,24 +115,81 @@ check-subclass-implicit-any: \ subclass-implicit-any.md diff $^ +check-w3-csv: \ + .check-w3-output.csv \ + w3-output.csv + diff $^ + check-w3-html: \ .check-w3-output.html \ w3-output.html diff $^ +check-w3-json: \ + .check-w3-output.json \ + check-w3-json-indented \ + w3-output.json + diff \ + .check-w3-output.json \ + w3-output.json + +check-w3-json-indented: \ + .check-w3-output-indented.json \ + w3-output-indented.json + diff $^ + check-w3-markdown: \ .check-w3-output.md \ w3-output.md diff $^ +check-w3-tsv: \ + .check-w3-output.tsv \ + w3-output.tsv + diff $^ + clean: @rm -rf \ __pycache__ @rm -f \ + *.csv \ *.html \ *.md \ + *.tsv \ + *output*.json \ _* +prefixed_results.%: \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/case_utils/case_sparql_select/__init__.py \ + $(top_srcdir)/case_utils/ontology/__init__.py \ + $(top_srcdir)/case_utils/ontology/version_info.py \ + subclass.json \ + subclass.sparql + source $(tests_srcdir)/venv/bin/activate \ + && case_sparql_select \ + --use-prefixes \ + _$@ \ + subclass.sparql \ + subclass.json + mv _$@ $@ + +prefixed_results-indented.json: \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/case_utils/case_sparql_select/__init__.py \ + $(top_srcdir)/case_utils/ontology/__init__.py \ + $(top_srcdir)/case_utils/ontology/version_info.py \ + subclass.json \ + subclass.sparql + source $(tests_srcdir)/venv/bin/activate \ + && case_sparql_select \ + --json-indent 4 \ + --use-prefixes \ + _$@ \ + subclass.sparql \ + subclass.json + mv _$@ $@ + subclass-explicit-none.md: \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/case_utils/case_sparql_select/__init__.py \ @@ -115,3 +234,20 @@ w3-output.%: \ w3-input-2.ttl \ w3-input-3.json mv _$@ $@ + +w3-output-indented.json: \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/case_utils/case_sparql_select/__init__.py \ + $(top_srcdir)/case_utils/ontology/__init__.py \ + $(top_srcdir)/case_utils/ontology/version_info.py \ + w3-input-1.sparql \ + w3-input-2.ttl \ + w3-input-3.json + source $(tests_srcdir)/venv/bin/activate \ + && case_sparql_select \ + --json-indent 4 \ + _$@ \ + w3-input-1.sparql \ + w3-input-2.ttl \ + w3-input-3.json + mv _$@ $@ diff --git a/tests/case_utils/case_sparql_select/test_data_frame_to_table_text_json.py b/tests/case_utils/case_sparql_select/test_data_frame_to_table_text_json.py new file mode 100644 index 0000000..8fc160d --- /dev/null +++ b/tests/case_utils/case_sparql_select/test_data_frame_to_table_text_json.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 + +# This software was developed at the National Institute of Standards +# and Technology by employees of the Federal Government in the course +# of their official duties. Pursuant to title 17 Section 105 of the +# United States Code this software is not subject to copyright +# protection and is in the public domain. NIST assumes no +# responsibility whatsoever for its use by other parties, and makes +# no guarantees, expressed or implied, about its quality, +# reliability, or any other characteristic. +# +# We would appreciate acknowledgement if the software is used. + +import pathlib +import typing + +import pytest +import rdflib + +import case_utils.case_sparql_select + +SRCDIR = pathlib.Path(__file__).parent + +GRAPH = rdflib.Graph() +GRAPH.parse(str(SRCDIR / "w3-input-2.ttl")) +GRAPH.parse(str(SRCDIR / "w3-input-3.json")) +assert len(GRAPH) > 0 + +SELECT_QUERY_TEXT: typing.Optional[str] = None +with (SRCDIR / "w3-input-1.sparql").open("r") as _fh: + SELECT_QUERY_TEXT = _fh.read().strip() +assert SELECT_QUERY_TEXT is not None + +DATA_FRAME = case_utils.case_sparql_select.graph_and_query_to_data_frame( + GRAPH, SELECT_QUERY_TEXT +) + + +def make_data_frame_to_json_table_text_parameters() -> ( + typing.Iterator[typing.Tuple[str, str, bool, bool]] +): + for use_header in [False, True]: + for use_index in [False, True]: + for output_mode in ["csv", "html", "json", "md", "tsv"]: + if output_mode == "json": + for json_orient in [ + "columns", + "index", + "records", + "split", + "table", + "values", + ]: + # Handle incompatible parameter pairings for JSON mode. + if use_index is False: + if json_orient not in {"split", "table"}: + continue + + yield (json_orient, output_mode, use_header, use_index) + else: + yield ("columns", output_mode, use_header, use_index) + + +@pytest.mark.parametrize( + "json_orient, output_mode, use_header, use_index", + make_data_frame_to_json_table_text_parameters(), +) +def test_data_frame_to_table_text_json( + json_orient: str, + output_mode: str, + use_header: bool, + use_index: bool, +) -> None: + table_text = case_utils.case_sparql_select.data_frame_to_table_text( + DATA_FRAME, + json_orient=json_orient, + output_mode=output_mode, + use_header=use_header, + use_index=use_index, + ) + + output_filename_template = ".check-w3-output-%s_header-%s_index%s.%s" + header_part = "with" if use_header else "without" + index_part = "with" if use_index else "without" + if output_mode == "json": + json_orient_part = "-orient-" + json_orient + else: + json_orient_part = "" + output_filename = output_filename_template % ( + header_part, + index_part, + json_orient_part, + output_mode, + ) + with (SRCDIR / output_filename).open("w") as out_fh: + out_fh.write(table_text) + if table_text[-1] != "\n": + out_fh.write("\n") diff --git a/tests/case_utils/case_validate/Makefile b/tests/case_utils/case_validate/Makefile index b6bf821..aa5a489 100644 --- a/tests/case_utils/case_validate/Makefile +++ b/tests/case_utils/case_validate/Makefile @@ -27,14 +27,17 @@ tests_srcdir := $(top_srcdir)/tests all: \ all-cli \ all-case_test_examples \ - all-uco_test_examples + all-uco_test_examples \ + all-shape_disabling .PHONY: \ all-case_test_examples \ all-cli \ + all-shape_disabling \ all-uco_test_examples \ check-case_test_examples \ check-cli \ + check-shape_disabling \ check-uco_test_examples all-case_test_examples: @@ -45,6 +48,10 @@ all-cli: $(MAKE) \ --directory cli +all-shape_disabling: + $(MAKE) \ + --directory shape_disabling + all-uco_test_examples: $(MAKE) \ --directory uco_test_examples @@ -52,7 +59,8 @@ all-uco_test_examples: check: \ check-cli \ check-case_test_examples \ - check-uco_test_examples + check-uco_test_examples \ + check-shape_disabling check-case_test_examples: $(MAKE) \ @@ -64,6 +72,11 @@ check-cli: --directory cli \ check +check-shape_disabling: + $(MAKE) \ + --directory shape_disabling \ + check + check-uco_test_examples: \ uco_monolithic.ttl $(MAKE) \ @@ -71,6 +84,9 @@ check-uco_test_examples: \ check clean: + @$(MAKE) \ + --directory shape_disabling \ + clean @$(MAKE) \ --directory case_test_examples \ clean diff --git a/tests/case_utils/case_validate/case_test_examples/Makefile b/tests/case_utils/case_validate/case_test_examples/Makefile index bb21e1c..ff33917 100644 --- a/tests/case_utils/case_validate/case_test_examples/Makefile +++ b/tests/case_utils/case_validate/case_test_examples/Makefile @@ -44,11 +44,13 @@ all: \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ $(top_srcdir)/case_utils/case_validate/__init__.py \ + $(top_srcdir)/case_utils/case_validate/validate_types.py \ + $(top_srcdir)/case_utils/case_validate/validate_utils.py \ $(top_srcdir)/case_utils/ontology/__init__.py rm -f __$@ _$@ source $(tests_srcdir)/venv/bin/activate \ && case_validate \ - --allow-warnings \ + --allow-infos \ --debug \ --format turtle \ --output __$@ \ diff --git a/tests/case_utils/case_validate/cli/Makefile b/tests/case_utils/case_validate/cli/Makefile index f61d421..5795ad4 100644 --- a/tests/case_utils/case_validate/cli/Makefile +++ b/tests/case_utils/case_validate/cli/Makefile @@ -23,7 +23,14 @@ tests_srcdir := $(top_srcdir)/tests RDF_TOOLKIT_JAR := $(case_srcdir)/lib/rdf-toolkit.jar +case_validate_sources := \ + $(top_srcdir)/case_utils/case_validate/__init__.py \ + $(top_srcdir)/case_utils/case_validate/validate_types.py \ + $(top_srcdir)/case_utils/case_validate/validate_utils.py + files_to_generate := \ + errant_cdo_concept_PASS.txt \ + errant_cdo_concept_XFAIL.txt \ format_human_output_jsonld.jsonld \ format_human_output_turtle.ttl \ format_human_output_txt.txt \ @@ -40,8 +47,11 @@ files_to_generate := \ format_unspecified_output_turtle.ttl \ format_unspecified_output_txt.txt \ format_unspecified_output_unspecified.txt \ + past_version_reference_PASS.txt \ + past_version_reference_XFAIL.txt \ split_data_graph_PASS.txt \ - split_data_graph_XFAIL.txt + split_data_graph_XFAIL.txt \ + thing_metashacl_PASS.txt all: \ $(files_to_generate) @@ -56,11 +66,42 @@ clean: @rm -f \ $(files_to_generate) +errant_cdo_concept_PASS.txt: \ + $(case_validate_sources) \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/.ontology.done.log \ + $(top_srcdir)/case_utils/ontology/__init__.py \ + errant_cdo_concept.ttl + rm -f _$@ + source $(tests_srcdir)/venv/bin/activate \ + && case_validate \ + --allow-warnings \ + --debug \ + errant_cdo_concept.ttl \ + > _$@ + mv _$@ $@ + +errant_cdo_concept_XFAIL.txt: \ + $(case_validate_sources) \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/.ontology.done.log \ + $(top_srcdir)/case_utils/ontology/__init__.py \ + errant_cdo_concept.ttl + rm -f _$@ + source $(tests_srcdir)/venv/bin/activate \ + && case_validate \ + errant_cdo_concept.ttl \ + --debug \ + > _$@ \ + ; test 1 -eq $$? + test -s _$@ + mv _$@ $@ + format_human_output_%: \ $(examples_srcdir)/investigative_action_PASS_validation.ttl \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py rm -f _$@ source $(tests_srcdir)/venv/bin/activate \ @@ -73,9 +114,9 @@ format_human_output_%: \ format_human_output_unspecified.txt: \ $(examples_srcdir)/investigative_action_PASS_validation.ttl \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py rm -f _$@ source $(tests_srcdir)/venv/bin/activate \ @@ -90,9 +131,9 @@ format_human_output_unspecified.txt: \ # blank node ID that does not serve to inform the example. format_jsonld_output_%: \ $(examples_srcdir)/investigative_action_PASS_validation.ttl \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py rm -f __$@ _$@ source $(tests_srcdir)/venv/bin/activate \ @@ -110,9 +151,9 @@ format_jsonld_output_%: \ format_jsonld_output_unspecified.jsonld: \ $(examples_srcdir)/investigative_action_PASS_validation.ttl \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py rm -f __$@ _$@ source $(tests_srcdir)/venv/bin/activate \ @@ -130,9 +171,9 @@ format_jsonld_output_unspecified.jsonld: \ format_turtle_output_%: \ $(examples_srcdir)/investigative_action_PASS_validation.ttl \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py rm -f _$@ source $(tests_srcdir)/venv/bin/activate \ @@ -145,9 +186,9 @@ format_turtle_output_%: \ format_turtle_output_unspecified.ttl: \ $(examples_srcdir)/investigative_action_PASS_validation.ttl \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py rm -f _$@ source $(tests_srcdir)/venv/bin/activate \ @@ -160,9 +201,9 @@ format_turtle_output_unspecified.ttl: \ format_unspecified_output_%: \ $(examples_srcdir)/investigative_action_PASS_validation.ttl \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py rm -f _$@ source $(tests_srcdir)/venv/bin/activate \ @@ -174,9 +215,9 @@ format_unspecified_output_%: \ format_unspecified_output_unspecified.txt: \ $(examples_srcdir)/investigative_action_PASS_validation.ttl \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py rm -f _$@ source $(tests_srcdir)/venv/bin/activate \ @@ -186,10 +227,40 @@ format_unspecified_output_unspecified.txt: \ > _$@ mv _$@ $@ +past_version_reference_PASS.txt: \ + $(case_validate_sources) \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/.ontology.done.log \ + $(top_srcdir)/case_utils/ontology/__init__.py \ + $(top_srcdir)/case_utils/ontology/ontology_and_version_iris.txt \ + past_version_reference_PASS.ttl + rm -f _$@ + source $(tests_srcdir)/venv/bin/activate \ + && case_validate \ + past_version_reference_PASS.ttl \ + > _$@ + mv _$@ $@ + +past_version_reference_XFAIL.txt: \ + $(case_validate_sources) \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/.ontology.done.log \ + $(top_srcdir)/case_utils/ontology/__init__.py \ + $(top_srcdir)/case_utils/ontology/ontology_and_version_iris.txt \ + past_version_reference_XFAIL.ttl + rm -f _$@ + source $(tests_srcdir)/venv/bin/activate \ + && case_validate \ + past_version_reference_XFAIL.ttl \ + > _$@ \ + ; rc=$$? ; test 1 -eq $$rc + test -s _$@ + mv _$@ $@ + split_data_graph_PASS.txt: \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py \ split_data_graph_1.json \ split_data_graph_2.json @@ -203,9 +274,9 @@ split_data_graph_PASS.txt: \ mv _$@ $@ split_data_graph_XFAIL.txt: \ + $(case_validate_sources) \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ - $(top_srcdir)/case_utils/case_validate/__init__.py \ $(top_srcdir)/case_utils/ontology/__init__.py \ split_data_graph_1.json rm -f _$@ @@ -215,4 +286,19 @@ split_data_graph_XFAIL.txt: \ split_data_graph_1.json \ > _$@ \ ; rc=$$? ; test 1 -eq $$rc + test -s _$@ + mv _$@ $@ + +thing_metashacl_PASS.txt: \ + $(case_validate_sources) \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/.ontology.done.log \ + $(top_srcdir)/case_utils/ontology/__init__.py \ + thing.ttl + rm -f _$@ + source $(tests_srcdir)/venv/bin/activate \ + && case_validate \ + --metashacl \ + thing.ttl \ + > _$@ mv _$@ $@ diff --git a/tests/case_utils/case_validate/cli/errant_cdo_concept.ttl b/tests/case_utils/case_validate/cli/errant_cdo_concept.ttl new file mode 100644 index 0000000..c15783a --- /dev/null +++ b/tests/case_utils/case_validate/cli/errant_cdo_concept.ttl @@ -0,0 +1,17 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix uco-core: . +@prefix uco-vocabulary: . +@prefix xsd: . + + + a uco-core:UcoThing ; + uco-core:nonExistentProperty1 "test 1 - raises 1 warning."@en ; + . + + + a uco-core:UcoThing ; + uco-core:nonExistentProperty2 "test 2 - raises 2 warnings."^^uco-vocabulary:NonExistentVocabulary1 ; + . + diff --git a/tests/case_utils/case_validate/cli/errant_cdo_concept_PASS.txt b/tests/case_utils/case_validate/cli/errant_cdo_concept_PASS.txt new file mode 100644 index 0000000..0c16da6 --- /dev/null +++ b/tests/case_utils/case_validate/cli/errant_cdo_concept_PASS.txt @@ -0,0 +1,2 @@ +Validation Report +Conforms: True diff --git a/tests/case_utils/case_validate/cli/errant_cdo_concept_XFAIL.txt b/tests/case_utils/case_validate/cli/errant_cdo_concept_XFAIL.txt new file mode 100644 index 0000000..0c16da6 --- /dev/null +++ b/tests/case_utils/case_validate/cli/errant_cdo_concept_XFAIL.txt @@ -0,0 +1,2 @@ +Validation Report +Conforms: True diff --git a/tests/case_utils/case_validate/cli/past_version_reference_PASS.ttl b/tests/case_utils/case_validate/cli/past_version_reference_PASS.ttl new file mode 100644 index 0000000..322f4f2 --- /dev/null +++ b/tests/case_utils/case_validate/cli/past_version_reference_PASS.ttl @@ -0,0 +1,12 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix uco-core: . +@prefix xsd: . + + + a uco-core:UcoThing ; + rdfs:comment "This node maintains a historic reference to 0.9.1 of the UCO namespace. This must not trigger an undefined-concept warning."@en ; + rdfs:seeAlso uco-core:0.9.1 ; + . + diff --git a/tests/case_utils/case_validate/cli/past_version_reference_PASS.txt b/tests/case_utils/case_validate/cli/past_version_reference_PASS.txt new file mode 100644 index 0000000..0c16da6 --- /dev/null +++ b/tests/case_utils/case_validate/cli/past_version_reference_PASS.txt @@ -0,0 +1,2 @@ +Validation Report +Conforms: True diff --git a/tests/case_utils/case_validate/cli/past_version_reference_XFAIL.ttl b/tests/case_utils/case_validate/cli/past_version_reference_XFAIL.ttl new file mode 100644 index 0000000..1a6892a --- /dev/null +++ b/tests/case_utils/case_validate/cli/past_version_reference_XFAIL.ttl @@ -0,0 +1,12 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix uco-core: . +@prefix xsd: . + + + a uco-core:UcoThing ; + rdfs:comment "This node references a never-published UCO Core namespace version. This is expected to trigger a warning."@en ; + rdfs:seeAlso uco-core:0.0.1 ; + . + diff --git a/tests/case_utils/case_validate/cli/past_version_reference_XFAIL.txt b/tests/case_utils/case_validate/cli/past_version_reference_XFAIL.txt new file mode 100644 index 0000000..0c16da6 --- /dev/null +++ b/tests/case_utils/case_validate/cli/past_version_reference_XFAIL.txt @@ -0,0 +1,2 @@ +Validation Report +Conforms: True diff --git a/tests/case_utils/case_validate/cli/thing.ttl b/tests/case_utils/case_validate/cli/thing.ttl new file mode 100644 index 0000000..d28e973 --- /dev/null +++ b/tests/case_utils/case_validate/cli/thing.ttl @@ -0,0 +1,9 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . + +[] + a owl:Thing ; + . + diff --git a/tests/case_utils/case_validate/cli/thing_metashacl_PASS.txt b/tests/case_utils/case_validate/cli/thing_metashacl_PASS.txt new file mode 100644 index 0000000..0c16da6 --- /dev/null +++ b/tests/case_utils/case_validate/cli/thing_metashacl_PASS.txt @@ -0,0 +1,2 @@ +Validation Report +Conforms: True diff --git a/tests/case_utils/case_validate/shape_disabling/Makefile b/tests/case_utils/case_validate/shape_disabling/Makefile new file mode 100644 index 0000000..db3437b --- /dev/null +++ b/tests/case_utils/case_validate/shape_disabling/Makefile @@ -0,0 +1,58 @@ +#!/usr/bin/make -f + +# This software was developed at the National Institute of Standards +# and Technology by employees of the Federal Government in the course +# of their official duties. Pursuant to title 17 Section 105 of the +# United States Code this software is not subject to copyright +# protection and is in the public domain. NIST assumes no +# responsibility whatsoever for its use by other parties, and makes +# no guarantees, expressed or implied, about its quality, +# reliability, or any other characteristic. +# +# We would appreciate acknowledgement if the software is used. + +SHELL := /bin/bash + +top_srcdir := $(shell cd ../../../.. ; pwd) + +tests_srcdir := $(top_srcdir)/tests + +all: \ + validation_with_uuid_shape_disabled.txt \ + validation_with_uuid_shape_enabled.txt + +check: \ + validation_with_uuid_shape_disabled.txt \ + validation_with_uuid_shape_enabled.txt + +clean: + @rm -f \ + *.txt \ + _* + +validation_with_uuid_shape_disabled.txt: \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/case_utils/case_validate/__init__.py \ + $(top_srcdir)/case_utils/case_validate/validate_types.py \ + $(top_srcdir)/case_utils/case_validate/validate_utils.py \ + disable_shape.ttl \ + example.ttl + source $(tests_srcdir)/venv/bin/activate \ + && case_validate \ + --ontology disable_shape.ttl \ + example.ttl \ + > _$@ + mv _$@ $@ + +validation_with_uuid_shape_enabled.txt: \ + $(tests_srcdir)/.venv.done.log \ + $(top_srcdir)/case_utils/case_validate/__init__.py \ + $(top_srcdir)/case_utils/case_validate/validate_types.py \ + $(top_srcdir)/case_utils/case_validate/validate_utils.py \ + example.ttl + source $(tests_srcdir)/venv/bin/activate \ + && case_validate \ + --allow-infos \ + example.ttl \ + > _$@ + mv _$@ $@ diff --git a/tests/case_utils/case_validate/shape_disabling/disable_shape.ttl b/tests/case_utils/case_validate/shape_disabling/disable_shape.ttl new file mode 100644 index 0000000..e9e9bf7 --- /dev/null +++ b/tests/case_utils/case_validate/shape_disabling/disable_shape.ttl @@ -0,0 +1,11 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix uco-core: . +@prefix xsd: . + +uco-core:UcoThing-identifier-regex-shape + sh:deactivated "true"^^xsd:boolean ; + . + diff --git a/tests/case_utils/case_validate/shape_disabling/example.ttl b/tests/case_utils/case_validate/shape_disabling/example.ttl new file mode 100644 index 0000000..9f7a89c --- /dev/null +++ b/tests/case_utils/case_validate/shape_disabling/example.ttl @@ -0,0 +1,11 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix uco-core: . +@prefix xsd: . + + + a uco-core:UcoThing ; + rdfs:comment "This node's IRI is designed to trigger a UUID review shape."@en ; + . + diff --git a/tests/case_utils/case_validate/shape_disabling/validation_with_uuid_shape_disabled.txt b/tests/case_utils/case_validate/shape_disabling/validation_with_uuid_shape_disabled.txt new file mode 100644 index 0000000..0c16da6 --- /dev/null +++ b/tests/case_utils/case_validate/shape_disabling/validation_with_uuid_shape_disabled.txt @@ -0,0 +1,2 @@ +Validation Report +Conforms: True diff --git a/tests/case_utils/case_validate/shape_disabling/validation_with_uuid_shape_enabled.txt b/tests/case_utils/case_validate/shape_disabling/validation_with_uuid_shape_enabled.txt new file mode 100644 index 0000000..49b5399 --- /dev/null +++ b/tests/case_utils/case_validate/shape_disabling/validation_with_uuid_shape_enabled.txt @@ -0,0 +1,24 @@ +Validation Report +Conforms: True +Results (1): +Validation Result in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent): + Severity: sh:Info + Source Shape: core:UcoThing-identifier-regex-shape + Focus Node: + Value Node: + Source Constraint: [ rdf:type sh:SPARQLConstraint ; rdfs:seeAlso ; sh:message Literal("UcoThings are suggested to end with a UUID.", lang=en) ; sh:select Literal(" + PREFIX rdfs: + PREFIX core: + SELECT $this + WHERE { + $this a/rdfs:subClassOf* core:UcoThing . + FILTER ( + ! REGEX ( + STR($this), + "[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$", + "i" + ) + ) + } + ") ] + Message: UcoThings are suggested to end with a UUID. diff --git a/tests/case_utils/case_validate/uco_test_examples/Makefile b/tests/case_utils/case_validate/uco_test_examples/Makefile index f1b62fe..921b683 100644 --- a/tests/case_utils/case_validate/uco_test_examples/Makefile +++ b/tests/case_utils/case_validate/uco_test_examples/Makefile @@ -33,6 +33,8 @@ validation_ttls := \ co_XFAIL_validation.ttl \ configuration_setting_PASS_validation.ttl \ configuration_setting_XFAIL_validation.ttl \ + database_records_PASS_validation.ttl \ + database_records_XFAIL_validation.ttl \ has_facet_inverse_functional_PASS_validation.ttl \ has_facet_inverse_functional_XFAIL_validation.ttl \ hash_PASS_validation.ttl \ @@ -41,6 +43,7 @@ validation_ttls := \ location_XFAIL_validation.ttl \ message_thread_PASS_validation.ttl \ message_thread_XFAIL_validation.ttl \ + observable_creation_time_PASS_validation.ttl \ owl_axiom_PASS_validation.ttl \ owl_axiom_XFAIL_validation.ttl \ owl_properties_PASS_validation.ttl \ @@ -73,6 +76,8 @@ all: \ $(tests_srcdir)/.venv.done.log \ $(top_srcdir)/.ontology.done.log \ $(top_srcdir)/case_utils/case_validate/__init__.py \ + $(top_srcdir)/case_utils/case_validate/validate_types.py \ + $(top_srcdir)/case_utils/case_validate/validate_utils.py \ $(top_srcdir)/case_utils/ontology/__init__.py source $(tests_srcdir)/venv/bin/activate \ && case_validate \ diff --git a/tests/case_utils/case_validate/uco_test_examples/database_records_PASS_validation.ttl b/tests/case_utils/case_validate/uco_test_examples/database_records_PASS_validation.ttl new file mode 100644 index 0000000..33496ff --- /dev/null +++ b/tests/case_utils/case_validate/uco_test_examples/database_records_PASS_validation.ttl @@ -0,0 +1,11 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix xsd: . + +[] + a sh:ValidationReport ; + sh:conforms "true"^^xsd:boolean ; + . + diff --git a/tests/case_utils/case_validate/uco_test_examples/database_records_XFAIL_validation.ttl b/tests/case_utils/case_validate/uco_test_examples/database_records_XFAIL_validation.ttl new file mode 100644 index 0000000..2e76cf7 --- /dev/null +++ b/tests/case_utils/case_validate/uco_test_examples/database_records_XFAIL_validation.ttl @@ -0,0 +1,46 @@ +@prefix observable: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix xsd: . + +[] + a sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage 'Node kb:table-field-facet-37182dba-4dbd-4b97-b49e-8038b7fbfd29 does not conform to exactly one shape in [ rdf:type sh:NodeShape ; sh:property [ sh:hasValue Literal("false" = False, datatype=xsd:boolean) ; sh:path observable:recordFieldIsNull ] ] , [ rdf:type sh:NodeShape ; sh:property [ sh:hasValue Literal("true" = True, datatype=xsd:boolean) ; sh:path observable:recordFieldIsNull ], [ sh:maxCount Literal("0", datatype=xsd:integer) ; sh:path observable:recordFieldValue ] ] , [ rdf:type sh:NodeShape ; sh:property [ sh:maxCount Literal("0", datatype=xsd:integer) ; sh:path observable:recordFieldIsNull ] ]' ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:XoneConstraintComponent ; + sh:sourceShape observable:TableFieldFacet ; + sh:value ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "More than 1 values on kb:table-field-facet-46aafb6e-0be4-4412-a938-16c4b5ae5314->observable:recordFieldIsNull" ; + sh:resultPath observable:recordFieldIsNull ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape [ + sh:datatype xsd:boolean ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:recordFieldIsNull ; + ] ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage 'Node kb:table-field-facet-46aafb6e-0be4-4412-a938-16c4b5ae5314 does not conform to exactly one shape in [ rdf:type sh:NodeShape ; sh:property [ sh:hasValue Literal("false" = False, datatype=xsd:boolean) ; sh:path observable:recordFieldIsNull ] ] , [ rdf:type sh:NodeShape ; sh:property [ sh:hasValue Literal("true" = True, datatype=xsd:boolean) ; sh:path observable:recordFieldIsNull ], [ sh:maxCount Literal("0", datatype=xsd:integer) ; sh:path observable:recordFieldValue ] ] , [ rdf:type sh:NodeShape ; sh:property [ sh:maxCount Literal("0", datatype=xsd:integer) ; sh:path observable:recordFieldIsNull ] ]' ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:XoneConstraintComponent ; + sh:sourceShape observable:TableFieldFacet ; + sh:value ; + ] + ; + . + diff --git a/tests/case_utils/case_validate/uco_test_examples/hash_XFAIL_validation.ttl b/tests/case_utils/case_validate/uco_test_examples/hash_XFAIL_validation.ttl index d520627..e05552d 100644 --- a/tests/case_utils/case_validate/uco_test_examples/hash_XFAIL_validation.ttl +++ b/tests/case_utils/case_validate/uco_test_examples/hash_XFAIL_validation.ttl @@ -43,6 +43,10 @@ "SHA1"^^vocabulary:HashNameVocab "SHA224"^^vocabulary:HashNameVocab "SHA256"^^vocabulary:HashNameVocab + "SHA3-224"^^vocabulary:HashNameVocab + "SHA3-256"^^vocabulary:HashNameVocab + "SHA3-384"^^vocabulary:HashNameVocab + "SHA3-512"^^vocabulary:HashNameVocab "SHA384"^^vocabulary:HashNameVocab "SHA512"^^vocabulary:HashNameVocab "SSDEEP"^^vocabulary:HashNameVocab @@ -112,6 +116,10 @@ "SHA1"^^vocabulary:HashNameVocab "SHA224"^^vocabulary:HashNameVocab "SHA256"^^vocabulary:HashNameVocab + "SHA3-224"^^vocabulary:HashNameVocab + "SHA3-256"^^vocabulary:HashNameVocab + "SHA3-384"^^vocabulary:HashNameVocab + "SHA3-512"^^vocabulary:HashNameVocab "SHA384"^^vocabulary:HashNameVocab "SHA512"^^vocabulary:HashNameVocab "SSDEEP"^^vocabulary:HashNameVocab diff --git a/tests/case_utils/case_validate/uco_test_examples/observable_creation_time_PASS_validation.ttl b/tests/case_utils/case_validate/uco_test_examples/observable_creation_time_PASS_validation.ttl new file mode 100644 index 0000000..60605c2 --- /dev/null +++ b/tests/case_utils/case_validate/uco_test_examples/observable_creation_time_PASS_validation.ttl @@ -0,0 +1,27 @@ +@prefix observable: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix xsd: . + +[] + 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 ; + ] ; + ] ; + . + diff --git a/tests/case_utils/test_local_uuid.py b/tests/case_utils/test_local_uuid.py index f283585..d610cdf 100644 --- a/tests/case_utils/test_local_uuid.py +++ b/tests/case_utils/test_local_uuid.py @@ -18,17 +18,17 @@ def test_local_uuid_deprecation(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setenv("DEMO_UUID_REQUESTING_NONRANDOM", "NONRANDOM_REQUESTED") - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): case_utils.local_uuid.configure() def test_local_uuid_nondirectory(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setenv("CASE_DEMO_NONRANDOM_UUID_BASE", "/dev/null") - with pytest.warns(UserWarning): + with pytest.warns(RuntimeWarning): case_utils.local_uuid.configure() def test_local_uuid_nonexistent(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setenv("CASE_DEMO_NONRANDOM_UUID_BASE", "/dev/nonexistent") - with pytest.warns(UserWarning): + with pytest.warns(RuntimeWarning): case_utils.local_uuid.configure() diff --git a/tests/hexbinary/test_hexbinary.py b/tests/hexbinary/test_hexbinary.py index 5f4dc96..7c52fbe 100644 --- a/tests/hexbinary/test_hexbinary.py +++ b/tests/hexbinary/test_hexbinary.py @@ -80,7 +80,9 @@ def test_sparql_syntax_bind_boolean() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -100,7 +102,9 @@ def test_pytest_syntax_xfail() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -119,7 +123,9 @@ def test_sparql_syntax_integer_coercion() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -138,7 +144,9 @@ def test_sparql_syntax_integer_cast() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -158,7 +166,9 @@ def test_sparql_cast_custom_type() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -174,7 +184,9 @@ def test_sparql_compare_hexbinary_mixcase() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -190,7 +202,9 @@ def test_sparql_compare_hexbinary_matchcase() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -206,7 +220,9 @@ def test_sparql_compare_hexbinarycanonical_matchcase() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -226,7 +242,9 @@ def test_sparql_compare_hexbinarycanonical_mixcase() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -246,7 +264,9 @@ def test_sparql_compare_hb_hbc_mixcase() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -266,7 +286,9 @@ def test_sparql_compare_hb_hbc_mixcase_cast() -> None: } """ ): - (l_value,) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.Literal) + l_value = result[0] confirmed = l_value.toPython() assert confirmed @@ -315,7 +337,11 @@ def _query_all_value_matches(graph: rdflib.Graph) -> typing.Set[str]: FILTER ( ?nNode1 != ?nNode2 ) }""" ): - (n_node1, n_node2) = result + assert isinstance(result, rdflib.query.ResultRow) + assert isinstance(result[0], rdflib.URIRef) + assert isinstance(result[1], rdflib.URIRef) + n_node1 = result[0] + n_node2 = result[1] computed.add(n_node1.toPython()) computed.add(n_node2.toPython()) return computed diff --git a/tests/requirements.txt b/tests/requirements.txt deleted file mode 100644 index f913d96..0000000 --- a/tests/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -PyLD -mypy -pytest -python-dateutil -types-python-dateutil