# SHACL generated by python AP to shacl converter
@base <http://metadata.moe/ns/isdn/shapes/> .
@prefix base: <http://metadata.moe/ns/isdn/shapes/> .
@prefix isdn: <http://metadata.moe/ns/isdn/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema1: <http://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<CCodeShape> a sh:NodeShape ;
    sh:closed false ;
    sh:property <CCodeShape_Cコード>,
        <CCodeShape_内容>,
        <CCodeShape_形態>,
        <CCodeShape_販売対象> ;
    sh:targetClass isdn:CCode .

<ComiketGenreShape> a sh:NodeShape ;
    sh:closed false ;
    sh:property <ComiketGenreShape_ジャンルコード>,
        <ComiketGenreShape_ジャンル名>,
        <ComiketGenreShape_ジャンル補足> ;
    sh:targetClass isdn:ComiketGenre .

<DoujinProductShape> a sh:NodeShape ;
    sh:closed false ;
    sh:property <DoujinProductShape_2段目バーコード>,
        <DoujinProductShape_ISDNコード>,
        <DoujinProductShape_サムネイル画像URL>,
        <DoujinProductShape_ジャンル>,
        <DoujinProductShape_ページ数>,
        <DoujinProductShape_ラベル>,
        <DoujinProductShape_リンク>,
        <DoujinProductShape_レーティング（年齢）>,
        <DoujinProductShape_レーティング（性別）>,
        <DoujinProductShape_体裁>,
        <DoujinProductShape_作品内容コメント>,
        <DoujinProductShape_価格>,
        <DoujinProductShape_印刷方法>,
        <DoujinProductShape_同一リソース>,
        <DoujinProductShape_名称>,
        <DoujinProductShape_大きさ>,
        <DoujinProductShape_媒体形態>,
        <DoujinProductShape_容量>,
        <DoujinProductShape_形態>,
        <DoujinProductShape_派生作品種別>,
        <DoujinProductShape_発行日>,
        <DoujinProductShape_発行者（サークル）>,
        <DoujinProductShape_登録者定義情報>,
        <DoujinProductShape_綴じ方法>,
        <DoujinProductShape_識別子> ;
    sh:targetClass isdn:DoujinProduct .

<ISDNShape> a sh:NodeShape ;
    sh:closed false ;
    sh:property <ISDNShape_ISDNコード>,
        <ISDNShape_グループ名称>,
        <ISDNShape_グループ記号>,
        <ISDNShape_チェックデジット>,
        <ISDNShape_プロパティID>,
        <ISDNShape_出版者記号>,
        <ISDNShape_接頭記号>,
        <ISDNShape_書名記号>,
        <ISDNShape_表示用ISDN表現> ;
    sh:targetClass isdn:ISDNIdentifier .

<OfferShape> a sh:NodeShape ;
    sh:closed false ;
    sh:property <OfferShape_価格>,
        <OfferShape_通貨単位> ;
    sh:targetClass schema1:Offer .

<CCodeShape_Cコード> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "Cコード"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:identifier .

<CCodeShape_内容> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "内容"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:cCodeContentCategory .

<CCodeShape_形態> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "形態"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:cCodePublicationForm .

<CCodeShape_販売対象> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "販売対象"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:cCodeTargetAudience .

<ComiketGenreShape_ジャンルコード> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "ジャンルコード"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:identifier .

<ComiketGenreShape_ジャンル名> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "ジャンル名"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:name .

<ComiketGenreShape_ジャンル補足> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:name "ジャンル補足"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:description .

<DoujinProductShape_2段目バーコード> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:name "2段目バーコード"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:bookJanCodeSecondRow .

<DoujinProductShape_ISDNコード> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "ISDNコード"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:isdn .

<DoujinProductShape_サムネイル画像URL> a sh:PropertyShape ;
    sh:name "サムネイル画像URL"@ja ;
    sh:nodeKind sh:IRI ;
    sh:path schema1:thumbnailUrl .

<DoujinProductShape_ジャンル> a sh:PropertyShape ;
    sh:name "ジャンル"@ja ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:path schema1:genre .

<DoujinProductShape_ページ数> a sh:PropertyShape ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
    sh:name "ページ数"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:numberOfPages .

<DoujinProductShape_ラベル> a sh:PropertyShape ;
    rdfs:comment "日本語の「よみがな」は言語タグ「ja-Hira」"@ja ;
    sh:datatype rdf:langString ;
    sh:minCount 1 ;
    sh:name "ラベル"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path rdfs:label .

<DoujinProductShape_リンク> a sh:PropertyShape ;
    sh:name "リンク"@ja ;
    sh:node <WebPageShape> ;
    sh:nodeKind sh:BlankNode ;
    sh:path schema1:relatedLink .

<DoujinProductShape_レーティング（年齢）> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:description "一般・15禁・18禁"@ja ;
    sh:in ( "一般" "15禁" "18禁" ) ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "レーティング（年齢）"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:ratingAge .

<DoujinProductShape_レーティング（性別）> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:description "区別なし・女性向け・男性向け"@ja ;
    sh:in ( "区別なし" "女性向け" "男性向け" ) ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "レーティング（性別）"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:ratingGender .

<DoujinProductShape_体裁> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:description "印刷・製本・プレスなど"@ja ;
    sh:maxCount 1 ;
    sh:name "体裁"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:productStyle .

<DoujinProductShape_作品内容コメント> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:name "作品内容コメント"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:description .

<DoujinProductShape_価格> a sh:PropertyShape ;
    sh:name "価格"@ja ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:path schema1:offers .

<DoujinProductShape_印刷方法> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:name "印刷方法"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:printingMethod .

<DoujinProductShape_同一リソース> a sh:PropertyShape ;
    sh:name "同一リソース"@ja ;
    sh:nodeKind sh:IRI ;
    sh:path owl:sameAs .

<DoujinProductShape_名称> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:name "名称"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:name .

<DoujinProductShape_大きさ> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:description "B5・CDケースなど"@ja ;
    sh:maxCount 1 ;
    sh:name "大きさ"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:size .

<DoujinProductShape_媒体形態> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:name "媒体形態"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:carrierType .

<DoujinProductShape_容量> a sh:PropertyShape ;
    sh:maxCount 1 ;
    sh:name "容量"@ja ;
    sh:node <QuantitativeValueShape> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:path isdn:carrierExtent .

<DoujinProductShape_形態> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:description "同人誌・同人グッズなど"@ja ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "形態"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:category .

<DoujinProductShape_派生作品種別> a sh:PropertyShape ;
    sh:in ( isdn:OriginalWork isdn:DerivativeWork ) ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "派生作品種別"@ja ;
    sh:nodeKind sh:IRI ;
    sh:path isdn:derivationType .

<DoujinProductShape_発行日> a sh:PropertyShape ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "発行日"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:datePublished .

<DoujinProductShape_発行者（サークル）> a sh:PropertyShape ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "発行者（サークル）"@ja ;
    sh:node <OrganizationShape> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:path schema1:publisher .

<DoujinProductShape_登録者定義情報> a sh:PropertyShape ;
    sh:name "登録者定義情報"@ja ;
    sh:node <UserOptionShape> ;
    sh:nodeKind sh:BlankNode ;
    sh:path schema1:additionalProperty .

<DoujinProductShape_綴じ方法> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:name "綴じ方法"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:bindingMethod .

<DoujinProductShape_識別子> a sh:PropertyShape ;
    sh:minCount 1 ;
    sh:name "識別子"@ja ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:path schema1:identifier .

<ISDNShape_ISDNコード> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "ISDNコード"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:value .

<ISDNShape_グループ名称> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "グループ名称"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:isdnRegistrationGroupName .

<ISDNShape_グループ記号> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "グループ記号"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:isdnRegistrationGroup .

<ISDNShape_チェックデジット> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "チェックデジット"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:isdnCheckDigit .

<ISDNShape_プロパティID> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:hasValue "ISDN" ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "プロパティID"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:propertyID .

<ISDNShape_出版者記号> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "出版者記号"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:isdnRegistrant .

<ISDNShape_接頭記号> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "接頭記号"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:isdnPrefix .

<ISDNShape_書名記号> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "書名記号"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:isdnPublication .

<ISDNShape_表示用ISDN表現> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "表示用ISDN表現"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:alternateName .

<OfferShape_価格> a sh:PropertyShape ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "価格"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:price .

<OfferShape_通貨単位> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:description "ISO 4217"@ja ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "通貨単位"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:priceCurrency .

<OrganizationShape> a sh:NodeShape ;
    sh:closed false ;
    sh:property <OrganizationShape_ラベル>,
        <OrganizationShape_出版者記号>,
        <OrganizationShape_名称> ;
    sh:targetClass schema1:Organization .

<OrganizationShape_ラベル> a sh:PropertyShape ;
    rdfs:comment "日本語の「よみがな」は言語タグ「ja-Hira」"@ja ;
    sh:datatype rdf:langString ;
    sh:minCount 1 ;
    sh:name "ラベル"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path rdfs:label .

<OrganizationShape_出版者記号> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "出版者記号"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path isdn:isdnRegistrant .

<OrganizationShape_名称> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "名称"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:name .

<QuantitativeValueShape> a sh:NodeShape ;
    sh:closed false ;
    sh:property <QuantitativeValueShape_値>,
        <QuantitativeValueShape_単位> ;
    sh:targetClass schema1:QuantitativeValue .

<QuantitativeValueShape_値> a sh:PropertyShape ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "値"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:value .

<QuantitativeValueShape_単位> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "単位"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:unitText .

<UserOptionShape> a sh:NodeShape ;
    sh:closed false ;
    sh:property <UserOptionShape_プロパティ名>,
        <UserOptionShape_値> ;
    sh:targetClass isdn:UserOption .

<UserOptionShape_プロパティ名> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "プロパティ名"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:name .

<UserOptionShape_値> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "値"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:value .

<WebPageShape> a sh:NodeShape ;
    sh:closed false ;
    sh:property <WebPageShape_URL>,
        <WebPageShape_リンク名> ;
    sh:targetClass schema1:WebPage .

<WebPageShape_URL> a sh:PropertyShape ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "URL"@ja ;
    sh:nodeKind sh:IRI ;
    sh:path schema1:url .

<WebPageShape_リンク名> a sh:PropertyShape ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:name "リンク名"@ja ;
    sh:nodeKind sh:Literal ;
    sh:path schema1:name .

