Skip to content

Latest commit

 

History

History
54 lines (30 loc) · 4.76 KB

Project-5.md

File metadata and controls

54 lines (30 loc) · 4.76 KB

Born Free But Everywhere in SHACL

For this project, the class will divide into two teams. Teams will be divided according to the following tasks:

1. Construct and validate a SHACL scheme for Basic Formal Ontology
2. Construct five useful, general, novel SHACL patterns

I strongly encourage you leverage your understanding of description logics for both tasks; if you understand what can be expressed in OWL, then you can more easily construct SHACL constraints on expressions in OWL. Protege allows one to construct and test SHACL constraints. If you explore a bit, you'll be able to identify a way to visualize the constraints in a graph as you develop them as well.

Task 1

The team pursuing task 1 will focus on constructing and validating a SHACL scheme for Basic Formal Ontology (BFO). It is not enough, however, to simply construct a SHACL file that parallels the BFO OWL file. That can be automated, as a matter of fact. Completing this task, rather, requires the construction of a SHACL file that parallels the BFO owl file but also constrains compatible knowledge graphs built on BFO to as much of the First-Order Logic representation of BFO, as possible. As you know, the FOL version of BFO expresses semantic content that cannot be expressed in BFO OWL version, since the latter uses a more restrictive language than the former.

To validate your SHACL schema for BFO, you will need to generate a knowledge graph based on BFO with instance data added. You will then need to run your SHACL schema against this knowledge graph and generate a report absent errors or warnings. This must be done while respecting the semantics of the FOL version of BFO to the extent possible.

This work will provide the foundation for a publication that illustrates how SHACL may be used to bridge the semantics of a data model whose implementations require expressivity restrictions. Completion of this task will thus make you eligible for co-authorship on the resulting publication. Students are encouraged, but not required, to continue building on this work as a final course project.

You will need the following files:

  1. BFO-FOL
  2. BFO-OWL

You may find the following resources useful:

  1. SHACL W3C
  2. BFO 2.0 User Guide - Link under "Background Information"

Task 2

The team pursuing task 2 will focus on constructing 5-10 useful, general, novel SHACL constraints.

By "useful", I mean a SHACL constraint that reflects a compelling use case. For example, in the DASH library one finds dash:AllObjects which represents the set of all objects in a data graph, and which is used in scenarios where a shape is expected to apply to any object, no matter the subject or predicate. This is a useful constraint for determining whether a graph contains no literals.

By "general", I mean a SHACL constraint that is not restricted to a single ontology, upper-level or otherwise, but rather can be used by many ontologies with minimal adjustment, if any.

By "novel" I mean a SHACL constraint does not currently exist. I encourage you to explore widely to determine whether your constraint exists; I will be. You should not, for example, duplicate any constraints from the SHACL W3C documentation or from the DASH library, though you are free to use such constraints as inspiration.

This work will provide the foundation for a publication describing a new extension of the SHACL library designed for wide use in the ontology community. Completion of this task will thus make you eligible for co-authorship on the resulting publication. Students are encouraged, but not required, to continue building on this work as a final course project.

You may find the following resources useful:

  1. SHACL W3C
  2. DASH Library

Assignment to Teams

The class will be divided evenly. Students are expected to determine allotment, but teams must be comprised of the same number of members (with a +1/-1 deviation allowed). This is an exercise in project management. I encourage you to identify a strategy early for dividing sub-tasks, setting deadlines, and addressing blockers to progress.

I suggest setting up 15 minute 'stand-up' meetings every other day, where team members are expected to join. zoom call or meet in person and (a) explain what progress they have made on their sub-task, (b) explain what they intend to achieve before the next stand-up, and (c) share any blockers that have to progress. This is an effective way to keep members focused on a team goal, as well as opportunities to overcome challenges.