From 62f220ccbb95de4f7590a505dd921979ff702a5e Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Fri, 3 Mar 2023 16:11:23 -0500
Subject: [PATCH 01/36] Update README.md
---
Project-3/README.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Project-3/README.md b/Project-3/README.md
index ab751654..6efe435e 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -1,5 +1,6 @@
# Project 3
+
Your third project will require you to answer each of the 10 questions below. You will be expected to open a pull request with your initial answers by the second class meeting, giving you one week to work on these problems. You and your peers will then have one week to work together to refine your respective initial answers, so they are ready for final submission. Once your pull requests have been reviewed and merged to the development branch, I will review them, then merge to the master branch.
```
@@ -35,8 +36,12 @@ For any question involving the use of Protege, please be sure to import:
```
4. Using the language of First-Order Logic, represent the following natural language expressions; you are welcome to introduce new terms where needed:
+
+⊔ ⊓ ⊧ ⊭ ⊦ ⊬ ⊏ ⊐ ⊑ ⊒ C ¬ ≡ ≠ ≥ ≤ ∃ ∀ ∧ →
```
(a) Sally has an arm Tuesday but does not have an arm Wednesday.
+ ∀x(Tx → ∃y(Hsy ∧ Ay)) ∧ (Wx → ¬∃y(Hsy ∧ Ay))
+
(b) Every liver has some cell as part at all times it exists.
(c) John was a child, then an adult, then a senior.
(d) Goofus and Gallant have been married for three years; for each day of that span, it is true to assert they are married.
From 902f6e05ddb5d34510dc68adb9bc374935e1826f Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Fri, 3 Mar 2023 16:27:14 -0500
Subject: [PATCH 02/36] Update README.md
---
Project-3/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Project-3/README.md b/Project-3/README.md
index 6efe435e..c7a5e2c3 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -43,6 +43,8 @@ For any question involving the use of Protege, please be sure to import:
∀x(Tx → ∃y(Hsy ∧ Ay)) ∧ (Wx → ¬∃y(Hsy ∧ Ay))
(b) Every liver has some cell as part at all times it exists.
+ ∀x∃y(Lx → Cy ∧ Pyx)
+
(c) John was a child, then an adult, then a senior.
(d) Goofus and Gallant have been married for three years; for each day of that span, it is true to assert they are married.
```
From 8f1208b82cc8b17783f7a5a7c82b20274e7d6d17 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 5 Mar 2023 14:39:09 -0500
Subject: [PATCH 03/36] Update README.md
---
Project-1/README.md | 182 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 181 insertions(+), 1 deletion(-)
diff --git a/Project-1/README.md b/Project-1/README.md
index 060b7b12..ce6c5d17 100644
--- a/Project-1/README.md
+++ b/Project-1/README.md
@@ -17,6 +17,51 @@ Note: The standard interpretation of the logical symbols - "∨", "∧", "→",
(b) (A→B)∧(A→¬B)
(c) (A→(B∨C))∨(C→¬A)
(d) ((A→B)∧C)∨(A∧D)
+
+ (a) (¬A→B)∨((A∧¬C)→B), Tautology
+ A B C ((¬A → B) ∨ ((A ∧ ¬C) → B))
+F F F T
+F F T T
+F T F T
+F T T T
+T F F T
+T F T T
+T T F T
+T T T T
+ (b) (A→B)∧(A→¬B), Contingent
+ A B ((A → B) ∧ (A → ¬B))
+F F T
+F T T
+T F F
+T T F
+ (c) (A→(B∨C))∨(C→¬A), Tautology
+ A B C ((A → (B ∨ C)) ∨ (C → ¬A))
+F F F T
+F F T T
+F T F T
+F T T T
+T F F T
+T F T T
+T T F T
+T T T T
+ (d) ((A→B)∧C)∨(A∧D), Contingent
+ A B C D (((A → B) ∧ C) ∨ (A ∧ D))
+F F F F F
+F F F T F
+F F T F T
+F F T T T
+F T F F F
+F T F T F
+F T T F T
+F T T T T
+T F F F F
+T F F T T
+T F T F F
+T F T T T
+T T F F F
+T T F T T
+T T T F T
+T T T T T
```
2. A _literal_ is an atomic formula or the negation of an atomic formula. We say a formula is in _conjunctive normal form_ (CNF) if it is the conjunction of the disjunction of literals. Find propositional logic formulas in CNF equivalent to each of the following:
@@ -24,25 +69,73 @@ Note: The standard interpretation of the logical symbols - "∨", "∧", "→",
(a) (A→B)→C
(b) (A→(B∨C))∨(C→¬A)
(c) (¬A∧¬B∧C)∨(¬A∧¬C)∨(B∧C)∨A
+
+ (A→B)→C, CNF: (A∨C)∧(¬B∨C)
+ (1) ¬(A→B)∨C
+ (2) ¬(¬A→B)∨C
+ (3) ¬(A→ ¬B)∨C
+ (4) (A∨C)∧ (¬B∨C)
+
+ (b) (A→(B∨C))∨(C→¬A), CNF: B ∨ ¬B (tautology)
+
+ (c) (¬A∧¬B∧C)∨(¬A∧¬C)∨(B∧C)∨A, CNF: B ∨ ¬B (tautology)
+
```
3. Let V be the vocabulary of first-order logic consisting of a binary relation P and a unary relation F. Interpret P(x,y) as “x is a parent of y” and F(x) as “x is female.” Where possible define the following formulas in this vocabulary; where not possible, explain why:
```
(a) B(x,y) that says that x is a brother of y
+
+ B(x,y) <--> ∃z((Pzx ∧ Pzy) ∧ x ≠ y ∧ ~Fx)
+
(b) A(x,y) that says that x is an aunt of y
- (c) C(x,y) that says that x and y are cousins
+
+ A(x,y) <--> ∃z((Fx ∧ Pzy ∧ ∃w(Pwx ∧ Pwz ∧ x ≠ z))
+
+ (c) C(x,y) that says that x and y are cousins
+
+ C(x,y) <--> ∃z∃w∃r(Pzx ∧ Pwy ∧ Prz ∧ Prw ∧ z ≠ w ∧ x ≠ y)
+
+
(d) O(x) that says that x is an only child
+
+ O(x) <--> ∃y∀z(Pyx ∧ (Pyz --> z = x))
+
(e) T(x) that says that x has exactly two brothers
+
+ ∃y∃z∃w(¬(w=z)∧¬(x=w)∧¬(x=z)∧P(y,x)∧P(y,z)∧P(y,w)∧¬F(z)∧¬F(w))∧∀r(P(y,r)∧¬F(r)→ r=x ∨ r=z ∨ r=w)
+
```
4. Let V be a vocabulary of the attribute (concept) language with complements (ALC) consisting of a role name "parent_of" and a concept name "Male". Interpret parent_of as "x is a parent of y" and M as "x is male". Where possible define the following formulas in this vocabulary; where not possible, explain why:
```
(a) B that says that x is a brother of y
+
+ p2 (parent of at least 2 children) ≡ ≥2 ∃parent_of.Person
+ B ≡ M ⊓ ∃p2¯.Person
+
(b) A that says that x is an aunt of y
+
+ A ≡ ¬M ⊓ (∃p2¯.(≥ 2 parent_of. (∃parent_of. Person)) ⊔ ¬∃parent_of. Person)
+
(c) C that says that x and y are cousins
+
+ C ≡ gp2¯. Person
+
+ Cousins cannot be defined in description logic, therefore, this statement only describes on of the two cousins (i.e. "being a cousin of someone.") Thank you Karl for the clarification.
+
(d) O that says that x is an only child
+
+ parent_only (be a parent of exactly one child) ≡ (≥1 parent_of. Person) ⊓ (≤1 parent_of. Person)
+ O ≡ ∃parent_only¯.Person
+
(e) T that says that x has exactly two brothers
+
+ p3m (be a parent of exactly three male children) ≡ (≥3 parent_of. Male) ⊓ (≤3 parent_of. Male)
+ p1 (be a parent of at least one child) ≡ ≥1 parent_of. Person -- the inverse of p1 is just "be a child of"!
+ T ≡ ∃p3m¯.Person ⊔ (¬M ⊓ ∃p1¯. (≥2 parent_of. Male ⊓ ≤2 parent_of. Male))
+
```
@@ -67,9 +160,96 @@ Note: The standard interpretation of the logical symbols - "∨", "∧", "→",
(b) ∀x∀y(¬(Px ∨ Qx) → (¬Px ∧ ¬Qx))
(c) ∀x∀y((¬Px ∨ ¬Qx) → ¬(Px ∧ Qx))
(d) ∀x∀y((¬Px ∧ ¬Qx) → ¬(Px ∨ Qx))
+
+ (a) ∀x∀y(¬(Px ∧ Qx) → (¬Px ∨ ¬Qx))
+
+ (1) ¬∀x∀y(¬(Px ∧ Qx) → (¬Px ∨ ¬Qx))
+ (2) ¬∀y(¬(Pa ∧ Qa) → (¬Pa ∨ ¬Qa))
+ (3) ¬(¬(Pa ∧ Qa) → (¬Pa ∨ ¬Qa))
+ (4)¬(Pa ∧ Qa)
+ (5)¬(¬Pa ∨ ¬Qa)
+ (6).¬¬Pa
+ (7)¬¬Qa
+ (8)Qa
+ (9) Pa
+ (10) ¬Pa (11) ¬Qa
+ x x
+
+ (b) ∀x∀y(¬(Px ∨ Qx) → (¬Px ∧ ¬Qx))
+
+ (1) ¬∀x∀y(¬(Px ∧ Qx) → (¬Px ∨ ¬Qx))
+ (2) ¬∀y(¬(Pa ∧ Qa) → (¬Pa ∨ ¬Qa))
+ (3) ¬(¬(Pa ∧ Qa) → (¬Pa ∨ ¬Qa))
+ (4) ¬(Pa ∧ Qa)
+ (5) ¬(¬Pa ∨ ¬Qa)
+ (6) ¬¬Pa
+ (7) ¬¬Qa
+ (8) Qa
+ (9) Pa
+ (10) ¬Pa (11) ¬Qa
+ x x
+
+ (c) ∀x∀y((¬Px ∨ ¬Qx) → ¬(Px ∧ Qx))
+
+ (1) ¬∀x∀y((¬Px ∨ ¬Qx) → ¬(Px ∧ Qx))
+ (2) ¬∀y((¬Pa ∨ ¬Qa) → ¬(Pa ∧ Qa))
+ (3) ¬((¬Pa ∨ ¬Qa) → ¬(Pa ∧ Qa))
+ (4) ¬Pa ∨ ¬Qa
+ (5) ¬¬(Pa ∧ Qa)
+ (6) Pa ∧ Qa
+ (7) Pa
+ (8) Qa
+ (9) ¬Pa (10) ¬Qa
+ x x
+
+ (d) ∀x∀y((¬Px ∧ ¬Qx) → ¬(Px ∨ Qx))
+
+ (1) ¬∀x∀y((¬Px ∧ ¬Qx) → ¬(Px ∨ Qx))
+ (2) ¬∀y((¬Pa ∧ ¬Qa) → ¬(Pa ∨ Qa))
+ (3) ¬((¬Pa ∧ ¬Qa) → ¬(Pa ∨ Qa))
+ (4) ¬Pa ∧ ¬Qa
+ (5) ¬¬(Pa ∨ Qa)
+ (6) Pa ∨ Qa
+ (7) ¬Pa
+ (8) ¬Qa
+ (9) Pa (10) Qa
+ x x
+
```
9. Using a natural deduction proof generator - such as the one found here `https://proofs.openlogicproject.org/` - provide natural deduction proofs for each of De Morgan's laws.
+¬∀x∀y(¬(Px ∧ Qx) → (¬Px ∨ ¬Qx))
+(1) ¬(Px ∧ Qx) assumption
+(2) ¬(¬Px ∨ ¬Qx) assumption
+(3) (Px ∧ Qx) 2, negated disjunction
+(4) ¬(Px ∧ Qx) 1,3 contradiction
+
+∀x∀y(¬(Px ∨ Qx) → (¬Px ∧ ¬Qx))
+(1) ¬(Px ∨ Qx) assumption
+(2) (¬Px ∧ ¬Qx) assumption
+(3) (Px ∨ Qx) 2, negated conjunction
+(4) ¬(Px ∨ Qx) 1,3 contradiction
+
+∀x∀y((¬Px ∨ ¬Qx) → ¬(Px ∧ Qx))
+(1) (¬Px ∨ ¬Qx) assumption
+(2) ¬¬(Px ∧ Qx) assumption
+(3) (Px ∧ Qx) 2, double negation
+(4) Px 3, conjunction
+(5) Qx 3, conjunction
+(6) (¬Px ∨ ¬Qx) 4,5,6 contradiction
+
+∀x∀y((¬Px ∧ ¬Qx) → ¬(Px ∨ Qx))
+(1) (¬Px ∧ ¬Qx) assumption
+(2) ¬¬(Px ∨ Qx) assumption
+(3) (Px ∨ Qx) 2, double negation
+(4) ¬Px 1, conjunction
+(5) ¬Qx 1, conjunction
+(6) Px 3, disjunction
+(7) ¬Qx 3, disjunction
+(8) ¬Px 3, disjunction
+(9) Qx 3, disjunction
+(10) (¬Px ∧ ¬Qx) 6,7,8,9 contradiction
+
10. Compare and contrast the proofs provided for (a) in your answers to questions 8 and 9. Explain the different assumptions, strategies, etc. exhibited in tree proofs vs natural deduction proofs.
From 5162ed5e7c8e014adecf403920cf555a9602549b Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 5 Mar 2023 14:46:44 -0500
Subject: [PATCH 04/36] Update README.md
---
Project-1/README.md | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Project-1/README.md b/Project-1/README.md
index ce6c5d17..5e2dee57 100644
--- a/Project-1/README.md
+++ b/Project-1/README.md
@@ -141,11 +141,21 @@ T T T T T
5. Select two formulas defined in ALC from question 4 to form the basis of a T-Box. Supplement this T-box with whatever other axioms you like, as well as an A-box, so that you ultimately construct a knowledge base K = (T,A). Provide a _model_ of K. This may be graphical or symbolic or both.
+B= Male^∃Parent_of.(∃parent_of>=2). O= parent_of (∃parent_of=1) O^~B B^~O Jason: B (Mary Ann, Jason) (Mary Ann, Mona) Killian: O Amanda: Parent_of Killian Jason: (w,B) Mary Ann: Z Mona: Y Killian: (O,x) Amanda: v parent: (z,v) brother: w Only child: x child: w,y,x parent_of: zw,zy,vx Male: x,w
+
6. Explain the difference - using natural language - between the first-order prefixes:
```
(a) ∃x∀y and ∀x∃y
+ ∃x∀y = there exists some x such that for all y
+ ∀x∃y = for all x there exists some y
+
(b) ∃x∀y∃z and ∀x∃y∀z
+ ∃x∀y∃z = there exists some x such that for all y there exists some z
+ ∀x∃y∀z = for all x there exists some y such that for all z
+
(c) ∀x∃y∀z∃w and ∃x∀y∃z∀w
+ ∀x∃y∀z∃w = for all x there exists some y such that for all z there exists some w
+ ∃x∀y∃z∀w = there exists some x for all y such that for some z there exists all w
```
7. Show that the following sentences are not equivalent by exhibiting a graph that models one but not both of these sentences:
From 8e2b08c3b1253897ca5d495ce76be15c91d46693 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 5 Mar 2023 14:58:45 -0500
Subject: [PATCH 05/36] Update README.md
---
Project-1/README.md | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/Project-1/README.md b/Project-1/README.md
index 5e2dee57..4ca51d01 100644
--- a/Project-1/README.md
+++ b/Project-1/README.md
@@ -139,9 +139,16 @@ T T T T T
```
-5. Select two formulas defined in ALC from question 4 to form the basis of a T-Box. Supplement this T-box with whatever other axioms you like, as well as an A-box, so that you ultimately construct a knowledge base K = (T,A). Provide a _model_ of K. This may be graphical or symbolic or both.
+5. Select two formulas defined in ALC from question 4 to form the basis of a T-Box. Supplement this T-box with whatever other axioms you like, as well as an A-box, so that you ultimately construct a knowledge base K = (T,A). Provide a _model_ of K. This may be graphical or symbolic or both.
+
+B ≡ M ⊓ ∃p2¯.Person
+O= parent_of (∃parent_of=1)
-B= Male^∃Parent_of.(∃parent_of>=2). O= parent_of (∃parent_of=1) O^~B B^~O Jason: B (Mary Ann, Jason) (Mary Ann, Mona) Killian: O Amanda: Parent_of Killian Jason: (w,B) Mary Ann: Z Mona: Y Killian: (O,x) Amanda: v parent: (z,v) brother: w Only child: x child: w,y,x parent_of: zw,zy,vx Male: x,w
+Tom: B
+Joe: B
+Jill: O
+(Jill, Tom): parent_of
+(Jill, Joe): parent_of
6. Explain the difference - using natural language - between the first-order prefixes:
```
From 7f4809f4496e8202c65e98b8424b4b6c234c4d58 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 5 Mar 2023 15:04:07 -0500
Subject: [PATCH 06/36] Update README.md
---
Project-1/README.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Project-1/README.md b/Project-1/README.md
index 4ca51d01..09d3fb06 100644
--- a/Project-1/README.md
+++ b/Project-1/README.md
@@ -168,7 +168,13 @@ Jill: O
7. Show that the following sentences are not equivalent by exhibiting a graph that models one but not both of these sentences:
```
∀x∃y∀z(R(x,y) ∧ R(x,z) ∧ R(y,z))
+for all x there exists some y such that for all z
+x > y, x > z < y
+
∃x∀y∃z(R(x,y) ∧ R(x,z) ∧ R(y,z))
+there exists some x for all y such that for all z
+x > y, x > z > y
+
```
8. Using an online tableau proof generator - such as the one found here `https://www.umsu.de/trees/` - provide tree proofs of the following entailments, which are known as the De Morgan's laws:
From b0ad19d74cc4f23b5cf7af90551b78b686001518 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 5 Mar 2023 15:08:31 -0500
Subject: [PATCH 07/36] Update README.md
---
Project-1/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Project-1/README.md b/Project-1/README.md
index 09d3fb06..1de376f8 100644
--- a/Project-1/README.md
+++ b/Project-1/README.md
@@ -275,4 +275,6 @@ x > y, x > z > y
(10) (¬Px ∧ ¬Qx) 6,7,8,9 contradiction
10. Compare and contrast the proofs provided for (a) in your answers to questions 8 and 9. Explain the different assumptions, strategies, etc. exhibited in tree proofs vs natural deduction proofs.
+
+Both kinds of proofs
From cf01736b47cd60f8fb7a725fbf91c765ab6e1aa3 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 5 Mar 2023 15:14:56 -0500
Subject: [PATCH 08/36] Update README.md
---
Project-1/README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Project-1/README.md b/Project-1/README.md
index 1de376f8..8238c8ca 100644
--- a/Project-1/README.md
+++ b/Project-1/README.md
@@ -276,5 +276,6 @@ x > y, x > z > y
10. Compare and contrast the proofs provided for (a) in your answers to questions 8 and 9. Explain the different assumptions, strategies, etc. exhibited in tree proofs vs natural deduction proofs.
-Both kinds of proofs
+Both proofs deduce some kind of contradiction, but in different ways. 8a is a longer proof than 9a. Feedback from Josh (thank you!) also states that 9a does not require us to go down to the atomic parts of the formula, and stops at more complex contradictions.
+
From 8ede7f6a6b8e59bd5ab3ff78bea75de36c06b381 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 5 Mar 2023 15:23:40 -0500
Subject: [PATCH 09/36] Update README.md
---
Project-2/README.md | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index a943bd20..83504ff6 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -12,10 +12,24 @@ Tip #4: Work together as a team.
1. Let V be a vocabulary of ALCI consisting of a role name "P". Interpret part_of as "x is a part of y". Using this role name, define the following formulas in this language:
```
(a) PP that says that x is a proper part of y
+ PP ≡ P ⊓ ¬P¯
+
(b) iPP that says that y is a proper part of x
+ iPP ≡ PP¯ =>
+ iPP ≡ (P ⊓ ¬P¯)¯
+
+ iPP ≡ ¬P ⊓ P¯
+
(c) iP that says that x has y as part
+ iP ≡ P¯
+
(d) O that says that x overlaps y
+ O ≡ ∃P¯.(∃P)
+ O ≡ ∃iP.(∃P.⊤)
+
(e) D that says that x and y are disjoint
+ D ≡ ¬O
+
```
2. Use your axioms from question 1 as the basis of an ALCI T-Box. Supplement this T-box with whatever other axioms you like, as well as an A-box, so that you ultimately construct a knowledge base K = (T,A). Provide a _model_ of K. This may be graphical or symbolic or both.
@@ -23,7 +37,11 @@ Tip #4: Work together as a team.
3. Translate the following first-order logic axioms into ALCI:
```
(a) ∀x∃y∀z(R(x,y) ∧ R(x,z) ∧ R(y,z))
+∃R.(∀R.(∀R¯))
+
(b) ∃x∀y∃z(R(x,y) ∧ R(x,z) ∧ R(y,z))
+∃R¯.(∃R.⊤) ⊓ ∃R.⊤
+
(c) ∀y(R(x, y) → ∃x(R(y, x) ∧ ∀y(R(x, y) → A(y))))
(d) (∀y)(R(x, y) → A(y)) ∧ (∃y)(R(x, y) ∧ B(y))
```
From caf6483c03413028f9f758ce82a52340eaa97bd2 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Tue, 7 Mar 2023 11:54:04 -0500
Subject: [PATCH 10/36] Update README.md
---
Project-2/README.md | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index 83504ff6..e3909821 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -43,7 +43,14 @@ Tip #4: Work together as a team.
∃R¯.(∃R.⊤) ⊓ ∃R.⊤
(c) ∀y(R(x, y) → ∃x(R(y, x) ∧ ∀y(R(x, y) → A(y))))
+∀R.∃R.∀R.A
+Is this well formed? Does it matter?
+
(d) (∀y)(R(x, y) → A(y)) ∧ (∃y)(R(x, y) ∧ B(y))
+(∀R.A) ⊓ (∃R.B)
+Same questions as above: Is this well formed? Does it matter?
+
+
```
4. Provide an interpretation I1 for ALC and an interpretation I2 for ALCN - each distinct from any interpretation covered in class so far - and construct a bisimulation that demonstrates ALCN is more expressive than ALC. Use the [mermaid syntax](https://github.com/mermaid-js/mermaid) of markdown to provide a graphical representation of your work. Feel free to use the [mermaid live editor](https://mermaid.live/) when diagramming.
@@ -53,13 +60,36 @@ Tip #4: Work together as a team.
6. Explain the difference - using natural language - between the description logic expressions:
```
(a) ∃r.C and ∀r.C
+ ∃r.C = all x has a r-filler y instantiating C
+ ∀r.C = all r-fillers ys of all x instantiate C
+
(b) ∃r-.C and ∀r-.C
+ ∃r-.C = all xs are r-inverse-related to y and falls under concept C
+ ∀r-.C = all xs are r-inverse-related to all ys and this thing falls under concept C
+
(c) <=nr and <=nr.C
+ <=nr = role r connects all the xs to no more than n elements
+ <=nr.C = role r connects all the xs to no more than n elements, and they fall under concept C
+
(d) ∃r-.C and ∃r-.{a}
+ ∃r-.C = for all xs, there is at least a thing y, which is r-related to it, and which falls under concept C
+ ∃r-.{a} = for all xs, there is element a, which is r-related to it
```
7. There is a delightfully helpful subreddit called "ELI5" which stands for something like "explain it like I'm 5" where users post conceptually challenging questions and other users attempt to provide explanations in simple, jargon-free, terms that presumably a 5 year-old could understand. Using this as a model, explain the _finite model property_. Be sure to provide a simple example and explain when the property might be important, and when it is not so important.
+Definition 3.10. The interpretation I is a model of a concept C with respect to a TBox T if I is a model of T such that CI = ∅. We call this model finite if ΔI is finite. (Baader, 57)
+
+In this scenario, I am the five-year-old that needs someone to explain this concept to. The answered proposed on the collaborative google doc are extremely helpful. I don't see a need to try to do it better in this case. Jeiming's answer:
+
+Bob loves playing games, and he hopes there is a game that can be played with different results forever.
+One day, his father gives him a game, called Color-card: there are a number of color cards in a box. Each card has a different color, but it is fully colored on one side, while on the other side it is a blank sheet with the colored dot. Once a time, the player chooses any number of cards from the box, and then uses any number of cards he chooses to make combinations. For example, the first time, Bob chooses five color cards from the box, red, yellow, blue, green, brown, then he uses three cards, and put them in such a order: 1, red (front side), 2, blue (back side), 3, green (back side). That is one combination. The player continues playing until there is a combination that repeats. If the player cannot continue playing, he fails. However, if the player fails at one time, he can choose more or/and different cards, then play the next time. The player wins if the cards he chooses can allow him to play forever.
+Unfortunately, Bob cannot win the game, because no matter how many cards he chooses (the number of cards is not limitless), and how hard he tries, he cannot continue playing without a repeated combination occurring.
+We say that the Color-card game has finite model property.
+Finite model property is important because it can be used to design a decidable algorithm for the satisfiability of its concepts.
+
+
+
8. Following up on the preceding , explain the _tree model property_. Be sure to provide a simple example and explain when the property might be important, and when it is not so important.
9. Open the Protege editor and create object properties for each of the role names that you constructed in question 1. You should have at least 6 object properties. Assert in the editor that P is a sub-property of O, that P is transitive, and that O is symmetric. Next, add individuals - a, b, c - to the file and assert that c is part of a and that c overlaps b. Running the reasoner should reveal - highlighted in yellow if you select the individual c - that c overlaps a. Using the discussion in the selections from chapter 4 of the Baader, et. al. text as a guide, explain how the tableau algorithm is generating this inference. Also, provide a screenshot of the results of your reasoner run with c highlighted.
From b2dbc6034472ece091764a72a6ecd3564c9481f4 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Wed, 8 Mar 2023 10:47:15 -0500
Subject: [PATCH 11/36] Update README.md
---
Project-2/README.md | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index e3909821..4d186977 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -92,6 +92,24 @@ Finite model property is important because it can be used to design a decidable
8. Following up on the preceding , explain the _tree model property_. Be sure to provide a simple example and explain when the property might be important, and when it is not so important.
+
+"Finally, the tree model property proved in the last section of this chapter implies that ALC cannot enforce cyclic role relationships." (Baader, 55)
+
+"For the purpose of this section, a tree is a directed graph G = (V,E) such that
+• V contains a unique root, i.e., a node vr ∈ V such that there is no v ∈ V with (v, vr) ∈ E;
+• every node v ∈ V \{vr} has a unique predecessor, i.e., there is a unique node v ∈ V such that (v, v) ∈ E.
+
+Basically, a tree model is a model whose graph representation is a tree." (Baader, 63)
+
+"ALC has the tree model property, i.e., if T is an ALC TBox and C an ALC concept such that C is satisfiable with respect to T , then C has a tree model with respect to T." (Baader, 65)
+
+"Note that, in case the model we start with has a cycle, the tree constructed in the proof is an infinite tree, i.e., it has infinitely many nodes.
+Although ALC has the finite model property and the tree model property, it does not have the finite tree model property. In fact, it is easy to see that the concept A does not have a finite tree model with respect to the TBox {A ∃r.A}" (Baader, 66)
+
+"It should also be noted that, in our definition of a tree model, we do not consider edge labels." (Baader, 66)
+
+"Finally, let us point out that the tree model property can also be used to show decidability of satisfiability of concepts with respect to TBoxes in ALC, using the so-called automata-based approach. The automata used in this approach are automata working on infinite trees." (Baader, 66)
+
9. Open the Protege editor and create object properties for each of the role names that you constructed in question 1. You should have at least 6 object properties. Assert in the editor that P is a sub-property of O, that P is transitive, and that O is symmetric. Next, add individuals - a, b, c - to the file and assert that c is part of a and that c overlaps b. Running the reasoner should reveal - highlighted in yellow if you select the individual c - that c overlaps a. Using the discussion in the selections from chapter 4 of the Baader, et. al. text as a guide, explain how the tableau algorithm is generating this inference. Also, provide a screenshot of the results of your reasoner run with c highlighted.
10. Following up on your work in question 9, adjust/add/remove/etc. object properties and individuals in your Protege file so that when you run a reasoner in Protege, you return the following consequences:
From b2f151789e38174b14eb0fad8a5ec6f5f5836fe0 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Wed, 8 Mar 2023 13:20:05 -0500
Subject: [PATCH 12/36] Update README.md
---
Project-2/README.md | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/Project-2/README.md b/Project-2/README.md
index 4d186977..ec027771 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -92,24 +92,38 @@ Finite model property is important because it can be used to design a decidable
8. Following up on the preceding , explain the _tree model property_. Be sure to provide a simple example and explain when the property might be important, and when it is not so important.
+Basically, a tree model is a model whose graph representation is a tree." (Baader, 63)
+A tree model is a graphical representation that takes the form of a tree, i.e. contains nodes which branch out and connect to another node. The nodes, formally called
-"Finally, the tree model property proved in the last section of this chapter implies that ALC cannot enforce cyclic role relationships." (Baader, 55)
+"ALC has the tree model property, i.e., if T is an ALC TBox and C an ALC concept such that C is satisfiable with respect to T , then C has a tree model with respect to T." (Baader, 65)
-"For the purpose of this section, a tree is a directed graph G = (V,E) such that
-• V contains a unique root, i.e., a node vr ∈ V such that there is no v ∈ V with (v, vr) ∈ E;
-• every node v ∈ V \{vr} has a unique predecessor, i.e., there is a unique node v ∈ V such that (v, v) ∈ E.
-Basically, a tree model is a model whose graph representation is a tree." (Baader, 63)
-"ALC has the tree model property, i.e., if T is an ALC TBox and C an ALC concept such that C is satisfiable with respect to T , then C has a tree model with respect to T." (Baader, 65)
+Concept: represent sets of elements and can be viewed as unary predicates (Baader, 11)
+- Concepts are built from concept names (i.e. Person, Course) and role names (i.e. teaches, studies) (Baader, 11)
+- The set a concept represents is called its extension (Baader, 11)
+
+A concept is a representation of things, i.e. a set of elemenets, and can be viewed as single properties of the things. Concepts contain two elements: 1) concept names (names which label the "thing," i.e. "teacher" or "student"), and 2) concept roles (binary relations which conjoin the things, or the concept names). An extension of a concept is the set of names and roles that the concept represents.
+
+The TBox, or terminological box: "The TBox represents knowledge about the structure of the domain (similar to a database schema)" (Baader, 1)
+Examples: What is a teacher? What is a student? What is a course?
+The TBox, or terminological box, details the information of knowedge about what is contained by the domain, or the scope and structure, of by a concept and its extension. For example, who is a teacher, who is a student, and similar concept names fill out the TBox. This is used to provide information about the structure, which is composed though defining each concept name within a particular concept.
+
+Unpacked/Thorough Definition of tree model property:
+ALC has the tree model property, ie.e., if T is an ALC TBox (terminology box which describes/represents the strucutre of the domain) and C is an ALC concept (represents a set of elements that can be viewed as unary predicates, composed of concept names and role names) such that C is satisfiable with respect to T, then C has a tree model with respect to T.
"Note that, in case the model we start with has a cycle, the tree constructed in the proof is an infinite tree, i.e., it has infinitely many nodes.
Although ALC has the finite model property and the tree model property, it does not have the finite tree model property. In fact, it is easy to see that the concept A does not have a finite tree model with respect to the TBox {A ∃r.A}" (Baader, 66)
+Additions to the tree model property:
+"Finally, the tree model property proved in the last section of this chapter implies that ALC cannot enforce cyclic role relationships." (Baader, 55)
"It should also be noted that, in our definition of a tree model, we do not consider edge labels." (Baader, 66)
+Infinite trees:
"Finally, let us point out that the tree model property can also be used to show decidability of satisfiability of concepts with respect to TBoxes in ALC, using the so-called automata-based approach. The automata used in this approach are automata working on infinite trees." (Baader, 66)
+
+
9. Open the Protege editor and create object properties for each of the role names that you constructed in question 1. You should have at least 6 object properties. Assert in the editor that P is a sub-property of O, that P is transitive, and that O is symmetric. Next, add individuals - a, b, c - to the file and assert that c is part of a and that c overlaps b. Running the reasoner should reveal - highlighted in yellow if you select the individual c - that c overlaps a. Using the discussion in the selections from chapter 4 of the Baader, et. al. text as a guide, explain how the tableau algorithm is generating this inference. Also, provide a screenshot of the results of your reasoner run with c highlighted.
10. Following up on your work in question 9, adjust/add/remove/etc. object properties and individuals in your Protege file so that when you run a reasoner in Protege, you return the following consequences:
From b3f0710c17348210be6ff1e9ef32e94dfd1a4f98 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Wed, 8 Mar 2023 14:06:52 -0500
Subject: [PATCH 13/36] Update README.md
---
Project-2/README.md | 36 ++++++++++++++++++++----------------
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/Project-2/README.md b/Project-2/README.md
index ec027771..7cc1831b 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -92,36 +92,40 @@ Finite model property is important because it can be used to design a decidable
8. Following up on the preceding , explain the _tree model property_. Be sure to provide a simple example and explain when the property might be important, and when it is not so important.
-Basically, a tree model is a model whose graph representation is a tree." (Baader, 63)
-A tree model is a graphical representation that takes the form of a tree, i.e. contains nodes which branch out and connect to another node. The nodes, formally called
-
+Baader definition of tree model property:
"ALC has the tree model property, i.e., if T is an ALC TBox and C an ALC concept such that C is satisfiable with respect to T , then C has a tree model with respect to T." (Baader, 65)
-
-
-Concept: represent sets of elements and can be viewed as unary predicates (Baader, 11)
+What is a concept? A representation of sets of elements and can be viewed as unary predicates (Baader, 11)
- Concepts are built from concept names (i.e. Person, Course) and role names (i.e. teaches, studies) (Baader, 11)
- The set a concept represents is called its extension (Baader, 11)
-A concept is a representation of things, i.e. a set of elemenets, and can be viewed as single properties of the things. Concepts contain two elements: 1) concept names (names which label the "thing," i.e. "teacher" or "student"), and 2) concept roles (binary relations which conjoin the things, or the concept names). An extension of a concept is the set of names and roles that the concept represents.
+In other words ... A concept is a representation of things, i.e. a set of elemenets, and can be viewed as single properties of the things. Concepts contain two elements: 1) concept names (names which label the "thing," i.e. "teacher" or "student"), and 2) concept roles (binary relations which conjoin the things, or the concept names). An extension of a concept is the set of names and roles that the concept represents.
-The TBox, or terminological box: "The TBox represents knowledge about the structure of the domain (similar to a database schema)" (Baader, 1)
+What is a TBox? "The TBox represents knowledge about the structure of the domain (similar to a database schema)" (Baader, 1)
Examples: What is a teacher? What is a student? What is a course?
-The TBox, or terminological box, details the information of knowedge about what is contained by the domain, or the scope and structure, of by a concept and its extension. For example, who is a teacher, who is a student, and similar concept names fill out the TBox. This is used to provide information about the structure, which is composed though defining each concept name within a particular concept.
-Unpacked/Thorough Definition of tree model property:
+In other words ... The TBox, or terminological box, details the information of knowedge about what is contained by the domain, or the scope and structure, of by a concept and its extension. For example, who is a teacher, who is a student, and similar concept names fill out the TBox. This is used to provide information about the structure, which is composed though defining each concept name within a particular concept.
+
+Returning now to unpack Baader's original defintion of tree model property:
ALC has the tree model property, ie.e., if T is an ALC TBox (terminology box which describes/represents the strucutre of the domain) and C is an ALC concept (represents a set of elements that can be viewed as unary predicates, composed of concept names and role names) such that C is satisfiable with respect to T, then C has a tree model with respect to T.
-"Note that, in case the model we start with has a cycle, the tree constructed in the proof is an infinite tree, i.e., it has infinitely many nodes.
-Although ALC has the finite model property and the tree model property, it does not have the finite tree model property. In fact, it is easy to see that the concept A does not have a finite tree model with respect to the TBox {A ∃r.A}" (Baader, 66)
+To explain as if you were five ...
+
+You have a bag full of writing utensils. In your bag, there are multiple kinds of writing utensils in this bag: markers, highlighters, crayons, mechanical pencils, and pens. Accordingly, there are this many of each writing utensil in the bag: 10 markers, 2 highlighers, 15 crayons, 1 mechanical pencils, and 2 pens. You would like to know exactly what writing utensils you have in Your Bag. To see the extend of your writing utensils, you take them all out of the bag and sort them into five distinct piles, grouping accordingly: markers, highlighters, crayons, mechanical pencils, and pens. Now you are able to see the entirety of your writing utensils, or your complete set of writing utensils.
+
+Your Bag of Writing Utensils represents the concept, C. T, the ALC TBox, is represented by the five different kinds of writing utensils: markers, highlighters, crayons, mechanical pencils, and pens. Delaney describes concept satisfiability in the following way: A concept is statisfiable so long as the concept is true under some assignment of values or on some intrepretation. In assigning names to each writing utensil, we have filled out the TBox associated with the concept of Your Bag of Writing Utensils. The concept is true under this assignment/interpretation - Your Bag of Writing Utensils is complete/satified through the assignment and organization by type of writing utensil.
+
+In dividing up Your Bag of Writing Utensils, we have created something of a tree model. Representationally, this can look like your (empty) bag at the top connected by five distinct strings to five distinct piles of utensils. In this simple model, there are five branches of Writing Utensils.
+
+The tree model property is probably important in situations where you may find something that does not belong in Your Bag of Utensils, thus making the concept unsatisfiable (maybe?). For example, you may find a coin in Your Bag. This is not a writing utensil and should not belong in Your Bag, or under the concept of Your Bag of Writing Utensils. Coin is not in the domain of writing utensils.
+
Additions to the tree model property:
"Finally, the tree model property proved in the last section of this chapter implies that ALC cannot enforce cyclic role relationships." (Baader, 55)
-"It should also be noted that, in our definition of a tree model, we do not consider edge labels." (Baader, 66)
-
-Infinite trees:
-"Finally, let us point out that the tree model property can also be used to show decidability of satisfiability of concepts with respect to TBoxes in ALC, using the so-called automata-based approach. The automata used in this approach are automata working on infinite trees." (Baader, 66)
+I'm not sure exactly what a cyclical role relationship looks like, but there seems to be no cyclical role connecting the kinds of writing utensils with Your Bag. Each kind is directly related (so, not cyclically related?) to the concept.
+"It should also be noted that, in our definition of a tree model, we do not consider edge labels." (Baader, 66)
+I'm also not sure what an edge label is, but a google search seems to connect the idea of edge labels with the idea of cyclical role relationships, so I am assume they are connected. If so, they are not relevant to the specifications of the example provided above (unless they are, in some way, and I'm not aware).
9. Open the Protege editor and create object properties for each of the role names that you constructed in question 1. You should have at least 6 object properties. Assert in the editor that P is a sub-property of O, that P is transitive, and that O is symmetric. Next, add individuals - a, b, c - to the file and assert that c is part of a and that c overlaps b. Running the reasoner should reveal - highlighted in yellow if you select the individual c - that c overlaps a. Using the discussion in the selections from chapter 4 of the Baader, et. al. text as a guide, explain how the tableau algorithm is generating this inference. Also, provide a screenshot of the results of your reasoner run with c highlighted.
From e77cb23c3cd43d4a8191aa1d3acac731c3f1f00b Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Wed, 8 Mar 2023 14:07:45 -0500
Subject: [PATCH 14/36] Update README.md
---
Project-2/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index 7cc1831b..0ede7cbb 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -92,6 +92,8 @@ Finite model property is important because it can be used to design a decidable
8. Following up on the preceding , explain the _tree model property_. Be sure to provide a simple example and explain when the property might be important, and when it is not so important.
+In seeing an example for the above question (Jeiming's response), I'll give this one a go:
+
Baader definition of tree model property:
"ALC has the tree model property, i.e., if T is an ALC TBox and C an ALC concept such that C is satisfiable with respect to T , then C has a tree model with respect to T." (Baader, 65)
From b2e70fd89459b286daa04965086a4d151b25628e Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Fri, 10 Mar 2023 15:13:25 -0500
Subject: [PATCH 15/36] Update README.md
---
Project-3/README.md | 47 +++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 45 insertions(+), 2 deletions(-)
diff --git a/Project-3/README.md b/Project-3/README.md
index c7a5e2c3..63ca9604 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -30,9 +30,17 @@ For any question involving the use of Protege, please be sure to import:
3. Model the following natural language expressions using terms from BFO and RO; you are welcome to introduce new terms where needed:
```
(a) Sally has an arm Tuesday but does not have an arm Wednesday.
+ Sally participates in having at least one arm on Tuesday precedes Sally participates in having no arms on Wednesday.
+
(b) Every liver has some cell as part at all times it exists.
+ Liver has_part_at_all_times some Cell
+
(c) John was a child, then an adult, then a senior.
+ John participates in childhood precedes John participates in adulthood which precedes John participates in seniorhood.
+
(d) Goofus and Gallant are married at each point in a three year span.
+ Goofus spouse_of Gallant at t1
+
```
4. Using the language of First-Order Logic, represent the following natural language expressions; you are welcome to introduce new terms where needed:
@@ -40,17 +48,52 @@ For any question involving the use of Protege, please be sure to import:
⊔ ⊓ ⊧ ⊭ ⊦ ⊬ ⊏ ⊐ ⊑ ⊒ C ¬ ≡ ≠ ≥ ≤ ∃ ∀ ∧ →
```
(a) Sally has an arm Tuesday but does not have an arm Wednesday.
- ∀x(Tx → ∃y(Hsy ∧ Ay)) ∧ (Wx → ¬∃y(Hsy ∧ Ay))
+ ∃x (Tx ∧ ∃y (Hsy∧Ay)) ∧ ∃x (Wx ∧ ~∃y(Hsy∧Ay))
+
+ Where:
+ T: Tuesday
+ H: has
+ A: arm
+ W: Wednesday
+ s: Sally
+
(b) Every liver has some cell as part at all times it exists.
- ∀x∃y(Lx → Cy ∧ Pyx)
+ ∀x∃y(Lx→Cy∧Pyx)
+
+ Where:
+ L: liver
+ C: cell
+ P: part of
(c) John was a child, then an adult, then a senior.
+ ∃t1∃t2∃t3 (C (j, t1) ∧ A (J, t2) ∧ S(J, t3) ∧ E (t1, t2) ∧ E (t2, t3))
+
+ Where:
+ j = John
+ E (x, y) = being earlier than
+ C (x, t) = being a child at t
+ A (x, t) = being an adult at t
+ S (x, t) = being a senior at t
+
(d) Goofus and Gallant have been married for three years; for each day of that span, it is true to assert they are married.
+ ∀t(D(t) ∧ Y(t)→(M(g1,t) ∧ M(g2,t)))
+
+ Where:
+ M(x, t) = being married at t
+ Y(t) = belongs to 3 year span 1
+ g1 = Goofus
+ g2 = Gallant
+ D(t) = t is a day
+
+ Something I am curious about in this question (but am not sure how to represent) is how to incorporate that Goofus and Gallant have been married for three years to each other. It seems that "married" can be an instance or a relation to me. Does "married" need to be represented by a relation to say that Goofus and Gallant are married to each other?
+
```
5. Using BFO and RO, model the following scenario: the content of an rdf file is represented in two serializations - one in Turtle, one in XML - which are sent from one computer to two distinct computers on the same network.
+There seems to be something missing in this graph such that the Turtle and XML are not connected to computer 1, computer 2, and computer 3. To understand this problem, I drew out the mermaid graph attached on the shared Google Doc (attached). Although it does not appear in the drawing, there should be two arrows drawn to computer 1 from both Turtle serialization and XML serialization labeled "output of." Additionally, there should be two arrows drawn to computers 2 and 3 from both serializations labeled "receives."
+
6. Using Protege, place these in the BFO hierarchy where you think they fit best:
```
From 6202c0600a581fc240eae5d78e61edaae713ddd9 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Fri, 10 Mar 2023 15:15:51 -0500
Subject: [PATCH 16/36] Update README.md
---
Project-3/README.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Project-3/README.md b/Project-3/README.md
index 63ca9604..857dfedc 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -90,7 +90,11 @@ For any question involving the use of Protege, please be sure to import:
```
-5. Using BFO and RO, model the following scenario: the content of an rdf file is represented in two serializations - one in Turtle, one in XML - which are sent from one computer to two distinct computers on the same network.
+5. Using BFO and RO, model the following scenario: the content of an rdf file is represented in two serializations - one in Turtle, one in XML - which are sent from one computer to two distinct computers on the same network.
+
+
+
+
There seems to be something missing in this graph such that the Turtle and XML are not connected to computer 1, computer 2, and computer 3. To understand this problem, I drew out the mermaid graph attached on the shared Google Doc (attached). Although it does not appear in the drawing, there should be two arrows drawn to computer 1 from both Turtle serialization and XML serialization labeled "output of." Additionally, there should be two arrows drawn to computers 2 and 3 from both serializations labeled "receives."
From bbc0c52fc9fd373cd1faf4390740501b13e457a7 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Tue, 21 Mar 2023 14:35:26 -0400
Subject: [PATCH 17/36] Update README.md
---
Project-2/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index 0ede7cbb..baa6040a 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -132,6 +132,8 @@ I'm also not sure what an edge label is, but a google search seems to connect th
9. Open the Protege editor and create object properties for each of the role names that you constructed in question 1. You should have at least 6 object properties. Assert in the editor that P is a sub-property of O, that P is transitive, and that O is symmetric. Next, add individuals - a, b, c - to the file and assert that c is part of a and that c overlaps b. Running the reasoner should reveal - highlighted in yellow if you select the individual c - that c overlaps a. Using the discussion in the selections from chapter 4 of the Baader, et. al. text as a guide, explain how the tableau algorithm is generating this inference. Also, provide a screenshot of the results of your reasoner run with c highlighted.
+
+
10. Following up on your work in question 9, adjust/add/remove/etc. object properties and individuals in your Protege file so that when you run a reasoner in Protege, you return the following consequences:
```
(a) a is a proper part of b and disjoint from e
From 20005f89ff55de2ca3ca750bfc2f8483bef3c481 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Tue, 21 Mar 2023 14:37:50 -0400
Subject: [PATCH 18/36] Update README.md
---
Project-2/README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index baa6040a..69f4f104 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -132,6 +132,7 @@ I'm also not sure what an edge label is, but a google search seems to connect th
9. Open the Protege editor and create object properties for each of the role names that you constructed in question 1. You should have at least 6 object properties. Assert in the editor that P is a sub-property of O, that P is transitive, and that O is symmetric. Next, add individuals - a, b, c - to the file and assert that c is part of a and that c overlaps b. Running the reasoner should reveal - highlighted in yellow if you select the individual c - that c overlaps a. Using the discussion in the selections from chapter 4 of the Baader, et. al. text as a guide, explain how the tableau algorithm is generating this inference. Also, provide a screenshot of the results of your reasoner run with c highlighted.
+
10. Following up on your work in question 9, adjust/add/remove/etc. object properties and individuals in your Protege file so that when you run a reasoner in Protege, you return the following consequences:
From 5f18b79337d24e9ece5d12935e31bf01b78cd67a Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Tue, 21 Mar 2023 14:54:46 -0400
Subject: [PATCH 19/36] Update README.md
---
Project-2/README.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index 69f4f104..53a224b6 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -134,6 +134,13 @@ I'm also not sure what an edge label is, but a google search seems to connect th

+From the google doc: The tableau method starts from a Knowledge Base, i.e. the assertions we made through the Protege editor about individuals and between classes. We then build a tree. Each node in the tree represents a possible interpretation, and the branches represent the different ways in which the interpretation can be extended. It then expands the assertions by using different rules. For example the disjunction rule to check all the possible cases (see Baader from page 71 to 73) and other rules for subsumption, etc. (see Baader pag. 84). What we are doing is basically constructing a set of possible interpretations where all the possible inferences from T-box are drawn, as well as all the possible concept memberships are tried.
+As a result, the reasoner will notice the logical relations between the concepts we asserted for individuals through Protege. It will see that c is a part of a, and since parthood is subsumed by overlap, it will apply the subsumption rule explained at page 84 in Baader et al. This will add a new fact, that c overlaps a.
+
+In other words, we input the knowledge we have (assertions?) and allow Protege to take care of the logic which gives us our answer.
+
+I returned to pages 71-73 in Baader to try to understand this better. This is not mentioned in the response above, but does this describe "checking ABox consistency?" Page 72 states "This algorithm is very simple because, when the TBox is empty, the expansion rules only need to explicate the semantics of the concepts occurring in concept assertions in A. Moreover, because these rules syntactically decompose concepts, the algorithm naturally terminates when all concepts have been fully decomposed." I can interpret this quote according to what is stated above (from the google doc) such that logical (expansion?) rules are applied to assertions (Knowledge Base?) and run through each possible interpretation until there are no further possible outcomes (decomposed?).
+
10. Following up on your work in question 9, adjust/add/remove/etc. object properties and individuals in your Protege file so that when you run a reasoner in Protege, you return the following consequences:
```
From 9af64cb7c62afc2bc3a6209d4dfcef6ed06c6309 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Tue, 21 Mar 2023 14:56:58 -0400
Subject: [PATCH 20/36] Update README.md
---
Project-2/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Project-2/README.md b/Project-2/README.md
index 53a224b6..1364cd0f 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -139,7 +139,7 @@ As a result, the reasoner will notice the logical relations between the concepts
In other words, we input the knowledge we have (assertions?) and allow Protege to take care of the logic which gives us our answer.
-I returned to pages 71-73 in Baader to try to understand this better. This is not mentioned in the response above, but does this describe "checking ABox consistency?" Page 72 states "This algorithm is very simple because, when the TBox is empty, the expansion rules only need to explicate the semantics of the concepts occurring in concept assertions in A. Moreover, because these rules syntactically decompose concepts, the algorithm naturally terminates when all concepts have been fully decomposed." I can interpret this quote according to what is stated above (from the google doc) such that logical (expansion?) rules are applied to assertions (Knowledge Base?) and run through each possible interpretation until there are no further possible outcomes (decomposed?).
+I returned to pages 71-73 in Baader to try to understand this better. This is not mentioned in the response above, but does this describe "checking ABox consistency?" Page 72 states "This algorithm is very simple because, when the TBox is empty, the expansion rules only need to explicate the semantics of the concepts occurring in concept assertions in A. Moreover, because these rules syntactically decompose concepts, the algorithm naturally terminates when all concepts have been fully decomposed." I can interpret this quote according to what is stated above (from the google doc) such that logical (expansion?) rules are applied to assertions (Knowledge Base?) and run through each possible interpretation until there are no further possible outcomes (decomposed?). This is like the Zebra problem which required us to input the information available + relations available and then Protege (magically) provided the answer, once all information was correctly in Protege.
10. Following up on your work in question 9, adjust/add/remove/etc. object properties and individuals in your Protege file so that when you run a reasoner in Protege, you return the following consequences:
From d69a96cbb23ef288f40c359955f1d3f62b0777b3 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Tue, 21 Mar 2023 15:37:39 -0400
Subject: [PATCH 21/36] Update README.md
---
Project-2/README.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index 1364cd0f..90e1fc6a 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -150,3 +150,6 @@ I returned to pages 71-73 in Baader to try to understand this better. This is n
(e) There are no parts between a and g in common
```
Provide a screenshot of your results here.
+
+
+
From adf64a2006f496913aa007df2f3d2352552cd4d0 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Wed, 22 Mar 2023 21:12:17 -0400
Subject: [PATCH 22/36] Update README.md
---
Project-3/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Project-3/README.md b/Project-3/README.md
index 857dfedc..381fcf41 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -13,6 +13,8 @@ For any question involving the use of Protege, please be sure to import:
```
(a) Reflexive
(b) Transitive
+ Object property: derives_from
+ Because this object property defines a relation in which a "significant" portion of the original entity is inherited by the entity that begins to exist as the original goes out of existence, this is (maybe) a transitive relation. For example, if Cell B is derived from Cell A (the original cell), Cell B inherits a significant portion of Cell A. Later, when Cell C is derived from Cell B, Cell C inherits a significant portion of Cell B (which includes a significant portion of Cell A by definition). Therefore, Cell C contains a significant portion (or at least some portion at this point of derivation) of Cell A, making this relation transitive. If it is not the case that Cell C contains at least some portion of Cell A (the original Cell), then this relation is not transitive.
(c) Symmetric
(d) Functional
(e) Symmetric and Reflexive
From a33c4d669de84c864fd283a3b3249280ab7d0312 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Wed, 22 Mar 2023 22:36:06 -0400
Subject: [PATCH 23/36] Update README.md
---
Project-3/README.md | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/Project-3/README.md b/Project-3/README.md
index 381fcf41..1541c43e 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -12,12 +12,26 @@ For any question involving the use of Protege, please be sure to import:
1. In BFO and RO identify at least one object property for each of a-e that _should have the listed property, but which does not_; argue for your case, using examples. Note: It will be easiest to view the object properties in BFO and RO using Protege.
```
(a) Reflexive
+ Object property: has_quality
+ I think this object property could be reflexive. Protege states that "a relation between an independent continuant (the bearer) and a quality, in which the quality specifically depends on the bearer for its existence." If "is the same height as" is a reflexive relation (as presented in David Braun's Modal Logic textbook), this seems consistent with the definition provided in Protege. Consider, for example, the quality "is 5'8" tall." This is a reflexive relation - if Katie has_quality 5'8" tall, i.e. Katie is 5'8", she bears this relation to herself (and all others who are 5'8" tall, but this is not required). If there is no entity (or person, or instance, maybe?) that has the quality of being 5'8" tall, this relation/quality 1) does not exist and 2) is not reflexive.
+
(b) Transitive
- Object property: derives_from
+ Object property: derives from
Because this object property defines a relation in which a "significant" portion of the original entity is inherited by the entity that begins to exist as the original goes out of existence, this is (maybe) a transitive relation. For example, if Cell B is derived from Cell A (the original cell), Cell B inherits a significant portion of Cell A. Later, when Cell C is derived from Cell B, Cell C inherits a significant portion of Cell B (which includes a significant portion of Cell A by definition). Therefore, Cell C contains a significant portion (or at least some portion at this point of derivation) of Cell A, making this relation transitive. If it is not the case that Cell C contains at least some portion of Cell A (the original Cell), then this relation is not transitive.
+
(c) Symmetric
+ Object Property: correlated with
+ If A is correlated with B then B must also be correlated with A, therefore the relation is symmetric. Braun's Modal Logic textbook provides "married to" as an example of a symmetric relation, which seems to function similarly to the object propery "correlated_with," although maybe not perfectly (depending on the strength of the "statistical dependence" correlating the entities (as defined in Protege)).
+
(d) Functional
+ Object property: has primary input (or has primary output)
+ A relation is functional when there is at most one out going relationship along the property for an individual (http://protegeproject.github.io/protege/views/object-property-characteristics/). If an input (or output) is primary, it is unique in the sense that there can only be one. If this is true, it could be a functional relation, as there is at most one out going relationship. I'm not sure if I've misinterpreted the definition of a functional relation.
+
(e) Symmetric and Reflexive
+ Object property: simultaneous with
+ We could say that an event is simultaneous with itself (reflexive) and simultaneous with an second event that occurs at the same exact time (symmetric). For example, the event of me driving home on Monday afternoon is simultaneous with itself and with the event of Bagel Jays closing - both events occur at 4pm. I'm not sure how one might argue that an event cannot be temporally simultaneous with itself, so this should work.
+
+
```
2. In BFO and RO identify at least one object property for each of a-e that _should not have the listed property, but which does_; argue for your case, using examples. Note: It will be easiest to view the object properties in BFO and RO using Protege.
From 37bf74b03808db44da6e3eb116732ad3e35f8f67 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Wed, 22 Mar 2023 23:27:08 -0400
Subject: [PATCH 24/36] Update README.md
---
Project-3/README.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Project-3/README.md b/Project-3/README.md
index 1541c43e..71ba0c0d 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -37,7 +37,13 @@ For any question involving the use of Protege, please be sure to import:
2. In BFO and RO identify at least one object property for each of a-e that _should not have the listed property, but which does_; argue for your case, using examples. Note: It will be easiest to view the object properties in BFO and RO using Protege.
```
(a) Irreflexive
+ Object property: has member
+ This object property is defined by "a mereological relation between a collection and an item" in Protege. If we allow a collection to include one or more things (such that one thing may be referred to as a "collection"), this property should be reflexive as all individuals can be related to itself.
+
(b) Transitive
+ Object propery: has branching part
+ I don't think "has branching part" should be transitive mostly because the inverse, "branching part of," is not transitive in Protege. In any case, it doesn't seem to me that if A has branching part B and B has branching part C, then A has branching part C. The C branch belongs to the B branch. but not the A branch.
+
(c) Asymmetric
(d) Functional
(e) Inverse Functional
From 6ef14a48433dac60a8e8d06a0eeafbd91a1265ab Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Wed, 22 Mar 2023 23:39:14 -0400
Subject: [PATCH 25/36] Update README.md
---
Project-2/README.md | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index 90e1fc6a..7c67cb3b 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -34,6 +34,32 @@ Tip #4: Work together as a team.
2. Use your axioms from question 1 as the basis of an ALCI T-Box. Supplement this T-box with whatever other axioms you like, as well as an A-box, so that you ultimately construct a knowledge base K = (T,A). Provide a _model_ of K. This may be graphical or symbolic or both.
+Taken from Josh Vonderhaar:
+
+ipp= ∃part_of-^~∃part-of
+
+ip= ∃part_of-
+
+O= ∃part_of^∃part_of-
+
+D= ∃~part_of^∃~part-of-
+
+(Lazarus,x): PP
+
+(Lazarus, City)
+
+(City, y): Ipp
+
+(Lazarus, City): Part_of
+
+(City, Lazarus): Part_of
+
+Proper part: Lazarus, City
+
+overlaps: none
+
+Disjoint: none
+
3. Translate the following first-order logic axioms into ALCI:
```
(a) ∀x∃y∀z(R(x,y) ∧ R(x,z) ∧ R(y,z))
From ff914dfe53df4c3c53199300d9d03eb1767901f9 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Thu, 23 Mar 2023 16:43:35 -0400
Subject: [PATCH 26/36] Update README.md
---
Project-3/README.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Project-3/README.md b/Project-3/README.md
index 71ba0c0d..3f3b29e8 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -45,6 +45,11 @@ For any question involving the use of Protege, please be sure to import:
I don't think "has branching part" should be transitive mostly because the inverse, "branching part of," is not transitive in Protege. In any case, it doesn't seem to me that if A has branching part B and B has branching part C, then A has branching part C. The C branch belongs to the B branch. but not the A branch.
(c) Asymmetric
+ Object property: has role in modeling
+ The only two object properties that I can find that are marked Asymmetric are "has skeleton" and "has role in modeling." It's really difficult to argue that "has skeleton" is not an asymmetric property, but I did learn (from ChatGPT) that horseshoe crabs and armadillos (allegedly) have endoskeletons and exoskeletons. This could roughly be interpreted as the skeleton we traditionally think of, the endoskeleton, has its own skeleton, the exoskeleton, which seems slightly symmetric. If that's acceptable, "has skeleton" isn't an asymmetric property.
+ The other object property, "has role in modeling," is defined in Protege by: “A relation between a biological, experimental, or computational artifact and an entity it is used to study, in virtue of its replicating or approximating features of the studied entity.” It's difficult to see how this is not an asymmetric relation given the words "replication" and "approximating." However, if we extend the word "model" to include things themselves, or, in other words, objects that are not replicated, this could work. The definition of model in this case would have to be interpreted more broadly (think "fashion model," where nothing is replicated but some thing or object is being modeled).
+
+
(d) Functional
(e) Inverse Functional
```
From 0e66b250776f8dba4e217e9d45912ad463e89304 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Thu, 23 Mar 2023 17:20:18 -0400
Subject: [PATCH 27/36] Update README.md
---
Project-3/README.md | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/Project-3/README.md b/Project-3/README.md
index 3f3b29e8..0c0c53e3 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -51,7 +51,15 @@ For any question involving the use of Protege, please be sure to import:
(d) Functional
+Object property: characteristic of
+The definition of “characteristic of” in Protege states: “a relation between a specifically dependent continuant (the characteristic) and any other entity (the bearer), in which the characteristic depends on the bearer for its existence.”
+This object property seems very cagey as a functional relation, which I’m sure is 1) helpful and 2) intentional in the ontology. However, the definition of a functional relation includes that: “if multiple individuals are specified as values for the property then these values will be inferred to denote the same object” (http://protegeproject.github.io/protege/views/object-property-characteristics/). This bothers me for the property of “characteristic of.”
+If it is possible for a thing to be “characteristic of” multiple objects, will this be even more problematic? The definition of the object property in Protege may eliminate this concern. But this seems too restrictive or reductionary for a concept like “characteristic of.” It is characteristic of myself (and many others) to enjoy rum, but this relation should not then designate each rum-enjoyer as the same object.
+
(e) Inverse Functional
+ Object property: has characteristic
+ The only Inverse Functional object property in Protege is "has characteristic," the inverse property of "characteristic of." My reasoning for not marking "has charactertistic" as Inverse Functional is therefore similar to my reasoning above for "characteristic of." Part of the definition of Inverse Functional includes: "In other words, there can be at most one incoming relationship along the property for that individual. Note that, if multiple individuals are specified as incoming values for the property then these values will be inferred to denote the same object" (http://protegeproject.github.io/protege/views/object-property-characteristics/). My problem is with how restrictive this relation is when combined with the definition of the object property "has characteristic."
+
```
3. Model the following natural language expressions using terms from BFO and RO; you are welcome to introduce new terms where needed:
From 73044a2662330f0da4b25d646e6f1c0abd2f98b8 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Mon, 27 Mar 2023 14:42:39 -0400
Subject: [PATCH 28/36] Update README.md
---
Project 4/README.md | 74 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)
diff --git a/Project 4/README.md b/Project 4/README.md
index 4c5a27e8..6c6e1ec5 100644
--- a/Project 4/README.md
+++ b/Project 4/README.md
@@ -45,3 +45,77 @@ You're probably thinking, "why would I submit a level 8 kata if they're not wort
It is your responsibility and the responsibility of your peers reviewing your submission in PR to determine whether your submission is ranked appropriately. In the event that consensus is reached that your kata is ranked inappropriately, you must work with your peers to revise the submission so that it is either more or less challenging, accordingly. You are not permitted to submit new problems with different strengths after PRs are open, but must instead revise your PRs. So, think hard about how challenging your submission is.
There is one other option for those desiring a different sort of challenge. If you provide alongside your SPARQL submission a translation of the same problem into SQL, complete with documentations, solution, etc. then you may receive half points extra at that kata level (rounded up). For example, if you submit a SPARQL problem that is kata rank 1 and also submit a SQL version of that same problem, you will receive 35+18=53 points.
+
+1) Write a query that returns all object properties in dbpedia.
+
+Reference solution:
+select ?p
+
+where{
+?s ?p ?o
+}
+
+2) Write a SPARQL quiery that retrieves the name, birthplace, birth date, genre, latitude, longitude, label, and abstract of actors born after 1950, along with information about their birthplaces.
+
+Hint:
+This question uses four query forms:
+
+Triple patterns to retrieve the actor's name and birthplace, as well as the birth date of each actor.
+A property path to retrieve the genres of the movies each actor appeared in.
+A set of triple patterns to retrieve the coordinates, label, and abstract of each birthplace.
+Filter expressions to restrict the birth date to after 1950 and the birthplace label to English.
+
+The query also uses a combination of operators and functions, including:
+
+The LANGMATCHES function to match English-language labels.
+The STRDT function to convert the birth date string to a date datatype for comparison.
+The ORDER BY clause to sort the results by actor name.
+Triple patterns to retrieve the actor's name and birthplace, as well as the birth date of each actor.
+A property path to retrieve the genres of the movies each actor appeared in.
+A set of triple patterns to retrieve the coordinates, label, and abstract of each birthplace.
+Filter expressions to restrict the birth date to after 1950 and the birthplace label to English.
+
+The query also uses a combination of operators and functions, including:
+
+The LANGMATCHES function to match English-language labels.
+The STRDT function to convert the birth date string to a date datatype for comparison.
+The ORDER BY clause to sort the results by actor name.
+
+Reference solution:
+PREFIX dbo:
+PREFIX foaf:
+PREFIX geo:
+
+SELECT DISTINCT ?actor ?actorName ?birthPlace ?birthDate ?genre ?latitude ?longitude ?label ?abstract
+WHERE {
+ # Query 1: Retrieve actors and their birthplaces
+ ?actor a dbo:Actor ;
+ foaf:name ?actorName ;
+ dbo:birthPlace ?birthPlace .
+
+ # Query 2: Retrieve the birth date of each actor
+ ?actor dbo:birthDate ?birthDate .
+
+ # Query 3: Retrieve the genres of the movies each actor appeared in
+ ?actor dbo:starring ?movie .
+ ?movie dbo:genre ?genre .
+
+ # Query 4: Retrieve the coordinates, label, and abstract of each birthplace
+ ?birthPlace geo:lat ?latitude ;
+ geo:long ?longitude ;
+ rdfs:label ?label ;
+ dbo:abstract ?abstract .
+
+ # Filter actors born after 1950
+ FILTER(STRDT(?birthDate, xsd:date) > "1950-01-01"^^xsd:date)
+
+ # Filter birthplaces with a label in English
+ FILTER(LANGMATCHES(LANG(?label), "en"))
+
+} ORDER BY ?actorName
+
+
+
+
+
+
From ce3c9292eb5c8f7405f11ee027934b72e8bb5faf Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 2 Apr 2023 15:38:31 -0400
Subject: [PATCH 29/36] Update README.md
---
Project-2/README.md | 76 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
diff --git a/Project-2/README.md b/Project-2/README.md
index 7c67cb3b..c069dbe8 100644
--- a/Project-2/README.md
+++ b/Project-2/README.md
@@ -80,8 +80,84 @@ Same questions as above: Is this well formed? Does it matter?
```
4. Provide an interpretation I1 for ALC and an interpretation I2 for ALCN - each distinct from any interpretation covered in class so far - and construct a bisimulation that demonstrates ALCN is more expressive than ALC. Use the [mermaid syntax](https://github.com/mermaid-js/mermaid) of markdown to provide a graphical representation of your work. Feel free to use the [mermaid live editor](https://mermaid.live/) when diagramming.
+P = Professor
+
+P ⊓ ∃R.T (ALC interpretation cannot distinguish between numbers of successors)
+
+P ⊓ ≥ 2R.T(ALCN Interpretation)
+P ⊓ ≥ 3R.T(ALCN Interpretation)
+
+ΔI1 = {Dr. Beverley, PHI 697, PHI 329, Tuesday Workshop}
+
+Named IndividualsI:
+Dr. BeverleyI = B
+PHI 697I = 697
+PHI 329I = 329
+Tuesday WorkshopI = W
+
+Role Assignments:
+t = {(B, 697), (B, 329), (B, W)}
+
+
+
+
+
+ΔI2 = {Dr. Beverley, PHI 697, PHI 329}
+
+Named IndividualsI:
+Dr. BeverleyI2 = B2
+PHI2 697I = 697-2
+PHI 329I = 329-2
+
+Role Assignments:
+t2 = {(B2, 697-2), (B, 329-2)}
+
+Bisimulation:
+
+ρ = {(B, B2), (697, 697-2), (329, 329-2)}
+
+So B is bisimilar to B2. But we can distinguish them in ALCN by defining the role t as
+≥3 ∃t.⊤
+in I1
+≥2 ∃t2.⊤
+in I2
+
5. Provide an interpretation I1 for ALC and an interpretation I2 for ALCN - each distinct from any interpretation covered in class so far - and construct a bisimulation that _does not_ demonstrate ALCN is more expressive than ALC. Use the [mermaid syntax](https://github.com/mermaid-js/mermaid) of markdown to provide a graphical representation of your work. Feel free to use the [mermaid live editor](https://mermaid.live/) when diagramming.
+ΔI1 = {Dr. Beverley, PHI 697, PHI 329}
+
+Named IndividualsI:
+Dr. BeverleyI = B
+PHI 697I = 697
+PHI 329I = 329
+
+Role Assignments:
+t = {(B, 697), (B, 329), (B, W)}
+
+
+ΔI2 = {Dr. Beverley, PHI 697, PHI 329}
+
+Named IndividualsI:
+Dr. BeverleyI2 = B2
+PHI2 697I = 697-2
+PHI 329I = 329-2
+
+Role Assignments:
+t2 = {(B2, 697-2), (B, 329-2)}
+
+Bisimulation:
+
+ρ = {(B, B2), (697, 697-2), (329, 329-2)}
+
+So B is bisimilar to B2. The ALCN definitions are
+≥2 ∃m.⊤
+in I1
+≥2 ∃m2.⊤
+in I2
+
+
+
+
6. Explain the difference - using natural language - between the description logic expressions:
```
From c89148c8ccad223ca1db9fb592d720a3957ad016 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 2 Apr 2023 15:52:55 -0400
Subject: [PATCH 30/36] Update README.md
---
Project-3/README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/Project-3/README.md b/Project-3/README.md
index 0c0c53e3..4a0fdcf8 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -137,30 +137,81 @@ There seems to be something missing in this graph such that the Turtle and XML a
6. Using Protege, place these in the BFO hierarchy where you think they fit best:
```
(a) Bach's Well-Tempered Clavier
+ Generically dependent continuant (e.g. the music composition), object (e.g. music sheet), or process (occurrent, e.g. playing the song)
+
(b) Chair of the UB Philosophy Department
+ Role
+
(c) SARS-CoV-2
+ Object/Material entity (e.g. virus) or disposition (e.g. disease symptoms)
+
(d) Mexico City
+ Site or 2D/3D spatial region (e.g. map or mapping) or Instance
+
(e) The trunk of a minivan
+ Site or fiat object part
+
(f) Occupation
+ Role
+
(g) Ocean
+ Site or 2D/3D spatial region
+
(h) Lake
+ Site or 2D/3D spatial region
+
```
7. True or False; explain your answers:
```
(a) An instance of Material Entity can have an instance of Immaterial Entity as part.
+ True. Smith’s textbook: “Immaterial entities listed under 1. (boundaries and sites) are in some cases continuant parts of their material.” (108)
+
+
(b) An instance of Immaterial Entity can have an instance of Material Entity as part.
+ False
+
(c) An organization may have another organization as part.
+ True. For example, a political committee can have a subcommittee as a part.
+
(d) An organization may have no members as part.
+ True. If the debate club is viewed as a role, the debate club could lose all its members while still being recognized by the school. It would be false if the debate club is viewed as an object aggregate because as an OA is the sum of its parts, by virtue of losing its members, it loses its necessary parts to being an OA.
+
+
(e) Any site is partially bounded by some instance of Material Entity.
+ False. You can identify a specified space and it could still be surrounded by space without touching any material entity.
+
(f) A book placed under the leg of a wobbly table has acquired a new function.
+ False. The elucidation excludes this by saying that the function is due to the physical make-up of the object. Since nothing about the make-up changed, the book did not gain any new functions. If the book has the function of supporting the table, this is a function it has always had, even if it wasn’t intended to support the table.
+
(g) A glass vase cushioned with packing material for all time, has the disposition to break.
+ True. Dispositions are in virtue of the bearer’s physical make-up, not its environment.
+
(h) Spacetime is a class in BFO.
+ False. This is covered by spatiotemporal region.
+
(i) The continuant fiat boundary class of BFO is closed, meaning, there are no subclasses beyond those identified presently in BFO.
+ False. "Continuant fiat boundary doesn't have a closure axiom because the subclasses don't necessarily exhaust all possibilities. An example would be the
+ mereological sum of two-dimensional continuant fiat boundary and a one dimensional continuant fiat boundary that doesn't overlap it" (from the BFO file in
+ Protege).
```
8. Model the following scenario in BFO, introducing whatever terms are needed to do so: John runs for 3 hours, startin slowly, speeding up during the middle, then ending the run at a slower pace.
+
+
9. The Pellet reasoner in Protege can be used in an incremental reasoning strategy. ELI5 when and why one should use Pellet for incremental reasoning.
+Imagine you are playing with some building blocks to build a tower. Every time you add a block to the tower, you don't need to start building the tower from the beginning. You just need to add the new block on top of the tower.
+In the same way, when we use Pellet to reason about an ontology, we don't need to start reasoning from the beginning every time we add new information to the ontology. Instead, Pellet remembers what it has already figured out and uses that knowledge to figure out what the new information means. This is kind of like adding a new block to the tower without starting from the beginning. Thus, Pellet is especially important for large, complex ontologies where re-computing all the results every time new information is added would take a long time.
+
+
10. Protege reasoners will not allow you to combine certain properties, e.g. reflexivity and transitivity. If you attempt to assert such pairs of the same object property, then run the reasoner, nothing will happen. If you combine such properties while a reasoner is running, then ask to synchronize the reasoner, an error will be thrown. Provide a table or series of tables illustrating which pairs of properties cannot be combined in Protege, either because nothing happens when the reasoenr is run or because an error is thrown when synchronizing a reasoner after making such changes. Review the github docs on [creating tables in markdown](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables).
+
+
+
+Where:
+
+"Yes" indicates a case where a pair of object property characteristics can be combined, and
+"No" indicates a case where a pair of object property characteristics cannot be combined.
+
From 46cf57d8c113bd615d20bea2781ad23ccb28e750 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 2 Apr 2023 21:16:44 -0400
Subject: [PATCH 31/36] Update README.md
---
Project-3/README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/Project-3/README.md b/Project-3/README.md
index 4a0fdcf8..762e244c 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -215,3 +215,4 @@ Where:
"Yes" indicates a case where a pair of object property characteristics can be combined, and
"No" indicates a case where a pair of object property characteristics cannot be combined.
+
From 3c3d5cee085202cec588b7a4217ea88d3b58d810 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 16 Apr 2023 15:31:45 -0400
Subject: [PATCH 32/36] Update Project-5.md
---
Project-5.md | 465 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 462 insertions(+), 3 deletions(-)
diff --git a/Project-5.md b/Project-5.md
index 2425c9f7..f5b6d38b 100644
--- a/Project-5.md
+++ b/Project-5.md
@@ -46,9 +46,468 @@ You may find the following resources useful:
2. [DASH Library](https://datashapes.org/dash.html)
-## Assignment to Teams ##
+1. Constraint for Asymmetry
-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.
+a. Our constraint checks for asymmetric patterns in a graph.
-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.
+b. An example of when to use this constraint would be for tracking enrollment in courses at a university. Such that each node would represent a student of course and each relation represents the enrollment of a student in a course. Enrollment relations should only be allowed between students and courses that are in a department. If a violation of this constraint is detected it would mean that there is an enrollment relation that does not satisfy the requirement of a student enrolling in a course without the course being enrolled in a student. By changing ex:AsymmteryShape to ex:AsymmetryEnrollementShape and following our basic structure.
+c. aRb → ~bRa (equivalent as: ~aRb ∨ ~bRa)
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix xsd: .
+
+
+ex:AsymmetryShape
+
+a sh:NodeShape ;
+sh:targetClass ex:relation ;
+sh:property [
+sh:path rdf:value ;
+sh:minCount 1 ;
+sh:maxCount 2 ;
+sh:datatype xsd:string ;
+
+] .
+
+2. Constraint for Symmetry
+a. Our constraint checks for symmetry patterns in a graph.
+
+b. An example of when to use this constraint would be if we had an RDF graph that represented your
+connections on LinkedIn. Such that if A is connected with B then B is connected with A. Wanting to ensure this relation is symmetric we would use a SHACL constraint like this. Easily substituting SymmteryShape for ConnectionSymmteryShape and then following our model below. Our model would alert the user if there were cases of connection not going both ways.
+
+c. a -> b ^ b -> a
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix xsd: .
+
+ex:SymmetricRelationShape
+
+ a sh:NodeShape ;
+
+ sh:targetClass ex:Relation ;
+ sh:property [
+ sh:path ex:hasSource ;
+ ] ;
+ sh:property [
+
+sh:path ex:hasTarget ;
+
+sh:minCount 1 ;
+
+sh:maxCount 1 ;
+
+sh:message "A relation must have exactly one target"
+
+] ;
+
+sh:property [
+
+sh:path ex:hasInverseRelation ;
+
+sh:minCount 0 ;
+
+sh:maxCount 1 ;
+
+sh:class ex:Relation ;
+
+sh:node [
+
+sh:property [
+
+sh:path ex:hasSource ;
+
+
+] ;
+
+sh:property [
+
+sh:path ex:hasTarget ;
+
+sh:minCount 1 ;
+
+sh:maxCount 1 ;
+
+sh:message "An inverse relation must have exactly one target"
+
+] ;
+
+sh:property [
+
+sh:path ex:hasInverseRelation ;
+
+sh:minCount 0 ;
+
+sh:maxCount 1 ;
+
+sh:class ex:Relation ;
+
+sh:node [
+
+sh:property [
+
+sh:path ex:hasSource ;
+
+sh:equals [
+
+sh:path [
+
+rdf:reverseProperty ex:hasTarget
+]
+ ]
+] ;
+
+sh:property [
+
+sh:path ex:hasTarget ;
+
+sh:equals [
+
+sh:path [
+
+rdf:reverseProperty ex:hasSource
+
+]
+
+]
+ ]
+ ]
+ ] ;
+
+sh:property [
+
+sh:path ex:hasSource ;
+
+sh:equals [
+
+sh:path [
+
+rdf:reverseProperty ex:hasTarget
+
+]
+
+]
+ ] ;
+
+sh:property [
+
+sh:path ex:hasTarget ;
+
+sh:equals [
+
+sh:path [
+
+rdf:reverseProperty ex:hasSource
+
+]
+
+]
+
+]
+ ]
+ ] .
+
+
+
+3. Constraint Symmetry with a check thing not being symmetric.
+a. Our constraint is meant to check for symmetry in a graph and check for when things are not symetric.
+
+b. An example of when to use this constraint would be if we had a graph that represented followers on Twitter. Our constraint would check for cases of when A follows B than B should follow A. This constraint would indeed produce the message “The relation does not have symmetric values" when this is not the case.
+To use this constraint in this was one would start the constraint with something like
+ex:TwitterFollowersSymmetryShape and follow the general format of this constraint.
+
+c. a -> b ^ b -> a
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix xsd: .
+
+ex:SymmetryShape
+
+a sh:NodeShape ;
+
+sh:targetclass ex:relation ;
+
+sh:property [
+
+sh:path rdf:value ;
+
+sh:minCount 2 ;
+
+sh:maxCount 8 ;
+
+sh:datatype xsd:string ;
+
+sh:nodeKind sh:Literal ;
+
+sh:message "The relation does not have symmetric values"
+
+] ;
+
+sh:property [
+
+sh:path [
+
+sh:inversePath ex:property
+
+] ;
+
+sh:minCount 2 ;
+
+sh:datatype xsd:string ;
+
+sh:nodeKind sh:Literal ;
+
+
+sh:message "The relation does not have symmetric values"
+
+] .
+
+Constraint for Reflexivity
+a. Our constraint checks for reflexivity in a graph.
+
+b. An example of when one would use this constraint would be if we had a graph that represented published philosophers to check for when philosophers are self-referencing themselves in a novel piece. Such that when a philosopher published novel work that references that philosophers in a self-referential way this constraint would alert to the self-reference. One would change ex:ReflexivityShape to ex:PhilosopherReferenceReflexivityShape and follow the format of the constraint below. Importantly, when self-referring, the philosopher is referring to herself (rather than the body of work).
+
+c. a -> a
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix xsd: .
+
+
+ex:ReflexiveShape
+
+a sh:NodeShape ;
+
+sh:targetClass ex:relation ;
+
+sh:property [
+
+sh:path rdf:value ;
+
+sh:minCount 1 ;
+
+sh:maxCount 6 ;
+
+sh:datatype xsd:string ;
+
+] .
+
+5. Constraint for Irreflexive
+a. Our constraint checks for irreflexively in a graph
+
+b. An example of when to use this constraint would be if you had a graph that represented a company’s organizational structure. Such that no employee should be their own manager. This constraint would ensure that is not possible. One would simply change ex:IrrelexiveShape to ex:CompanyIrrelexiveOrganizationShape and follow the formatting below.
+
+c. ~(a -> a)
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix xsd: .
+
+ex:IrreflexiveShape
+
+a sh:NodeShape ;
+
+sh:targetClass ex:relation ;
+
+sh:property [
+
+sh:path rdf:value ;
+
+sh:minCount 1 ;
+
+
+sh:maxCount 4 ;
+
+sh:datatype xsd:string ;
+] .
+
+6. Constraint for Transitivity
+a. Our constraint checks for transitivity in a graph.
+
+b. An example of when one would use this constraint would be to check a graph of clan, band, nation affiliation. Such that when one is a recognized citizen of the Cherokee Nation one is also a member of one of the 3 bands of Cherokee and a member of one of the 7 clans. This constraint would be used to check if one is a member of a clan, they are a member of a band and if you are member a band you are a member of the Nation and if you are a member of a clan, you are a member of the Nation. One would simply change ex:TransitiveShape to ex:CherokeeNationEnrollmentClanTransitiveShape.
+
+c. c -> b. b -> a. ؞ c -> a
+ i. a = nation
+ ii. b = band
+ iii. c = clan
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix xsd: .
+
+ex:TransitiveShape
+
+a sh:NodeShape ;
+
+sh:targetClass ex:relation ;
+
+sh:property [
+
+sh:path rdf:value ;
+
+sh:minCount 1 ;
+
+sh:maxCount 3 ;
+
+sh:datatype xsd:string ;
+
+] .
+
+7. Constraint for Transitivity and Symmetry
+a. Our constraint checks for when a graph is both transitivity and symmetry in a graph.
+b. An example of when one would use this constraint would be to check a graph of clan, band, nation affiliation. Such that when one is a recognized citizen of the Cherokee Nation one is also a member of one of the 3 bands of Cherokee and a member of one of the 7 clans. This constraint would be used to check if one is a member of a clan they are a member of the a band and if you are a member of a band you are a member of the Nation and if you are a member of a clan you are a member of the Nation. Similarly, if you are a member of a clan you are a member of the Nation and if you are a member of the Nation you are a member of a clan.
+c. c -> b. b -> a. ؞ c -> a
+ i. a = nation
+ ii. b = band
+ iii. c = clan
+d. a -> c. c -> a
+ i. a = nation
+ ii. c = clan
+
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix xsd: .
+
+ex:TransSymmetryShape
+
+a sh:NodeShape ;
+
+sh:targetClass ex:relation ;
+sh:property [
+sh:path ex:hasSource ;
+sh:class ex:Node
+] ;
+
+sh:property [
+sh:path ex:hasTarget ;
+sh:class ex:Node ] ;
+sh:property [
+sh:path ex:hasValue ;
+sh:or ( [ sh:datatype xsd:string ;
+sh:in ( "same, opposite" )
+]
+[ sh:datatype xsd:boolean ]
+)
+ ] ;
+ sh:property [
+sh:path ex:hasType ;
+sh:in ( "symmetric, transitive" )
+] .
+
+
+
+
+8. Constraint for disjoint of symmetry or asymmetry
+a. Our constraint checks for when a graph is either symmetric or asymmetric
+
+b. An example of when this constraint could be used to check a dataset of products represented as an RDF resource with various properties. This constraint will ensure a specific property (or multiple properties) is/are always present when a product is listed. To take this further, let’s say that our product type must have a review and a rating as the property, when the graph is checking the dataset it will check for symmetry of review existing and rating existing while also checking for an asymmetry such that there is a review but no rating or a rating and no review. One would change ex:symmetricalProperty to ex:hasReviewShape and then following this basic formatting!
+
+c. [(a -> b) ^ (b -> a)] v [(a -> b) ^ ~(b -> a)]
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix xsd: .
+
+
+ex:AsymReflexShape
+
+a sh:NodeShape ;
+sh:targetClass ex:relation ;
+sh:property [
+sh:path ex:hasSource ;
+sh:class ex:Node
+] ;
+
+sh:property [
+sh:path ex:hasTarget ;
+sh:class ex:Node
+] ;
+
+sh:property [
+sh:path ex:hasValue ;
+sh:datatype xsd:boolean ;
+sh:in ( true ) ] ;
+sh:property [
+sh:path ex:hasType ;
+sh:in ( "asymmetric" )
+] .
+
+
+9. Constraint for PropertyIn for Asymmetrical or Irreflexive
+a. Our constraint checks for when a graph has a propertyIn that is both asymmetric and irreflexive.
+
+b. An example of a time when you could use this constraint would be when checking a flow chart type graph (I think they are called directed acyclic graphs). Such that in a flow chart there could be many outgoing relations with only one incoming relation. This means the ex:asymmetricalPropertySHape constraint could ensure that each arrow of the graph in directed in a consistent way. While is ex:IrreeflexivePropertyShape constraint on the other hand, could be used to ensure that there are no cycles in the graph by prohibiting self-reference. By combing these constraints with sh:or property type you can check the validity of a flow chart.
+
+c. [(a -> b) ^ ~(b -> a)] v [~(a -> a)]
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix xsd: .
+
+ex:asymmetricalPropertyShape
+
+a sh:PropertyShape ;
+sh:path ex:asymmetricalProperty ;
+sh:propertyConstraint [
+sh:asymmetrical true ;
+] .
+
+ex:irreflexivePropertyShape
+a sh:PropertyShape ;
+sh:path ex:irreflexiveProperty ;
+sh:propertyConstraint [
+sh:irreflexive true ;
+] .
+
+ex:MyClassShape
+a sh:NodeShape ;
+sh:property [
+sh:or ( ex:asymmetricalPropertyShape ex:irreflexivePropertyShape ) ;
+] .
+
+
+
+10. Constraint for hasProperty
+a. An example of when this constraint might be used is in a real estate application that manages multiple properties. Such that the three associated properties rdf:value (the monetary value of a given property), ex:b (the number of bedrooms on a given property) and ex:c (the number of bathrooms on a given property). The constraint can be applied to ensure that any of the data associated with ex:property class meets these requirements, preventing incomplete or incorrect data being entered into the system.
+
+b. Going to be perfectly honest. I am not sure how to translate this into symbolic logic.
+
+@prefix sh: .
+@prefix ex: .
+@prefix rdf: .
+@prefix xsd: .
+
+ex:hasProperty
+a sh:NodeShape ;
+sh:targetClass ex:property ;
+sh:property [
+sh:path rdf:value ;
+sh:minCount 1 ;
+sh:maxCount 8 ;
+] ;
+
+sh:property [
+sh:path ex:b ;
+sh:minCount 1 ;
+sh:maxCount 8 ;
+] ;
+
+sh:property [
+sh:path ex:c ;
+sh:minCount 1 ;
+sh:maxCount 8 ;
+] .
From 26da228773a5f7961dc21506d07144a326a8541d Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 16 Apr 2023 15:43:26 -0400
Subject: [PATCH 33/36] Update Project-5.md
---
Project-5.md | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/Project-5.md b/Project-5.md
index f5b6d38b..92e753b2 100644
--- a/Project-5.md
+++ b/Project-5.md
@@ -511,3 +511,36 @@ sh:path ex:c ;
sh:minCount 1 ;
sh:maxCount 8 ;
] .
+
+11. Bonus constraint for disjoint of extension of two properties
+
+disjointEx; it is used by combining another constraint “or”.
+
+description: the constraint disjointEx is used to check whether different extensions of two properties disjoint or overlap, in particular, whether a node has only one property of the checked two properties.
+
+An application: a law firm has a database, which lists all cases each lawyer has done. There are two classes, one lists the cases a given lawyer wins, and the other lists the cases that the lawyer loses. The law firm doesn’t want a case being listed in both classes – it would be an error. So the constraint disjointEx can check whether such an error would occur.
+
+
+@prefix sh: .
+@prefix ex: .
+@prefix schema: .
+@prefix rdf: .
+@prefix xsd: .
+
+ex:disjointEx
+ a sh:NodeShape ;
+ sh:targetClass ex:property ;
+ sh:or ([
+ sh:property [
+ sh:path schema:caseWon ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ]
+ ]
+ [
+ sh:property [
+ sh:path schema:caseLose ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ]
+ ]) .
From 705413d09b57971d8a288916f03d72fe9b540ec1 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Fri, 5 May 2023 15:45:56 -0400
Subject: [PATCH 34/36] Update README.md
---
Project-3/README.md | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/Project-3/README.md b/Project-3/README.md
index 4a0fdcf8..9de61dc4 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -64,8 +64,12 @@ If it is possible for a thing to be “characteristic of” multiple objects, wi
3. Model the following natural language expressions using terms from BFO and RO; you are welcome to introduce new terms where needed:
```
+Tuesday is instance_of one-dimensional temporal region
+Wednesday is an instance of one-dimensional temporal region
+Arm is an instance of fiat object part
+
(a) Sally has an arm Tuesday but does not have an arm Wednesday.
- Sally participates in having at least one arm on Tuesday precedes Sally participates in having no arms on Wednesday.
+ Sally participates in having_at_least_one_arm on Tuesday precedes Sally participates in having_no_arms on Wednesday.
(b) Every liver has some cell as part at all times it exists.
Liver has_part_at_all_times some Cell
@@ -169,7 +173,7 @@ There seems to be something missing in this graph such that the Turtle and XML a
(b) An instance of Immaterial Entity can have an instance of Material Entity as part.
- False
+ False. An entity that is essentially immaterial can find no material ground, but stands in relation to material entities (in BFO). This is interesting because an example used (as an immaterial entity) is the boundary of Whales. This feels "grounded" (materially) to me, but maybe that is just the character of the relation between the immaterial and material?
(c) An organization may have another organization as part.
True. For example, a political committee can have a subcommittee as a part.
From 477ebd6c05f068f5d7a8c41ad17197e6ee7d0a98 Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 7 May 2023 22:27:47 -0400
Subject: [PATCH 35/36] Update README.md
---
Project-3/README.md | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/Project-3/README.md b/Project-3/README.md
index d61462a5..88e2a0e6 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -15,6 +15,11 @@ For any question involving the use of Protege, please be sure to import:
Object property: has_quality
I think this object property could be reflexive. Protege states that "a relation between an independent continuant (the bearer) and a quality, in which the quality specifically depends on the bearer for its existence." If "is the same height as" is a reflexive relation (as presented in David Braun's Modal Logic textbook), this seems consistent with the definition provided in Protege. Consider, for example, the quality "is 5'8" tall." This is a reflexive relation - if Katie has_quality 5'8" tall, i.e. Katie is 5'8", she bears this relation to herself (and all others who are 5'8" tall, but this is not required). If there is no entity (or person, or instance, maybe?) that has the quality of being 5'8" tall, this relation/quality 1) does not exist and 2) is not reflexive.
+ Alternative (per Josh's comments):
+ Object property: overlaps_with
+ The object property, “overlaps”, should have the reflexive characteristic listed. It’s definition states: x overlaps y if and only if there exists some z such that x has part z and z part of y. Reflexivity is the characteristic that expresses the relation that an entity be related to itself. The object property “overlaps”
+ should have reflexive as a listed characteristic since an object shares itself (and parts of itself) with itself.
+
(b) Transitive
Object property: derives from
Because this object property defines a relation in which a "significant" portion of the original entity is inherited by the entity that begins to exist as the original goes out of existence, this is (maybe) a transitive relation. For example, if Cell B is derived from Cell A (the original cell), Cell B inherits a significant portion of Cell A. Later, when Cell C is derived from Cell B, Cell C inherits a significant portion of Cell B (which includes a significant portion of Cell A by definition). Therefore, Cell C contains a significant portion (or at least some portion at this point of derivation) of Cell A, making this relation transitive. If it is not the case that Cell C contains at least some portion of Cell A (the original Cell), then this relation is not transitive.
@@ -173,7 +178,7 @@ There seems to be something missing in this graph such that the Turtle and XML a
(b) An instance of Immaterial Entity can have an instance of Material Entity as part.
- False. An entity that is essentially immaterial can find no material ground, but stands in relation to material entities (in BFO). This is interesting because an example used (as an immaterial entity) is the boundary of Whales. This feels "grounded" (materially) to me, but maybe that is just the character of the relation between the immaterial and material?
+ False. An entity that is essentially immaterial can find no material ground, but stands in relation to material entities (in BFO). This is interesting because an example used (as an immaterial entity) is the boundary of Wales. This feels "grounded" (materially) to me, but maybe that is just the character of the relation between the immaterial and material?
(c) An organization may have another organization as part.
True. For example, a political committee can have a subcommittee as a part.
@@ -209,6 +214,8 @@ There seems to be something missing in this graph such that the Turtle and XML a
Imagine you are playing with some building blocks to build a tower. Every time you add a block to the tower, you don't need to start building the tower from the beginning. You just need to add the new block on top of the tower.
In the same way, when we use Pellet to reason about an ontology, we don't need to start reasoning from the beginning every time we add new information to the ontology. Instead, Pellet remembers what it has already figured out and uses that knowledge to figure out what the new information means. This is kind of like adding a new block to the tower without starting from the beginning. Thus, Pellet is especially important for large, complex ontologies where re-computing all the results every time new information is added would take a long time.
+Per Josh's suggestion, I'd like to mention why we may not want to use the Pellet reasoner. My concern is that by building from an unchanging foundation, there may be inconsistencies or errors "baked in" the Ontology. Or, alternatively, perhaps the "end" of the Ontology will have abstracted too far away from the "beginning."
+
10. Protege reasoners will not allow you to combine certain properties, e.g. reflexivity and transitivity. If you attempt to assert such pairs of the same object property, then run the reasoner, nothing will happen. If you combine such properties while a reasoner is running, then ask to synchronize the reasoner, an error will be thrown. Provide a table or series of tables illustrating which pairs of properties cannot be combined in Protege, either because nothing happens when the reasoenr is run or because an error is thrown when synchronizing a reasoner after making such changes. Review the github docs on [creating tables in markdown](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables).
From ac671c94275eb7211b5807b01bfed42ba03dec6a Mon Sep 17 00:00:00 2001
From: katiejohnso <123913163+katiejohnso@users.noreply.github.com>
Date: Sun, 7 May 2023 22:48:29 -0400
Subject: [PATCH 36/36] Update README.md
---
Project-3/README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/Project-3/README.md b/Project-3/README.md
index 88e2a0e6..1415b46c 100644
--- a/Project-3/README.md
+++ b/Project-3/README.md
@@ -3,6 +3,7 @@
Your third project will require you to answer each of the 10 questions below. You will be expected to open a pull request with your initial answers by the second class meeting, giving you one week to work on these problems. You and your peers will then have one week to work together to refine your respective initial answers, so they are ready for final submission. Once your pull requests have been reviewed and merged to the development branch, I will review them, then merge to the master branch.
+
```
For any question involving the use of Protege, please be sure to import:
1. Basic Formal Ontology (https://raw.githubusercontent.com/BFO-ontology/BFO/v2019-08-26/bfo_classes_only.owl)