.. BACowl Object

Object
======

This is a long line of text::

    BACnet:Object
        rdf:type                owl:Class ;
        owl:disjointUnionOf     (BACnet:StandardObject BACnet:ProprietaryObject) ;
        rdfs:subClassOf
            [ rdf:type              owl:Restriction ;
              owl:onProperty        Object:objectIdentifier ;
              owl:cardinality       1
            ] ;
        rdfs:subClassOf
            [ rdf:type              owl:Restriction ;
              owl:onProperty        Object:objectName ;
              owl:cardinality       1
            ] ;
        rdfs:subClassOf
            [ rdf:type              owl:Restriction ;
              owl:onProperty        Object:objectType ;
              owl:cardinality       1
            ] ;
        rdfs:subClassOf
            [ rdf:type              owl:Restriction ;
              owl:onProperty        Object:propertyList ;
              owl:maxCardinality    1
            ] ;
        Object:propertySet
            [ rdf:type              BACnet:PropertySet ;
              skos:member           Object:objectIdentifier, Object:objectName, Object:objectType, Object:propertyList
            ] .

This is a long line of text.

Standard Object
---------------

This is a long line of text::

    BACnet:StandardObject
        rdfs:subClassOf   BACnet:Object .

Proprietary Object
------------------

This is a long line of text::

    BACnet:ProprietaryObject
        rdfs:subClassOf             BACnet:Object ;
        rdfs:subClassOf
            [ rdf:type              owl:Restriction ;
              owl:onProperty        BACnet:managedByVendor ;
              owl:cardinality       1
            ] .

Property
--------

Properties in BACnet are very similar to properties in RDF.  ::

    BACnet:Property
        rdf:type                rdf:Property ;
        rdfs:subPropertyOf      owl:ObjectProperty, owl:FunctionalProperty ;
        owl:disjointUnionOf     (BACnet:StandardProperty BACnet:ProprietaryProperty) ;
        rdfs:subClassOf
            [ rdf:type              owl:Restriction ;
              owl:onProperty        Property:propertyId ;
              owl:cardinality       1
            ] .

    Property:propertyId
          rdf:type          owl:ObjectProperty , owl:FunctionalProperty ;
          rdfs:domain       BACnet:Property ;
          rdfs:range        BACnet:PropertyIdentifier .

There are two different kinds of properties, standard properties and proprietary properties.  Standard 
properties are those that are defined in the standard, and proprietary properties are defined by 
individual vendors.

Every property has a property identifier which is one of the BACnet:PropertyIdentifier enumerations.  Vendors 
provide their own property identifiers by deriving from BACnet:ExtendedPropertyIdentifierCodeList 
and providing code values in the vendor reserved range, 512 through 4194303 inclusive.

Standard Property
`````````````````

This is a long line of text::

    BACnet:StandardProperty
        rdfs:subPropertyOf      BACnet:Property ;
        owl:disjointUnionOf     (BACnet:OptionalProperty BACnet:ReadableProperty BACnet:WritableProperty) .

This is a long line of text::

    BACnet:OptionalProperty
          rdfs:subPropertyOf    BACnet:StandardProperty ;
          rdfs:comment          "The property is optional." .

This is a long line of text::

    BACnet:ReadableProperty
          rdfs:subPropertyOf    BACnet:StandardProperty ;
          rdfs:comment          "The property is required to be present and readable using BACnet services." .

This is a long line of text::

    BACnet:WritableProperty
          rdfs:subPropertyOf    BACnet:StandardProperty ;
          rdfs:comment          "The property is required to be present, readable, and writable using BACnet services." .

This is a long line of text.

Proprietary Property
````````````````````

This is a long line of text::

    BACnet:ProprietaryProperty
        rdfs:subPropertyOf        BACnet:Property ;
        rdfs:subClassOf
            [ rdf:type              owl:Restriction ;
              owl:onProperty        BACnet:managedByVendor ;
              owl:cardinality       1
            ] .

This is a long line of text.

Property Set
````````````

This is a long line of text::

    BACnet:PropertySet
        rdf:type                    skos:Collection ;
        rdfs:subClassOf
            [ rdf:type              owl:Restriction ;
              owl:onProperty        skos:member ;
              owl:someValuesFrom    BACnet:Property
            ] .

This is a long line of text.

Common Properties
-----------------

This is a long line of text.

Object Identifier
`````````````````

This is a long line of text::

    Object:objectIdentifier
          rdf:type              BACnet:ReadableProperty ;
          Property:propertyId   PropertyIdentifier:objectIdentifier ;
          rdfs:domain           BACnet:Object ;
          rdfs:range            BACnet:ObjectIdentifier .

Object Name
```````````

This is a long line of text::

    Object:objectName
          rdf:type              BACnet:ReadableProperty ;
          Property:propertyId   PropertyIdentifier:objectName ;
          rdfs:domain           BACnet:Object ;
          rdfs:range            BACnet:ObjectName .

Object Type
```````````

This is a long line of text::

    Object:objectType
          rdf:type              BACnet:ReadableProperty ;
          Property:propertyId   PropertyIdentifier:objectType ;
          rdfs:domain           BACnet:Object ;
          rdfs:range            BACnet:ObjectType .

Property List
`````````````

This is a long line of text::

    Object:propertyList
          rdf:type              BACnet:ReadableProperty ;
          Property:propertyId   PropertyIdentifier:propertyList ;
          rdfs:domain           BACnet:Object ;
          rdfs:range            BACnet:PropertyList .

Property Set
````````````

This is a long line of text::

    Object:propertySet
          rdf:type              owl:FunctionalProperty , owl:ObjectProperty ;
          rdfs:range            BACnet:PropertySet .