Business Maps as an Ontology
This document assumes you're familiar with ontologies in terms of their use to model data in the semantic web context, otherwise please head to the Ontology section of the Business Maps Concepts documentation.
Earlier in the Business Maps Framework Explanation we said that Business Contexts
are divided into puzzle pieces: Things
, Personas
, Interfaces
, Workflows
, Actions
, and Values
. We also explained that Things
make up a mini-ontology of a given Business Context
. To reduce barrier to entry we publish the Business Maps Meta-Ontology, which is an ontology used as a backbone for each Business Context
ontology. This document explains the meta-ontology, allowing you to navigate for a deeper understanding whether it's out of curiousity or whether you'd like to tweak the ontology for your own use case.
At the top of the turtle serialization of the Business Maps Meta-Ontology we'll see the prefixes that will help us combine different ontologies in a more concise fashion. As you'll see we're only using some common ontologies that are well known within the field, RDF, RDFS, OWL, XML Schema, and SHACL
@prefix : <https://businessmaps.io/ontology/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <https://businessmaps.io/ontology/> .
Business Context
Starting out with the Business Context
which is an OWL Class, the properties of which can teach us a bit about its functions. Aside from the name
each Business Context
also can be a childContextOf
or a parentContextOf
of another Business Context
allowing us to have bi-directional hierarchical relationships between contexts. This can be leveraged to further organize one's business logic, and even create the concept of a department. Each Business Context
can also providesValueStream
or consumesValueStream
allowing us to connect different contexts via Value Streams
. Of course each Business Context
also hasThing
, hasPersona
, hasPersona
, hasAction
, hasWorkflow
, and hasValue
.
### https://businessmaps.io/ontology/BusinessContext
:BusinessContext rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty :childContextOf ;
owl:someValuesFrom :BusinessContext
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :consumesValueStream ;
owl:someValuesFrom :ValueStream
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasAction ;
owl:someValuesFrom :Action
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasInterface ;
owl:someValuesFrom :Interface
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasPersona ;
owl:someValuesFrom :Persona
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasThing ;
owl:someValuesFrom :Thing
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :parentContextOf ;
owl:someValuesFrom :BusinessContext
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :providesValueStream ;
owl:someValuesFrom :ValueStream
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :name ;
owl:someValuesFrom xsd:string
] ;
rdfs:comment "A distinct operational domain within an organization"@en ;
rdfs:label "BusinessContext"@en .
Thing
A Thing
is an OWL Class that has a name
and can have Attributes
through the property hasAttribute
. Each Thing
falls within some Business Context
through the inContext
property, and has an Interface
through the representedBy
property.
### https://businessmaps.io/ontology/Thing
:Thing rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty :hasAttribute ;
owl:someValuesFrom :Attribute
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :inContext ;
owl:someValuesFrom :BusinessContext
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :representedBy ;
owl:someValuesFrom :Interface
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :name ;
owl:someValuesFrom xsd:string
] ;
rdfs:comment "An entity within a business context representing a core concept or data element"@en ;
rdfs:label "Thing"@en .
Attribute
An Attribute
is an OWL Class that has a name
and connects to our Things
through the belongsToThing
property. Additionally, each Attribute
must have an AttributeType
as its type through the hasType
property, and can have an AttributeShape
through the hasShape
property
### https://businessmaps.io/ontology/Attribute
:Attribute rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty :belongsToThing ;
owl:someValuesFrom :Thing
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasShape ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass :AttributeShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasType ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass :AttributeType
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :name ;
owl:someValuesFrom xsd:string
] ;
rdfs:comment "A property or characteristic of a business context's thing"@en ;
rdfs:label "Attribute"@en .
AttributeType
An AttributeType
is an OWL Class whose subclasses give us primitives that we can use to specify the types of our Attributes
, those subclasses are:
String
: A textual type, which can be used for things like names, titles, status...Integer
: A numeric type without a decimal place, i.e. 156Decimal
: A numeric type with a decimal place, i.e. 18.2Boolean
: A binary logic type, i.e. True or FalseTime
: A type that holds time in the hh:mm formatDate
: A type that holds dates in the YY-MM-DD formatDateTime
: A type that holds both a date and a time in the YY-MM-DDThh:mm:ss.sss formatDuration
: A type that represents a duration of time that can be expressed using years, months, days, hours, minutes, and secondsList
: An ordered list of thingsSet
: An unordered list of unique thingsEnumeration
: Options, for example a status can be either To Do, Doing, or DoneReference
: A type used to reference otherThings
, which is how we can define relationships betweenThings
### https://businessmaps.io/ontology/AttributeType
:AttributeType rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty :typeOf ;
owl:someValuesFrom :Attribute
] ;
rdfs:comment "The type of an attribute. Can be primitive, reference, collection, or other extended types"@en ;
rdfs:label "AttributeType"@en .
### https://businessmaps.io/ontology/String
:String rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxLengthShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinLengthShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :PatternShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToXSD ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:string
] ;
rdfs:comment "A primitve type that represents text"@en ;
rdfs:label "String"@en ;
:attributeTypeGroup "Primitive Types" .
### https://businessmaps.io/ontology/Integer
:Integer rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToXSD ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:integer
] ;
rdfs:comment "A primitve type to represent whole numbers without a decimal"@en ;
rdfs:label "Integer"@en ;
:attributeTypeGroup "Primitive Types" .
### https://businessmaps.io/ontology/Decimal
:Decimal rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToXSD ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:decimal
] ;
rdfs:comment "A primitve type for numbers with a decimal part"@en ;
rdfs:label "Decimal"@en ;
:attributeTypeGroup "Primitive Types" .
### https://businessmaps.io/ontology/Boolean
:Boolean rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToXSD ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:boolean
] ;
rdfs:comment "A primitive type that represents binary logic, True/False, Yes/No..."@en ;
rdfs:label "Boolean"@en ;
:attributeTypeGroup "Primitive Types" .
### https://businessmaps.io/ontology/Time
:Time rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToXSD ;
owl:someValuesFrom xsd:time
] ;
rdfs:comment "A primtive type that represents time without a date, the format is hh:mm:ss.sss. The letter Z is used to indicate Coordinated Universal Time (UTC). All other time zones are represented by their difference from Coordinated Universal Time in the format +hh:mm, or -hh:mm."@en ;
rdfs:label "Time"@en ;
:attributeTypeGroup "Primitive Types" .
### https://businessmaps.io/ontology/Date
:Date rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToXSD ;
owl:someValuesFrom xsd:date
] ;
rdfs:comment "A primitive type used for dates without time"@en ;
rdfs:label "Date"@en ;
:attributeTypeGroup "Primitive Types" .
### https://businessmaps.io/ontology/DateTime
:DateTime rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToXSD ;
owl:someValuesFrom xsd:dateTime
] ;
rdfs:comment "A primtive type that represents date+time, the format isCCYY-MM-DDThh:mm:ss.sss. The letter Z can be added to indicate Coordinated Universal Time (UTC). All other time zones are represented by their difference from Coordinated Universal Time in the format +hh:mm, or -hh:mm."@en ;
rdfs:label "DateTime"@en ;
:attributeTypeGroup "Primitive Types" .
### https://businessmaps.io/ontology/Duration
:Duration rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MaxInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinExclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :applicableShape ;
owl:someValuesFrom :MinInclusiveShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToXSD ;
owl:someValuesFrom xsd:duration
] ;
rdfs:comment "A primitive type that represents a duration of time that can be expressed using years, months, days, hours, minutes, and seconds. The format is PnYnMnDTnHnMnS"@en ;
rdfs:label "Duration"@en ;
:attributeTypeGroup "Primitive Types" .
### https://businessmaps.io/ontology/ListType
:ListType rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ;
rdfs:comment "An ordered collection of resources that allows duplicates"@en ;
rdfs:label "List"@en ;
:attributeTypeGroup "Collection Types" .
### https://businessmaps.io/ontology/SetType
:SetType rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ;
rdfs:comment "A collection of unordered resources without duplicates"@en ;
rdfs:label "Set"@en ;
:attributeTypeGroup "Collection Types" .
### https://businessmaps.io/ontology/EnumeratedType
:EnumeratedType rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :allowedValue ;
owl:someValuesFrom rdfs:Literal
] ;
rdfs:comment "Represents an attribute type where the value must be one from a fixed list of allowed values"@en ;
rdfs:label "Enumeration"@en ;
:attributeTypeGroup "Complex Types" .
### https://businessmaps.io/ontology/ReferenceType
:ReferenceType rdf:type owl:Class ;
rdfs:subClassOf :AttributeType ,
[ rdf:type owl:Restriction ;
owl:onProperty :references ;
owl:someValuesFrom :Thing
] ;
rdfs:comment "References another Thing in order to create relationships"@en ;
rdfs:label "Reference"@en ;
:attributeTypeGroup "Complex Types" .
AttributeShape
AttributeShape
help us validate Attributes
, different AttributeTypes
have different applicable AttributeShapes
through the applicableShape
property. An AttributeShape
could be a SimpleShape
such as the MaxLengthShape
or the MinLengthShape
, it could be a CardinalityShape
that tells us how many of a given Attribute
a Thing
should have, or a LogicalShape
that lets us say something like a given attribute has both a minimum length of 3 and maximum length of 16. AttributeShapes
are wrappers around the most common SHACL concepts.
### https://businessmaps.io/ontology/AttributeShape
:AttributeShape rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty :shapeOf ;
owl:someValuesFrom :Attribute
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :name ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:string
] ;
rdfs:comment "A way of constraining the shape of an attribute, shapes are translated to SHACL shapes"@en ;
rdfs:label "AttributeShape"@en .
### https://businessmaps.io/ontology/LogicalShape
:LogicalShape rdf:type owl:Class ;
rdfs:subClassOf :AttributeShape ;
rdfs:comment "Logic shaping used to construct more complex shapes from other AttributeShape classes"@en ;
rdfs:label "LogicalShape"@en .
### https://businessmaps.io/ontology/AndShape
:AndShape rdf:type owl:Class ;
rdfs:subClassOf :LogicalShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasOperand ;
owl:someValuesFrom :AttributeShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:and
] ;
rdfs:comment "Used to chain multiple AttributeShape classes, where all the shapes chained must be satisfied"@en ;
rdfs:label "AndShape"@en .
### https://businessmaps.io/ontology/NotShape
:NotShape rdf:type owl:Class ;
rdfs:subClassOf :LogicalShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasOperand ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass :AttributeShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:not
] ;
rdfs:comment "Used to negate a given AttributeShape, meaning the attribute having the given shape is a violation"@en ;
rdfs:label "NotShape"@en .
### https://businessmaps.io/ontology/OrShape
:OrShape rdf:type owl:Class ;
rdfs:subClassOf :LogicalShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :hasOperand ;
owl:someValuesFrom :AttributeShape
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:or
] ;
rdfs:comment "Used to chain multiple AttributeShape classes, one of the given shapes being satisfied is enough"@en ;
rdfs:label "OrShape"@en .
### https://businessmaps.io/ontology/PatternShape
:PatternShape rdf:type owl:Class ;
rdfs:subClassOf :SimpleShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:pattern
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :simpleShapeParam ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:string
] ;
rdfs:comment "Data constained with the PatternShape must follow a regex pattern supplied"@en ;
rdfs:label "PatternShape"@en .
### https://businessmaps.io/ontology/CardinalityShape
:CardinalityShape rdf:type owl:Class ;
rdfs:subClassOf :AttributeShape ;
rdfs:label "CardinalityShape"@en .
### https://businessmaps.io/ontology/SimpleShape
:SimpleShape rdf:type owl:Class ;
rdfs:subClassOf :AttributeShape ;
rdfs:comment "A way of shaping attribute with single non-composite shapes" ;
rdfs:label "SimpleShape"@en .
### https://businessmaps.io/ontology/HasValueShape
:HasValueShape rdf:type owl:Class ;
rdfs:subClassOf :SimpleShape ;
rdfs:comment "A shape that says a given attribute has a specifc given value"@en ;
rdfs:label "HasValueShape"@en .
### https://businessmaps.io/ontology/InShape
:InShape rdf:type owl:Class ;
rdfs:subClassOf :SimpleShape ;
rdfs:comment "A shape that assets a given attribute's value lies within a given set"@en ;
rdfs:label "InShape"@en .
### https://businessmaps.io/ontology/MaxCountShape
:MaxCountShape rdf:type owl:Class ;
rdfs:subClassOf :CardinalityShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:maxCount
] ;
rdfs:comment "How many of the given attributes ought to exist, can be used to describe a required attribute, or for enforcing vector size for complex attributes"@en ;
rdfs:label "MaxCountShape"@en .
### https://businessmaps.io/ontology/MaxExclusiveShape
:MaxExclusiveShape rdf:type owl:Class ;
rdfs:subClassOf :SimpleShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:maxExclusive
] ;
rdfs:comment "Equivalent of less than" ;
rdfs:label "MaxExclusiveShape"@en .
### https://businessmaps.io/ontology/MaxInclusiveShape
:MaxInclusiveShape rdf:type owl:Class ;
rdfs:subClassOf :SimpleShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:maxInclusive
] ;
rdfs:comment "Equivalent of less than or equal to"@en ;
rdfs:label "MaxInclusiveShape"@en .
### https://businessmaps.io/ontology/MaxLengthShape
:MaxLengthShape rdf:type owl:Class ;
rdfs:subClassOf :SimpleShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :length ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:integer
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:maxLength
] ;
rdfs:comment "Data constrained with the MinLengthShape, must have at most the length supplied"@en ;
rdfs:label "MaxLengthShape"@en .
### https://businessmaps.io/ontology/MinCountShape
:MinCountShape rdf:type owl:Class ;
rdfs:subClassOf :CardinalityShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:minCount
] ;
rdfs:comment "How many of the given attributes ought to exist, can be used to describe a required attribute, or for enforcing vector size for complex attributes"@en ;
rdfs:label "MinCountShape"@en .
### https://businessmaps.io/ontology/MinExclusiveShape
:MinExclusiveShape rdf:type owl:Class ;
rdfs:subClassOf :SimpleShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:minExclusive
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :simpleShapeParam ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:integer
] ;
rdfs:comment "Equivalent of greater than"@en ;
rdfs:label "minExclusiveShape"@en .
### https://businessmaps.io/ontology/MinInclusiveShape
:MinInclusiveShape rdf:type owl:Class ;
rdfs:subClassOf :SimpleShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:minInclusive
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :simpleShapeParam ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:date
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :simpleShapeParam ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:integer
] ;
rdfs:comment "Equivalent of greater than or equal to"@en ;
rdfs:label "MinInclusiveShape"@en .
### https://businessmaps.io/ontology/MinLengthShape
:MinLengthShape rdf:type owl:Class ;
rdfs:subClassOf :SimpleShape ,
[ rdf:type owl:Restriction ;
owl:onProperty :mapsToSHACL ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange sh:minLength
] ;
rdfs:comment "Data constrained with the MinLengthShape, must have at least the length supplied"@en ;
rdfs:label "MinLengthShape"@en .