CoreModel


The S3DB application relies on an underlying Core Model, documented in PLoS ONE (2008) 3(8): e2946, that formalizes a common representation format which can be interpreted across S3DB Deployments. Although the S3DB application has some parallels with RDF triple stores, it constrains the triples that can be declared to instances of entities of the Core Model. The Core Model therefore formalizes these entities and the relationships between them. We use RDFS (RDF Schema) sparsely where an small degree of inference can save the need to specify all the triples. 

The 7 entities allowed by the Core Model are: Deployment, User, Project, Collection, Rule, Item and Statement. The relationships between the elements are described in fig. 1.


Figure 1. Core model developed for S3DB (supported by version 3.0 onwards). This diagram can be read starting from the most fundamental data unit, the Attribute-Value pair (filled hexagonal and square symbols). Each element of the pair is object of two distinct triples, one describing the domain of discourse, the Rules, and the other made of Statements where that domain is populated to instantiate relationships between entities. The latter includes the actual Values. Surrounding these two nuclear collection of triples, is the resolution of Collection and its instantiation as Item that define the relationship between the individual elements of Rules and Statements. The resulting structure is then organized in Projects in such a way that the domain of discourse can nevertheless be shared with other Projects, in the same or in a distinct deployment of S3DB. Finally, a propagation of user permissions (dashed line) is defined such that the distribution of the data structures can be traced. See text for a more detailed description. This is a refined version of the Core Model as described in  PLoS ONE (2008) 3(8): e2946.

S3DB Entities and relationships


S3DB defines two rdfs:Class - entities and relationships

s3db:entity a rdfs:Class ;
rdfs:label "S3DB entity" ;
rdfs:comment "The class of all entities from the S3DB core model" .

s3db:relationship a rdfs:Class ;
rdfs:label "S3DB relationship" ;
rdfs:comment "The class of all relationships between entities of the S3DB core model" .


S3DB entities


s3db:deployment rdfs:label "S3DB Deployment" ;
rdfs:comment "The physical location of an S3DB Deployment" ;
rdfs:subClassOf s3db:entity .

s3db:project rdfs:label "S3DB Project" ;
rdfs:comment "A contextualizer entity; can be used as the common attribute in a list of instances of s3db:rules describing the same domain" ;
rdfs:subClassOf s3db:entity .

s3db:rule rdfs:label "S3DB Rule" ;
rdfs:subClassOf s3db:entity ;
rdfs:comment "A triple describing an attribute from the domain; the subject of the s3db:Rule is an instance of s3db:collection, the predicate is an instance of s3db:item and the object may either be an instance of s3db:collection or a literal value" .

s3db:collection rdfs:label "S3DB Collection" ;
rdfs:subClassOf s3db:entity ;
rdfs:comment "The subject of an instance of s3db:rule" .

s3db:item rdfs:label "S3DB Item" ;
rdfs:subClassOf s3db:entity ;
rdfs:comment "The subject of an instance of s3db:statement" .

s3db:statement rdfs:label "S3DB Statement" ;
rdfs:subClassOf s3db:entity ;
rdfs:comment "A triple describing an attribute/value pair; the subject of an  an instance of s3db:Statement is an instance of s3db:item, the predicate is an instance of s3db:rule and the object can either be an  an instance of s3db:item or a literal, according to the object used in the predicate s3db:rule" .

s3db:user rdfs:label "S3DB User" ;
rdfs:subClassOf s3db:entity ;
rdfs:comment "The subject of a permission assignment operation" .

S3DB relationships

The relationship between S3DB entities is defined by the following statements:

s3db:DP rdfs:subClassOf s3db:relationship ;
rdfs:domain s3db:deployment ; 
rdfs:range s3db:project.

s3db:PC rdfs:subClassOf s3db:relationship ;
rdfs:domain s3db:project ; 
rdfs:range s3db:collection .

s3db:PR rdfs:subClassOf s3db:relationship ;
rdfs:domain s3db:project ; 
rdfs:range s3db:rule .

s3db:CI rdfs:subClassOf s3db:relationship ;
rdfs:domain s3db:collection ; 
rdfs:range s3db:item .

s3db:Rsubject rdfs:subClassOf s3db:relationship ; 
owl:inverseOf rdf:subject ; 
rdfs:domain s3db:collection ; 
rdfs:range s3db:rule .

s3db:Robject rdfs:subClassOf s3db:relationship ; 
owl:inverseOf rdf:object ; 
rdfs:domain s3db:collection ; 
rdfs:range s3db:rule .

s3db:Rpredicate rdfs:subClassOf s3db:relationship ; 
owl:inverseOf rdf:predicate ; 
rdfs:domain s3db:item ; 
rdfs:range s3db:rule .

s3db:Spredicate rdfs:subClassOf s3db:relationship ; 
owl:inverseOf rdf:predicate ; 
rdfs:domain s3db:rule ; 
rdfs:range s3db:statement .

s3db:Ssubject rdfs:subClassOf s3db:relationship ; 
owl:inverseOf rdf:subject ;
rdfs:domain s3db:item ;
rdfs:range s3db:statement .

s3db:Sobject rdfs:subClassOf s3db:relationship ; 
owl:inverseOf rdf:object ; 
rdfs:domain s3db:item ;
rdfs:range s3db:statement .

s3db:DU rdfs:subClassOf s3db:relationship ; 
rdfs:domain s3db:deployment ; 
rdfs:range s3db:user .

s3db:UU rdfs:subClassOf s3db:relationship ; 
rdfs:domain s3db:user ; 
rdfs:range s3db:user .






ċ
s3dbcore.n3
(3k)
Helena Deus,
Dec 8, 2010, 9:54 AM
ċ
s3dbcore.rdf
(7k)
Helena Deus,
Dec 8, 2010, 9:54 AM
Comments