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) |
| 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 | |