(defvar *reserved-vocabulary-with-special-treatment*
(list
!owl:Nothing
!owl:priorVersion
!owl:rational
!owl:real
!owl:versionInfo
!owl:Thing
!owl:topDataProperty
!owl:topObjectProperty
!rdf:langRange
!rdf:text
!rdf:XMLLiteral
!rdfs:comment
!rdfs:isDefinedBy
!rdfs:label
!rdfs:Literal
!rdfs:seeAlso
!xsd:anyURI
!xsd:base64Binary
!xsd:boolean
!xsd:byte
!xsd:dateTime
!xsd:dateTimeStamp
!xsd:decimal
!xsd:double
!xsd:float
!xsd:hexBinary
!xsd:int
!xsd:integer
!xsd:language
!xsd:length
!xsd:long
!xsd:maxExclusive
!xsd:maxInclusive
!xsd:maxLength
!xsd:minExclusive
!xsd:minInclusive
!xsd:minLength
!xsd:Name
!xsd:NCName
!xsd:negativeInteger
!xsd:NMTOKEN
!xsd:nonNegativeInteger
!xsd:nonPositiveInteger
!xsd:normalizedString
!xsd:pattern
!xsd:positiveInteger
!xsd:short
!xsd:string
!xsd:token
!xsd:unsignedByte
!xsd:unsignedInt
!xsd:unsignedLong
!xsd:unsignedShort))
(profiles-testcase
'reserved-vocabulary-annotations
'(:full :dl :rl :ql :el)
"Only the annotation property can't be from the restricted vocabulary"
"Prefix (: = )
Prefix(xsd: = )
Prefix(rdf: = )
Prefix(rdfs: = )
Prefix(owl: = )
Ontology(
Declaration(AnnotationProperty(:ap))
AnnotationAssertion(:p owl:Nothing owl:Nothing)
AnnotationAssertion(:p owl:priorVersion owl:priorVersion)
AnnotationAssertion(:p owl:rational owl:rational)
AnnotationAssertion(:p owl:real owl:real)
AnnotationAssertion(:p owl:versionInfo owl:versionInfo)
AnnotationAssertion(:p owl:Thing owl:Thing)
AnnotationAssertion(:p owl:topDataProperty owl:topDataProperty)
AnnotationAssertion(:p owl:topObjectProperty owl:topObjectProperty)
AnnotationAssertion(:p rdf:langRange rdf:langRange)
AnnotationAssertion(:p rdf:text rdf:text)
AnnotationAssertion(:p rdf:XMLLiteral rdf:XMLLiteral)
AnnotationAssertion(:p rdfs:comment rdfs:comment)
AnnotationAssertion(:p rdfs:isDefinedBy rdfs:isDefinedBy)
AnnotationAssertion(:p rdfs:label rdfs:label)
AnnotationAssertion(:p rdfs:Literal rdfs:Literal)
AnnotationAssertion(:p rdfs:seeAlso rdfs:seeAlso)
AnnotationAssertion(:p xsd:anyURI xsd:anyURI)
AnnotationAssertion(:p xsd:base64Binary xsd:base64Binary)
AnnotationAssertion(:p xsd:boolean xsd:boolean)
AnnotationAssertion(:p xsd:byte xsd:byte)
AnnotationAssertion(:p xsd:dateTime xsd:dateTime)
AnnotationAssertion(:p xsd:dateTimeStamp xsd:dateTimeStamp)
AnnotationAssertion(:p xsd:decimal xsd:decimal)
AnnotationAssertion(:p xsd:double xsd:double)
AnnotationAssertion(:p xsd:float xsd:float)
AnnotationAssertion(:p xsd:hexBinary xsd:hexBinary)
AnnotationAssertion(:p xsd:int xsd:int)
AnnotationAssertion(:p xsd:integer xsd:integer)
AnnotationAssertion(:p xsd:language xsd:language)
AnnotationAssertion(:p xsd:length xsd:length)
AnnotationAssertion(:p xsd:long xsd:long)
AnnotationAssertion(:p xsd:maxExclusive xsd:maxExclusive)
AnnotationAssertion(:p xsd:maxInclusive xsd:maxInclusive)
AnnotationAssertion(:p xsd:maxLength xsd:maxLength)
AnnotationAssertion(:p xsd:minExclusive xsd:minExclusive)
AnnotationAssertion(:p xsd:minInclusive xsd:minInclusive)
AnnotationAssertion(:p xsd:minLength xsd:minLength)
AnnotationAssertion(:p xsd:Name xsd:Name)
AnnotationAssertion(:p xsd:NCName xsd:NCName)
AnnotationAssertion(:p xsd:negativeInteger xsd:negativeInteger)
AnnotationAssertion(:p xsd:NMTOKEN xsd:NMTOKEN)
AnnotationAssertion(:p xsd:nonNegativeInteger xsd:nonNegativeInteger)
AnnotationAssertion(:p xsd:nonPositiveInteger xsd:nonPositiveInteger)
AnnotationAssertion(:p xsd:normalizedString xsd:normalizedString)
AnnotationAssertion(:p xsd:pattern xsd:pattern)
AnnotationAssertion(:p xsd:positiveInteger xsd:positiveInteger)
AnnotationAssertion(:p xsd:short xsd:short)
AnnotationAssertion(:p xsd:string xsd:string)
AnnotationAssertion(:p xsd:token xsd:token)
AnnotationAssertion(:p xsd:unsignedByte xsd:unsignedByte)
AnnotationAssertion(:p xsd:unsignedInt xsd:unsignedInt)
AnnotationAssertion(:p xsd:unsignedLong xsd:unsignedLong)
AnnotationAssertion(:p xsd:unsignedShort xsd:unsignedShort)
)")
(loop for uri in *reserved-vocabulary-with-special-treatment* do
(eval `(profiles-testcase
',(intern (format nil "RESTRICTED-~a-NOT-ALLOWED-AS-INDIVIDUAL" (substitute #\- #\: (string-upcase (uri-abbreviated uri)))))
'(:dl :rl :ql :el)
,(format nil "the reserved ~a can't be used to name an individual" (uri-abbreviated uri))
,(format nil "Prefix (: = )
Prefix(xsd: = )
Prefix(rdf: = )
Prefix(rdfs: = )
Prefix(owl: = )
Ontology(
Declaration(NamedIndividual(~a))
Declaration(DataProperty(:p))
DataPropertyAssertion(:p ~a \"true\"^^xsd:boolean))" (uri-abbreviated uri) (uri-abbreviated uri)))))