# Define your prefixes...
PREFIX rdf:> http://www.w3.org/1999/02/22-rdf-syntax-ns#
PREFIX rdfs:> http://www.w3.org/2000/01/rdf-schema#
PREFIX xsd:> http://www.w4.org/2001/XMLSchema#
PREFIX owl:> http://www.w3.org/2002/07/owl#
PREFIX obo:> http://purl.obolibrary.org/obo/
PREFIX ex:> http://example.com/
# then abbreviate your IRIs
# so <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
# can be shortened to: rdf:type
# Set a base IRI...
BASE http://example.com/
# then use relative IRIs in angle brackets: < >
# so <http://example.com/howl-demo.owl>
# can be shortened to <howl-demo.owl>
<howl-demo.owl>
rdfs:label: Example Ontology
rdf:type:> owl:Ontology
# Specify your own labels...
LABEL rdf:type: type
LABEL rdfs:label: label
LABEL rdfs:comment: comment
LABEL rdfs:subClassOf: subclass of
LABEL owl:equivalentClass: equivalent to
LABEL obo:IAO_0000115: definition
# then use them in your statements
ex:frog
label: Frog
definition: A circular definition of frog.
# Your 'rdfs:label' statments also specify labels
# that you can use in subsequent statements,
# e.g. 'label: Frog' can be used as Kermit's type
ex:kermit
type:> Frog
# Set a language or datatype...
TYPE label:> @en
TYPE comment:> xsd:string
ex:french-fries
# that will apply by default
label: French Fries
comment: A comment string
# but can be overridden
label: Frites@fr
comment: 1000^^xsd:integer
# It's easy to use tables with HOWL
# and define many terms concisely
SUBJECT label: type:>
obo:BFO_0000040 material entity owl:Class
obo:BFO_0000051 has part owl:ObjectProperty
obo:BFO_0000055 realizes owl:ObjectProperty
obo:IAO_0000030 information content entity owl:Class
obo:IAO_0000112 example of usage owl:AnnotationProperty
obo:IAO_0000115 definition owl:AnnotationProperty
obo:IAO_0000117 term editor owl:AnnotationProperty
obo:IAO_0000118 alternative term owl:AnnotationProperty
obo:IAO_0000119 definition source owl:AnnotationProperty
obo:IAO_0000136 is about owl:ObjectProperty
obo:OBI_0000011 planned process owl:Class
obo:OBI_0000067 evaluant role owl:Class
obo:OBI_0000070 assay owl:Class
obo:OBI_0000293 has_specified_input owl:ObjectProperty
obo:OBI_0000299 has_specified_output owl:ObjectProperty
obo:OBI_0000417 achieves_planned_objective owl:ObjectProperty
obo:OBI_0000441 assay objective owl:Class
obo:RO_0000087 has role owl:ObjectProperty
# EDIT ME!
# Then press "Convert" to see the results of your changes below!
# Lines that start with '#' are just comments.
# Set the current subject using a label, prefixed name, or IRI
assay
definition: A planned process with the objective to produce information about the material entity that is the evaluant, by physically examining it or its proxies.
type:> owl:Class
equivalent to:>> achieves_planned_objective some 'assay objective'
# Use ': ' for literal values: strings, numbers, dates, etc.
example of usage: Assay the wavelength of light emitted by excited Neon atoms. Count of geese flying over a house.
# Use ':> ' for links: IRIs, prefixed names, or labels
subclass of:> planned process
# Use ':>> ' for complex expressions
subclass of:>> realizes some 'evaluant role'
# Use indentation to continue long lines
subclass of:>> has_specified_input some
('material entity'
and ('has role' some 'evaluant role'))
subclass of:>> has_specified_output some
('information content entity'
and ('is about' some
('material entity'
and ('has role' some 'evaluant role'))))
# Easily add OWL annotations, even annotations on annotations...
ex:another-subject
label: Another Subject
comment: A comment on 'label: Another Subject'.
> comment: An annotation on a comment.
>> comment: An annotation on an annotation.
# Change to a named graph
GRAPH ex:example-graph
label: Example Graph
ex:first-example-subject
comment: This subject is in the Example Graph.
# Then back to the default graph
GRAPH
ex:second-example-subject
comment: This subject is in the default graph.
# WARNING: OWL only uses the default graph!