drj826 / SML

This is the Perl 5 implementation of the SML code library. SML is a minimalistic plain text descriptive markup language which is human readable, enables continuous integration of documentation, expresses and validates semantic relationships, is easy to edit, is easy to generate automatically, and publishes professional documentation from plain text manuscripts.
GNU General Public License v3.0
2 stars 2 forks source link

Enable Use of SML For Ontology Rule Declarations #5

Open drj826 opened 8 years ago

drj826 commented 8 years ago

In addition to using CSV files to declare ontology rules, implement a solution that allows SML divisions to be used to declare ontology rules.

The purpose is to enrich ontology rules with titles and descriptions to make them more understandable.

Implementing this will require parsing the ontology rule divisions during library instantiation.

Here is a sample of using SML to declare ontology rules:

######################################################################

>>>DIVISION_DECLARATION.req000

has_division:: requirement

class:: SML::Entity

description:: A requirement is a statement of needed organizational or
system capability.  Requirements for organizational capability are
called business requirement.  Requirements for system capability are
called system requirements.

<<<DIVISION_DECLARATION

######################################################################

>>>PROPERTY_DECLARATION.req001

division:: requirement

has_property:: title

object_type:: Str

object_name:: STRING

cardinality:: 1

required:: 1

description:: A requirement `title' is a succinct statement of need.
Most requirement titles should be a verb phrase that describes
something a solution should ~~do~~ or should ~~be~~.

<<<PROPERTY_DECLARATION

######################################################################

>>>PROPERTY_DECLARATION.req002

division:: requirement

has_property:: id

object_type:: Str

object_name:: STRING

cardinality:: 1

required:: 1

description:: A requirement `id' is a unique identifier for the
requirement.  The ID must be unique within the library.

<<<PROPERTY_DECLARATION

######################################################################
drj826 commented 8 years ago

In addition to titles and descriptions, I'd like to specify a "label" for each division declaration. This "label" would be used in presenting entities of that name. For instance, an entity with name 'configuration_item' might have a label of "Configuration Item" to use in presentation templates.

drj826 commented 8 years ago

In addition to features identified above, add a "presentation_order" property to the property declaration rule. This will specify the order in which to present properties in any presentation rendition.