diff --git a/README.md b/README.md index 1caa57e..2b1429e 100644 --- a/README.md +++ b/README.md @@ -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": "", "fingerprints": [ "Qmbs2DxMBraF3U8F7vLAarGmZaSFry3vVY5zytuN3BxwaY", @@ -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": "" } @@ -1303,7 +1303,7 @@ linked with hashes: "@context": { "/": "" }, "@type": "Manifestation", "name": "The Fellowship of the Ring", - "manifestationOfWork": { "/": "" }, + "manifestationOf": { "/": "" }, "digitalWork": { "/": "" }, "fingerprints": [ "Qmbs2DxMBraF3U8F7vLAarGmZaSFry3vVY5zytuN3BxwaY", @@ -1317,7 +1317,7 @@ linked with hashes: "@context": { "/": "" }, "@type": "Manifestation", "name": "The Fellowship of the Ring", - "manifestationOfWork": { "/": "" }, + "manifestationOf": { "/": "" }, "datePublished": "29-07-1954", "locationCreated": { "/": "" } } diff --git a/schema/README.md b/schema/README.md index 15e466e..9698c9f 100644 --- a/schema/README.md +++ b/schema/README.md @@ -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 @@ -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: @@ -275,9 +276,19 @@ Our own vocabulary definitions for `Creation`s: ... } -// ManifestationOfWork Property +// Manifestation Class +{ + "@id": "/Manifestation", + "@type": "rdfs:Class", + "rdfs:subClassOf": { + "@id": "coala:AbstractWork" + }, + ... +} + +// ManifestationOf Property { - "@id": "/manifestationOfWork", + "@id": "/manifestationOf", "@type": "rdf:Property", "schema:domainIncludes": { "@id": "schema:CreativeWork" @@ -320,7 +331,7 @@ An example of a `Work`, and its physical and digital `Manifestation`s: "@type": "Book", "@id": "", "name": "The Fellowship of the Ring", - "manifestationOfWork": "", + "manifestationOf": "", "isPartOf" "", "author": "", "datePublished": "29-07-1954", @@ -337,7 +348,7 @@ An example of a `Work`, and its physical and digital `Manifestation`s: "@type": "Book", "@id": "", "name": "The Fellowship of the Ring", - "manifestationOfWork": "", + "manifestationOf": "", "isPartOf" "", "author": "", "datePublished": "29-07-1954", @@ -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": { "/": "" }, + "manifestationOf": { "/": "" }, "isPartOf" { "/": "" }, "author": { "/": "" }, "datePublished": "29-07-1954", @@ -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": { "/": "" }, + "manifestationOf": { "/": "" }, "isPartOf" { "/": "" }, "author": { "/": "" }, "datePublished": "29-07-1954", diff --git a/schema/coala_context.json b/schema/coala_context.json index 5f60dfb..360b8e7 100644 --- a/schema/coala_context.json +++ b/schema/coala_context.json @@ -10,6 +10,7 @@ "schema": "http://schema.org/", "AbstractWork": "coala:AbstractWork", + "Manifestation": "coala:Manifestation", "Copyright": "coala:Copyright", "DigitalFingerprint": "coala:DigitalFingerprint", "Right": "coala:Right", @@ -30,8 +31,8 @@ "@type": "@id" }, "fingerprint": "coala:fingerprint", - "manifestationOfWork": { - "@id": "coala:manifestationOfWork", + "manifestationOf": { + "@id": "coala:manifestationOf", "@type": "@id" }, "numberOfUses": "coala:numberOfUses", diff --git a/schema/vocab/coala.jsonld b/schema/vocab/coala.jsonld index a62e1f8..86fd9fc 100644 --- a/schema/vocab/coala.jsonld +++ b/schema/vocab/coala.jsonld @@ -17,6 +17,15 @@ "rdfs:comment": "Abstract concept of a manifested Creation.", "rdfs:label": "AbstractWork" }, + { + "@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", @@ -172,7 +181,7 @@ "rdfs:label": "fingerprint" }, { - "@id": "coala:manifestationOfWork", + "@id": "coala:manifestationOf", "@type": "rdf:Property", "schema:domainIncludes": { "@id": "schema:CreativeWork" @@ -183,8 +192,8 @@ "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": "coala:numberOfUses",