Knowledge Representation Part VI Some more details when it comes to RDF, etc. Jan Pettersen Nytun, UiA
Reification In general: Taking an abstract concept and making it concrete by having a proxy representing the abstract concept. Reification (computer science) from Wikipedia: …process …abstract idea about a computer program is turned into an explicit data model or other object created in a programming language. …By means of reification, something that was previously implicit, unexpressed,… is explicitly formulated and made available to conceptual (logical or computational) manipulation.
Reification Example 1 Many languages (e.g., Lisp) provide an eval that effectively reifies the language interpreter.
Reification Example 2 [ref Wikipedia]: Reification is widely used in conceptual modeling. Reifying a relationship means viewing it as an entity. The purpose of reifying a relationship is to make it explicit, when additional information needs to be added to it.
Reification In RDF - 1 Making an assertion (statement) about an assertion. Example [4]: «Wikipedia says Shakespeare wrote Hamlet» Which express information about the statement: “Shakespeare wrote Hamlet”. The following triple does not cover this: :Shakespeare :wrote :Hamlet. How to do this? Higher-order relationships may be used to solve this.
HIGHER-ORDER RELATIONSHIPS rdf:statement: a triple with properties: rdf:subject, rdf:predicate, rdf:object rdf:subject, rdf:predicate, rdf:object : relate elements of statement tuple to a resource of type statement.
Reification In RDF - 2 “Wikipedia says Shakespeare wrote Hamlet.” Using the RDF standard, we can refer to a triple as follows: q:n1 rdf:subject lit:Shakespeare; rdf:predicate lit:wrote; rdf:object lit:Hamlet. web:Wikipedia m:says q:n1. What is missing? Statement
Reification In RDF - 3 [4]: This kind of metadata about statements often takes the form of provenance (information about the source of a statement, as in this example), likelihood (expressed in some quantitative form like probability, such as It is 90 percent probable that Shakespeare wrote Hamlet), context, or time frame… In such cases, it is useful to explicitly make a statement about a statement. This process is called explicit reification. provenance pronunciation: pråvenens
Another Example [ref. http://franz.com/agraph/cresources/white_papers/SemWeb-Language-Primer.pdf]: Explicit reification uses three properties,rdf:subject, rdf:predicate, and rdf:object, to define the three elements of a triple, and then assigns a URI to the triple. For example, news:12345 rdf:subject bb:WhiteyFord; rdf:predicat ebb:playsPosition; rdf:object bb:Pitcher. news:NewYorkTimes news:reports news:12345. Reification is an important concept, since assertions often need to be made as to the source, date, confidence, etc. of assertions in the domain of discourse.
Ordered information in RDF [4]: RDF provides a facility for ordering elements in a list format. E.g., In Turtle: lit:Shakespeare b:hasChild (b:Susanna b:Judith b:Hamnet). This translates into the following triples, where _:a, _:b, and _:c are blank nodes: lit:Shakespeare b:hasChild _:a. _:a rdf:first b:Susanna. _:a rdf:rest _:b. _:b rdf:first b:Judith. _:b rdf:rest _:c. _:c rdf:rest rdf:nil. _:c rdf:first b:Hamnet.
References [1] David Poole and Alan Mackworth, Artificial Intelligence: Foundations of Computational Agents, Cambridge University Press, 2010, http://artint.info/ [2] http://www.w3.org/TR/swbp-n-aryRelations/ [3] RDF 1.1 Primer, W3C Working Group Note, 24 June 2014 [4] Semantic Web for the Working Ontologist, Second Edition: Effective Modeling in RDFS and OWL, May 20, 2011, by Dean Allemang, James Hendler