You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
4.8 KiB
155 lines
4.8 KiB
import { Schema } from "shexj";
|
|
|
|
/**
|
|
* =============================================================================
|
|
* postSchema: ShexJ Schema for post
|
|
* =============================================================================
|
|
*/
|
|
export const postSchema: Schema = {
|
|
type: "Schema",
|
|
shapes: [
|
|
{
|
|
id: "https://example.com/PostSh",
|
|
type: "ShapeDecl",
|
|
shapeExpr: {
|
|
type: "Shape",
|
|
expression: {
|
|
type: "EachOf",
|
|
expressions: [
|
|
{
|
|
type: "TripleConstraint",
|
|
predicate: "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
|
|
valueExpr: {
|
|
type: "NodeConstraint",
|
|
values: [
|
|
"http://schema.org/SocialMediaPosting",
|
|
"http://schema.org/CreativeWork",
|
|
"http://schema.org/Thing",
|
|
],
|
|
},
|
|
},
|
|
{
|
|
type: "TripleConstraint",
|
|
predicate: "http://schema.org/articleBody",
|
|
valueExpr: {
|
|
type: "NodeConstraint",
|
|
datatype: "http://www.w3.org/2001/XMLSchema#string",
|
|
},
|
|
min: 0,
|
|
max: 1,
|
|
annotations: [
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#label",
|
|
object: {
|
|
value: "articleBody",
|
|
},
|
|
},
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#comment",
|
|
object: {
|
|
value: "The actual body of the article. ",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: "TripleConstraint",
|
|
predicate: "http://schema.org/uploadDate",
|
|
valueExpr: {
|
|
type: "NodeConstraint",
|
|
datatype: "http://www.w3.org/2001/XMLSchema#date",
|
|
},
|
|
annotations: [
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#label",
|
|
object: {
|
|
value: "uploadDate",
|
|
},
|
|
},
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#comment",
|
|
object: {
|
|
value:
|
|
"Date when this media object was uploaded to this site.",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: "TripleConstraint",
|
|
predicate: "http://schema.org/image",
|
|
valueExpr: {
|
|
type: "NodeConstraint",
|
|
nodeKind: "iri",
|
|
},
|
|
min: 0,
|
|
max: 1,
|
|
annotations: [
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#label",
|
|
object: {
|
|
value: "image",
|
|
},
|
|
},
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#comment",
|
|
object: {
|
|
value:
|
|
"A media object that encodes this CreativeWork. This property is a synonym for encoding.",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: "TripleConstraint",
|
|
predicate: "http://schema.org/publisher",
|
|
valueExpr: {
|
|
type: "NodeConstraint",
|
|
nodeKind: "iri",
|
|
},
|
|
annotations: [
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#label",
|
|
object: {
|
|
value: "publisher",
|
|
},
|
|
},
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#comment",
|
|
object: {
|
|
value: "The publisher of the creative work.",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
annotations: [
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#label",
|
|
object: {
|
|
value: "SocialMediaPost",
|
|
},
|
|
},
|
|
{
|
|
type: "Annotation",
|
|
predicate: "http://www.w3.org/2000/01/rdf-schema#comment",
|
|
object: {
|
|
value:
|
|
"A post to a social media platform, including blog posts, tweets, Facebook posts, etc.",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|