Work | Research | RDF | XRM

This is the first XRM design exercise. It is an attempted mapping between the database tables ODBM_PageSeries, ODBM_Pages, and ODBM_Comments and the appropriate rdf classes and properties. It is important to use Dublin Core and other standards as much as possible for all common pieces of information. The goal is to design the data objects necessary to portray pages functionality against an rdf data store. It will be implemented on APP.

Table Name
Column Description Example Value Becomes Example Value
PageSeries
ID   1 see below  
DirPath directory path / see below  
Name file name example.html subject resource uri http://fqdn/example.html
Title by default, extracted from html title element example dc:title example
Description     dc:description  
Protected   1 sky:protected 1
Password This should be encrypted. Use this same predicate for user instance resource password storage. swordfish sky:password swordfish (or encrypted equivalent)
DeltaMS A duration. How far out to schedule a new time variant. 864000 sky:newVariantDelta (a refinement of http://www.w3.org/TR/xmlschema-2/#duration) PT1D
StationeryURL Where to find the content for each new variant. Refinement of dc:uri.   sky:stationeryURL  
PostStationeryURL Where to find the content for each new blog post. Refinement of dc:uri.   sky:postStationeryURL  
ArchiveTemplateStationeryURL | PostTemplateStationeryURL Where to find the content for each new blog or aggregator template. Refinement of dc:uri.   sky:archiveTemplateStationeryURL | sky:postTemplateStationeryURL  
CSSURL Refinement of dc:uri.   sky:CSSURL  
seriesType     New classes: sky:PageSeries, sky:Blog, sky:Aggregator  
numDays Another duration. Number of days to show in the archive view.   sky:archiveRange  
view Archive mode.   sky:archiveView  
allowCommentary A possible new property. Various settings could allow or disallow comments from anonymous guests, registered users, subscribers to the page, or page authors/editors/publishers.   sky:allowCommentary  
Moderation The moderation flag. If set on, the app will not post new comments until they are approved by a user with the appropriate privilege. Of course, users that have that privilege will go through automatically.
This flag only applies to messages that are not refused outright. See sky:allowCommentary.
  sky:allowModeration  
creationMS This column becomes necessary after taking this info out of the file name and replacing it with version numbers.   dc:creation  
Comment The application-internal, admin/author only description.   sky:privateDescription  
Join to SyndicationID The aggregator's relation to its syndications.   sky:hasSubscription (syndication resource uri)  
Join to UserID Authorship.   dc:creator, dc:contributor (user instance resource uris)  
Join to Category Faceted Categorization   dc:subject  
Join to Pages     dc:hasVersion  
Pages
Column Description Becomes
ID   see below
PageSeriesID   dc:isVersionOf (PageSeries resource uri)
Name   subject resource uri (could be in diff dir, diff domain, diff machine, etc.)
Title   dc:title
Description   dc:description
Hits Becomes referer log, kept as statements about this resource. (Later relate to request resources for tracking of ip/hostname, browser, os, etc.) dc:isReferencedBy
Links A possible new prop to track links from this resource to another. Javascript in the page could even log when links are followed, based on a series setting. dc:references
versionMajor   sky:versionMajor
versionMinor   sky:versionMinor
Priv Necessary privilege to view (or edit?) this resource. Perhaps move this to series level. Check usage. sky:privilegeRequired
creationMS This column becomes necessary after taking this info out of the file name and replacing it with version numbers. dc:creation
MSStart   see below
TZID   dc:available
File in filesystem The actual resource content shall be stored, exclusively or redundantly, in the database, for full text searching and other analyses. sky:content
Comment Isn't there a dc:comment? No, rdfs:comment is used for documenting the schema. sky:privateDescription
Status This column/property wil be integrated with customizable workFlows. sky:status
MSLocked   sky:lockedAt
MSActive   sky:activeAt
LockUserID   sky:hasLockingUser (locking user's instance resource uri)
PageType These would be element classes, not properties. sky:Page
sky:BlogPost
sky:BlogPostTemplate
sky:BlogArchiveTemplate
sky:AggregatorItemTemplate
sky:AggregatorArchiveTemplate
Comments
Where will these be made available as uris? In /timelines/comments?
Column Description Becomes
ID   comment resource uri
PageID   sky:isCommentOn (page resource uri)
UserID   dc:creator (user resource uri)
ReplyToID   sky:isReplyTo (another comment resource uri)
Name That is, the submitting user's name. sky:hasCommentorName (name resource uri)
Email The submitting user's email. sky:hasCommentorEmail (email resource uri)
Title The subject line of the comment. dc:title
CommentText The body of the comment. sky:content
creationMS Possibly redundant with dc:available or dc:dateSubmitted. Big deal. dc:creation
MSStamp If tentative/moderation switched on, use dc:dateSubmitted and dc:dateApproved instead. Where is the moderation flag, anyway? dc:available
SignalLevel Rating. sky:rating? (more likely a semantic with a rating)
PrivLevel Will this exist in a join to users? Probably the user will have a statement about this comment resource to indicate that user's privilege. dc:accessRights
Comment   sky:privateDescription
http://purl.org/dc/elements/1.1/
Element Use Suggestion Mentioned above
title   Yes
creator relation to owning user instance resource Yes
subject relation to semantic/faceted categorization No. No categorizations have been modelled yet.
description   Yes
publisher relation to the site instance resource No. There is no site resource yet.
contributor relation to other authoring users' instance resources Yes
date look for further refinements of this below Not specifically, but to refinements.
type Maybe page series or blog? Need examples. No
format html, xml, pdf, gif, etc.; MIME type
It is vital to separate the file type extension from the generic name of the resource, in order to be able to offer different format versions. Work this in at earliest possible stage.
Not yet.
identifier this is refined below into such things as URI, ISBN, etc. Not specifically, possibly as refinement.
source Either the generic URI or the URI of the first variant in the series? Need example, possibly redundant with isVersionOf. No
language Very important for language variants. Where does this go in? How do we distinguish lang-generic from lang-variant? If the language matches site preference? Is this redundant with xml:lang? Not yet.
relation Needs refinement, probably semantics. Need example. Is this the thing to extend for all other relations? No
coverage Probably a duration, needs refinement. Need example. No
rights   No
http://purl.org/dc/terms/
Term Use Suggestion Mentioned above
audience   No
alternative An alternate title for the resource. How is this different from an Alt container? No
tableOfContents If formalized or automated in the content of the resource, this could be generated by analysis. No
abstract A summary of the contents, brief description. Esp. useful for feeds/ToCs. Vital. Not yet.
created The creation date of the resource. Yes.
valid Date range of validity; use for scheduling? No, available is closer to that meaning. Possible use for event scheduling. Or something. Scheduling when info about an event will be published (i.e. available) should be separate from when the event will occur/take place. No
available Date range of availability. This is a better match for scheduling. Yes
issued Date of publication. No
modified Good to have a formal place to publish this. Put it in somewhere. Might be redundant with workFlow logging. Probably a good idea to have a statement about the latest change in the resource for at-a-glance usage, like status. Not yet.
extent Duration of resource (like running time). Need example. Page count? No
medium   No
isVersionOf Implies changes in content, not format. Perfect for time variants to point at generic. Yes
hasVersion The inverse. Yes
isReplacedBy Possible for one time variant to point at the next. No
replaces And vice versa. No
isRequiredBy Possible for generic to point at variants, to formalize dependance logic. No
requires And vice versa. No
isPartOf For fragments, to indicate the templates in which they are included. Not yet.
hasPart For templates, to indicate the fragments they include. Not yet.
isReferencedBy To track linkage to this resource from others. Generate this from referer log. Not yet.
references To track what resources are linked to from this resource. Not yet.
isFormatOf For language variants to relate to lang-generic time variant. Not yet.
hasFormats And vice versa. Not yet.
conformsTo   No
spatial refines coverage No
temporal refines coverage No
mediator   No
dateAccepted For tentative/moderated comments, posts, edits, etc. Yes
dateCopyrighted   No
dateSubmitted For tentative/moderated comments, posts, edits, etc. Yes
educationLevel   No
accessRights Relate to privilege structure for (a) user/group(s)? Yes
bibliographicCitation   No
Edit  |  workFlow  |  Subscribe
Language: fr  | it  | de  | es  | pt  | ar  | he  | da  | nl  | zh  | ja  | ko  | none 
Author: dtd
skyCalendar

This Version:
Archived at: https://www.skybuilders.com/Users/Derek/research/xrmfirststep.20030624120845.html
Next Version:

Requests
 Version: 568 | Series: 2461 

Search: Site | Web | Groups