- semAuth: The semantic authoring tool
-
Example Ontologies
- Persons, Documents, Keywords (PDK)
-
Ernie puts the toys into groups
- Toys
-
Red toys
- Reification:Facts about Facts
- Toys with wheels
- Exploiting schema information
- Transcription of "Ernie puts the toys into groups"
- Ich sah den Mann auf dem Berg mit dem Fernrohr
- minimalistic demo: Candy eats carrots
- The Object Logic Ontology Files
- Articles on semAuth
- Sitemap
- Index
Sometimes you want to express facts about facts - say "the triple 'trumpet[hasSize -> small]' hasEvidence high.
Similarly to RDF this cannot be done directly, for an OBL molecule has no ID by itself.
The most appropriate modelling pattern for this problem is called reification: We make a fact "Subject [ property -> Object]" being the subject of another fact by itself.
The fact we want to talk about:
erniesFireEngine hasColor red |
ex#erniesFireEngine [ ex#hasColor -> "red" ] . |
Partial reification
Idea: One table "property(xyz)" for each single property
ex#property(hasSize) :: ex#Properties . turtle: ex#property(hasSize) rdfs:subClassOf ex#Properties . ex#property(hasColor) :: ex#Properties . turtle: ex#property(hasColor) rdfs:subClassOf ex#Properties . ex#'fact (erniesFireEngine,hasColor, red)' : ex#property(hasColor) . turtle: ex#'fact (erniesFireEngine,hasColor, red)' rdf:type ex#property(hasColor) . ex#'fact (erniesFireEngine,hasColor, red)' [ ex#hasSubject -> ex#erniesFireEngine ] . ex#'fact (erniesFireEngine,hasColor, red)' [ ex#hasObject -> ex#red ] . ex#'fact (erniesFireEngine,hasColor, red)' [ ex#hasEvidence -> ex#high ] . |
Full reification
Idea: One single table "ReifiedFacts" for all properties together
Problem: inferencing optimization will be knocked out rather fundamentally.
turtle: ex#hasSize rdf:type ex#Property . turtle: ex#hasColor rdf:type ex#Property . ex#'fact (erniesFireEngine,hasColor, red)' : ex#ReifiedFacts . turtle: ex#'fact (erniesFireEngine,hasColor, red)' rdf:type ex#ReifiedFacts . ex#'fact (erniesFireEngine,hasColor, red)' [ ex#hasSubject -> ex#erniesFireEngine ] . ex#'fact (erniesFireEngine,hasColor, red)' [ ex#hasProperty -> ex#hasColor ] . ex#'fact (erniesFireEngine,hasColor, red)' [ ex#hasObject -> ex#red ] . ex#'fact (erniesFireEngine,hasColor, red)' [ ex#hasEvidence -> ex#high ] . |