HCLSIG/SWANSIOC/Actions/Alignment/EmbedsKnowledge

From W3C Wiki

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:

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:

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.