From e39e368971bb46af1dc0d8c3a75c78fce4b0af03 Mon Sep 17 00:00:00 2001 From: cmungall Date: Wed, 6 Oct 2021 19:13:03 -0700 Subject: [PATCH] Docs for edges, see #21 --- src/schema/ontology_model.yaml | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/schema/ontology_model.yaml b/src/schema/ontology_model.yaml index 14d009de..641de2b2 100644 --- a/src/schema/ontology_model.yaml +++ b/src/schema/ontology_model.yaml @@ -84,7 +84,29 @@ classes: - relationship is_a: ontology element description: >- - A relationship between two nodes. We assume owlstar or similar for existential restrictions + A relationship between two nodes. + + Currently the only kinds of edges supported in KGCL: + + * A subClassOf B <==> Edge(subject=A, predicate=owl:subClassOf, object=B) + * A subClassOf P some B <==> Edge(subject=A, predicate=P, object=B) + * P subPropertyOf Q <==> Edge(subject=P, predicate=owl:subPropertyOf, object=Q) + + These represent the most common kind of pairwise relationship between classes, + and classes are the dominant node type in ontologies. + + In future a wider variety of OWL axiom types will be supportedn through the use + of an additional edge property/slot to indicate the interpretation of the axiom, + following owlstar (https://github.com/cmungall/owlstar). + + For example: + * `A subClassOf R only B <==> Edge(subject=A, predicate=P, object=B, interpretation=AllOnly)` + * `A Annotation(P,B) <==> Edge(subject=A, predicate=P, object=B, interpretation=annotationAssertion)` + + Note that not all axioms are intended to map to edges. Axioms/triples where the object is a literal + would be represented as node properties. Complex OWL axioms involving nesting would have their own + dedicated construct, or may be represented generically. These are out of scope for the current + version of KGCL mappings: - owl:Axiom - rdf:Statement