Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/doriantaylor/owl-content-inventory
A Content Inventory Vocabulary
https://github.com/doriantaylor/owl-content-inventory
Last synced: about 1 month ago
JSON representation
A Content Inventory Vocabulary
- Host: GitHub
- URL: https://github.com/doriantaylor/owl-content-inventory
- Owner: doriantaylor
- License: apache-2.0
- Created: 2022-04-26T19:28:55.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-10T17:33:56.000Z (11 months ago)
- Last Synced: 2024-03-10T18:40:50.074Z (11 months ago)
- Language: Makefile
- Size: 143 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Author
Dorian TaylorVersion
0.14Created
January 23, 2012[Updated](https://vocab.methodandstructure.com/content-inventory#sec-changelog)
November 2, 2022Namespace URI
[`https://vocab.methodandstructure.com/content-inventory#`](https://vocab.methodandstructure.com/content-inventory#)Preferred Namespace Prefix
`ci`Imports
OWLThis 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:
- Dublin Core
Terms provide basic bibliographic metadata,
- The
Bibliography
Ontology provides additional bibliographic metadata plus dozens
of useful document types,
- FRBR Core and
Extended
provides terms for modeling even more sophisticated intertextual
relations,
- SKOS provides a
rich substrate for concept schemes and taxonomies,
- Friend of a
Friend and
The
Organization Ontology give us models of people and business
entities,
- The Event Ontology enables the modeling
of processes, factors, and outcomes,
- The
Provenance Ontology gives us a vocabulary for recording the
handling of content over time,
- The
Data Cube
Vocabulary organizes quantitative and statistical data.This document is organized in terms of
[Classes](https://vocab.methodandstructure.com/content-inventory#sec-classes),
[Properties](https://vocab.methodandstructure.com/content-inventory#sec-properties),
[Individuals](https://vocab.methodandstructure.com/content-inventory#sec-individuals),
and an appendix for the [Data Structure
Definition](https://vocab.methodandstructure.com/content-inventory#sec-dsd)
for quantitative content analytics. Terms are organized topologically
first, and alphabetically second.### Reading the Examples
Examples are given in [the Turtle
syntax](https://www.w3.org/TR/turtle/). The basic syntax reads like so:.
; .
, .
That is, complete statements are separated by periods, predicate-object
pairs are collated by semicolons, and sets of objects are separated by
commas. Turtle also provides for prefix
mappings to shorten the terms. This is denoted by:@prefix p: .
and thus would map `p:some-term` to
`https://example.club/long/uri/some-term`. Note that these strings are
just concatenated together, in contrast to conventional relative URI
resolution. Terms belonging to this specification have been emphasized
to make them easier to pick out.## Classes
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.](https://vocab.methodandstructure.com/content-inventory-classes)### Editorial Action
These classes enable the assignment of specific things to *do* to a
document.#### `Action`
An action, as its name implies, is meant to represent something a person
or other agent ought to do to a document.Being a subclass of an event, a `ci:Action` can have agents, factors,
products, places and times ascribed to it.Subclass of:
ev:Event
Currently defined:
- [`keep`](https://vocab.methodandstructure.com/content-inventory#keep)
- [`split`](https://vocab.methodandstructure.com/content-inventory#split)
- [`tentative-merge`](https://vocab.methodandstructure.com/content-inventory#tentative-merge)
- [`update-metadata`](https://vocab.methodandstructure.com/content-inventory#update-metadata)
- [`proofread`](https://vocab.methodandstructure.com/content-inventory#proofread)
- [`revise`](https://vocab.methodandstructure.com/content-inventory#revise)
- [`rewrite`](https://vocab.methodandstructure.com/content-inventory#rewrite)
- [`retire`](https://vocab.methodandstructure.com/content-inventory#retire)### Document Classes/Decorators
Ontologies like BIBO are far from exhaustive in their breadth of
document types, so any additional salient document types will go here.#### `Abstract`
This is an explicit document abstract/executive summary class, intended
to belong to BIBO, which appears to be abandonware.Subclass of:
bibo:DocumentPart
#### `Advertisement`
In 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: .
@prefix dct: .
@prefix foaf: .
@prefix ci: .a bibo:Article ;
dct:title "17 Mindblowing Ways to Write Listicles!"@en ;
dct:hasPart .a foaf:Image, ci:Advertisement ;
dct:title "Punch The Monkey And WIN!#@$!%%^!"@en .
```Subclass of:
foaf:Document
#### `Appendix`
This is an explicit document appendix class, intended to belong to BIBO,
which appears to be abandonware.Subclass of:
bibo:DocumentPart
#### `Block`
This is intended to represent a generic block-level segment, such as a
paragraph, list, figure, or table.Subclass of:
bibo:DocumentPart
#### `Section`
This is an explicit document section (i.e., sub-chapter) class.
Subclass of:
bibo:DocumentPart
### Variation
This 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.#### `Variable`
Identifies a variable which can be embedded into a document and assigned
an `rdf:value`.Consider the markup:
Shingy's bill-out rate is
100.00
USD
per hour.…which when parsed will produce the statements:
@base .
@prefix rdf: .
@prefix xsd: .
@prefix dct: .
@prefix ci: .<> dct:references <#rate>, <#unit> .
<#rate> a ci:Variable ; rdf:value "100.00"^^xsd:decimal .
<#unit> a ci:Variable ; rdf:value "USD"^^xsd:token .See also:
rdf:value
### Audience Modelling
Classes involved in describing audiences will go here.
#### `Audience`
An 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.Subclass of:
dct:AgentClass
Properties:
ci:aware-of
See also:
dct:audience
## Properties
### Authorial/Editorial Intent
After 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-outcome`
This 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: .
@prefix dct: .
@prefix foaf: .
@prefix ci: .
@prefix eg: .# we can extend our article metadata the following way:
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:description "Moar clicks means moar monies."@en .
```Domain:
foaf:Document
Sub-property of:
dct:type
#### `non-audience`
This 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.Domain:
foaf:Document
Range:
dct:AgentClass
See also:
dct:audience
### Editing Tasks
A 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](https://vocab.methodandstructure.com/content-inventory#sec-actions).
A `ci:Merge` is a special kind of `ci:Action` that takes a `ci:target`,
as in the following example:@prefix bibo: .
@prefix bs: .
@prefix ci: .a bibo:Webpage ;
bibo:status bs:published, ci:obsolete ;
ci:action .a ci:Merge ;
ci:target .This example is in [Turtle syntax](https://www.w3.org/TR/turtle/). 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](https://tools.ietf.org/html/rfc4151) 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).#### `action`
Relates a document to an action to take.
Domain:
foaf:Document
Range:
ci:Action
Sub-property of:
ev:factor_of
#### `target`
Specify the URI of the target resource into which this document should
be merged.Domain:
ci:Merge
Range:
foaf:Document
### Conceptual Relations
Documents, 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`).#### `mentions`
The document explicitly mentions this concept.
Domain:
foaf:Document
Range:
skos:Concept
Sub-property of:
dct:references
#### `depicts`
The document explicitly depicts this concept (or other entity).
This term is identical in meaning to `foaf:depicts` except that the
latter constrains its domain to images only, whereas this can relate any
kind of document. The range of this property is also left open, to
accommodate any kind of resource being depicted.Domain:
foaf:Document
Sub-property of:
dct:references
See also:
foaf:depicts
#### `introduces`
The document defines, describes, or otherwise introduces the audience to
this concept.Domain:
foaf:Document
Range:
skos:Concept
Sub-property of:
ci:mentions
#### `assumes`
The document assumes the audience is familiar with this concept, and may
not mention it explicitly.Domain:
foaf:Document
Range:
skos:Concept
Sub-property of:
dct:references
See also:
dct:educationLevel
#### `evokes`
The document evokes the given concept without mentioning it explicitly.
Domain:
foaf:Document
Range:
skos:Concept
Sub-property of:
ci:assumes
### Audience Properties
On 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: .
@prefix dct: .
@prefix ci: .
@prefix dbc: .a bibo:Article ;
dct:title "Gruesome Car Accident Gruesomely Kills 42" ;
ci:depicts dbc:Traffic_collisions, dbc:Road_incident_deaths .# we could define the following audience:
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:
ci:non-audience .References to DBPedia concepts have been linked to demonstrate that
concepts can also be rendered as Web pages, as well as cross domains.#### `aware-of`
This property relates an 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.Domain:
ci:Audience
Range:
skos:Concept
Sub-property of:
skos:related
#### `understands`
This property relates an Audience to a SKOS concept that members of the
audience are known to comprehend, and thereby do not need any additional
explanation.Domain:
ci:Audience
Range:
skos:Concept
Sub-property of:
ci:aware-of
See also:
dct:educationLevel
#### `values`
This property relates an Audience to a SKOS concept that members of the
audience are known to *value*, that is, to find meaningful in an
axiological sense.Domain:
ci:Audience
Range:
skos:Concept
Sub-property of:
skos:related
See also:
ci:eschews
#### `eschews`
This property relates an 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*.Domain:
ci:Audience
Range:
skos:Concept
Sub-property of:
skos:related
See also:
ci:values
#### `exemplar`
This property relates an `Audience` to a specific `foaf:Person` who is
an exemplar of the audience.Domain:
ci:Audience
Range:
foaf:Person
Sub-property of:
skos:example
### Content Management Metadata
One 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.Note that words like “visible” and “see” are proxies for saying
something like “amenable to non-specific perception and/or interaction
by the user”. The essential information to capture with these properties
is whether the hyperlink is on the user-facing canvas, or hidden away in
the document's metadata.Note as well that these properties are intended to capture relations
between documents read naïvely as hypermedia, *not* as embedded metadata
such as Microdata or RDFa. Indeed, in RDFa, a construct like
`…`
would yield the contents of `resource=` whereas these properties (in
this example, `ci:link`) are meant to capture the contents of `href=`
(or `src=`, `action=`, etc.).@prefix ci: .
# This statement relates a resource to its canonical address:
ci:canonical .# here we define a slug and aliases:
ci:canonical-slug "17-mindblowing-ways-to-write-listicles"^^xsd:token ;
ci:alias ,
.# 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.#### `embed`
This property specifies an embedded resource, such as an image, which is
visible on the document's canvas.Domain:
foaf:Document
Sub-property of:
dct:hasPart
#### `form`
This property specifies form target, which may or may not be visible to
the user.Domain:
foaf:Document
Sub-property of:
ci:link
#### `include`
This property specifies a related resource which is *not* directly
visible to the user.Domain:
foaf:Document
Sub-property of:
dct:requires
#### `link`
This property specifies an ordinary hyperlink, which is visible on the
document's canvas.Domain:
foaf:Document
Sub-property of:
dct:references
Resources 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.#### `alias`
Denotes an alternate URI for the subject resource. It extends
`owl:sameAs` insofar as asserting that the object is somehow “less
canonical” than the subject.Sub-property of:
owl:sameAs
Inverse of:
ci:alias-for
#### `alias-for`
Denotes that the *subject* is the alias URI, and the object is “more
canonical” (though not necessarily the *most* canonical).Sub-property of:
owl:sameAs
Inverse of:
ci:alias
See also:
ci:canonical
#### `representation`
Denotes a resource that is a concrete representation of the subject,
which assumed to be more abstract.This property is deprecated in favour of
[ci:variant](https://vocab.methodandstructure.com/content-inventory#variant).Sub-property of:
dct:hasFormat
#### `variant`
Denotes a resource that is a variant of a concrete representation of the
subject, which assumed to be more abstract.Sub-property of:
dct:hasFormat
Equivalent to:
ci:representation
#### `primary`
Denotes the *primary* variant that concretely represents the resource.
Sub-property of:
ci:variant
#### `canonical`
Asserts the canonical URI of the subject resource, i.e., the one you
always want to publish in content or redirect Web requests to.Sub-property of:
ci:alias-for
#### `slug`
The 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.Sub-property of:
dct:identifier
Range:
xsd:string
#### `canonical-slug`
This is the canonical slug associated with the resource, and should be
populated with the slug which is actually in use.Sub-property of:
ci:slug
Range:
xsd:string
#### `fragment-of`
This property asserts that the subject should be treated as a fragment
of the document it relates to.Range:
foaf:Document
#### `indexed`
This 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.Range:
xsd:boolean
## Individuals
This document defines a set of values useful for describing the status
of documents and actions to take with them.### Statuses
The following `bibo:DocumentStatus` entities are supplied in addition to
the statuses specified by the Bibliography Ontology.#### `obsolete`
The content of this document was correct and relevant at one point, but
external circumstances have caused it to lapse in relevance or factual
accuracy.#### `landing`
The 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.#### `orphan`
The 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.#### `circulated`
The document is available for select people to see, but not “published”
in the strict literal sense.#### `retired`
The document has been explicitly retired by an editor or curator, but
still exists in the archive.#### `unavailable`
The resource at the subject address is unavailable for reasons other
than explicit retirement, e.g. HTTP 404 or 403, or going out of print.### Actions
The following is a list of
[`ci:Action`](https://vocab.methodandstructure.com/content-inventory#Action)
entities to be used with the
[`ci:action`](https://vocab.methodandstructure.com/content-inventory#action)
property.#### `keep`
Keep this document to which this is associated; make no changes to it at
this time.#### `tentative-merge`
Merge this document into some other document, though unspecified at this
time as to which.#### `update-metadata`
Update the metadata of this document, such as keywords, audience, etc.
## Quantitative Metrics
There 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.### Data Structure Definitions
The following object is an instance of
qb:DataStructureDefinition
. It
depicts the dimensions, measures and attributes forqb:DataSet
s that carry the
relevant statistical data. (This particular data structure only contains
dimensions and measures.)#### `words-and-blocks`
A set of descriptive statistics pertaining to the number of words per
block of text in a given document.##### Components
###### Dimensions
-
document
###### Counts
-
sections
-blocks
-words
-characters
-images
-videos
-embeds
-tables
-forms
-scripts
-stylesheets
###### Five-number summary
-
min
-low-quartile
-median
-high-quartile
-max
### Dimensions
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.The
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.### Measures
#### `sections`
For document types that have a concrete representation of sections, this
property may be used to capture their sum.Domain:
foaf:Document
Range:
xsd:nonNegativeInteger
#### `blocks`
A 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.Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `words`
This 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.Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `characters`
This indicates the number of characters in a document, with punctuation
and the XPath normalize-space function applied. Note this is characters,
not bytes.Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `images`
This indicates the number of images in the document.
Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `videos`
The number of videos in the document.
Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `embeds`
The number of embeds in the document.
Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `tables`
The number of tables in the document.
Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `lists`
The number of lists in the document.
Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `forms`
The number of forms in the document.
Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `scripts`
The number of scripts in the document.
Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `stylesheets`
The number of stylesheets in the document.
Domain:
qb:Observation
Range:
xsd:nonNegativeInteger
#### `outdegree`
The number of links emanating from the specified resource.
Domain:
qb:Observation
Range:
xsd:number
See also:
Directed graph (Wikipedia)#### `indegree`
The number of links pointing at the specified resource.
Domain:
qb:Observation
Range:
xsd:number
See also:
Directed graph (Wikipedia)#### `min`
The smallest observation in the sample.
Domain:
qb:Observation
Range:
xsd:number
See also:
Sample minimum (Wikipedia)#### `low-quartile`
Equivalent to the bottom quarter, or 25th percentile, of the observed
data.Domain:
qb:Observation
Range:
xsd:number
See also:
Quartile (Wikipedia)#### `median`
The median of a population
Domain:
qb:Observation
Range:
xsd:number
See also:
Median
(Wikipedia)#### `high-quartile`
Third Quartile
Domain:
qb:Observation
Range:
xsd:number
See also:
Quartile (Wikipedia)#### `sd`
Standard Deviation
Domain:
qb:Observation
Range:
xsd:number
See also:
Standard deviation (Wikipedia)Changes
January 23, 2012December 11, 2012
February 6, 2014
February 8, 2015
April 6, 2017
October 6, 2018
March 5, 2019
April 7, 2019
April 17, 2019
July 7, 2019
July 10, 2019
July 21, 2019
September 4, 2019
January 25, 2020
April 24, 2020
April 29, 2020
June 28, 2020
July 3, 2020
November 12, 2020
May 17, 2021
October 5, 2022
November 2, 2022
This document is copyright 2010-2022
Dorian Taylor, available under a
Creative Commons Attribution 2.5 Canada license, where
attribution is defined as a link
[here](https://vocab.methodandstructure.com/content-inventory#).