HCLSIG/SWANSIOC/Actions/Alignment/EmbedsKnowledge
Discourse Elements as collection of triples in SWANSIOC
Overview
The following notes introduce the use of a SIOC 'embedsKnowledge' property that have been used in a particular Semantic Wiki system -- UfoWiki - http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-360/paper-19.pd -- and that permits to link a sioc:Item to a set of triples that it contains. Originally, this property was introduced to model facts like :
"AlexandrePassant rdf:type foaf:Person" have been created from that particular wiki page, written by X on time T.
It seems really near to the principles of SWANSIOC, especially regarding to Discourse elements.
Model and practical RDF representation
The embedsKnowledge property is defined as follows:
- Domain: sioc:Item
- Range: URI of an RDF Graph (not sure how to model this in RDFS/OWL, but it could be http://www.w3.org/2004/03/trix/rdfg-1/Graph)
The following schema examplifies the use of embedsKnowledge in that particular wiki system
As seen, for practical reasons, there are 2 (at least) documents for each WikiPage (or Discourse element):
- One document that describe the Wiki page itself, using SIOC: its description, its author, date ...
- One document that describe the set of triples that have been created from that document. This document is also available at a given HTTP URL - which is, by extension, the URI of the related graph.
- The link between both is modeled thanks to this embedsKnowledge property.
(NB: I implemented this wiki in Drupal, so can certainly help re. SCF integration)
Eg:
- A user write some facts in a document the HTML representation of the page is http://example.org/post/1/
- An RDF document containing the description of that document / item is available at http://example.org/post/1/sioc
- An RDF document containing the triples that model the 'content' of the document is available at http://example.org/post/1/data
The documents contain the following statements
http://example.org/post/1/sioc
<http://example.org/post/1/> a sioc:Item ; sioc:has_creator <http://example.org/user/1>; dc:title "Some random title" ; sioc:embedsKnowledge <http://example.org/post/1/data> .
http://example.org/post/1/data
ProteinX foo:bar ProteinY ; ProteinY foo:bar ProteinZ ;
Then, when those files are put in a RDF store, we'll have quads like:
graph | S | P |
http://example.org/post/1/sioc | a | |
http://example.org/post/1/sioc | dc:title | |
http://example.org/post/1/sioc | sioc:has_creator | |
http://example.org/post/1/sioc | sioc:embedsKnowledge | |
http://example.org/post/1/data | AlexandrePassant | a |
http://example.org/post/1/data | ProteinX | foo:bar |
http://example.org/post/1/data | ProteinY | foo:bar |
We can use SPARQL queries to find, e.g. all uers that created certain type of facts, of even users that created facts involving a certain protein:
SELECT ?people WHERE { ?x a sioc:Item ; sioc:has_creator ?people ; sioc:embedsKnowledge ?g . GRAPH ?g { <proteinX> ?p ?o } }
Going further, as one discourse element might be inconsistentWith another one, we can find, e.g. all the statements inconsistent with a certain triple
SELECT ?x WHERE { ?x a sioc:Item ; sioc:has_creator ?people ; swan:inconsistentWith ?y ; ?y s sioc:Item ; sioc:embedsKnowledge ?g . GRAPH ?g { <proteinX> foo:bar <proteinY> } }
RDF/XML serialization
When querying or reasoning on metadata from the semantic web, the source of this metadata can be of great importance. While the SPARQL query language provides a keyword to match patterns against named graphs, the RDF data model focuses on expressing triples. In many cases it is interesting to augment these RDF triples with the notion of a graph for each triple (or set of triples). This document http://www.w3.org/Submission/rdfsource/ proposes an RDF/XML syntax extension providing an attribute to specify the graph of triples in an RDF/XML representation.