Module: RDF::Vocab

Defined in:
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/v.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/as.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/cc.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/dc.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/gr.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/ht.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/ma.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/mo.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/oa.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/og.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/sd.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/sh.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/vs.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/acl.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/bf2.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/cnt.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/crm.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/dbo.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/dwc.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/edm.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/geo.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/gs1.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/ldp.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/nfo.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/ogc.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/ore.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/org.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/ptr.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/rsa.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/rss.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/vmd.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/wot.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/xhv.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/bibo.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/cert.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/dc11.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/dcat.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/doap.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/earl.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/exif.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/foaf.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/iana.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/ical.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/iiif.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/lrmi.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/mads.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/mods.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/pcdm.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/prov.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/rdau.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/sioc.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/skos.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/void.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/wdrs.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/xkos.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/disco.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/hydra.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/pplan.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/vcard.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/xhtml.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/jsonld.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/premis.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/schema.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/skosxl.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/ebucore.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/fcrepo4.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/geojson.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/schemas.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/bibframe.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/datacite.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/dcmitype.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/geonames.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/sioctypes.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/identifiers.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/marcrelators.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/siocservices.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/premiseventtype.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/rdf-vocab-22de070a4ec6/lib/rdf/vocab/rightsstatements.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/shacl-18f0193d66b5/lib/rdf/vocab/shacl.rb

Defined Under Namespace

Modules: VERSION Classes: DataCite, SHACL

Constant Summary collapse

VOCABS =
{
  acl:    {
    uri: "http://www.w3.org/ns/auth/acl#",
    patch: %{
      @prefix acl: <http://www.w3.org/ns/auth/acl#> .
      @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
      DeleteExisting {
        acl:Access acl:label "access"@en .
      } .
      AddNew {
        acl:Access rdfs:label "access"@en .
      } .
    }
  },
  as:    {uri: "https://www.w3.org/ns/activitystreams#", source: 'etc/as.ttl'},
  bf2:    {uri: 'http://id.loc.gov/ontologies/bibframe/'},
  bibframe: {
    uri: "http://id.loc.gov/ontologies/bibframe/",
    class_name: "Bibframe"
  },
  bibo:   {uri: "http://purl.org/ontology/bibo/", source: "etc/bibo.ttl"},
  cc:     {
    uri: "http://creativecommons.org/ns#",
    source: "etc/cc.ttl"  # Source incorrectly uses https identifiers
  },
  cert:   {
    uri: "http://www.w3.org/ns/auth/cert#",
    patch: %{
      @prefix cert: <http://www.w3.org/ns/auth/cert#> .
      @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
      DeleteExisting {
        cert:modulus rdfs:domain cert:DSAKey .
        cert:privateExponent rdfs:domain cert:RSAPrivateKey .
      } .
      AddNew {
        cert:privateExponent rdfs:domain cert:PrivateKey .
      } .
    }
  },
  cnt:    {
    uri: "http://www.w3.org/2011/content#",
    patch: %{
      @prefix cnt: <http://www.w3.org/2011/content#> .
      @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
      @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
      DeleteExisting {
        cnt:leadingMisc rdfs:range rdfs:XMLLiteral .
        cnt:rest rdfs:range rdfs:XMLLiteral .
      } .
      AddNew {
        cnt:leadingMisc rdfs:range rdf:XMLLiteral .
        cnt:rest rdfs:range rdf:XMLLiteral .
      } .
    }
  },
  crm:    {uri: "http://www.cidoc-crm.org/cidoc-crm/", source: "etc/crm.rdf"},
  datacite: {
    uri: "http://purl.org/spar/datacite/",
    class_name: "DataCite",
    skip: true
  },
  dbo:    {uri: "http://dbpedia.org/ontology/", source: "http://dbpedia.org/data3/.ttl"},
  dc:     {uri: "http://purl.org/dc/terms/"},
  dc11:   {uri: "http://purl.org/dc/elements/1.1/"},
  dcat:   {
    uri: "http://www.w3.org/ns/dcat#"
  },
  dcmitype: {
      uri: "http://purl.org/dc/dcmitype/",
      class_name: "DCMIType"
  },
  disco: {
    uri: "http://rdf-vocabulary.ddialliance.org/discovery#",
    source: "https://raw.githubusercontent.com/linked-statistics/disco-spec/master/discovery.ttl",
  },
  doap:   {
    uri: "http://usefulinc.com/ns/doap#",
    patch: %{
      @prefix : <http://usefulinc.com/ns/doap#> .
      @prefix foaf: <http://xmlns.com/foaf/0.1/> .
      @prefix owl: <http://www.w3.org/2002/07/owl#>.
      DeleteExisting {: owl:imports foaf:index.rdf .} .
      AddNew {: owl:imports foaf: .} .
    }
  },
  dwc: {
    uri: "http://rs.tdwg.org/dwc/terms/",
    source: "etc/dwcterms.rdf",
    alt_source: "http://rs.tdwg.org/dwc/rdf/dwcterms.rdf",
    strict: false,
  },
  earl: {
    uri: "http://www.w3.org/ns/earl#",
    source: "http://www.w3.org/ns/earl",
    patch: %{
      @prefix earl: <http://www.w3.org/ns/earl#>.
      @prefix owl: <http://www.w3.org/2002/07/owl#>.
      @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.

      AddNew {
        # Extends EARL to talk about collections of assertions
        earl:Report a rdfs:Class, owl:Class ;
          rdfs:label "Report" ;
          rdfs:comment "A collection of earl:Assertion" .
        earl:assertion a owl:ObjectProperty, rdfs:Property ;
          rdfs:label "assertion" ;
          rdfs:comment "Test Assertions associated with an earl:Report or earl:TestCase" ;
          rdfs:domain [
            a owl:Class ;
            owl:unionOf (earl:Report earl:TestCase)
          ] ;
          rdfs:range earl:Assertion .
      } .
    },
  },
  ebucore: {
    uri: "http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#",
    source: "https://www.ebu.ch/metadata/ontologies/ebucore/ebucore.rdf",
    class_name: "EBUCore",
    patch: %{
      @prefix owl: <http://www.w3.org/2002/07/owl#>.
      @prefix dc: <http://purl.org/dc/terms/> .
      @prefix dc11: <http://purl.org/dc/elements/1.1/> .
      @prefix ebucore: <http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#> .
      DeleteExisting { ebucore:Agent owl:equivalentClass dc11:Agent . } .
      AddNew { ebucore:Agent owl:equivalentClass dc:Agent . } .
    },
  },
  edm: {
    uri: "http://www.europeana.eu/schemas/edm/",
    source: "http://www.europeana.eu/schemas/edm/rdf/edm.owl"
  },
  exif:   {
    uri: "http://www.w3.org/2003/12/exif/ns#",
    patch: %{
      @prefix exif: <http://www.w3.org/2003/12/exif/ns#> .
      @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
      DeleteExisting {
        exif:subSecTime rdfs:subPropertyOf exif:subsecond .
        exif:subSecTimeDigitized rdfs:subPropertyOf exif:subsecond .
        exif:subSecTimeOriginal rdfs:subPropertyOf exif:subsecond .
      } .
      AddNew {
        exif:subSecTime rdfs:subPropertyOf exif:subseconds .
        exif:subSecTimeDigitized rdfs:subPropertyOf exif:subseconds .
        exif:subSecTimeOriginal rdfs:subPropertyOf exif:subseconds .
      } .
    }
  },
  fcrepo4: {
    uri: "http://fedora.info/definitions/v4/repository#",
    class_name: "Fcrepo4",
    source: "http://fedora.info/definitions/v4/2015/07/24/repository"
  },
  foaf:   {uri: "http://xmlns.com/foaf/0.1/"},
  geo:    {uri: "http://www.w3.org/2003/01/geo/wgs84_pos#"},
  geojson:{
    uri: "https://purl.org/geojson/vocab#",
    source: "http://geojson.org/geojson-ld/vocab.rdf"
  },
  geonames: {uri: "http://www.geonames.org/ontology#"},
  gr:     {uri: "http://purl.org/goodrelations/v1#", source: "http://www.heppnetz.de/ontologies/goodrelations/v1.owl"},
  gs1:    {
    uri: "http://gs1.org/voc/",
    source: "https://www.gs1.org/docs/gs1-smartsearch/gs1voc.ttl",
    patch: %{
      @prefix gs1: <http://gs1.org/voc/> .
      @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
      DeleteExisting {
        gs1:MeasurementPrecisionCode-LESS_THAN a gs1:MeasurementPrecisionTypeCode .
        gs1:PreservationTechniqueCode-COLD_SMOKE_CURING a gs1:PreservationTechniqueTypeCode .
      } .
      AddNew {
        gs1:MeasurementPrecisionCode-LESS_THAN a gs1:MeasurementPrecisionCode .
        gs1:PreservationTechniqueCode-COLD_SMOKE_CURING a gs1:PreservationTechniqueCode .
        gs1:ReturnablePackageDepositDetails a rdfs:Class .
        gs1:Place a rdfs:Class .
        gs1:PackagingMaterialDetails a rdfs:Class .
      } .
    }
  },
  ht:     {uri: "http://www.w3.org/2011/http#"},
  hydra:  {uri: "http://www.w3.org/ns/hydra/core#"},
  iana:   {uri: "http://www.iana.org/assignments/relation/", source: File.expand_path("../../../etc/iana.ttl", __FILE__)},
  ical:   {uri: "http://www.w3.org/2002/12/cal/icaltzd#"},
  identifiers: {
    uri: "http://id.loc.gov/vocabulary/identifiers/",
    source: "http://id.loc.gov/vocabulary/identifiers",
    class_name: "Identifiers",
    extra: {
      id: {
        label: "Identifier",
        comment: "Generic Identifier property.  It is expected that one will use one of its many subproperties.",
        type: "rdf:Property"
      }
    }
  },
  iiif: {
    uri: "http://iiif.io/api/presentation/2#",
    class_name: "IIIF"
  },
  jsonld: {uri: "http://www.w3.org/ns/json-ld#"},
  ldp:    {
    uri: "http://www.w3.org/ns/ldp#",
    strict: false,
    patch: %{
      @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
      @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
      @prefix owl: <http://www.w3.org/2002/07/owl#>.
      @prefix : <http://www.w3.org/ns/ldp#>.
      DeleteExisting {
        :pageSortOrder rdfs:range rdf:Resource .
        :Ascending a owl:Individual .
        :Descending a owl:Individual .
        :MemberSubject a owl:Individual .
        :PreferContainment a owl:Individual .
        :PreferEmptyContainer a owl:Individual .
        :PreferMembership a owl:Individual .
        :PreferMinimalContainer a owl:Individual .
      } .
      AddNew {
        :pageSortOrder rdfs:range rdfs:Resource .
        :Ascending a owl:NamedIndividual .
        :Descending a owl:NamedIndividual .
        :MemberSubject a owl:NamedIndividual .
        :PreferContainment a owl:NamedIndividual .
        :PreferEmptyContainer a owl:NamedIndividual .
        :PreferMembership a owl:NamedIndividual .
        :PreferMinimalContainer a owl:NamedIndividual .
      } .
    }
  },
  lrmi:   {uri: "http://purl.org/dcx/lrmi-terms/", strict: false},
  ma:     {uri: "http://www.w3.org/ns/ma-ont#", source: "http://www.w3.org/ns/ma-ont.rdf", strict: false},
  mads: {
    uri: "http://www.loc.gov/mads/rdf/v1#",
    source: "http://www.loc.gov/standards/mads/rdf/v1.rdf",
    patch: %{
      @prefix : <http://www.loc.gov/mads/rdf/v1#> .
      @prefix owl: <http://www.w3.org/2002/07/owl#>.
      DeleteExisting {:gender a owl:DataTypeProperty .} .
      AddNew {:gender a owl:DatatypeProperty .} .
    }
  },
  marcrelators: {
    uri: "http://id.loc.gov/vocabulary/relators/",
    source: "http://id.loc.gov/vocabulary/relators.rdf",
    class_name: "MARCRelators"
  },
  mo:     {uri: "http://purl.org/ontology/mo/", strict: false},
  mods: {
    uri: "http://www.loc.gov/mods/rdf/v1#",
    source: "http://www.loc.gov/standards/mods/modsrdf/v1/modsrdf.owl"
  },
  nfo:    {uri: 'http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#', skip: true},
  oa:     {uri: "http://www.w3.org/ns/oa#"},
  og:     {
    uri: "http://ogp.me/ns#",
    source: 'http://ogp.me/ns/ogp.me.ttl',
    strict: false,
    patch: %{
      @prefix og: <http://ogp.me/ns#> .
      @prefix ogc: <http://ogp.me/ns/class#> .
      @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#>.
      # Used in http://ogp.me/ but not defined
      AddNew {
        og:image:url a rdf:Property ;
          rdfs:label "image:url"@en-US ;
          rdfs:comment "Identical to og:image."@en-US ;
          rdfs:seeAlso og:image ;
          rdfs:isDefinedBy og: ;
          owl:sameProperty og:image ;
          rdfs:range ogc:url .
        og:image:alt a rdf:Property ;
          rdfs:label "image:alt"@en-US ;
          rdfs:comment "A description of what is in the image (not a caption). If the page specifies an og:image it should specify og:image:alt."@en-US ;
          rdfs:seeAlso og:image ;
          rdfs:isDefinedBy og: ;
          rdfs:range ogc:string .
        og:locale:alternate a rdf:Property ;
          rdfs:label "locale:alternate"@en-US ;
          rdfs:comment "An array of other locales this page is available in."@en-US ;
          rdfs:seeAlso og:locale ;
          rdfs:isDefinedBy og: ;
          rdfs:range ogc:string .
      } .
    }
  },
  ogc:    {uri: "http://ogp.me/ns/class#", source: "http://ogp.me/ns/ogp.me.ttl", strict: false},
  ore:    {uri: "http://www.openarchives.org/ore/terms/"},
  org:    {uri: "http://www.w3.org/ns/org#"},
  owl:    {uri: "http://www.w3.org/2002/07/owl#", alias: true},
  pcdm: {
    uri: "http://pcdm.org/models#",
    source: "https://raw.githubusercontent.com/duraspace/pcdm/master/models.rdf"
  },
  pplan:  {uri: "http://purl.org/net/p-plan#"},
  premis: {
    uri: "http://www.loc.gov/premis/rdf/v1#",
    source: "http://www.loc.gov/premis/rdf/v1.rdf"
  },
  premiseventtype: {
    uri: "http://id.loc.gov/vocabulary/preservation/eventType/",
    source: "http://id.loc.gov/vocabulary/preservation/eventType",
    class_name: "PremisEventType"
  },
  prov:   {uri: "http://www.w3.org/ns/prov#"},
  ptr:    {uri: "http://www.w3.org/2009/pointers#"},
  rdau: {
    uri: "http://rdaregistry.info/Elements/u/",
    source: "http://www.rdaregistry.info/nt/Elements/u.nt"
  },
  rdfs:   {uri: "http://www.w3.org/2000/01/rdf-schema#", alias: true},
  rightsstatements: {
    uri: 'http://rightsstatements.org/vocab/',
    source: 'https://raw.githubusercontent.com/rightsstatements/data-model/master/rights-statements.ttl',
    class_name: 'RightsStatements'
  },
  rsa:    {
    uri: "http://www.w3.org/ns/auth/rsa#",
    patch: %{
      @prefix cert: <http://www.w3.org/ns/auth/cert#> .
      @prefix rsa: <http://www.w3.org/ns/auth/rsa#> .
      @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
      @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
      DeleteExisting {
        rsa:modulus rdfs:range cert:int .
        rsa:private_exponent rdfs:range cert:int .
        rsa:public_exponent rdfs:range cert:int .
      } .
      AddNew {
        rsa:modulus rdfs:range xsd:base64Binary, xsd:hexBinary .
        rsa:private_exponent rdfs:range xsd:nonNegativeInteger .
        rsa:public_exponent rdfs:range xsd:nonNegativeInteger .
      } .
    }
  },
  rss:    {uri: "http://purl.org/rss/1.0/", source: "http://purl.org/rss/1.0/schema.rdf"},
  schema: {
    uri: "http://schema.org/",
    source: "https://schema.org/version/latest/schemaorg-all-http.nt"
  },
  schemas: {
    uri: "https://schema.org/",
    source: "https://schema.org/version/latest/schemaorg-all-https.nt"
  },
  sd: {uri: 'http://www.w3.org/ns/sparql-service-description#', source: 'http://www.w3.org/ns/sparql-service-description.ttl'},
  sh: {uri: 'http://www.w3.org/ns/shacl#', source: 'https://www.w3.org/ns/shacl.ttl'},
  sioc:   {uri: "http://rdfs.org/sioc/ns#"},
  siocservices: {
    uri: "http://rdfs.org/sioc/services#",
    class_name: "SiocServices"
  },
  sioctypes:  {uri: "http://rdfs.org/sioc/types#", class_name: "SiocTypes"},
  skos:   {uri: "http://www.w3.org/2004/02/skos/core#"},
  skosxl: {uri: "http://www.w3.org/2008/05/skos-xl#", source: "http://www.w3.org/TR/skos-reference/skos-xl.rdf"},
  v:      {uri: "http://rdf.data-vocabulary.org/#", source: "etc/rdf.data-vocab.ttl"},
  vmd:    {uri: "http://data-vocabulary.org/", source: "etc/data-vocab.ttl"},
  vcard:  {uri: "http://www.w3.org/2006/vcard/ns#"},
  void:   {uri: "http://rdfs.org/ns/void#", source: "http://vocab.deri.ie/void.rdf"},
  vs:     {uri: "http://www.w3.org/2003/06/sw-vocab-status/ns#"},
  wdrs:   {uri: "http://www.w3.org/2007/05/powder-s#"},
  wot:    {uri: "http://xmlns.com/wot/0.1/", source: "http://xmlns.com/wot/0.1/index.rdf"},
  xkos:   {
    uri: "http://rdf-vocabulary.ddialliance.org/xkos#",
    source: "https://raw.githubusercontent.com/linked-statistics/xkos/master/xkos.ttl"
  },
  xhtml:  {uri: "http://www.w3.org/1999/xhtml#", strict: false},
  xhv:    {uri: "http://www.w3.org/1999/xhtml/vocab#", strict: false},
  xsd:    {uri: "http://www.w3.org/2001/XMLSchema#", strict: false, alias: true},
}.freeze
V =
Class.new(RDF::StrictVocabulary("http://rdf.data-vocabulary.org/#")) do

  # Class definitions
  term :Address,
    comment: "Postal address for a Person or Organization.".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Breadcrumb,
    comment: "Represents a single Breadcrumb in a Breadcrumb trail.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :Instructions,
    comment: "Represents the steps to make a dish.".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Nutrition,
    comment: "Represents the nutrition information about a recipe.".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Offer,
    comment: "Represents an offer to sell a product.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :OfferAggregate,
    comment: "Represents a collection of offers to sell a product.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :Organization,
    comment: "An Organization is a business, agency, school, etc.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :Person,
    comment: "Represents a Person, living/dead/fictional.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :Product,
    comment: "Represents a product or service in a Review or Review-aggregate.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :Rating,
    comment: "Represents a rating in a Review or Review-aggregate.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :Recipe,
    comment: "A single instance of a Recipe.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :RecipeIngredient,
    comment: "Represents ingredients used in a recipe.".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Review,
    comment: "A single instance of a Review.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :"Review-aggregate",
    comment: "Represents data from a collection of reviews.\n    Can be used whether or not there is instance-level Review data on the page.\n  ".freeze,
    subClassOf: "http://rdf.data-vocabulary.org/#Review".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :TimeRange,
    comment: "Represents the length of time it takes to prepare a recipe.".freeze,
    type: ["http://www.w3.org/2000/01/rdf-schema#Class".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]

  # Property definitions
  property :acquaintance,
    domain: "http://rdf.data-vocabulary.org/#Person".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :address,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Person".freeze, "http://rdf.data-vocabulary.org/#Organization".freeze)
      ),
    range: "http://rdf.data-vocabulary.org/#Address".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :affiliation,
    comment: "An affiliation can be specified by a string literal or an Organization instance.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Person".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Organization".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :amount,
    domain: "http://rdf.data-vocabulary.org/#RecipeIngredient".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :author,
    comment: "An author of the recipe can be specified by a string literal or a Person instance.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Person".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :availability,
    domain: "http://rdf.data-vocabulary.org/#Offer".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :average,
    comment: "The average of an aggregate value.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Rating".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :best,
    comment: "The best value of a rating scale (default 5).".freeze,
    domain: "http://rdf.data-vocabulary.org/#Rating".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :brand,
    domain: "http://rdf.data-vocabulary.org/#Product".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :calories,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :carbohydrates,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :category,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Organization".freeze, "http://rdf.data-vocabulary.org/#Product".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :child,
    domain: "http://rdf.data-vocabulary.org/#Breadcrumb".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :cholesterol,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :colleague,
    domain: "http://rdf.data-vocabulary.org/#Person".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :condition,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Offer".freeze, "http://rdf.data-vocabulary.org/#OfferAggregate".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :contact,
    domain: "http://rdf.data-vocabulary.org/#Person".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :cookTime,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#TimeRange".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :count,
    comment: "The total number of items used in an aggregate (e.g., number of reviews).".freeze,
    domain: "http://rdf.data-vocabulary.org/#Review-aggregate".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :"country-name",
    domain: "http://rdf.data-vocabulary.org/#Address".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :currency,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Offer".freeze, "http://rdf.data-vocabulary.org/#OfferAggregate".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :description,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Review".freeze, "http://rdf.data-vocabulary.org/#Product".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :dtreviewed,
    comment: "The date of the review.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Review".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :duration,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#TimeRange".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :fat,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :fiber,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :friend,
    domain: "http://rdf.data-vocabulary.org/#Person".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :highprice,
    domain: "http://rdf.data-vocabulary.org/#OfferAggregate".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :identifier,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Product".freeze, "http://rdf.data-vocabulary.org/#Offer".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :image,
    domain: "http://rdf.data-vocabulary.org/#Product".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :ingredient,
    comment: "Represents ingredients used in a recipe.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    range: "http://rdf.data-vocabulary.org/#RecipeIngredient".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :instruction,
    domain: "http://rdf.data-vocabulary.org/#Instructions".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :instructions,
    comment: "Represents the steps to make a dish.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    range: "http://rdf.data-vocabulary.org/#Instructions".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :itemoffered,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Offer".freeze, "http://rdf.data-vocabulary.org/#OfferAggregate".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :itemreviewed,
    domain: "http://rdf.data-vocabulary.org/#Review".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :locality,
    domain: "http://rdf.data-vocabulary.org/#Address".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :lowprice,
    domain: "http://rdf.data-vocabulary.org/#OfferAggregate".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :max,
    comment: "The maximum value of an aggregated Rating.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Rating".freeze, "http://rdf.data-vocabulary.org/#TimeRange".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :min,
    comment: "The minimum value of an aggregated Rating.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Rating".freeze, "http://rdf.data-vocabulary.org/#TimeRange".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :name,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :nickname,
    domain: "http://rdf.data-vocabulary.org/#Person".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :nutrition,
    comment: "Represents the nutrition information about a recipe.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    range: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :offercount,
    domain: "http://rdf.data-vocabulary.org/#OfferAggregate".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :offerdetails,
    domain: "http://rdf.data-vocabulary.org/#Product".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :offerurl,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Offer".freeze, "http://rdf.data-vocabulary.org/#OfferAggregate".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :photo,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :"postal-code",
    domain: "http://rdf.data-vocabulary.org/#Address".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :prepTime,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#TimeRange".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :price,
    domain: "http://rdf.data-vocabulary.org/#Offer".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :pricerange,
    comment: "The price range of products and services offered\n    by a restaurant, business or other organization.\n  ".freeze,
    domain: "http://rdf.data-vocabulary.org/#Organization".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :pricevaliduntil,
    domain: "http://rdf.data-vocabulary.org/#Offer".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :protein,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :published,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :quantity,
    domain: "http://rdf.data-vocabulary.org/#Offer".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :rating,
    comment: "A rating can be specified by a string literal or a Rating instance.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Review".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Rating".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :recipeType,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :region,
    domain: "http://rdf.data-vocabulary.org/#Address".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :reviewer,
    comment: "A reviewer can be specified by a string literal or a Person instance.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Review".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Person".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :role,
    domain: "http://rdf.data-vocabulary.org/#Person".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :saturatedFat,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :seller,
    domain: "http://rdf.data-vocabulary.org/#Offer".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :servingSize,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :"street-address",
    domain: "http://rdf.data-vocabulary.org/#Address".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :sugar,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :summary,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Review".freeze, "http://rdf.data-vocabulary.org/#Recipe".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :tag,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :tel,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Person".freeze, "http://rdf.data-vocabulary.org/#Organization".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :timeRange,
    comment: "Represents the length of time it takes to prepare a recipe.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    range: "http://rdf.data-vocabulary.org/#TimeRange".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :title,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Person".freeze, "http://rdf.data-vocabulary.org/#Breadcrumb".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :totalTime,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#TimeRange".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :unsaturatedFat,
    domain: "http://rdf.data-vocabulary.org/#Nutrition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :url,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://rdf.data-vocabulary.org/#Person".freeze, "http://rdf.data-vocabulary.org/#Organization".freeze, "http://rdf.data-vocabulary.org/#Product".freeze, "http://rdf.data-vocabulary.org/#Breadcrumb".freeze)
      ),
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :value,
    comment: "The value of a single Rating.".freeze,
    domain: "http://rdf.data-vocabulary.org/#Rating".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :worst,
    comment: "The poorest value of a rating scale (default 1).".freeze,
    domain: "http://rdf.data-vocabulary.org/#Rating".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :yield,
    domain: "http://rdf.data-vocabulary.org/#Recipe".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
end
AS =
Class.new(RDF::StrictVocabulary("https://www.w3.org/ns/activitystreams#")) do

  # Ontology definition
  ontology :"https://www.w3.org/ns/activitystreams#",
    comment: "Extended Activity Streams 2.0 Vocabulary".freeze,
    "http://www.w3.org/2002/07/owl#imports": "http://www.w3.org/ns/prov#".freeze,
    label: "Activity Streams 2.0".freeze,
    type: "http://www.w3.org/2002/07/owl#Ontology".freeze

  # Class definitions
  term :Accept,
    comment: "Actor accepts the Object".freeze,
    label: "Accept".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Activity,
    comment: "An Object representing some form of Action that has been taken".freeze,
    label: "Activity".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Add,
    comment: "To Add an Object or Link to Something".freeze,
    label: "Add".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Announce,
    comment: "Actor announces the object to the target".freeze,
    label: "Announce".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Application,
    comment: "Represents a software application of any sort".freeze,
    label: "Application".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Arrive,
    comment: "To Arrive Somewhere (can be used, for instance, to indicate that a particular entity is currently located somewhere, e.g. a \"check-in\")".freeze,
    label: "Arrive".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#IntransitiveActivity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Article,
    comment: "A written work. Typically several paragraphs long. For example, a blog post or a news article.".freeze,
    label: "Article".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Audio,
    comment: "An audio file".freeze,
    label: "Audio".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Document".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Block,
    label: "Block".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Ignore".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Collection,
    comment: "An ordered or unordered collection of Objects or Links".freeze,
    label: "Collection".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :CollectionPage,
    comment: "A subset of items from a Collection".freeze,
    label: "CollectionPage".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Collection".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Create,
    comment: "To Create Something".freeze,
    label: "Create".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Delete,
    comment: "To Delete Something".freeze,
    label: "Delete".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Dislike,
    comment: "The actor dislikes the object".freeze,
    label: "Dislike".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Document,
    comment: "Represents a digital document/file of any sort".freeze,
    label: "Document".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Event,
    comment: "An Event of any kind".freeze,
    label: "Event".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Flag,
    comment: "To flag something (e.g. flag as inappropriate, flag as spam, etc)".freeze,
    label: "Flag".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Follow,
    comment: "To Express Interest in Something".freeze,
    label: "Follow".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Group,
    comment: "A Group of any kind.".freeze,
    label: "Group".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Ignore,
    comment: "Actor is ignoring the Object".freeze,
    label: "Ignore".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Image,
    comment: "An Image file".freeze,
    label: "Image".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Document".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :IntransitiveActivity,
    comment: "An Activity that has no direct object".freeze,
    label: "IntransitiveActivity".freeze,
    subClassOf: ["https://www.w3.org/ns/activitystreams#Activity".freeze, term(
        maxCardinality: "0".freeze,
        onProperty: "https://www.w3.org/ns/activitystreams#object".freeze,
        type: "http://www.w3.org/2002/07/owl#Restriction".freeze
      )],
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Invite,
    comment: "To invite someone or something to something".freeze,
    label: "Invite".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Offer".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Join,
    comment: "To Join Something".freeze,
    label: "Join".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Leave,
    comment: "To Leave Something".freeze,
    label: "Leave".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Like,
    comment: "To Like Something".freeze,
    label: "Like".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Link,
    comment: "Represents a qualified reference to another resource. Patterned after the RFC5988 Web Linking Model".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "Link".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Listen,
    comment: "The actor listened to the object".freeze,
    label: "Listen".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Mention,
    comment: "A specialized Link that represents an @mention".freeze,
    label: "Mention".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Link".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Move,
    comment: "The actor is moving the object. The target specifies where the object is moving to. The origin specifies where the object is moving from.".freeze,
    label: "Move".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Note,
    comment: "A Short note, typically less than a single paragraph. A \"tweet\" is an example, or a \"status update\"".freeze,
    label: "Note".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Object,
    label: "Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Offer,
    comment: "To Offer something to someone or something".freeze,
    label: "Offer".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :OrderedCollection,
    comment: "A variation of Collection in which items are strictly ordered".freeze,
    label: "OrderedCollection".freeze,
    subClassOf: term(
        intersectionOf: list("https://www.w3.org/ns/activitystreams#Collection".freeze, "_:g14420".freeze),
        type: "http://www.w3.org/2002/07/owl#Class".freeze
      ),
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :OrderedCollectionPage,
    comment: "An ordered subset of items from an OrderedCollection".freeze,
    label: "OrderedCollectionPage".freeze,
    subClassOf: ["https://www.w3.org/ns/activitystreams#CollectionPage".freeze, "https://www.w3.org/ns/activitystreams#OrderedCollection".freeze],
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :OrderedItems,
    comment: "A rdf:List variant for Objects and Links".freeze,
    label: "OrderedItems".freeze,
    subClassOf: term(
        intersectionOf: list("http://www.w3.org/1999/02/22-rdf-syntax-ns#List".freeze, "_:g16060".freeze, "_:g16100".freeze),
        type: "http://www.w3.org/2002/07/owl#Class".freeze
      ),
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Organization,
    comment: "An Organization".freeze,
    label: "Organization".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Page,
    comment: "A Web Page".freeze,
    label: "Page".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Person,
    comment: "A Person".freeze,
    label: "Person".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Place,
    comment: "A physical or logical location".freeze,
    label: "Place".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Profile,
    comment: "A Profile Document".freeze,
    label: "Profile".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Question,
    comment: "A question of any sort.".freeze,
    label: "Question".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#IntransitiveActivity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Read,
    comment: "The actor read the object".freeze,
    label: "Read".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Reject,
    comment: "Actor rejects the Object".freeze,
    label: "Reject".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Relationship,
    comment: "Represents a Social Graph relationship between two Individuals (indicated by the 'a' and 'b' properties)".freeze,
    label: "Relationship".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: ["http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement".freeze, "http://www.w3.org/2002/07/owl#Class".freeze]
  term :Remove,
    comment: "To Remove Something".freeze,
    label: "Remove".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Service,
    comment: "A service provided by some entity".freeze,
    label: "Service".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :TentativeAccept,
    comment: "Actor tentatively accepts the Object".freeze,
    label: "TentativeAccept".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Accept".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :TentativeReject,
    comment: "Actor tentatively rejects the object".freeze,
    label: "TentativeReject".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Reject".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Tombstone,
    comment: "A placeholder for a deleted object".freeze,
    label: "Tombstone".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Travel,
    comment: "The actor is traveling to the target. The origin specifies where the actor is traveling from.".freeze,
    label: "Travel".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#IntransitiveActivity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Undo,
    comment: "To Undo Something. This would typically be used to indicate that a previous Activity has been undone.".freeze,
    label: "Undo".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Update,
    comment: "To Update/Modify Something".freeze,
    label: "Update".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Video,
    comment: "A Video document of any kind.".freeze,
    label: "Video".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Document".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :View,
    comment: "The actor viewed the object".freeze,
    label: "View".freeze,
    subClassOf: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze

  # Property definitions
  property :accuracy,
    comment: "Specifies the accuracy around the point established by the longitude and latitude".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Place".freeze,
    label: "accuracy".freeze,
    range: term(
        "http://www.w3.org/2002/07/owl#onDatatype": "http://www.w3.org/2001/XMLSchema#float".freeze,
        "http://www.w3.org/2002/07/owl#withRestrictions": list("_:g15580".freeze),
        type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
      ),
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :actor,
    comment: "Subproperty of as:attributedTo that identifies the primary actor".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    label: "actor".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    subPropertyOf: "https://www.w3.org/ns/activitystreams#attributedTo".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :altitude,
    comment: "The altitude of a place".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Place".freeze,
    label: "altitude".freeze,
    range: "http://www.w3.org/2001/XMLSchema#float".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :anyOf,
    comment: "Describes a possible inclusive answer or option for a question.".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Question".freeze,
    label: "oneOf".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :attachment,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    equivalentProperty: "https://www.w3.org/ns/activitystreams#attachments".freeze,
    label: "attachment".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Link".freeze, "https://www.w3.org/ns/activitystreams#Object".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :attachments,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "attachments".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :attributedTo,
    comment: "Identifies an entity to which an object is attributed".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    label: "attributedTo".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :audience,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "audience".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :author,
    comment: "Identifies the author of an object. Deprecated. Use as:attributedTo instead".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "author".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    subPropertyOf: "https://www.w3.org/ns/activitystreams#attributedTo".freeze,
    type: ["http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :bcc,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "bcc".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :bto,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "bto".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :cc,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "cc".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :content,
    comment: "The content of the object.".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "content".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("_:g15980".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :context,
    comment: "Specifies the context within which an object exists or an activity was performed".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "context".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :current,
    domain: "https://www.w3.org/ns/activitystreams#Collection".freeze,
    label: "current".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#CollectionPage".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#FunctionalProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :deleted,
    comment: "Specifies the date and time the object was deleted".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Tombstone".freeze,
    label: "deleted".freeze,
    range: "http://www.w3.org/2001/XMLSchema#dateTime".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :describes,
    comment: "On a Profile object, describes the object described by the profile".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Profile".freeze,
    label: "describes".freeze,
    range: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: ["http://www.w3.org/2002/07/owl#FunctionalProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :downstreamDuplicates,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "downstreamDuplicates".freeze,
    range: "http://www.w3.org/2001/XMLSchema#anyURI".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze]
  property :duration,
    comment: "The duration of the object".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "duration".freeze,
    range: "http://www.w3.org/2001/XMLSchema#duration".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :endTime,
    comment: "The ending time of the object".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "endTime".freeze,
    range: "http://www.w3.org/2001/XMLSchema#dateTime".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :first,
    domain: "https://www.w3.org/ns/activitystreams#Collection".freeze,
    label: "first".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#CollectionPage".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#FunctionalProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :formerType,
    comment: "On a Tombstone object, describes the former type of the deleted object".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Tombstone".freeze,
    label: "formerType".freeze,
    range: "https://www.w3.org/ns/activitystreams#Object".freeze,
    type: ["http://www.w3.org/2002/07/owl#FunctionalProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :generator,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "generator".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :height,
    comment: "The display height expressed as device independent pixels".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Link".freeze,
    label: "height".freeze,
    range: "http://www.w3.org/2001/XMLSchema#nonNegativeInteger".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :href,
    comment: "The target URI of the Link".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Link".freeze,
    label: "href".freeze,
    range: "http://www.w3.org/2001/XMLSchema#anyURI".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :hreflang,
    comment: "A hint about the language of the referenced resource".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Link".freeze,
    label: "hreflang".freeze,
    range: "http://www.w3.org/2001/XMLSchema#language".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :icon,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "icon".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Image".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :id,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Link".freeze, "https://www.w3.org/ns/activitystreams#Object".freeze)
      ),
    label: "id".freeze,
    range: "http://www.w3.org/2001/XMLSchema#anyURI".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :image,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "image".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Image".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :inReplyTo,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "inReplyTo".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :instrument,
    comment: "Indentifies an object used (or to be used) to complete an activity".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    label: "instrument".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :items,
    domain: "https://www.w3.org/ns/activitystreams#Collection".freeze,
    label: "items".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("_:g15260".freeze, "https://www.w3.org/ns/activitystreams#OrderedItems".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :last,
    domain: "https://www.w3.org/ns/activitystreams#Collection".freeze,
    label: "last".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#CollectionPage".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#FunctionalProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :latitude,
    comment: "The latitude".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Place".freeze,
    label: "latitude".freeze,
    range: "http://www.w3.org/2001/XMLSchema#float".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :location,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "location".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :longitude,
    comment: "The longitude".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Place".freeze,
    label: "longitude".freeze,
    range: "http://www.w3.org/2001/XMLSchema#float".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :mediaType,
    comment: "The MIME Media Type".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Link".freeze, "https://www.w3.org/ns/activitystreams#Object".freeze)
      ),
    label: "mediaType".freeze,
    range: "http://www.w3.org/2001/XMLSchema#string".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :name,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    "http://www.w3.org/2000/01/rdf-schema#name": "The default, plain-text display name of the object or link.".freeze,
    label: "name".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("_:g15160".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :next,
    domain: "https://www.w3.org/ns/activitystreams#CollectionPage".freeze,
    label: "next".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#CollectionPage".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#FunctionalProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :object,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Activity".freeze, "https://www.w3.org/ns/activitystreams#Relationship".freeze)
      ),
    label: "object".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :objectType,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "objectType".freeze,
    range: "http://www.w3.org/2001/XMLSchema#anyURI".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :oneOf,
    comment: "Describes a possible exclusive answer or option for a question.".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Question".freeze,
    label: "oneOf".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :origin,
    comment: "For certain activities, specifies the entity from which the action is directed.".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    label: "origin".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :partOf,
    domain: "https://www.w3.org/ns/activitystreams#CollectionPage".freeze,
    label: "partOf".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Collection".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#FunctionalProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :prev,
    domain: "https://www.w3.org/ns/activitystreams#CollectionPage".freeze,
    label: "prev".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#CollectionPage".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#FunctionalProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :preview,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    label: "preview".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :provider,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "provider".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :published,
    comment: "Specifies the date and time the object was published".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "published".freeze,
    range: "http://www.w3.org/2001/XMLSchema#dateTime".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :radius,
    comment: "Specifies a radius around the point established by the longitude and latitude".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Place".freeze,
    label: "radius".freeze,
    range: term(
        "http://www.w3.org/2002/07/owl#onDatatype": "http://www.w3.org/2001/XMLSchema#float".freeze,
        "http://www.w3.org/2002/07/owl#withRestrictions": list("_:g14720".freeze),
        type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
      ),
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :rating,
    comment: "A numeric rating (>= 0.0, <= 5.0) for the object".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "rating".freeze,
    range: term(
        "http://www.w3.org/2002/07/owl#onDatatype": "http://www.w3.org/2001/XMLSchema#float".freeze,
        "http://www.w3.org/2002/07/owl#withRestrictions": list("_:g14140".freeze, "_:g14180".freeze),
        type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
      ),
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :rel,
    comment: "The RFC 5988 or HTML5 Link Relation associated with the Link".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Link".freeze,
    label: "rel".freeze,
    range: "http://www.w3.org/2001/XMLSchema#string".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :relationship,
    comment: "On a Relationship object, describes the type of relationship".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Relationship".freeze,
    label: "relationship".freeze,
    range: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze,
    subPropertyOf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :replies,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "replies".freeze,
    range: "https://www.w3.org/ns/activitystreams#Collection".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :result,
    domain: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    label: "result".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :startIndex,
    comment: "In a strictly ordered logical collection, specifies the index position of the first item in the items list".freeze,
    domain: "https://www.w3.org/ns/activitystreams#OrderedCollectionPage".freeze,
    label: "startIndex".freeze,
    range: "http://www.w3.org/2001/XMLSchema#nonNegativeInteger".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :startTime,
    comment: "The starting time of the object".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "startTime".freeze,
    range: "http://www.w3.org/2001/XMLSchema#dateTime".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :subject,
    comment: "On a Relationship object, identifies the subject. e.g. when saying \"John is connected to Sally\", 'subject' refers to 'John'".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Relationship".freeze,
    label: "a".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Link".freeze, "https://www.w3.org/ns/activitystreams#Object".freeze)
      ),
    subPropertyOf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#subject".freeze,
    type: ["http://www.w3.org/2002/07/owl#FunctionalProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :summary,
    comment: "A short summary of the object".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "summary".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("_:g15000".freeze, "http://www.w3.org/2001/XMLSchema#string".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :tag,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "tag".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :tags,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    equivalentProperty: "https://www.w3.org/ns/activitystreams#tag".freeze,
    label: "tags".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze, "http://www.w3.org/2002/07/owl#ObjectProperty".freeze]
  property :target,
    domain: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    label: "target".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :to,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "to".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Object".freeze, "https://www.w3.org/ns/activitystreams#Link".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :totalItems,
    comment: "The total number of items in a logical collection".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Collection".freeze,
    label: "totalItems".freeze,
    range: "http://www.w3.org/2001/XMLSchema#nonNegativeInteger".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :units,
    comment: "Identifies the unit of measurement used by the radius, altitude and accuracy properties. The value can be expressed either as one of a set of predefined units or as a well-known common URI that identifies units.".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Place".freeze,
    label: "units".freeze,
    range: term(
        type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze,
        unionOf: list("_:g14600".freeze, "http://www.w3.org/2001/XMLSchema#anyURI".freeze)
      ),
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :updated,
    comment: "Specifies when the object was last updated".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "updated".freeze,
    range: "http://www.w3.org/2001/XMLSchema#dateTime".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :upstreamDuplicates,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "upstreamDuplicates".freeze,
    range: "http://www.w3.org/2001/XMLSchema#anyURI".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze]
  property :url,
    comment: "Specifies a link to a specific representation of the Object".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Object".freeze,
    label: "url".freeze,
    range: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("https://www.w3.org/ns/activitystreams#Link".freeze, "http://www.w3.org/2002/07/owl#Thing".freeze)
      ),
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :verb,
    domain: "https://www.w3.org/ns/activitystreams#Activity".freeze,
    label: "verb".freeze,
    range: "http://www.w3.org/2001/XMLSchema#anyURI".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#DeprecatedProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
  property :width,
    comment: "Specifies the preferred display width of the content, expressed in terms of device independent pixels.".freeze,
    domain: "https://www.w3.org/ns/activitystreams#Link".freeze,
    label: "width".freeze,
    range: "http://www.w3.org/2001/XMLSchema#nonNegativeInteger".freeze,
    type: ["http://www.w3.org/2002/07/owl#DatatypeProperty".freeze, "http://www.w3.org/2002/07/owl#FunctionalProperty".freeze]
end
CC =
Class.new(RDF::StrictVocabulary("http://creativecommons.org/ns#")) do

  # Ontology definition
  ontology :"http://creativecommons.org/ns#",
    "http://www.w3.org/1999/xhtml/vocab#license": "https://creativecommons.org/licenses/by/4.0/".freeze,
    "http://www.w3.org/1999/xhtml/vocab#stylesheet": "https://creativecommons.org/includes/bootstrap.min.css".freeze

  # Class definitions
  term :Jurisdiction,
    comment: "the legal jurisdiction\nof a license".freeze,
    label: "Jurisdiction".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :License,
    comment: "a set of\nrequests/permissions to users of a Work, e.g. a\ncopyright license, the public domain, information\nfor distributors".freeze,
    label: "License".freeze,
    subClassOf: "http://purl.org/dc/terms/LicenseDocument".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Permission,
    comment: "an action that may or\nmay not be allowed or desired".freeze,
    label: "Permission".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Prohibition,
    comment: "something you may be\nasked not to do".freeze,
    label: "Prohibition".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Requirement,
    comment: "an action that may or\nmay not be requested of you".freeze,
    label: "Requirement".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Work,
    comment: "a potentially\ncopyrightable work".freeze,
    label: "Work".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze

  # Property definitions
  property :attributionName,
    domain: "http://creativecommons.org/ns#Work".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :attributionURL,
    domain: "http://creativecommons.org/ns#Work".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Resource".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :deprecatedOn,
    domain: "http://creativecommons.org/ns#License".freeze,
    label: "deprecated\non".freeze,
    range: "http://www.w3.org/2001/XMLSchema-datatypes#date".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :jurisdiction,
    domain: "http://creativecommons.org/ns#License".freeze,
    label: "jurisdiction".freeze,
    range: "http://creativecommons.org/ns#Jurisdiction".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :legalcode,
    domain: "http://creativecommons.org/ns#License".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Resource".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :license,
    domain: "http://creativecommons.org/ns#Work".freeze,
    "http://www.w3.org/2002/07/owl#sameAs": "http://www.w3.org/1999/xhtml/vocab#license".freeze,
    label: "has\nlicense".freeze,
    range: "http://creativecommons.org/ns#License".freeze,
    subPropertyOf: "http://purl.org/dc/terms/license".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :morePermissions,
    domain: "http://creativecommons.org/ns#Work".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Resource".freeze,
    subPropertyOf: "http://purl.org/dc/terms/relation".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :permits,
    domain: "http://creativecommons.org/ns#License".freeze,
    label: "permits".freeze,
    range: "http://creativecommons.org/ns#Permission".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :prohibits,
    domain: "http://creativecommons.org/ns#License".freeze,
    label: "prohibits".freeze,
    range: "http://creativecommons.org/ns#Prohibition".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :requires,
    domain: "http://creativecommons.org/ns#License".freeze,
    label: "requires".freeze,
    range: "http://creativecommons.org/ns#Requirement".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :useGuidelines,
    domain: "http://creativecommons.org/ns#Work".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Resource".freeze,
    subPropertyOf: "http://purl.org/dc/terms/relation".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze

  # Extra definitions
  term :Attribution,
    comment: "credit be given to\ncopyright holder and/or author".freeze,
    label: "Attribution".freeze,
    type: "http://creativecommons.org/ns#Requirement".freeze
  term :CommercialUse,
    comment: "exercising rights for\ncommercial purposes".freeze,
    label: "Commercial Use".freeze,
    type: "http://creativecommons.org/ns#Prohibition".freeze
  term :Copyleft,
    comment: "derivative and\ncombined works must be licensed under specified\nterms, similar to those on the original\nwork".freeze,
    label: "Copyleft".freeze,
    type: "http://creativecommons.org/ns#Requirement".freeze
  term :DerivativeWorks,
    comment: "distribution of\nderivative works".freeze,
    label: "Derivative Works".freeze,
    type: "http://creativecommons.org/ns#Permission".freeze
  term :Distribution,
    comment: "distribution, public\ndisplay, and publicly performance".freeze,
    label: "Distribution".freeze,
    type: "http://creativecommons.org/ns#Permission".freeze
  term :HighIncomeNationUse,
    comment: "use in a\nnon-developing country".freeze,
    label: "High Income Nation Use".freeze,
    type: "http://creativecommons.org/ns#Prohibition".freeze
  term :LesserCopyleft,
    comment: "derivative works must\nbe licensed under specified terms, with at least\nthe same conditions as the original work;\ncombinations with the work may be licensed under\ndifferent terms".freeze,
    label: "Lesser Copyleft".freeze,
    type: "http://creativecommons.org/ns#Requirement".freeze
  term :Notice,
    comment: "copyright and license\nnotices be kept intact".freeze,
    label: "Notice".freeze,
    type: "http://creativecommons.org/ns#Requirement".freeze
  term :Reproduction,
    comment: "making multiple\ncopies".freeze,
    label: "Reproduction".freeze,
    type: "http://creativecommons.org/ns#Permission".freeze
  term :ShareAlike,
    comment: "derivative works be\nlicensed under the same terms or compatible terms\nas the original work".freeze,
    label: "Share Alike".freeze,
    type: "http://creativecommons.org/ns#Requirement".freeze
  term :Sharing,
    comment: "permits commercial\nderivatives, but only non-commercial\ndistribution".freeze,
    label: "Sharing".freeze,
    type: "http://creativecommons.org/ns#Permission".freeze
  term :SourceCode,
    comment: "source code (the\npreferred form for making modifications) must be\nprovided when exercising some rights granted by\nthe license.".freeze,
    label: "Source Code".freeze,
    type: "http://creativecommons.org/ns#Requirement".freeze
end
DC =
Class.new(RDF::StrictVocabulary("http://purl.org/dc/terms/")) do

  # Ontology definition
  ontology :"http://purl.org/dc/terms/",
    "http://purl.org/dc/terms/modified": "2012-06-14".freeze,
    "http://purl.org/dc/terms/publisher": "http://purl.org/dc/aboutdcmi#DCMI".freeze,
    "http://purl.org/dc/terms/title": "DCMI Metadata Terms - other".freeze

  # Class definitions
  term :Agent,
    comment: "A resource that acts or has the power to act.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Agent".freeze,
    type: ["http://purl.org/dc/terms/AgentClass".freeze, "http://www.w3.org/2000/01/rdf-schema#Class".freeze]
  term :AgentClass,
    comment: "A group of agents.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Agent Class".freeze,
    subClassOf: "http://www.w3.org/2000/01/rdf-schema#Class".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :BibliographicResource,
    comment: "A book, article, or other documentary resource.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Bibliographic Resource".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :FileFormat,
    comment: "A digital resource format.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "File Format".freeze,
    subClassOf: "http://purl.org/dc/terms/MediaType".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Frequency,
    comment: "A rate at which something recurs.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Frequency".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Jurisdiction,
    comment: "The extent or range of judicial, law enforcement, or other authority.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Jurisdiction".freeze,
    subClassOf: "http://purl.org/dc/terms/LocationPeriodOrJurisdiction".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :LicenseDocument,
    comment: "A legal document giving official permission to do something with a resource.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "License Document".freeze,
    subClassOf: "http://purl.org/dc/terms/RightsStatement".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :LinguisticSystem,
    comment: "A system of signs, symbols, sounds, gestures, or rules used in communication.".freeze,
    "http://purl.org/dc/terms/description": "Written, spoken, sign, and computer languages are linguistic systems.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Linguistic System".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Location,
    comment: "A spatial region or named place.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Location".freeze,
    subClassOf: "http://purl.org/dc/terms/LocationPeriodOrJurisdiction".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :LocationPeriodOrJurisdiction,
    comment: "A location, period of time, or jurisdiction.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Location, Period, or Jurisdiction".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :MediaType,
    comment: "A file format or physical medium.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Media Type".freeze,
    subClassOf: "http://purl.org/dc/terms/MediaTypeOrExtent".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :MediaTypeOrExtent,
    comment: "A media type or extent.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Media Type or Extent".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :MethodOfAccrual,
    comment: "A method by which resources are added to a collection.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Method of Accrual".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :MethodOfInstruction,
    comment: "A process that is used to engender knowledge, attitudes, and skills.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Method of Instruction".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :PeriodOfTime,
    comment: "An interval of time that is named or defined by its start and end dates.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Period of Time".freeze,
    subClassOf: "http://purl.org/dc/terms/LocationPeriodOrJurisdiction".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :PhysicalMedium,
    comment: "A physical material or carrier.".freeze,
    "http://purl.org/dc/terms/description": "Examples include paper, canvas, or DVD.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Physical Medium".freeze,
    subClassOf: "http://purl.org/dc/terms/MediaType".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :PhysicalResource,
    comment: "A material thing.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Physical Resource".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Policy,
    comment: "A plan or course of action by an authority, intended to influence and determine decisions, actions, and other matters.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Policy".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :ProvenanceStatement,
    comment: "Any changes in ownership and custody of a resource since its creation that are significant for its authenticity, integrity, and interpretation.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Provenance Statement".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :RightsStatement,
    comment: "A statement about the intellectual property rights (IPR) held in or over a resource, a legal document giving official permission to do something with a resource, or a statement about access rights.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Rights Statement".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :SizeOrDuration,
    comment: "A dimension or extent, or a time taken to play or execute.".freeze,
    "http://purl.org/dc/terms/description": "Examples include a number of pages, a specification of length, width, and breadth, or a period in hours, minutes, and seconds.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Size or Duration".freeze,
    subClassOf: "http://purl.org/dc/terms/MediaTypeOrExtent".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze
  term :Standard,
    comment: "A reference point against which other things can be evaluated or compared.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Standard".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Class".freeze

  # Property definitions
  property :abstract,
    comment: "A summary of the resource.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Abstract".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/description".freeze, "http://purl.org/dc/terms/description".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :accessRights,
    comment: "Information about who access the resource or an indication of its security status.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/RightsStatement".freeze,
    "http://purl.org/dc/terms/description": "Access Rights may include information regarding access or restrictions based on privacy, security, or other policies.".freeze,
    "http://purl.org/dc/terms/issued": "2003-02-15".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Access Rights".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/rights".freeze, "http://purl.org/dc/terms/rights".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :accrualMethod,
    comment: "The method by which items are added to a collection.".freeze,
    domain: "http://purl.org/dc/dcmitype/Collection".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/MethodOfAccrual".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to use a value from the Collection Description Accrual Method Vocabulary [[DCMI-ACCRUALMETHOD](https://dublincore.org/groups/collections/accrual-method/)].".freeze,
    "http://purl.org/dc/terms/issued": "2005-06-13".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Accrual Method".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :accrualPeriodicity,
    comment: "The frequency with which items are added to a collection.".freeze,
    domain: "http://purl.org/dc/dcmitype/Collection".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/Frequency".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to use a value from the Collection Description Frequency Vocabulary [[DCMI-COLLFREQ](https://dublincore.org/groups/collections/frequency/)].".freeze,
    "http://purl.org/dc/terms/issued": "2005-06-13".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Accrual Periodicity".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :accrualPolicy,
    comment: "The policy governing the addition of items to a collection.".freeze,
    domain: "http://purl.org/dc/dcmitype/Collection".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/Policy".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to use a value from the Collection Description Accrual Policy Vocabulary [[DCMI-ACCRUALPOLICY](https://dublincore.org/groups/collections/accrual-policy/)].".freeze,
    "http://purl.org/dc/terms/issued": "2005-06-13".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Accrual Policy".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :alternative,
    comment: "An alternative name for the resource.".freeze,
    "http://purl.org/dc/terms/description": "The distinction between titles and alternative titles is application-specific.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Alternative Title".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/title".freeze, "http://purl.org/dc/terms/title".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :audience,
    comment: "A class of agents for whom the resource is intended or useful.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/AgentClass".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to use this property with non-literal values from a vocabulary of audience types.".freeze,
    "http://purl.org/dc/terms/issued": "2001-05-21".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Audience".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :available,
    comment: "Date that the resource became or will become available.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Date Available".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/date".freeze, "http://purl.org/dc/terms/date".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :bibliographicCitation,
    comment: "A bibliographic reference for the resource.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to include sufficient bibliographic detail to identify the resource as unambiguously as possible.".freeze,
    "http://purl.org/dc/terms/issued": "2003-02-15".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Bibliographic Citation".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/identifier".freeze, "http://purl.org/dc/terms/identifier".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :conformsTo,
    comment: "An established standard to which the described resource conforms.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/Standard".freeze,
    "http://purl.org/dc/terms/issued": "2001-05-21".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Conforms To".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :contributor,
    comment: "An entity responsible for making contributions to the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/Agent".freeze,
    "http://purl.org/dc/terms/description": "The guidelines for using names of persons or organizations as creators apply to contributors.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Contributor".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/contributor".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :coverage,
    comment: "The spatial or temporal topic of the resource, spatial applicability of the resource, or jurisdiction under which the resource is relevant.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": ["http://purl.org/dc/terms/Jurisdiction".freeze, "http://purl.org/dc/terms/Location".freeze, "http://purl.org/dc/terms/Period".freeze],
    "http://purl.org/dc/terms/description": "Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended practice is to use a controlled vocabulary such as the Getty Thesaurus of Geographic Names [[TGN](https://www.getty.edu/research/tools/vocabulary/tgn/index.html)]. Where appropriate, named places or time periods may be used in preference to numeric identifiers such as sets of coordinates or date ranges.  Because coverage is so broadly defined, it is preferable to use the more specific subproperties Temporal Coverage and Spatial Coverage.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Coverage".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/coverage".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :created,
    comment: "Date of creation of the resource.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Date Created".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/date".freeze, "http://purl.org/dc/terms/date".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :creator,
    comment: "An entity responsible for making the resource.".freeze,
    equivalentProperty: "http://xmlns.com/foaf/0.1/maker".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/Agent".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to identify the creator with a URI.  If this is not possible or feasible, a literal value that identifies the creator may be provided.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Creator".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/creator".freeze, "http://purl.org/dc/terms/contributor".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :date,
    comment: "A point or period of time associated with an event in the lifecycle of the resource.".freeze,
    "http://purl.org/dc/terms/description": "Date may be used to express temporal information at any level of granularity.  Recommended practice is to express the date, date/time, or period of time according to ISO 8601-1 [[ISO 8601-1](https://www.iso.org/iso-8601-date-and-time-format.html)] or a published profile of the ISO standard, such as the W3C Note on Date and Time Formats [[W3CDTF](https://www.w3.org/TR/NOTE-datetime)] or the Extended Date/Time Format Specification [[EDTF](http://www.loc.gov/standards/datetime/)].  If the full date is unknown, month and year (YYYY-MM) or just year (YYYY) may be used. Date ranges may be specified using ISO 8601 period of time specification in which start and end dates are separated by a '/' (slash) character.  Either the start or end date may be missing.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Date".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/date".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :dateAccepted,
    comment: "Date of acceptance of the resource.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty.  Examples of resources to which a date of acceptance may be relevant are a thesis (accepted by a university department) or an article (accepted by a journal).".freeze,
    "http://purl.org/dc/terms/issued": "2002-07-13".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Date Accepted".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/date".freeze, "http://purl.org/dc/terms/date".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :dateCopyrighted,
    comment: "Date of copyright of the resource.".freeze,
    "http://purl.org/dc/terms/description": "Typically a year.  Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty.".freeze,
    "http://purl.org/dc/terms/issued": "2002-07-13".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Date Copyrighted".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/date".freeze, "http://purl.org/dc/terms/date".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :dateSubmitted,
    comment: "Date of submission of the resource.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty.  Examples of resources to which a 'Date Submitted' may be relevant include a thesis (submitted to a university department) or an article (submitted to a journal).".freeze,
    "http://purl.org/dc/terms/issued": "2002-07-13".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Date Submitted".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/date".freeze, "http://purl.org/dc/terms/date".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :description,
    comment: "An account of the resource.".freeze,
    "http://purl.org/dc/terms/description": "Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Description".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/description".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :educationLevel,
    comment: "A class of agents, defined in terms of progression through an educational or training context, for which the described resource is intended.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/AgentClass".freeze,
    "http://purl.org/dc/terms/issued": "2002-07-13".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Audience Education Level".freeze,
    subPropertyOf: "http://purl.org/dc/terms/audience".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :extent,
    comment: "The size or duration of the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/SizeOrDuration".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to specify the file size in megabytes and duration in ISO 8601 format.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Extent".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/format".freeze, "http://purl.org/dc/terms/format".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :format,
    comment: "The file format, physical medium, or dimensions of the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": ["http://purl.org/dc/terms/Extent".freeze, "http://purl.org/dc/terms/MediaType".freeze],
    "http://purl.org/dc/terms/description": "Recommended practice is to use a controlled vocabulary where available. For example, for file formats one could use the list of Internet Media Types [[MIME](https://www.iana.org/assignments/media-types/media-types.xhtml)].  Examples of dimensions include size and duration.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Format".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/format".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :hasFormat,
    comment: "A related resource that is substantially the same as the pre-existing described resource, but in another format.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of Is Format Of.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Has Format".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :hasPart,
    comment: "A related resource that is included either physically or logically in the described resource.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of Is Part Of.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Has Part".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :hasVersion,
    comment: "A related resource that is a version, edition, or adaptation of the described resource.".freeze,
    "http://purl.org/dc/terms/description": "Changes in version imply substantive changes in content rather than differences in format. This property is intended to be used with non-literal values. This property is an inverse property of Is Version Of.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Has Version".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :identifier,
    comment: "An unambiguous reference to the resource within a given context.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to identify the resource by means of a string conforming to an identification system. Examples include International Standard Book Number (ISBN), Digital Object Identifier (DOI), and Uniform Resource Name (URN).  Persistent identifiers should be provided as HTTP URIs.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Identifier".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/identifier".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :instructionalMethod,
    comment: "A process, used to engender knowledge, attitudes and skills, that the described resource is designed to support.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/MethodOfInstruction".freeze,
    "http://purl.org/dc/terms/description": "Instructional Method typically includes ways of presenting instructional materials or conducting instructional activities, patterns of learner-to-learner and learner-to-instructor interactions, and mechanisms by which group and individual levels of learning are measured.  Instructional methods include all aspects of the instruction and learning processes from planning and implementation through evaluation and feedback.".freeze,
    "http://purl.org/dc/terms/issued": "2005-06-13".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Instructional Method".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :isFormatOf,
    comment: "A pre-existing related resource that is substantially the same as the described resource, but in another format.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of Has Format.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Is Format Of".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :isPartOf,
    comment: "A related resource in which the described resource is physically or logically included.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of Has Part.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Is Part Of".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :isReferencedBy,
    comment: "A related resource that references, cites, or otherwise points to the described resource.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of References.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Is Referenced By".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :isReplacedBy,
    comment: "A related resource that supplants, displaces, or supersedes the described resource.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of Replaces.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Is Replaced By".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :isRequiredBy,
    comment: "A related resource that requires the described resource to support its function, delivery, or coherence.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of Requires.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Is Required By".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :isVersionOf,
    comment: "A related resource of which the described resource is a version, edition, or adaptation.".freeze,
    "http://purl.org/dc/terms/description": "Changes in version imply substantive changes in content rather than differences in format. This property is intended to be used with non-literal values. This property is an inverse property of Has Version.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Is Version Of".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :issued,
    comment: "Date of formal issuance of the resource.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Date Issued".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/date".freeze, "http://purl.org/dc/terms/date".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :language,
    comment: "A language of the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/LinguisticSystem".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to use either a non-literal value representing a language from a controlled vocabulary such as ISO 639-2 or ISO 639-3, or a literal value consisting of an IETF Best Current Practice 47 [[IETF-BCP47](https://tools.ietf.org/html/bcp47)] language tag.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Language".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/language".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :license,
    comment: "A legal document giving official permission to do something with the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/LicenseDocument".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to identify the license document with a URI. If this is not possible or feasible, a literal value that identifies the license may be provided.".freeze,
    "http://purl.org/dc/terms/issued": "2004-06-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "License".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/rights".freeze, "http://purl.org/dc/terms/rights".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :mediator,
    comment: "An entity that mediates access to the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/AgentClass".freeze,
    "http://purl.org/dc/terms/description": "In an educational context, a mediator might be a parent, teacher, teaching assistant, or care-giver.".freeze,
    "http://purl.org/dc/terms/issued": "2001-05-21".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Mediator".freeze,
    subPropertyOf: "http://purl.org/dc/terms/audience".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :medium,
    comment: "The material or physical carrier of the resource.".freeze,
    "http://purl.org/dc/dcam/domainIncludes": "http://purl.org/dc/terms/PhysicalResource".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/PhysicalMedium".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Medium".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/format".freeze, "http://purl.org/dc/terms/format".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :modified,
    comment: "Date on which the resource was changed.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Date Modified".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/date".freeze, "http://purl.org/dc/terms/date".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :provenance,
    comment: "A statement of any changes in ownership and custody of the resource since its creation that are significant for its authenticity, integrity, and interpretation.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/ProvenanceStatement".freeze,
    "http://purl.org/dc/terms/description": "The statement may include a description of any changes successive custodians made to the resource.".freeze,
    "http://purl.org/dc/terms/issued": "2004-09-20".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Provenance".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :publisher,
    comment: "An entity responsible for making the resource available.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/Agent".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Publisher".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/publisher".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :references,
    comment: "A related resource that is referenced, cited, or otherwise pointed to by the described resource.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of Is Referenced By.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "References".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :relation,
    comment: "A related resource.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to identify the related resource by means of a URI.  If this is not possible or feasible, a string conforming to a formal identification system may be provided.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Relation".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/relation".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :replaces,
    comment: "A related resource that is supplanted, displaced, or superseded by the described resource.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of Is Replaced By.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Replaces".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :requires,
    comment: "A related resource that is required by the described resource to support its function, delivery, or coherence.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. This property is an inverse property of Is Required By.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Requires".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/relation".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :rights,
    comment: "Information about rights held in and over the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/RightsStatement".freeze,
    "http://purl.org/dc/terms/description": "Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights.  Recommended practice is to refer to a rights statement with a URI.  If this is not possible or feasible, a literal value (name, label, or short text) may be provided.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Rights".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/rights".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :rightsHolder,
    comment: "A person or organization owning or managing rights over the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/Agent".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to refer to the rights holder with a URI. If this is not possible or feasible, a literal value that identifies the rights holder may be provided.".freeze,
    "http://purl.org/dc/terms/issued": "2004-06-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Rights Holder".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :source,
    comment: "A related resource from which the described resource is derived.".freeze,
    "http://purl.org/dc/terms/description": "This property is intended to be used with non-literal values. The described resource may be derived from the related resource in whole or in part. Best practice is to identify the related resource by means of a URI or a string conforming to a formal identification system.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Source".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/source".freeze, "http://purl.org/dc/terms/relation".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :spatial,
    comment: "Spatial characteristics of the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/Location".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Spatial Coverage".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/coverage".freeze, "http://purl.org/dc/terms/coverage".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :subject,
    comment: "A topic of the resource.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to refer to the subject with a URI. If this is not possible or feasible, a literal value that identifies the subject may be provided. Both should preferably refer to a subject in a controlled vocabulary.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Subject".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/subject".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :tableOfContents,
    comment: "A list of subunits of the resource.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Table Of Contents".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/description".freeze, "http://purl.org/dc/terms/description".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :temporal,
    comment: "Temporal characteristics of the resource.".freeze,
    "http://purl.org/dc/dcam/rangeIncludes": "http://purl.org/dc/terms/PeriodOfTime".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Temporal Coverage".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/coverage".freeze, "http://purl.org/dc/terms/coverage".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :title,
    comment: "A name given to the resource.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Title".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/title".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :type,
    comment: "The nature or genre of the resource.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [[DCMI-TYPE](http://dublincore.org/documents/dcmi-type-vocabulary/)]. To describe the file format, physical medium, or dimensions of the resource, use the property Format.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Type".freeze,
    subPropertyOf: "http://purl.org/dc/elements/1.1/type".freeze,
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze
  property :valid,
    comment: "Date (often a range) of validity of a resource.".freeze,
    "http://purl.org/dc/terms/description": "Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "Date Valid".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: ["http://purl.org/dc/elements/1.1/date".freeze, "http://purl.org/dc/terms/date".freeze],
    type: "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property".freeze

  # Datatype definitions
  term :Box,
    comment: "The set of regions in space defined by their geographic coordinates according to the DCMI Box Encoding Scheme.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "https://www.dublincore.org/specifications/dublin-core/dcmi-box/".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "DCMI Box".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :ISO3166,
    comment: "The set of codes listed in ISO 3166-1 for the representation of names of countries.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "https://www.iso.org/obp/ui/#search".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "ISO 3166".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :"ISO639-2",
    comment: "The three-letter alphabetic codes listed in ISO639-2 for the representation of names of languages.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://lcweb.loc.gov/standards/iso639-2/langhome.html".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "ISO 639-2".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :"ISO639-3",
    comment: "The set of three-letter codes listed in ISO 639-3 for the representation of names of languages.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.sil.org/iso639-3/".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "ISO 639-3".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :Period,
    comment: "The set of time intervals defined by their limits according to the DCMI Period Encoding Scheme.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "https://www.dublincore.org/specifications/dublin-core/dcmi-period/".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "DCMI Period".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :Point,
    comment: "The set of points in space defined by their geographic coordinates according to the DCMI Point Encoding Scheme.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "https://www.dublincore.org/specifications/dublin-core/dcmi-point/".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "DCMI Point".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :RFC1766,
    comment: "The set of tags, constructed according to RFC 1766, for the identification of languages.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.ietf.org/rfc/rfc1766.txt".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "RFC 1766".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :RFC3066,
    comment: "The set of tags constructed according to RFC 3066 for the identification of languages.".freeze,
    "http://purl.org/dc/terms/description": "RFC 3066 has been obsoleted by RFC 4646.".freeze,
    "http://purl.org/dc/terms/issued": "2002-07-13".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.ietf.org/rfc/rfc3066.txt".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "RFC 3066".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :RFC4646,
    comment: "The set of tags constructed according to RFC 4646 for the identification of languages.".freeze,
    "http://purl.org/dc/terms/description": "RFC 4646 obsoletes RFC 3066.".freeze,
    "http://purl.org/dc/terms/issued": "2008-01-14".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.ietf.org/rfc/rfc4646.txt".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "RFC 4646".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :RFC5646,
    comment: "The set of tags constructed according to RFC 5646 for the identification of languages.".freeze,
    "http://purl.org/dc/terms/description": "RFC 5646 obsoletes RFC 4646.".freeze,
    "http://purl.org/dc/terms/issued": "2010-10-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.ietf.org/rfc/rfc5646.txt".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "RFC 5646".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :URI,
    comment: "The set of identifiers constructed according to the generic syntax for Uniform Resource Identifiers as specified by the Internet Engineering Task Force.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.ietf.org/rfc/rfc3986.txt".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "URI".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze
  term :W3CDTF,
    comment: "The set of dates and times constructed according to the W3C Date and Time Formats Specification.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.w3.org/TR/NOTE-datetime".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "W3C-DTF".freeze,
    type: "http://www.w3.org/2000/01/rdf-schema#Datatype".freeze

  # Extra definitions
  term :DCMIType,
    comment: "The set of classes specified by the DCMI Type Vocabulary, used to categorize the nature or genre of the resource.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://purl.org/dc/dcmitype/".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "DCMI Type Vocabulary".freeze,
    type: "http://purl.org/dc/dcam/VocabularyEncodingScheme".freeze
  term :DDC,
    comment: "The set of conceptual resources specified by the Dewey Decimal Classification.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.oclc.org/dewey/".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "DDC".freeze,
    type: "http://purl.org/dc/dcam/VocabularyEncodingScheme".freeze
  term :IMT,
    comment: "The set of media types specified by the Internet Assigned Numbers Authority.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.iana.org/assignments/media-types/".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "IMT".freeze,
    type: "http://purl.org/dc/dcam/VocabularyEncodingScheme".freeze
  term :LCC,
    comment: "The set of conceptual resources specified by the Library of Congress Classification.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://lcweb.loc.gov/catdir/cpso/lcco/lcco.html".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "LCC".freeze,
    type: "http://purl.org/dc/dcam/VocabularyEncodingScheme".freeze
  term :LCSH,
    comment: "The set of labeled concepts specified by the Library of Congress Subject Headings.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "LCSH".freeze,
    type: "http://purl.org/dc/dcam/VocabularyEncodingScheme".freeze
  term :MESH,
    comment: "The set of labeled concepts specified by the Medical Subject Headings.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.nlm.nih.gov/mesh/meshhome.html".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "MeSH".freeze,
    type: "http://purl.org/dc/dcam/VocabularyEncodingScheme".freeze
  term :NLM,
    comment: "The set of conceptual resources specified by the National Library of Medicine Classification.".freeze,
    "http://purl.org/dc/terms/issued": "2005-06-13".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://wwwcf.nlm.nih.gov/class/".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "NLM".freeze,
    type: "http://purl.org/dc/dcam/VocabularyEncodingScheme".freeze
  term :TGN,
    comment: "The set of places specified by the Getty Thesaurus of Geographic Names.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.getty.edu/research/tools/vocabulary/tgn/index.html".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "TGN".freeze,
    type: "http://purl.org/dc/dcam/VocabularyEncodingScheme".freeze
  term :UDC,
    comment: "The set of conceptual resources specified by the Universal Decimal Classification.".freeze,
    "http://purl.org/dc/terms/issued": "2000-07-11".freeze,
    "http://www.w3.org/2000/01/rdf-schema#seeAlso": "http://www.udcc.org/".freeze,
    isDefinedBy: "http://purl.org/dc/terms/".freeze,
    label: "UDC".freeze,
    type: "http://purl.org/dc/dcam/VocabularyEncodingScheme".freeze
end
GR =
Class.new(RDF::StrictVocabulary("http://purl.org/goodrelations/v1#")) do

  # Ontology definition
  ontology :"http://purl.org/goodrelations/v1#",
    comment: "The GoodRelations ontology provides the vocabulary for annotating e-commerce offerings (1) to sell, lease, repair, dispose, or maintain commodity products and (2) to provide commodity services.\n\nGoodRelations allows describing the relationship between (1) Web resources, (2) offerings made by those Web resources, (3) legal entities, (4) prices, (5) terms and conditions, and the aforementioned ontologies for products and services (6).\n \nFor more information, see http://purl.org/goodrelations/\n\nNote: The base URI of GoodRelations is http://purl.org/goodrelations/v1. Please make sure you are only using element identifiers in this namespace, e.g. http://purl.org/goodrelations/v1#BusinessEntity. There may be copies of the ontology file on the Web which can be retrieved from other locations, BUT THOSE LOCATIONS MUST NOT BE USED AS THE BASIS OF IDENTIFIERS.\n\nIf you use GoodRelations for scientific purposes, please cite our paper:\n\nHepp, Martin: GoodRelations: An Ontology for Describing Products and Services Offers on the Web, Proceedings of the 16th International Conference on Knowledge Engineering and Knowledge Management (EKAW2008), September 29 - October 3, 2008, Acitrezza, Italy, Springer LNCS, Vol. 5268, pp. 332-347.\n\nPDF at http://www.heppnetz.de/publications/".freeze,
    "http://purl.org/dc/elements/1.1/contributor": "Work on the GoodRelations ontology and related research and development has been partly supported by the Austrian BMVIT/FFG under the FIT-IT Semantic Systems project myOntology (grant no. 812515/9284), by a Young Researcher's Grant (Nachwuchsfoerderung 2005-2006) from the Leopold-Franzens-Universitaet Innsbruck, by the European Commission under the project SUPER (FP6-026850), and by the German Federal Ministry of Research (BMBF) by a grant under the KMU Innovativ program as part of the Intelligent Match project (FKZ 01IS10022B). The".freeze,
    "http://purl.org/dc/elements/1.1/creator": "Martin Hepp".freeze,
    "http://purl.org/dc/elements/1.1/rights": "The GoodRelations ontology is available under the Creative Commons Attribution 3.0 Unported license; see http://creativecommons.org/licenses/by/3.0/. In a nutshell, you are free to copy, distribute and transmit the work; to remix/adapt the work (e.g. to import the ontology and create specializations of its elements), as long as you attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Proper Attribution: Simply include the statement \"This work is based on the GoodRelations ontology, developed by Martin Hepp\" and link back to http://purl.org/goodrelations/".freeze,
    "http://purl.org/dc/elements/1.1/subject": "E-Commerce, E-Business, GoodRelations, Microdata, Ontology, Semantic SEO, RDFa, Linked Data, RDF, Semantic Web, Recommender Systems".freeze,
    "http://purl.org/dc/elements/1.1/title": "The GoodRelations Vocabulary for Semantic Web-based E-Commerce".freeze,
    "http://purl.org/dc/terms/license": "http://creativecommons.org/licenses/by/3.0/".freeze,
    "http://www.w3.org/2002/07/owl#versionInfo": "V 1.0, Release 2011-10-01".freeze,
    "http://xmlns.com/foaf/0.1/homepage": "http://purl.org/goodrelations/".freeze,
    label: "GoodRelations Ontology".freeze,
    type: "http://www.w3.org/2002/07/owl#Ontology".freeze

  # Class definitions
  term :ActualProductOrServiceInstance,
    comment: "DEPRECATED - This class is superseded by gr:Individual. Replace all occurrences of gr:ActualProductOrServiceInstance by gr:Individual, if possible.".freeze,
    equivalentClass: "http://purl.org/goodrelations/v1#Individual".freeze,
    "http://www.w3.org/2002/07/owl#deprecated": "true".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Actual product or service instance (DEPRECATED)".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#ProductOrService".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Brand,
    comment: "A brand is the identity of a specific product, service, or business. Use foaf:logo for attaching a brand logo and gr:name or rdfs:label for attaching the brand name.\t\n\n(Source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Brand)".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Brand".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :BusinessEntity,
    comment: "An instance of this class represents the legal agent making (or seeking) a particular offering. This can be a legal body or a person. A business entity has at least a primary mailing address and contact details. For this, typical address standards (vCard) and location data (geo, WGS84) can be attached. Note that the location of the business entity is not necessarily the location from which the product or service is being available (e.g. the branch or store). Use gr:Location for stores and branches.\n\t\t\nExample: Siemens Austria AG, Volkswagen Ltd., Peter Miller's Cell phone Shop LLC\n\nCompatibility with schema.org: This class is equivalent to the union of http://schema.org/Person and http://schema.org/Organization.\t\t\n".freeze,
    equivalentClass: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("_:g23540".freeze, "_:g23580".freeze)
      ),
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Business entity".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :BusinessEntityType,
    comment: "A business entity type is a conceptual entity representing the legal form, the size, the main line of business, the position in the value chain, or any combination thereof, of a gr:BusinessEntity. From the ontological point of view, business entity types are mostly roles that a business entity has in the market. Business entity types are important for specifying eligible customers, since a gr:Offering is often valid only for business entities of a certain size, legal structure, or role in the value chain. \n\nExamples: Consumers, Retailers, Wholesalers, or Public Institutions".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Business entity type".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :BusinessFunction,
    comment: "The business function specifies the type of activity or access (i.e., the bundle of rights) offered by the gr:BusinessEntity on the gr:ProductOrService through the gr:Offering. Typical are sell, rental or lease, maintenance or repair, manufacture / produce, recycle / dispose, engineering / construction, or installation.\n\nLicenses and other proprietary specifications of access rights are also instances of this class.\n\nExamples: A particular offering made by Miller Rentals Ltd. says that they (1) sell Volkswagen Golf convertibles, (2) lease out a particular Ford pick-up truck, and (3) dispose car wrecks of any make and model.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Business function".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :DayOfWeek,
    comment: "The day of the week, used to specify  to which day the opening hours of a gr:OpeningHoursSpecification refer.\n\nExamples: Monday, Tuesday, Wednesday,...".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Day of week".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :DeliveryChargeSpecification,
    comment: "A delivery charge specification is a conceptual entity that specifies the additional costs asked for the delivery of a given gr:Offering using a particular gr:DeliveryMethod by the respective gr:BusinessEntity. A delivery charge specification is characterized by (1) a monetary amount per order, specified as a literal value of type float in combination with a currency, (2) the delivery method, (3) the target country or region, and (4)  whether this charge includes local sales taxes, namely VAT.\nA gr:Offering may be linked to multiple gr:DeliveryChargeSpecification nodes that specify alternative charges for disjoint combinations of target countries or regions, and delivery methods.\n\nExamples: Delivery by direct download is free of charge worldwide, delivery by UPS to Germany is 10 Euros per order, delivery by mail within the US is 5 Euros per order.\n\nThe total amount of this charge is specified as a float value of the gr:hasCurrencyValue property. The currency is specified via the gr:hasCurrency datatype property. Whether the price includes VAT or not is indicated by the gr:valueAddedTaxIncluded property. The gr:DeliveryMethod to which this charge applies is specified using the gr:appliesToDeliveryMethod object property. The region or regions to which this charge applies is specified using the gr:eligibleRegions property, which uses ISO 3166-1 and ISO 3166-2 codes.\n\nIf the price can only be given as a range, use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue for the upper and lower bounds.\n\nImportant: When querying for the price, always use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#PaymentChargeSpecification".freeze, "http://purl.org/goodrelations/v1#UnitPriceSpecification".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Delivery charge specification".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#PriceSpecification".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :DeliveryMethod,
    comment: "A delivery method is a standardized procedure for transferring the product or service to the destination of fulfilment chosen by the customer. Delivery methods are characterized by the means of transportation used, and by the organization or group that is the contracting party for the sending gr:BusinessEntity (this is important, since the contracted party may subcontract the fulfilment to smaller, regional businesses).\n\nExamples: Delivery by mail, delivery by direct download, delivery by UPS".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Delivery method".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :DeliveryModeParcelService,
    comment: "A private parcel service as the delivery mode available for a certain offering.\n\nExamples: UPS, DHL".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Delivery mode parcel service".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#DeliveryMethod".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Individual,
    comment: "A gr:Individual is an actual product or service instance, i.e., a single identifiable object or action that creates some increase in utility (in the economic sense) for the individual possessing or using this very object (product) or for the individual in whose favor this very action is being taken (service). Products or services are types of goods in the economic sense. For an overview of goods and commodities in economics, see Milgate (1987).\n\nExamples: MyThinkpad T60, the pint of beer standing in front of me, my Volkswagen Golf, the haircut that I received or will be receiving at a given date and time.\n\nNote 1: In many cases, product or service instances are not explicitly exposed on the Web but only claimed to exist (i.e. existentially quantified). In this case, use gr:SomeItems.\nNote 2: This class is the new, shorter form of the former gr:ActualProductOrServiceInstance.\n\nCompatibility with schema.org: This class is a subclass of http://schema.org/Product.".freeze,
    equivalentClass: "http://purl.org/goodrelations/v1#ActualProductOrServiceInstance".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#ProductOrServiceModel".freeze, "http://purl.org/goodrelations/v1#SomeItems".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Individual".freeze,
    subClassOf: ["http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://schema.org/Product".freeze],
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :License,
    comment: "A license is the specification of a bundle of rights that determines the type of activity or access offered by the gr:BusinessEntity on the gr:ProductOrService through the gr:Offering.\n\t\nLicenses can be standardized (e.g. LPGL, Creative Commons, ...), vendor-specific, or individually defined for a single offer or product. Whether there is a fee for obtaining the license is specified using the gr:UnitPriceSpecification attached to the gr:Offering. Use foaf:page for linking to a document containing the license, e.g. in PDF or HTML.".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "License".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#BusinessFunction".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Location,
    comment: "A location is a point or area of interest from which a particular product or service is available, e.g. a store, a bus stop, a gas station, or a ticket booth. The difference to gr:BusinessEntity is that the gr:BusinessEntity is the legal entity (e.g. a person or corporation) making the offer, while gr:Location is the store, office, or place. A chain restaurant will e.g. have one legal entity but multiple restaurant locations. Locations are characterized by an address or geographical position and a set of opening hour specifications for various days of the week.\n\t\t\nExample: A rental car company may offer the Business Function Lease Out of cars from two locations, one in Fort Myers, Florida, and one in Boston, Massachussetts. Both stations are open 7:00 - 23:00 Mondays through Saturdays.\n\nNote: Typical address standards (vcard) and location data (geo, WGC84) should be attached to a gr:Location node. Since there already exist established vocabularies for this, the GoodRelations ontology does not provide respective attributes. Instead, the use of respective vocabularies is recommended. However, the gr:hasGlobalLocationNumber property is  provided for linking to public identifiers for business locations.\n\t\t\nCompatibility with schema.org: This class is equivalent to http://schema.org/Place.".freeze,
    equivalentClass: "http://purl.org/goodrelations/v1#LocationOfSalesOrServiceProvisioning".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Location".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :LocationOfSalesOrServiceProvisioning,
    comment: "DEPRECATED - This class is superseded by gr:Location. Replace all occurrences of gr:LocationOfSalesOrServiceProvisioning by gr:Location, if possible.".freeze,
    equivalentClass: "http://purl.org/goodrelations/v1#Location".freeze,
    "http://www.w3.org/2002/07/owl#deprecated": "true".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Location of sales or service provisioning (DEPRECATED)".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :"N-Ary-Relations",
    comment: "This is the superclass for all classes that are placeholders for n-ary relations, which OWL cannot represent.\nDEPRECATED. Do not use this class in data or queries.".freeze,
    "http://www.w3.org/2002/07/owl#deprecated": "true".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "N-ary relations (DEPRECATED)".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :Offering,
    comment: "An offering represents the public, not necessarily binding, not necessarily exclusive, announcement by a gr:BusinessEntity to provide (or seek) a certain gr:BusinessFunction for a certain gr:ProductOrService to a specified target audience. An offering is specified by the type of product or service or bundle it refers to, what business function is being offered (sales, rental, ...), and a set of commercial properties. It can either refer to \n(1) a clearly specified instance (gr:Individual),\n(2) to a set of anonymous instances of a given type (gr:SomeItems),\n(3) a product model specification (gr:ProductOrServiceModel), see also section 3.3.3 of the GoodRelations Technical Report. \n\nAn offering may be constrained in terms of the eligible type of business partner, countries, quantities, and other commercial properties. The definition of the commercial properties, the type of product offered, and the business function are explained in other parts of this vocabulary in more detail.\n\nExample: Peter Miller offers to repair TV sets made by Siemens, Volkswagen Innsbruck sells a particular instance of a Volkswagen Golf at $10,000.\n\nCompatibility with schema.org: This class is a superclass to http://schema.org/Offer, since gr:Offering can also represent demand.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QualitativeValue".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Offering".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :OpeningHoursSpecification,
    comment: "This is a conceptual entity that holds together all information about the opening hours on a given day (gr:DayOfWeek).".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Opening hours specification".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :PaymentChargeSpecification,
    comment: "A payment charge specification is a conceptual entity that specifies the additional costs asked for settling the payment after accepting a given gr:Offering using a particular gr:PaymentMethod. A payment charge specification is characterized by (1) a monetary amount per order specified as a literal value of type float in combination with a Currency, (2) the payment method, and (3) a whether this charge includes local sales taxes, namely VAT.\nA gr:Offering may be linked to multiple payment charge specifications that specify alternative charges for various payment methods.\n\nExamples: Payment by VISA or Mastercard costs a fee of 3 Euros including VAT, payment by bank transfer in advance is free of charge.\n\nThe total amount of this surcharge is specified as a float value of the gr:hasCurrencyValue property. The currency is specified via the gr:hasCurrency datatype property. Whether the price includes VAT or not is indicated by the gr:valueAddedTaxIncluded datatype property. The gr:PaymentMethod to which this charge applies is specified using the gr:appliesToPaymentMethod object property.\n\nIf the price can only be given as a range, use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue for the upper and lower bounds.\n\nImportant: When querying for the price, always use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#DeliveryChargeSpecification".freeze, "http://purl.org/goodrelations/v1#UnitPriceSpecification".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Payment charge specification".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#PriceSpecification".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :PaymentMethod,
    comment: "A payment method is a standardized procedure for transferring the monetary amount for a purchase. Payment methods are characterized by the legal and technical structures used, and by the organization or group carrying out the transaction. This element is mostly used for specifying the types of payment accepted by a gr:BusinessEntity.\n\nExamples: VISA, MasterCard, Diners, cash, or bank transfer in advance.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Payment method".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :PaymentMethodCreditCard,
    comment: "The subclass of gr:PaymentMethod represents all variants and brands of credit or debit cards as a standardized procedure for transferring the monetary amount for a purchase. It is mostly used for specifying the types of payment accepted by a gr:Business Entity.\n\nExamples: VISA, MasterCard, or American Express.".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Payment method credit card".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#PaymentMethod".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :PriceSpecification,
    comment: "The superclass of all price specifications.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Price specification".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :ProductOrService,
    comment: "The superclass of all classes describing products or services types, either by nature or purpose. Examples for such subclasses are \"TV set\", \"vacuum cleaner\", etc. An instance of this class can be either an actual product or service (gr:Individual), a placeholder instance for unknown instances of a mass-produced commodity (gr:SomeItems), or a model / prototype specification (gr:ProductOrServiceModel). When in doubt, use gr:SomeItems.\n\nExamples: \na) MyCellphone123, i.e. my personal, tangible cell phone (gr:Individual)\nb) Siemens1234, i.e. the Siemens cell phone make and model 1234 (gr:ProductOrServiceModel)\nc) dummyCellPhone123 as a placeholder for actual instances of a certain kind of cell phones (gr:SomeItems)\n\t\nNote: Your first choice for specializations of gr:ProductOrService should be http://www.productontology.org.\n\nCompatibility with schema.org: This class is (approximately) equivalent to http://schema.org/Product.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Product or service".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :ProductOrServiceModel,
    comment: "A product or service model is a intangible entity that specifies some characteristics of a group of similar, usually mass-produced products, in the sense of a prototype. In case of mass-produced products, there exists a relation gr:hasMakeAndModel between the actual product or service (gr:Individual or gr:SomeItems) and the prototype (gr:ProductOrServiceModel). GoodRelations treats product or service models as \"prototypes\" instead of a completely separate kind of entities, because this allows using the same domain-specific properties (e.g. gr:weight) for describing makes and models and for describing actual products.\n\nExamples: Ford T, Volkswagen Golf, Sony Ericsson W123 cell phone\n\nNote: An actual product or service (gr:Individual) by default shares the features of its model (e.g. the weight). However, this requires non-standard reasoning. See http://wiki.goodrelations-vocabulary.org/Axioms for respective rule sets.\n\t\nCompatibility with schema.org: This class is (approximately) a subclass of http://schema.org/Product.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#Individual".freeze, "http://purl.org/goodrelations/v1#SomeItems".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Product or service model".freeze,
    subClassOf: ["http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://schema.org/Product".freeze],
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :ProductOrServicesSomeInstancesPlaceholder,
    comment: "DEPRECATED - This class is superseded by gr:SomeItems. Replace all occurrences of gr:ProductOrServicesSomeInstancesPlaceholder by gr:SomeItems, if possible.".freeze,
    equivalentClass: "http://purl.org/goodrelations/v1#SomeItems".freeze,
    "http://www.w3.org/2002/07/owl#deprecated": "true".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Product or services some instances placeholder (DEPRECATED)".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#ProductOrService".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :QualitativeValue,
    comment: "A qualitative value is a predefined value for a product characteristic. \n\t\nExamples: the color \"green\" or the power cord plug type \"US\"; the garment sizes \"S\", \"M\", \"L\", and \"XL\".\n\t\nNote: Value sets are supported by creating subclasses of this class. Ordinal relations between values (gr:greater, gr:lesser, ...) are provided directly by GoodRelations.\n\nCompatibility with schema.org: This class is equivalent to http://schema.org/Enumeration.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Qualitative value".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :QuantitativeValue,
    comment: "A quantitative value is a numerical interval that represents the range of a certain gr:quantitativeProductOrServiceProperty in terms of the lower and upper bounds for a particular gr:ProductOrService. It is to be interpreted in combination with the respective unit of measurement. Most quantitative values are intervals even if they are in practice often treated as a single point value.\n\t\nExample: a weight between 10 and 25 kilogramms, a length between 10 and 15 milimeters.\n\nCompatibility with schema.org: This class is equivalent to http://schema.org/Quantity.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QualitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Quantitative value".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :QuantitativeValueFloat,
    comment: "An instance of this class is an actual float value for a quantitative property of a product. This instance is usually characterized by a minimal value, a maximal value, and a unit of measurement.\n\nExamples: The intervals \"between 10.0  and 25.4 kilogramms\" or \"10.2 and 15.5 milimeters\".\n\nCompatibility with schema.org: This class is a subclass of http://schema.org/Quantity.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": "http://purl.org/goodrelations/v1#QuantitativeValueInteger".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Quantitative value float".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#QuantitativeValue".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :QuantitativeValueInteger,
    comment: "An instance of this class is an actual integer value for a quantitative property of a product. This instance is usually characterized by a minimal value, a maximal value, and a unit of measurement. \n\nExample: A seating capacity between 1 and 8 persons.\n\nNote: Users must keep in mind that ranges in here mean that ALL possible values in this interval are covered. (Sometimes, the actual commitment may be less than that: \"We sell cars from 2 - 12 seats\" does often not really mean that they have cars with 2,3,4,...12 seats.). Someone renting out two types of rowing boats, one that fits for 1 or 2 people, and another that must be operated by 4 people cannot claim to rent boats with a seating capacity between 1 and 4 people. He or she is offering two boat types for 1-2 and 4 persons.\n\t\t\nCompatibility with schema.org: This class is a subclass of http://schema.org/Quantity.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": "http://purl.org/goodrelations/v1#QuantitativeValueFloat".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Quantitative value integer".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#QuantitativeValue".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :SomeItems,
    comment: "A placeholder instance for unknown instances of a mass-produced commodity. This is used as a computationally cheap work-around for such instances that are not individually exposed on the Web but just stated to exist (i.e., which are existentially quantified).\n\nExample: An instance of this class can represent an anonymous set of green Siemens1234 phones. It is different from the gr:ProductOrServiceModel Siemens1234, since this refers to the make and model, and it is different from a particular instance of this make and model (e.g. my individual phone) since the latter can be sold only once.\n\nNote: This class is the new, shorter form of the former gr:ProductOrServicesSomeInstancesPlaceholder.\n\t\t\nCompatibility with schema.org: This class is (approximately) a subclass of http://schema.org/Product.".freeze,
    equivalentClass: "http://purl.org/goodrelations/v1#ProductOrServicesSomeInstancesPlaceholder".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Individual".freeze, "http://purl.org/goodrelations/v1#ProductOrServiceModel".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Some items".freeze,
    subClassOf: ["http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://schema.org/Product".freeze],
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :TypeAndQuantityNode,
    comment: "This class collates all the information about a gr:ProductOrService included in a bundle. If a gr:Offering contains just one item, you can directly link from the gr:Offering to the gr:ProductOrService using gr:includes. If the offering contains multiple items, use an instance of this class for each component to indicate the quantity, unit of measurement, and type of product, and link from the gr:Offering via gr:includesObject.\n\nExample: An offering may include of 100g of Butter and 1 kg of potatoes, or 1 cell phone and 2 headsets.".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QualitativeValue".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Type and quantity node".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :UnitPriceSpecification,
    comment: "A unit price specification is a conceptual entity that specifies the price asked for a given gr:Offering by the respective gr:Business Entity. An offering may be linked to multiple unit price specifications that specify alternative prices for non-overlapping sets of conditions (e.g. quantities or sales regions) or with differing validity periods. \n\nA unit price specification is characterized by (1) the lower and upper limits and the unit of measurement of the eligible quantity, (2) by a monetary amount per unit of the product or service, and (3)  whether this prices includes local sales taxes, namely VAT.\n\t\nExample: The price, including VAT, for 1 kg of a given material is 5 Euros per kg for 0 - 5 kg and 4 Euros for quantities above 5 kg.\n\nThe eligible quantity interval for a given price is specified using the object property gr:hasEligibleQuantity, which points to an instance of gr:QuantitativeValue. The currency is specified using the gr:hasCurrency property, which points to an ISO 4217 currency code. The unit of measurement for the eligible quantity is specified using the gr:hasUnitOfMeasurement datatype property, which points to an UN/CEFACT Common Code (3 characters).\n\t\nIn most cases, the appropriate unit of measurement is the UN/CEFACT Common Code \"C62\" for \"Unit or piece\", since a gr:Offering is defined by the quantity and unit of measurement of all items included (e.g. \"1 kg of bananas plus a 2 kg of apples\"). As long at the offering consists of only one item, it is also possible to use an unit of measurement of choice for specifying the price per unit. For bundles, however, only  \"C62\" for \"Unit or piece\" is a valid unit of measurement.\n\nYou can assume that the price is given per unit or piece if there is no gr:hasUnitOfMeasurement property attached to the price.\n\t\nWhether VAT and sales taxes are included in this price is specified using the property gr:valueAddedTaxIncluded (xsd:boolean).\n\t\nThe price per unit of measurement is specified as a float value of the gr:hasCurrencyValue property. The currency is specified via the gr:hasCurrency datatype property. Whether the price includes VAT or not is indicated by the gr:valueAddedTaxIncluded datatype property.\n\nThe property priceType can be used to indicate that the price is a retail price recommendation only (i.e. a list price). \n\nIf the price can only be given as a range, use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue for the upper and lower bounds.\n\nImportant: When querying for the price, always use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue.\n\nNote 1: Due to the complexity of pricing scenarios in various industries, it may be necessary to create extensions of this fundamental model of price specifications. Such can be done easily by importing and refining the GoodRelations ontology.\n\nNote 2: For Google, attaching a gr:validThrough statement to a gr:UnitPriceSpecification is mandatory. \n".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#DeliveryChargeSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentChargeSpecification".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Unit price specification".freeze,
    subClassOf: "http://purl.org/goodrelations/v1#PriceSpecification".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :WarrantyPromise,
    comment: "This is a conceptual entity that holds together all aspects of the n-ary relation gr:hasWarrantyPromise.\n\nA Warranty promise is an entity representing the duration and scope of services that will be provided to a customer free of charge in case of a defect or malfunction of the gr:ProductOrService. A warranty promise is characterized by its temporal duration (usually starting with the date of purchase) and its gr:WarrantyScope. The warranty scope represents the types of services provided (e.g. labor and parts, just parts) of the warranty included in an gr:Offering. The actual services may be provided by the gr:BusinessEntity making the offering, by the manufacturer of the product, or by a third party. There may be multiple warranty promises associated with a particular offering, which differ in duration and scope (e.g. pick-up service during the first 12 months, just parts and labor for 36 months).\n\nExamples: 12 months parts and labor, 36 months parts".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Warranty promise".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze
  term :WarrantyScope,
    comment: "The warranty scope represents types of services that will be provided free of charge by the vendor or manufacturer in the case of a defect (e.g. labor and parts, just parts), as part of the warranty included in an gr:Offering. The actual services may be provided by the gr:BusinessEntity making the offering, by the manufacturer of the product, or by a third party. \n\nExamples: Parts and Labor, Parts".freeze,
    "http://www.w3.org/2002/07/owl#disjointWith": ["http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze],
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "Warranty scope".freeze,
    type: "http://www.w3.org/2002/07/owl#Class".freeze

  # Property definitions
  property :acceptedPaymentMethods,
    comment: "The gr:PaymentMethod or methods accepted by the gr:BusinessEntity for the given gr:Offering.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "_:g41180".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "accepted payment methods (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#PaymentMethod".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :addOn,
    comment: "This property points from a gr:Offering to additional offerings that can only be obtained in combination with the first offering. This can be used to model supplements and extensions that are available for a surcharge. Any gr:PriceSpecification attached to the secondary offering is to be understood as an additional charge.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "_:g24380".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "add-on (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#Offering".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :advanceBookingRequirement,
    comment: "The minimal and maximal amount of time that is required between accepting the gr:Offering and the actual usage of the resource or service. This is mostly relevant for offers regarding hotel rooms, the rental of objects, or the provisioning of services. The duration is specified relatively to the beginning of the usage of the contracted object. It is represented by attaching an instance of the class gr:QuantitativeValueInteger. The lower and upper boundaries are specified using the properties gr:hasMinValueInteger and gr:hasMaxValueInteger to that instance. The unit of measurement is specified using the property gr:hasUnitOfMeasurement with a string holding a UN/CEFACT code suitable for durations, e.g. MON (months), DAY (days), HUR (hours), or MIN (minutes).\n\nThe difference to the gr:validFrom and gr:validThrough properties is that those specify the interval during which the gr:Offering is valid, while gr:advanceBookingRequirement specifies the acceptable relative amount of time between accepting the offer and the fulfilment or usage.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "_:g38960".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "advance booking requirement (0..1)".freeze,
    range: "http://purl.org/goodrelations/v1#QuantitativeValueInteger".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :amountOfThisGood,
    comment: "This property specifies the quantity of the goods included in the gr:Offering via this gr:TypeAndQuantityNode. The quantity is given in the unit of measurement attached to the gr:TypeAndQuantityNode.".freeze,
    domain: "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "amount of this good (1..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#float".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :appliesToDeliveryMethod,
    comment: "This property specifies the gr:DeliveryMethod to which the gr:DeliveryChargeSpecification applies.".freeze,
    domain: "http://purl.org/goodrelations/v1#DeliveryChargeSpecification".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "applies to delivery method (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#DeliveryMethod".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :appliesToPaymentMethod,
    comment: "This property specifies the gr:PaymentMethod to which the gr:PaymentChargeSpecification applies.".freeze,
    domain: "http://purl.org/goodrelations/v1#PaymentChargeSpecification".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "applies to payment method (1..*)".freeze,
    range: "http://purl.org/goodrelations/v1#PaymentMethod".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :availabilityEnds,
    comment: "This property specifies the end of the availability of the gr:ProductOrService included in the gr:Offering.\nThe difference to the properties gr:validFrom and gr:validThrough is that those specify the period of time during which the offer is valid and can be accepted.\n\nExample: I offer to lease my boat for the period of August 1 - August 31, 2010, but you must accept by offer no later than July 15.\n\nA time-zone should be specified. For a time in GMT/UTC, simply add a \"Z\" following the time:\n\n2008-05-30T09:30:10Z.\n\nAlternatively, you can specify an offset from the UTC time by adding a positive or negative time following the time:\n\n2008-05-30T09:30:10-09:00\n\nor\n\n2008-05-30T09:30:10+09:00.\n\nNote: There is another property gr:availableAtOrFrom, which is used to indicate the gr:Location (e.g. store or shop) from which the goods would be available.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "_:g18240".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "availability ends (0..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#dateTime".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :availabilityStarts,
    comment: "This property specifies the beginning of the availability of the gr:ProductOrService included in the gr:Offering.\nThe difference to the properties gr:validFrom and gr:validThrough is that those specify the period of time during which the offer is valid and can be accepted.\n\nExample: I offer to lease my boat for the period of August 1 - August 31, 2010, but you must accept by offer no later than July 15.\n\nA time-zone should be specified. For a time in GMT/UTC, simply add a \"Z\" following the time:\n\n2008-05-30T09:30:10Z.\n\nAlternatively, you can specify an offset from the UTC time by adding a positive or negative time following the time:\n\n2008-05-30T09:30:10-09:00\n\nor\n\n2008-05-30T09:30:10+09:00.\n\nNote: There is another property gr:availableAtOrFrom, which is used to indicate the gr:Location (e.g. store or shop) from which the goods would be available.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "_:g17940".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "availability starts (0..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#dateTime".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :availableAtOrFrom,
    comment: "This states that a particular gr:Offering is available at or from the given gr:Location (e.g. shop or branch).".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "_:g18000".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "available at or from (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#Location".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :availableDeliveryMethods,
    comment: "This specifies the gr:DeliveryMethod or methods available for a given gr:Offering.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "_:g23740".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "available delivery methods (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#DeliveryMethod".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :billingIncrement,
    comment: "This property specifies the minimal quantity and rounding increment that will be the basis for the billing. \nThe unit of measurement is specified by the UN/CEFACT code attached to the gr:UnitPriceSpecification via the gr:hasUnitOfMeasurement property.\n\nExamples: \n- The price for gasoline is 4 USD per gallon at the pump, but you will be charged in units of 0.1 gallons.\n- The price for legal consulting is 100 USD per hour, but you will be charged in units of 15 minutes.\n\nThis property makes sense only for instances of gr:Offering that include not more than one type of good or service.".freeze,
    domain: "http://purl.org/goodrelations/v1#UnitPriceSpecification".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "billing increment (0..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#float".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :category,
    comment: "The name of a category to which this gr:ProductOrService, gr:Offering, gr:BusinessEntity, or gr:Location belongs.\n\t\nNote 1: For products, it is better to add an rdf:type statement referring to a GoodRelations-compliant ontology for vertical industries instead, but if you just have a short text label, gr:category is simpler.\nNote 2: You can use greater signs or slashes to informally indicate a category hierarchy, e.g. \"restaurants/asian_restaurants\" or \"cables > usb_cables\"\n".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "_:g35720".freeze, "_:g35760".freeze, "_:g35800".freeze, "_:g35840".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "category (0..*)".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :closes,
    comment: "The closing  hour of the gr:Location on the given gr:DayOfWeek.\nIf no time-zone suffix is included, the time is given in the local time valid at the gr:Location.\n\nFor a time in GMT/UTC, simply add a \"Z\" following the time:\n\n09:30:10Z.\n\nAlternatively, you can specify an offset from the UTC time by adding a positive or negative time following the time:\n\n09:30:10-09:00\n\n09:30:10+09:00.\n\nNote 1: Use 00:00:00 for the first second of the respective day and 23:59:59 for the last second of that day.\nNote 2: If a store opens at 17:00 on Saturdays and closes at 03:00:00 a.m. next morning, use two instances of this class, one with 17:00:00 - 23:59:59 for Saturday and another one with 00:00:00 - 03:00:00 for Sunday.\nNote 3: If the shop re-opens on the same day of the week or set of days of the week, you must create a second instance of gr:OpeningHoursSpecification.".freeze,
    domain: "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "closes (1..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#time".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :color,
    comment: "The color of the product.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#ProductOrService".freeze, "_:g23860".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "color (0..1)".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    subPropertyOf: "http://purl.org/goodrelations/v1#datatypeProductOrServiceProperty".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :condition,
    comment: "A textual description of the condition of the product or service, or the products or services included in the offer (when attached to a gr:Offering)".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "_:g23420".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "condition (0..1)".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :datatypeProductOrServiceProperty,
    comment: "This property is the super property for all pure datatype properties that can be used to describe a gr:ProductOrService.\n\nIn products and services ontologies, only such properties that are no quantitative properties and that have no predefined gr:QualitativeValue instances are subproperties of this property. In practice, this refers to a few integer properties for which the integer value represents qualitative aspects, for string datatypes (as long as no predefined values exist), for boolean datatype properties, and for dates and times.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#ProductOrService".freeze, "_:g24720".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "datatype product or service property (0..*)".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :deliveryLeadTime,
    comment: "This property can be used to indicate the promised delay between the receipt of the order and the goods leaving the warehouse.\n\nThe duration is specified by attaching an instance of gr:QuantitativeValueInteger. The lower and upper boundaries are specified using the properties gr:hasMinValueInteger and gr:hasMaxValueInteger to that instance. A point value can be modeled with the gr:hasValueInteger property. The unit of measurement is specified using the property gr:hasUnitOfMeasurement with a string holding a UN/CEFACT code suitable for durations, e.g. MON (months), DAY (days), HUR (hours), or MIN (minutes).".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "_:g37740".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "delivery lead time (0..1)".freeze,
    range: "http://purl.org/goodrelations/v1#QuantitativeValueInteger".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :depth,
    comment: "The depth of the product.\nTypical unit code(s): CMT for centimeters, INH for inches".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#ProductOrService".freeze, "_:g42660".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "depth (0..1)".freeze,
    range: "http://purl.org/goodrelations/v1#QuantitativeValue".freeze,
    subPropertyOf: "http://purl.org/goodrelations/v1#quantitativeProductOrServiceProperty".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :description,
    comment: "A short textual description of the resource. \n\nThis property is semantically equivalent to rdfs:comment and just meant as a handy shortcut for marking up data.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://www.w3.org/2002/07/owl#Thing".freeze, "http://purl.org/goodrelations/v1#Brand".freeze, "http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#BusinessEntityType".freeze, "http://purl.org/goodrelations/v1#BusinessFunction".freeze, "http://purl.org/goodrelations/v1#DayOfWeek".freeze, "http://purl.org/goodrelations/v1#DeliveryChargeSpecification".freeze, "http://purl.org/goodrelations/v1#DeliveryMethod".freeze, "http://purl.org/goodrelations/v1#DeliveryModeParcelService".freeze, "http://purl.org/goodrelations/v1#Individual".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#OpeningHoursSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentChargeSpecification".freeze, "http://purl.org/goodrelations/v1#PaymentMethod".freeze, "http://purl.org/goodrelations/v1#PaymentMethodCreditCard".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "http://purl.org/goodrelations/v1#ProductOrServiceModel".freeze, "http://purl.org/goodrelations/v1#QualitativeValue".freeze, "http://purl.org/goodrelations/v1#QuantitativeValue".freeze, "http://purl.org/goodrelations/v1#QuantitativeValueFloat".freeze, "http://purl.org/goodrelations/v1#QuantitativeValueInteger".freeze, "http://purl.org/goodrelations/v1#SomeItems".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "http://purl.org/goodrelations/v1#UnitPriceSpecification".freeze, "http://purl.org/goodrelations/v1#WarrantyPromise".freeze, "http://purl.org/goodrelations/v1#WarrantyScope".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "description (0..1)".freeze,
    range: "http://www.w3.org/2000/01/rdf-schema#Literal".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :displayPosition,
    comment: "The position at which the option or element should be listed in a menu or user dialog, lower numbers come first.\n\nThe main usage of this property are the days of the week (gr:DayOfWeek), but it is also possible to apply it e.g. to product features or any other conceptual element.\nNote: Rely on this property only for data originating from a single RDF graph; otherwise, unpredictable results are possible.".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "display position (0..1)".freeze,
    type: "http://www.w3.org/2002/07/owl#AnnotationProperty".freeze
  property :durationOfWarrantyInMonths,
    comment: "This property specifies the duration of the gr:WarrantyPromise in months.".freeze,
    domain: "http://purl.org/goodrelations/v1#WarrantyPromise".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "duration of warranty in months (0..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#int".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :eligibleCustomerTypes,
    comment: "The types of customers (gr:BusinessEntityType) for which the given gr:Offering is valid.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "_:g36040".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "eligible customer types (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#BusinessEntityType".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :eligibleDuration,
    comment: "The minimal and maximal duration for which the given gr:Offering or gr:License is valid. This is mostly used for offers regarding accommodation, the rental of objects, or software licenses. The duration is specified by attaching an instance of gr:QuantitativeValue. The lower and upper boundaries are specified using the properties gr:hasMinValue and gr:hasMaxValue to that instance. If they are the same, use the gr:hasValue property. The unit of measurement is specified using the property gr:hasUnitOfMeasurement with a string holding a UN/CEFACT code suitable for durations, e.g. MON (months), DAY (days), HUR (hours), or MIN (minutes).\n\nThe difference to the gr:validFrom and gr:validThrough properties is that those specify the absiolute interval during which the gr:Offering or gr:License is valid, while gr:eligibleDuration specifies the acceptable duration of the contract or usage.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#License".freeze, "_:g25320".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "eligible duration (0..1)".freeze,
    range: "http://purl.org/goodrelations/v1#QuantitativeValue".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :eligibleRegions,
    comment: "This property specifies the geo-political region or regions for which the gr:Offering, gr:License, or gr:DeliveryChargeSpecification is valid using the two-character version of ISO 3166-1 (ISO 3166-1 alpha-2)  for regions or ISO 3166-2 , which breaks down the countries from ISO 3166-1 into administrative subdivisions.\n\nImportant: Do NOT use 3-letter ISO 3166-1 codes!".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#DeliveryChargeSpecification".freeze, "http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#License".freeze, "_:g22640".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "eligible regions (0..*)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#string".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :eligibleTransactionVolume,
    comment: "This property can be used to indicate the transaction volume, in a monetary unit, for which the gr:Offering or gr:PriceSpecification is valid. This is mostly used to specify a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases above a certain amount.\n\nThe object is a gr:PriceSpecification that uses the properties gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue to indicate the lower and upper boundaries and gr:hasCurrency to indicate the currency using the ISO 4217 standard (3 characters).".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "_:g37860".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "eligible transaction volume (0..1)".freeze,
    range: "http://purl.org/goodrelations/v1#PriceSpecification".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :equal,
    comment: "This ordering relation for qualitative values indicates that the subject is equal to the object.".freeze,
    domain: "http://purl.org/goodrelations/v1#QualitativeValue".freeze,
    inverseOf: "http://purl.org/goodrelations/v1#equal".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "equal (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#QualitativeValue".freeze,
    type: ["http://www.w3.org/2002/07/owl#ObjectProperty".freeze, "http://www.w3.org/2002/07/owl#SymmetricProperty".freeze, "http://www.w3.org/2002/07/owl#TransitiveProperty".freeze]
  property :greater,
    comment: "This ordering relation for qualitative values indicates that the subject is greater than the object.".freeze,
    domain: "http://purl.org/goodrelations/v1#QualitativeValue".freeze,
    inverseOf: "http://purl.org/goodrelations/v1#lesser".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "greater (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#QualitativeValue".freeze,
    type: ["http://www.w3.org/2002/07/owl#ObjectProperty".freeze, "http://www.w3.org/2002/07/owl#TransitiveProperty".freeze]
  property :greaterOrEqual,
    comment: "This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.".freeze,
    domain: "http://purl.org/goodrelations/v1#QualitativeValue".freeze,
    inverseOf: "http://purl.org/goodrelations/v1#lesserOrEqual".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "greater or equal (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#QualitativeValue".freeze,
    type: ["http://www.w3.org/2002/07/owl#ObjectProperty".freeze, "http://www.w3.org/2002/07/owl#TransitiveProperty".freeze]
  property :hasBrand,
    comment: "This specifies the brand or brands (gr:Brand) associated with a gr:ProductOrService, or the brand or brands maintained by a gr:BusinessEntity.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "_:g33480".freeze, "_:g33520".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has brand (0..*)".freeze,
    range: "http://purl.org/goodrelations/v1#Brand".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :hasBusinessFunction,
    comment: "This specifies the business function of the gr:Offering, i.e. whether the gr:BusinessEntity is offering to sell, to lease, or to repair the particular type of product. In the case of bundles, it is also possible to attach individual business functions to each gr:TypeAndQuantityNode. The business function of the main gr:Offering determines the business function for all included objects or services, unless a business function attached to a gr:TypeAndQuantityNode overrides it.\n\t\nNote: While it is possible that an entity is offering multiple types of business functions for the same set of objects (e.g. rental and sales), this should usually not be stated by attaching multiple business functions to the same gr:Offering, since the gr:UnitPriceSpecification for the varying business functions will typically be very different.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#TypeAndQuantityNode".freeze, "_:g40900".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has business function (1..*)".freeze,
    range: "http://purl.org/goodrelations/v1#BusinessFunction".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :hasCurrency,
    comment: "The currency for all prices in the gr:PriceSpecification given using the ISO 4217 standard (3 characters).".freeze,
    domain: "http://purl.org/goodrelations/v1#PriceSpecification".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has currency (1..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#string".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :hasCurrencyValue,
    comment: "This property specifies the amount of money for a price per unit, shipping charges, or payment charges. The currency and other relevant details are attached to the respective gr:PriceSpecification etc.\n\nFor a gr:UnitPriceSpecification, this is the price for one unit or bundle (as specified in the unit of measurement of the unit price specification) of the respective gr:ProductOrService. For a gr:DeliveryChargeSpecification or a gr:PaymentChargeSpecification, it is the price per delivery or payment.\n\nGoodRelations also supports giving price information as intervals only. If this is needed, use gr:hasMaxCurrencyValue for the upper bound and gr:hasMinCurrencyValue for the lower bound. \n\nUsing gr:hasCurrencyValue sets the upper and lower bounds to the same given value, i.e., x gr:hasCurrencyValue y implies x gr:hasMinCurrencyValue y, x gr:hasMaxCurrencyValue y.".freeze,
    domain: "http://purl.org/goodrelations/v1#PriceSpecification".freeze,
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has currency value (0..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#float".freeze,
    subPropertyOf: ["http://purl.org/goodrelations/v1#hasMaxCurrencyValue".freeze, "http://purl.org/goodrelations/v1#hasMinCurrencyValue".freeze],
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :hasDUNS,
    comment: "The Dun & Bradstreet DUNS number for identifying a gr:BusinessEntity. The Dun & Bradstreet DUNS is a nine-digit number used to identify legal entities (but usually not branches or locations of logistical importance only).".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#BusinessEntity".freeze, "_:g36300".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has DUNS (0..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#string".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :"hasEAN_UCC-13",
    comment: "The EAN·UCC-13 code of the given gr:ProductOrService or gr:Offering. This code is now officially called GTIN-13 (Global Trade Identifier Number) or EAN·UCC-13. Former 12-digit UPC codes can be converted into EAN·UCC-13 code by simply adding a preceeding zero.\n\nNote 1: When using this property for searching by 12-digit UPC codes, you must add a preceeding zero digit.\nNote 2: As of January 1, 2007, the former ISBN numbers for books etc. have been integrated into the EAN·UCC-13 code. For each old ISBN-10 code, there exists a proper translation into EAN·UCC-13 by adding \"978\" or \"979\" as prefix. Since the old ISBN-10 is now deprecated, GoodRelations does not provide a property for ISBNs.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "_:g23940".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has EAN/UCC-13 (0..*)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#string".freeze,
    subPropertyOf: "http://schema.org/productID".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :hasEligibleQuantity,
    comment: "This specifies the interval and unit of measurement of ordering quantities for which the gr:Offering or gr:PriceSpecification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.\nNote that if an offering is a bundle, i.e. it consists of more than one unit of a single type of good, or if the unit of measurement for the good is different from unit (Common Code C62), then gr:hasEligibleQuantity refers to units of this bundle. In other words, \"C62\" for \"Units or pieces\" is usually the appropriate unit of measurement.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#PriceSpecification".freeze, "_:g23020".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has eligible quantity (0..1)".freeze,
    range: "http://purl.org/goodrelations/v1#QuantitativeValue".freeze,
    type: "http://www.w3.org/2002/07/owl#ObjectProperty".freeze
  property :"hasGTIN-14",
    comment: "The Global Trade Item Number (GTIN-14) of the given gr:ProductOrService or gr:Offering.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "_:g28580".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has GTIN-14 (0..*)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#string".freeze,
    subPropertyOf: "http://schema.org/productID".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :"hasGTIN-8",
    comment: "The 8-digit Global Trade Item Number (GTIN-8) of the given gr:ProductOrService or gr:Offering, also known as EAN/UCC-8 (8-digit EAN).".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#ProductOrService".freeze, "_:g24620".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has GTIN-8 (0..*)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#string".freeze,
    subPropertyOf: "http://schema.org/productID".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :hasGlobalLocationNumber,
    comment: "The Global Location Number (GLN, sometimes also referred to as International Location Number or ILN) of the respective gr:BusinessEntity or gr:Location.\nThe Global Location Number is a thirteen-digit number used to identify parties and physical locations.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "_:g19800".freeze, "_:g19840".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has Global Location Number (0..1)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#string".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :hasISICv4,
    comment: "The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular gr:BusinessEntity or gr:Location. See http://unstats.un.org/unsd/cr/registry/isic-4.asp for more information.\n\nNote: While ISIC codes are sometimes misused for classifying products or services, they are designed and suited only for classifying business establishments.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#BusinessEntity".freeze, "http://purl.org/goodrelations/v1#Location".freeze, "_:g17760".freeze, "_:g17800".freeze)
      ),
    isDefinedBy: "http://purl.org/goodrelations/v1".freeze,
    label: "has ISIC v4 (0..*)".freeze,
    range: "http://www.w3.org/2001/XMLSchema#int".freeze,
    type: "http://www.w3.org/2002/07/owl#DatatypeProperty".freeze
  property :hasInventoryLevel,
    comment: "This property specifies the current approximate inventory level for gr:SomeItems. The unit of measurement and the point value or interval are indicated using the attached gr:QuantitativeValueFloat instance.\n\nThis property can also be attached to a gr:Offering in cases where the included products are not modeled in more detail.".freeze,
    domain: term(
        type: "http://www.w3.org/2002/07/owl#Class".freeze,
        unionOf: list("http://purl.org/goodrelations/v1#Offering".freeze, "http://purl.org/goodrelations/v1#SomeItems".freeze, "_:g38160".freeze)
      ),
    isDefinedBy: "http://purl.or