SADL Feature Coverage - ge-semtk/semtk GitHub Wiki

SemTK was designed for, and is primarily used with ontologies built with SADL, which is documented and available for download at sadl.sourceforge.net.

Ontology (T-box) vs Instance Data (A-box)

SemTK makes a more stark differentiation between ontology and instance data. A SemTK connection specifies different graphs for each. The ontology is loaded only from the model graphs, while queries are run against all graphs. SemTK ingestions uses the ontology from the model graphs and ingests data to the first data graph.

In typical use, ontology files are uploaded as owl to the model graph(s) and data is ingested using SemTK. However, this does not necessarily need to be the case as:

  • OWL files created by SADL and containing instance data may be uploaded to a graph
  • A SemTK connection may use the same graph for ontology and data
  • OWL files created by SADL which contain a mix of ontology and instance data may be uploaded to any graph (Note SemTK will not find ontology triples which are not in a model graph)

Restrictions

Overview of how restrictions are handled by SemTK:

query ingestion report
cardinality x
range x x
datatype x x

Cardinality

SemTK supports cardinality restrictions via the reports mechanism. Cardinality restrictions can be checked at any time by running a report containing a cardinality checker, documented here. Cardinality is not relevant to queries, and is not enforced during ingestion. Cardinality.sadl demonstrates the SADL statements supported and tested by SemTK.

Range

Range restrictions and complex ranges are enforced at all stages of SemTK querying and ingestion. RangeTest.sadl demonstrates the SADL statements supported and tested by SemTK.

Datatype

Datatype restrictions are enforced at all stages of SemTK querying and ingestion. datatypetest.sadl demonstrates the SADL statements supported and tested by SemTK.

Known Limitations

These are some known limits to SemTK support of SADL features.

Datatypes

Datatypes must be named. In-line restrictions are not supported by SemTK. (It is not clear whether they are supported by SADL3).

Range Restrictions

SemTK and SADL may use slightly different inference to combine range restrictions with owl:subPropertyOf. This could result in a mismatch between what nodegroups SemTK allows to be built vs what appears legal in SADL when range restrictions are inherited from super-properties. The best mitigation is to expressedly declare range restrictions in sub-properties.

Additional SADL features

SemTK is known to not yet support these SADL features:

  • typed lists
⚠️ **GitHub.com Fallback** ⚠️