Skip to content
This repository has been archived by the owner on Jul 1, 2022. It is now read-only.

Generalize coala placeholder and re-introduce Manifestation #26

Merged
merged 2 commits into from
Sep 15, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1264,7 +1264,7 @@ Transforming to JSON-LD, we get:
"@id": "#digitalManifestation",
"@type": "Manifestation",
"name": "The Fellowship of the Ring",
"manifestationOfWork": "#creation",
"manifestationOf": "#creation",
"digitalWork": "<URI pointing to file>",
"fingerprints": [
"Qmbs2DxMBraF3U8F7vLAarGmZaSFry3vVY5zytuN3BxwaY",
Expand All @@ -1276,7 +1276,7 @@ Transforming to JSON-LD, we get:
"@id": "#physicalManifestation",
"@type": "Manifestation",
"name": "The Fellowship of the Ring",
"manifestationOfWork": "#creation",
"manifestationOf": "#creation",
"datePublished": "29-07-1954",
"locationCreated": "<URI pointing to a Place>"
}
Expand All @@ -1303,7 +1303,7 @@ linked with hashes:
"@context": { "/": "<hash pointing to coalaip.schema's context>" },
"@type": "Manifestation",
"name": "The Fellowship of the Ring",
"manifestationOfWork": { "/": "<hash pointing to the Work>" },
"manifestationOf": { "/": "<hash pointing to the Work>" },
"digitalWork": { "/": "<hash pointing to a file on e.g. IPFS>" },
"fingerprints": [
"Qmbs2DxMBraF3U8F7vLAarGmZaSFry3vVY5zytuN3BxwaY",
Expand All @@ -1317,7 +1317,7 @@ linked with hashes:
"@context": { "/": "<hash pointing to coalaip.schema's context>" },
"@type": "Manifestation",
"name": "The Fellowship of the Ring",
"manifestationOfWork": { "/": "<hash pointing to the Work>" },
"manifestationOf": { "/": "<hash pointing to the Work>" },
"datePublished": "29-07-1954",
"locationCreated": { "/": "<hash pointing to a Place>" }
}
Expand Down
41 changes: 26 additions & 15 deletions schema/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,9 @@ Adhering to these patterns helps you to avoid the creation of models that are to
an immutable context. For example, consider the [`Creation`](#rrm-creation) entity: although the
schema allows a `Work` to declare its manifestations through the [workExample property](http://schema.org/workExample),
doing so would inherently lock the `Work` into only these `Manifestation`s. You can avoid this
problem by declaring your `Work`s and `Manifestation`s separately, using the [`manifestationOfWork`
property](#rrm-creation) (alias of [`exampleOfWork`](http://schema.org/exampleOfWork)) in the
`Manifestation`s to create a link to its `Work`. Another feature of this pattern is that you only
have to declare a nested model once, even if multiple parents should be linked to it.
problem by declaring your `Work`s and `Manifestation`s separately, using the `Manifestation` class
and then link to `AbstractWork` using the `manifestationOf` (alias of [`exampleOfWork`](http://schema.org/exampleOfWork))
property.

When relying on inter-object links rather than nested objects, you may find that some properties
from schema.org expect an object or value rather than a link. To handle this, you can either use an
Expand Down Expand Up @@ -250,16 +249,18 @@ An example of a localizable `Place`:

`Creation`s are represented by [schema.org/CreativeWork](http://schema.org/CreativeWork)s and its
subtypes (such as [schema.org/Book](http://schema.org/Book)). To differentiate between the different
`CreationMode`s (`lcc:Manifestation` or `lcc:Work`), we define our own AbstractWork class
(subclassed from schema.org's CreativeWork) for `Work`s and allow `Manifestation`s to be of
CreativeWork (or any non-AbstractWork subtype of CreativeWork).
`CreationMode`s (`lcc:Manifestation` or `lcc:Work`), we define

- our own `AbstractWork` class (subclassed from schema.org's CreativeWork) for in-perceivable creations;
- and a `Manifestation` class (subclassed from `coala:AbstractWork`) for perceivable creations.


`Manifestation`s that include a [`url`](http://schema.org/url) property are considered digital
`Manifestation`s while all others are physical `Manifestation`s. See the [schema.org/CreativeWork
definition](http://schema.org/CreativeWork) for the Linked Data context.

An additional `manifestationOfWork` (equivalent to [`exampleOfWork`](http://schema.org/exampleOfWork))
property is defined to link `Manifestation`s back to their `Work`. `Manifestation`s must contain
An additional `manifestationOf` (equivalent to [`exampleOfWork`](http://schema.org/exampleOfWork))
property is defined to link `Manifestation`s back to their `AbstractWork`. `Manifestation`s must contain
a valid link in this property, and `Work`s must not contain this property.

Our own vocabulary definitions for `Creation`s:
Expand All @@ -275,9 +276,19 @@ Our own vocabulary definitions for `Creation`s:
...
}

// ManifestationOfWork Property
// Manifestation Class
{
"@id": "<coalaip placeholder>/Manifestation",
"@type": "rdfs:Class",
"rdfs:subClassOf": {
"@id": "coala:AbstractWork"
},
...
}

// ManifestationOf Property
{
"@id": "<coalaip placeholder>/manifestationOfWork",
"@id": "<coalaip placeholder>/manifestationOf",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "schema:CreativeWork"
Expand Down Expand Up @@ -320,7 +331,7 @@ An example of a `Work`, and its physical and digital `Manifestation`s:
"@type": "Book",
"@id": "<URI pointing to this object>",
"name": "The Fellowship of the Ring",
"manifestationOfWork": "<URI pointing to a AbstractWork object>",
"manifestationOf": "<URI pointing to a AbstractWork object>",
"isPartOf" "<URI pointing to a CreativeWork object>",
"author": "<URI pointing to a Person or Organization object>",
"datePublished": "29-07-1954",
Expand All @@ -337,7 +348,7 @@ An example of a `Work`, and its physical and digital `Manifestation`s:
"@type": "Book",
"@id": "<URI pointing to this object>",
"name": "The Fellowship of the Ring",
"manifestationOfWork": "<URI pointing to a AbstractWork object>",
"manifestationOf": "<URI pointing to a AbstractWork object>",
"isPartOf" "<URI pointing to a CreativeWork object>",
"author": "<URI pointing to a Person or Organization object>",
"datePublished": "29-07-1954",
Expand All @@ -364,7 +375,7 @@ An example of a `Work`, and its physical and digital `Manifestation`s:
],
"@type": "Book",
"name": "The Fellowship of the Ring",
"manifestationOfWork": { "/": "<hash pointing to a AbstractWork object>" },
"manifestationOf": { "/": "<hash pointing to a AbstractWork object>" },
"isPartOf" { "/": "<hash pointing to a CreativeWork object>" },
"author": { "/": "<hash pointing to a Person or Organization object>" },
"datePublished": "29-07-1954",
Expand All @@ -380,7 +391,7 @@ An example of a `Work`, and its physical and digital `Manifestation`s:
],
"@type": "Book",
"name": "The Fellowship of the Ring",
"manifestationOfWork": { "/": "<hash pointing to a AbstractWork object>" },
"manifestationOf": { "/": "<hash pointing to a AbstractWork object>" },
"isPartOf" { "/": "<hash pointing to a CreativeWork object>" },
"author": { "/": "<hash pointing to a Person or Organization object>" },
"datePublished": "29-07-1954",
Expand Down
5 changes: 3 additions & 2 deletions schema/coala_context.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"schema": "http://schema.org/",

"AbstractWork": "coala:AbstractWork",
"Manifestation": "coala:Manifestation",
"Copyright": "coala:Copyright",
"DigitalFingerprint": "coala:DigitalFingerprint",
"Right": "coala:Right",
Expand All @@ -30,8 +31,8 @@
"@type": "@id"
},
"fingerprint": "coala:fingerprint",
"manifestationOfWork": {
"@id": "coala:manifestationOfWork",
"manifestationOf": {
"@id": "coala:manifestationOf",
"@type": "@id"
},
"numberOfUses": "coala:numberOfUses",
Expand Down
62 changes: 35 additions & 27 deletions schema/vocab/coala.jsonld
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"@graph": [
{
"@id": "<coalaip placeholder>/AbstractWork",
"@id": "coala:AbstractWork",
"@type": "rdfs:Class",
"rdfs:subClassOf": {
"@id": "schema:CreativeWork"
Expand All @@ -18,7 +18,16 @@
"rdfs:label": "AbstractWork"
},
{
"@id": "<coalaip placeholder>/Copyright",
"@id": "coala:Manifestation",
"@type": "rdfs:Class",
"rdfs:subClassOf": {
"@id": "coala:AbstractWork"
},
"rdfs:comment": "A perceivable manifestation of an AbstractWork.",
"rdfs:label": "Manifestation"
},
{
"@id": "coala:Copyright",
"@type": "rdfs:Class",
"rdfs:subClassOf": {
"@id": "schema:Intangible"
Expand All @@ -30,7 +39,7 @@
"rdfs:label": "Copyright"
},
{
"@id": "<coalaip placeholder>/DigitalFingerprint",
"@id": "coala:DigitalFingerprint",
"@type": "rdfs:Class",
"rdfs:subClassOf": {
"@id": "schema:Intangible"
Expand All @@ -39,7 +48,7 @@
"rdfs:label": "DigitalFingerprint"
},
{
"@id": "<coalaip placeholder>/Right",
"@id": "coala:Right",
"@type": "rdfs:Class",
"rdfs:subClassOf": {
"@id": "schema:Intangible"
Expand All @@ -51,7 +60,7 @@
"rdfs:label": "Right"
},
{
"@id": "<coalaip placeholder>/RightsTransferAction",
"@id": "coala:RightsTransferAction",
"@type": "rdfs:Class",
"rdfs:subClassOf": {
"@id": "schema:TransferAction"
Expand All @@ -60,7 +69,7 @@
"rdfs:label": "RightsTransferAction"
},
{
"@id": "<coalaip placeholder>/source",
"@id": "coala:source",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:Right"
Expand All @@ -75,7 +84,7 @@
"rdfs:label": "source"
},
{
"@id": "<coalaip placeholder>/asserter",
"@id": "coala:asserter",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "schema:ReviewAction"
Expand All @@ -90,7 +99,7 @@
"rdfs:label": "asserter"
},
{
"@id": "<coalaip placeholder>/assertionSubject",
"@id": "coala:assertionSubject",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "schema:ReviewAction"
Expand All @@ -105,7 +114,7 @@
"rdfs:label": "assertionSubject"
},
{
"@id": "<coalaip placeholder>/assertionTruth",
"@id": "coala:assertionTruth",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "schema:ReviewAction"
Expand All @@ -120,7 +129,7 @@
"rdfs:label": "assertionTruth"
},
{
"@id": "<coalaip placeholder>/exclusive",
"@id": "coala:exclusive",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:Right"
Expand All @@ -132,7 +141,7 @@
"rdfs:label": "exclusive"
},
{
"@id": "<coalaip placeholder>/fingerprintOf",
"@id": "coala:fingerprintOf",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:DigitalFingerprint"
Expand All @@ -152,7 +161,7 @@
"rdfs:label": "fingerprintOf"
},
{
"@id": "<coalaip placeholder>/fingerprint",
"@id": "coala:fingerprint",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:DigitalFingerprint"
Expand All @@ -172,22 +181,22 @@
"rdfs:label": "fingerprint"
},
{
"@id": "<coalaip placeholder>/manifestationOfWork",
"@id": "coala:manifestationOf",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "schema:CreativeWork"
"@id": "coala:Manifestation"
},
"schema:rangeIncludes": {
"@id": "coala:AbstractWork"
},
"owl:equivalentProperty": {
"@id": "schema:exampleOfWork"
},
"rdfs:comment": "The parent Work of this Manifestation.",
"rdfs:label": "manifestationOfWork"
"rdfs:comment": "The parent AbstractWork of this Manifestation.",
"rdfs:label": "manifestationOf"
},
{
"@id": "<coalaip placeholder>/numberOfUses",
"@id": "coala:numberOfUses",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:Right"
Expand All @@ -199,7 +208,7 @@
"rdfs:label": "numberOfUses"
},
{
"@id": "<coalaip placeholder>/percentageShares",
"@id": "coala:percentageShares",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:Right"
Expand All @@ -211,7 +220,7 @@
"rdfs:label": "percentageShares"
},
{
"@id": "<coalaip placeholder>/rightContext",
"@id": "coala:rightContext",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:Right"
Expand All @@ -223,7 +232,7 @@
"rdfs:label": "rightContext"
},
{
"@id": "<coalaip placeholder>/rightsOf",
"@id": "coala:rightsOf",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:Copyright"
Expand All @@ -238,7 +247,7 @@
"rdfs:label": "rightsOf"
},
{
"@id": "<coalaip placeholder>/territory",
"@id": "coala:territory",
"@type": "rdf:Property",
"schema:domainIncludes": [
{
Expand All @@ -258,7 +267,7 @@
"rdfs:label": "territory"
},
{
"@id": "<coalaip placeholder>/transferContract",
"@id": "coala:transferContract",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:RightsTransferAction"
Expand All @@ -278,7 +287,7 @@
"rdfs:label": "transferContract"
},
{
"@id": "<coalaip placeholder>/usageType",
"@id": "coala:usageType",
"@type": "rdf:Property",
"schema:domainIncludes": {
"@id": "coala:Right"
Expand All @@ -290,7 +299,7 @@
"rdfs:label": "usageType"
},
{
"@id": "<coalaip placeholder>/validFrom",
"@id": "coala:validFrom",
"@type": "rdf:Property",
"schema:domainIncludes": [
{
Expand Down Expand Up @@ -318,7 +327,7 @@
"rdfs:label": "valueFrom"
},
{
"@id": "<coalaip placeholder>/validThrough",
"@id": "coala:validThrough",
"@type": "rdf:Property",
"schema:domainIncludes": [
{
Expand All @@ -345,6 +354,5 @@
"rdfs:comment": "The date after when the item is not valid.",
"rdfs:label": "validThrough"
}
],
"@id": "<coala placeholder>#version"
]
}