primary
Denotes the primary variant that concretely represents the resource.
- Sub-property of:
ci:variant
https://vocab.methodandstructure.com/content-inventory#ciThis vocabulary defines a number of concepts peculiar to content strategy which are not accounted for by other vocabularies.
Such vocabularies include, but are far from limited to:
This document is organized in terms of Classes, Properties, Individuals, and an appendix for the Data Structure Definition for quantitative content analytics. Terms are organized topologically first, and alphabetically second.
There are currently many extant vocabularies that deal with documents and related entities. The classes here are those that aren't otherwise accounted for.
This diagram shows the classes and properties defined in this document using solid lines, and third-party classes and properties using dashed lines.
These classes enable the assignment of specific things to do to a document.
ActionAn action, as its name implies, is meant to represent something a person or other agent ought to do to a document.
ev:EventMergeIn order to merge a document, we must define the target to which it ought to be merged. This class is identical to an Action, save for such a property.
ci:Actionci:targetOntologies like BIBO are far from exhaustive in their breadth of document types, so any additional salient document types will go here.
AbstractThis is an explicit document abstract/executive summary class, intended to belong to BIBO, which appears to be abandonware.
bibo:DocumentPartAdvertisementIn general there is no programmatic way to tell whether a resource is an advertisement, since advertisements on the Web look (to a machine) like any other resource. This is intended to be a decorator class to indicate that the subject is an advertisement. It can therefore be combined with other classes such as foaf:Image, or bibo:AudioVisualDocument.
@prefix bibo: <http://purl.org/ontology/bibo/> . @prefix dct: <http://purl.org/dc/terms/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ci: <https://vocab.methodandstructure.com/content-inventory#> . <https://example.club/17-mindblowing-ways-to-write-listicles> a bibo:Article ; dct:title "17 Mindblowing Ways to Write Listicles!"@en ; dct:hasPart <https://adtech.biz/assets/punch-the-monkey> . <https://adtech.biz/assets/punch-the-monkey> a foaf:Image, ci:Advertisement ; dct:title "Punch The Monkey And WIN!#@$!%%^!"@en .
foaf:DocumentAppendixThis is an explicit document appendix class, intended to belong to BIBO, which appears to be abandonware.
bibo:DocumentPartBlockThis is intended to represent a generic block-level segment, such as a paragraph, list, figure, or table.
bibo:DocumentPartSectionThis is an explicit document section (i.e., sub-chapter) class.
bibo:DocumentPartTemplateA template operates over some input format.
foaf:DocumentclassresourceThis section is for classes that have to do with creating content that can vary. Currently the only class defined is ci:Variable, which is a way to refer to values which are defined elsewhere and thus can maintain their consistency across the document.
VariableIdentifies a variable which can be embedded into a document and assigned an rdf:value.
Consider the markup:
<p about="https://example.biz/ratecard#">Shingy's bill-out rate is <span rel="dct:references"> <var about="#rate" typeof="ci:Variable" property="rdf:value" datatype="xsd:decimal">100.00</var> <var about="#unit" typeof="ci:Variable" property="rdf:value" datatype="xsd:token">USD</var> </span> per hour.</p>
…which when parsed will produce the statements:
@base <https://example.biz/ratecard#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix dct: <http://purl.org/dc/terms/> . @prefix ci: <https://vocab.methodandstructure.com/content-inventory#> . <> dct:references <#rate>, <#unit> . <#rate> a ci:Variable ; rdf:value "100.00"^^xsd:decimal . <#unit> a ci:Variable ; rdf:value "USD"^^xsd:token .
rdf:valueClasses involved in describing audiences will go here.
AudienceAn audience represents the set of people who are the intended recipients of the resource. This class is at once an agent class as well as a conceptual entity, capable of being mixed into a SKOS concept scheme.
dct:AgentClassskos:Conceptci:recognizesci:understandsci:valuesci:eschewsci:exemplardct:audienceorg:RoleRoleThis class maps to org:Role so that it can be treated as a subclass of ci:Audience.
ci:Audienceorg:RoleAfter a content inventory comes an audit, wherein we figure out what we want to do with the content. The following properties govern who the document is (not) for and what outcome it is supposed to accomplish.
desired-outcomeThis property is intended to indicate what the document is supposed to do—what material effect it is supposed to produce. It is intentionally open-ended, and as such can point to something like a skos:Concept, another document, or a literal string of text describing the outcome.
@prefix bibo: <http://purl.org/ontology/bibo/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ci: <https://vocab.methodandstructure.com/content-inventory#> .
@prefix eg: <https://backoffice.example.club/concepts/> .
# we can extend our article metadata the following way:
<https://example.club/17-mindblowing-ways-to-write-listicles> a bibo:Article ;
dct:title "17 Mindblowing Ways to Write Listicles!"@en ;
ci:desired-outcome eg:maximize-clicks .
# and create a corresponding resource to unambiguously identify the goal:
eg:maximize-clicks a skos:Concept ;
skos:prefLabel "Maximize Clicks"@en ;
skos:definition "Moar clicks means moar monies."@en .
foaf:Documentdct:typenon-audienceThis property complements dct:audience insofar as enabling the author or editor to designate a set of entities who are explicitly not the intended audience of the document.
foaf:Documentdct:AgentClassdct:audienceA content audit will generate actionable tasks on some subset of the inventoried documents. Use ci:action to relate a document to an action, including one or more of the actions specified in this document. A ci:Merge is a special kind of ci:Action that takes a ci:target, as in the following example:
@prefix bibo: <http://purl.org/ontology/bibo/> . @prefix bs: <http://purl.org/ontology/bibo/status/> . @prefix ci: <https://vocab.methodandstructure.com/content-inventory#> . <https://example.club/our-team> a bibo:Webpage ; bibo:status bs:published, ci:obsolete ; ci:action <tag:example.club,2020-01:content-inventory/merge/our-team> . <tag:example.club,2020-01:content-inventory:merge:our-team> a ci:Merge ; ci:target <https://example.club/about> .
This example is in Turtle syntax. It is stating that the published document at https://example.club/our-team is obsolete and should be merged into https://example.club/about. A tag: URI was chosen to identify the merge, to reinforce the idea that it is just a piece of data and not a Web page (although one could imagine representing it as one).
actionRelates a document to an action to take.
foaf:Documentci:Actionev:factor_oftargetSpecify the URI of the target resource into which this document should be merged.
ci:Mergefoaf:DocumentThese properties have to do with mapping templates to the resources that they transform.
classAn rdfs:Class associated with a ci:Template.
ci:Templaterdfs:ClassresourceA particular rdfs:Resource to be transformed by a ci:Template.
ci:Templaterdfs:ResourceDocuments, if they don't explicitly mention, certainly allude to concepts. Certain documents may introduce or define a concept, making it suitable introductory material. Still other documents may evoke images or concepts which members of the audience are actually trying to avoid. The following properties relate documents to concepts, specifically whether a document mentions, introduces, evokes without mentioning, or otherwise assumes a level of understanding on the part of the audience.
The concepts themselves belong to an ordinary SKOS concept scheme, and can be reasoned over using their ordinary semantic relations (skos:broader, skos:narrower, skos:related).
mentionsThe document explicitly mentions this concept.
foaf:Documentskos:Conceptdct:referencesdepictsThe document explicitly depicts this concept (or other entity).
foaf:Documentdct:referencesfoaf:depictsintroducesThe document defines, describes, or otherwise introduces the audience to this concept.
foaf:Documentskos:Conceptci:mentionsassumesThe document assumes the audience is familiar with this concept, and may not mention it explicitly.
foaf:Documentskos:Conceptdct:referencesdct:educationLevelevokesThe document evokes the given concept without mentioning it explicitly.
foaf:Documentskos:Conceptci:assumesOn the other side of the relationships between documents and concepts, are the relationships between audiences and concepts. In order to get any use out of a document, it is safe to assume a person has to understand it, which they won't if the document deals with concepts the person doesn't understand, unless the document specifically contains content explaining those concepts. Conversely, a person may understand a concept all too well, and have an opinion about it, which will entice them to either seek out or avoid documents that deal with those concepts. These properties are intended to model both the audience's grasp of, and emotional valence toward, a given concept.
Intersecting the concept relations declared on the documents in our inventory with the following properties declared on our audiences will enable us to construct appropriate pairings of content to audiences, and/or root out gaps in our assumptions about both our content and our audiences.
@prefix bibo: <http://purl.org/ontology/bibo/> . @prefix dct: <http://purl.org/dc/terms/> . @prefix ci: <https://vocab.methodandstructure.com/content-inventory#> . @prefix dbc: <https://dbpedia.org/page/Category:> . <https://example.news/2020/01/gruesome-car-accident> a bibo:Article ; dct:title "Gruesome Car Accident Gruesomely Kills 42"@en ; ci:depicts dbc:Traffic_collisions, dbc:Road_incident_deaths . # we could define the following audience: <https://example.news/audience/squeamish-person> a ci:Audience ; ci:eschews dbc:Accidents, dbc:Injuries, dbc:Death, dbc:Violence . # over at DBPedia, there is the following relation: dbc:Traffic_collisions skos:broader dbc:Accidents . # that statement is enough to match the audience, but this chain # would match it too: dbc:Road_incident_deaths skos:broader dbc:Deaths_by_cause . dbc:Deaths_by_cause skos:broader dbc:Causes_of_death . dbc:Causes_of_death skos:broader dbc:Death . # from this we can reason (programmatically) that the article is not # appropriate for the given audience and append the following statement # to the article's metadata: <https://example.news/2020/01/gruesome-car-accident> ci:non-audience <https://example.news/audience/squeamish-person> .
References to DBPedia concepts have been linked to demonstrate that concepts can also be rendered as Web pages, as well as cross domains.
recognizesThis property relates a ci:Audience to a skos:Concept that is likely to be in the orbit of the audience's members: they are aware that the concept exists, although they may not necessarily understand it.
ci:Audienceskos:Conceptskos:semanticRelationci:aware-ofci:recognized-byrecognized-byRelates a skos:Concept to a ci:Audience that recognizes it.
skos:Conceptci:Audienceskos:semanticRelationci:recognizesunderstandsThis property relates a ci:Audience to a skos:Concept that members of the audience are known to comprehend, and thereby do not need any additional explanation.
ci:Audienceskos:Conceptci:recognizesci:understood-bydct:educationLevelunderstood-byRelates a skos:Concept to a ci:Audience that understands it.
skos:Conceptci:Audienceci:recognized-byci:understandsvaluesThis property relates a ci:Audience to a skos:Concept that members of the audience are known to value, that is, to find meaningful in an axiological sense.
ci:Audienceskos:Conceptci:recognizesci:valued-byci:eschewsvalued-byRelates a skos:Concept to a ci:Audience that values it.
skos:Conceptci:Audienceci:recognized-byci:valued-byci:eschewed-byeschewsThis property relates a ci:Audience to a skos:Concept that members of the audience are known to actively avoid or regard with contempt. This relation is intended to represent the complement of values.
ci:Audienceskos:Conceptci:recognizesci:eschewed-byci:valueseschewed-byRelates a skos:Concept to a ci:Audience that eschews it.
skos:Conceptci:Audienceci:recognized-byci:eschewsci:valued-byexemplarThis property relates an ci:Audience to a specific foaf:Person who is an exemplar of the audience.
ci:Audiencefoaf:Personskos:exampleci:exemplifiesexemplifiesRelates a foaf:Person who is an example member of a ci:Audience.
foaf:Personci:Audienceskos:exampleci:exemplarOne of the details we want in a content inventory is the set of hyperlinks going out of a document, including whether or not the user can see them, and what kind of links they are. These next few terms extend Dublin Core with that additional information.
@prefix ci: <https://vocab.methodandstructure.com/content-inventory#> . # This statement relates a resource to its canonical address: <https://example.club/seventeen-mindblowing-ways-to-write-listicles> ci:canonical <https://example.club/17-mindblowing-ways-to-write-listicles> . # here we define a slug and aliases: <https://example.club/17-mindblowing-ways-to-write-listicles> ci:canonical-slug "17-mindblowing-ways-to-write-listicles"^^xsd:token ; ci:alias <https://example.club/seventeen-mindblowing-ways-to-write-listicles>, <https://short.nr/aXbQ1> . # one of these alias clauses is implied by the other statement, as # ci:canonical is a subproperty of ci:alias-for, which is the inverse # of ci:alias.
embedThis property specifies an embedded resource, such as an image, which is visible on the document's canvas.
foaf:Documentdct:hasPartformThis property specifies form target, which may or may not be visible to the user.
foaf:Documentci:linkincludeThis property specifies a related resource which is not directly visible to the user.
foaf:Documentdct:requireslinkThis property specifies an ordinary hyperlink, which is visible on the document's canvas.
foaf:Documentdct:referencesResources on the Web tend to be identified by more than one URI. The following properties extend the owl:sameAs property to indicate a definite direction of canonicality, and throw in another couple of properties to capture the same idea for the terminal slug
of the URI path, i.e., /this/thing/here. An example use case for these properties is the generation of rewrite maps.
aliasDenotes an alternate URI for the subject resource. It extends owl:sameAs insofar as asserting that the object is somehow less canonical
than the subject.
owl:sameAsci:alias-foralias-forDenotes that the subject is the alias URI, and the object is more canonical
(though not necessarily the most canonical).
owl:sameAsci:aliasci:canonicalrepresentationDenotes a resource that is a concrete representation of the subject, which assumed to be more abstract.
dct:hasFormatvariantDenotes a resource that is a variant of a concrete representation of the subject, which assumed to be more abstract.
dct:hasFormatci:representationprimaryDenotes the primary variant that concretely represents the resource.
ci:variantcanonicalAsserts the canonical URI of the subject resource, i.e., the one you always want to publish in content or redirect Web requests to.
ci:alias-forslugThe slug is a text token which represents either the full path or terminal path segment of an HTTP(S) URL by which a resource can be located. This property is mainly for the purpose of archiving old or alternative URL paths in a content inventory, for such tasks as generating URL rewriting maps.
dct:identifierxsd:stringcanonical-slugThis is the canonical slug associated with the resource, and should be populated with the slug which is actually in use.
ci:slugxsd:stringfragmentThis property relates a subject to one of its fragments.
dct:hasPartci:fragment-offragment-ofThis property asserts that the subject should be treated as a fragment of the document it relates to.
dct:isPartOfci:fragmentindexedThis is a boolean value to indicate whether or not a resource ought to be indexed. It does not necessarily ascribe a policy: an absence of an explicit true value does not necessarily imply the resource ought not be indexed, but the presence of a false value probably should.
xsd:booleanThis document defines a set of values useful for describing the status of documents and actions to take with them.
The following bibo:DocumentStatus entities are supplied in addition to the statuses specified by the Bibliography Ontology.
emptyThe document contains no content.
incompleteThe document has been started, but is clearly not finished.
incorrectThe content of this document is factually wrong.
obsoleteThe content of this document was correct and relevant at one point, but external circumstances have caused it to lapse in relevance or factual accuracy.
landingThe resource is a landing page from some other medium (e.g. e-mail, television, billboard). This status is a hint to automated systems which would otherwise orphan or retire a landing page with no inbound links.
orphanThe resource is not explicitly pending or removed from publication, however it has managed to be disconnected from the rest of the site: There is no path to it from a landing page, and it is not a landing page on its own. That is to say that the resource either has no inbound links, or if it does, those links are from other resources that are in the same situation. Documents which are only linked from retired documents are also considered orphans.
confidentialThe document is confidential and not for publication.
circulatedThe document is available for select people to see, but not published
in the strict literal sense.
retiredThe document has been explicitly retired by an editor or curator, but still exists in the archive.
The following is a list of ci:Action entities to be used with the ci:action property.
keepKeep this document to which this is associated; make no changes to it at this time.
splitSplit this document into multiple pieces.
tentative-mergeMerge this document into some other document, though unspecified at this time as to which.
update-metadataUpdate the metadata of this document, such as keywords, audience, etc.
proofreadProofread this document.
reviseRevise or restructure this document.
rewriteRewrite this document from scratch.
retireRemove all references to this document and consign it to the archive.
ARIA roles are for demarcating the semantics of elements in HTML/XML markup using the role attribute.
linksThis a role to identify a particular HTML element (e.g. a <nav> element) as a designated container for additional links that are not represented in the markup.
backlinksThis a role to identify a particular HTML element (e.g. a <nav> element) as a designated container for backlinks.
ci:linksThere are many ways to measure a set of Web pages that give valuable insight into not only the individual character of each page, but also the character of an entire site.
We use the RDF Data Cube vocabulary to specify the quantitative metrics we gather over our documents.
The following object is an instance of qb:DataStructureDefinition. It depicts the dimensions, measures and attributes for qb:DataSets that carry the relevant statistical data. (This particular data structure only contains dimensions and measures.)
words-and-blocksA set of descriptive statistics pertaining to the number of words per block of text in a given document.
The set of all qb:DimensionProperties for a given data structure can positively identify an observation. We currently only specify one dimension, the URI of the document in question.
documentDocument Reference
qb:Observationfoaf:DocumentThe qb:MeasureProperties are what define the data observed in a qb:Observation. Here we are interested in a five-number summary, along with the mean and standard deviation of block sizes (in words) found in a given document.
sectionsFor document types that have a concrete representation of sections, this property may be used to capture their sum.
foaf:Documentxsd:nonNegativeIntegerblocksA block count is conceptually similar to a word or section count, though it counts the total of elements in the document considered to be text blocks, such as paragraphs, tables, lists and figures. It is suited for document types that have no concept of (semantic) sections, such as HTML. The purpose of this measurement is to provide a sort of ratio to the word count, to glean how well-proportioned the document is.
qb:Observationxsd:nonNegativeIntegerwordsThis indicates the number of words in a document, similar to the familiar function in a word processor. The exact method of counting words may vary by document type, language etc., and is thus out of scope from this document.
qb:Observationxsd:nonNegativeIntegercharactersThis indicates the number of characters in a document, with punctuation and the XPath normalize-space function applied. Note this is characters, not bytes.
qb:Observationxsd:nonNegativeIntegerimagesThis indicates the number of images in the document.
qb:Observationxsd:nonNegativeIntegervideosThe number of videos in the document.
qb:Observationxsd:nonNegativeIntegerembedsThe number of embeds in the document.
qb:Observationxsd:nonNegativeIntegertablesThe number of tables in the document.
qb:Observationxsd:nonNegativeIntegerlistsThe number of lists in the document.
qb:Observationxsd:nonNegativeIntegerformsThe number of forms in the document.
qb:Observationxsd:nonNegativeIntegerscriptsThe number of scripts in the document.
qb:Observationxsd:nonNegativeIntegerstylesheetsThe number of stylesheets in the document.
qb:Observationxsd:nonNegativeIntegeroutdegreeThe number of links emanating from the specified resource.
qb:Observationxsd:numberindegreeThe number of links pointing at the specified resource.
qb:Observationxsd:numberminThe smallest observation in the sample.
qb:Observationxsd:numberlow-quartileEquivalent to the bottom quarter, or 25th percentile, of the observed data.
qb:Observationxsd:numbermedianThe median of a population
qb:Observationxsd:numberhigh-quartileThird Quartile
qb:Observationxsd:numbermaxMaximum
qb:Observationxsd:numbermeanMean
qb:Observationxsd:numbersdStandard Deviation
qb:Observationxsd:numberThis document is copyright 2010-2025 Dorian Taylor, available under a Creative Commons Attribution 2.5 Canada license, where attribution is defined as a link here.