Browse Prior Art Database

Semantic Network Loader

IP.com Disclosure Number: IPCOM000116696D
Original Publication Date: 1995-Oct-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 4 page(s) / 75K

Publishing Venue

IBM

Related People

Trotter, MJ: AUTHOR

Abstract

Filling a semantic network can be difficult and generally results in large amounts of disposable code. The general purpose loader described below operates on an input language in a novel syntax, and can be used to generate test data or modify existing data within a semantic network.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 54% of the total text.

Semantic Network Loader

      Filling a semantic network can be difficult and generally
results in large amounts of disposable code.  The general purpose
loader described below operates on an input language in a novel
syntax, and can be used to generate test data or modify existing data
within a semantic network.

The syntax allows essentially three operations on subjects.
  o  Locate a subject by it's CONTAINMENT path.
  o  Relate one subject to another.
  o  Add a virtual subject to a given subject.

      The forward slash is used to denote containment and thus A/B/C
refers to a specific path which starts at the root subject and is
fully described as:
  root 'has member' A 'has member' B 'has member' C

      The 'has member' relationship is simply the default for the
slash.  It can be overridden by the vertical bar, thus:
    has_class|X
  is fully described as:
    root 'has_class' X

      The colon allows relationships between subjects to be defined
and thus can be related to C and X as follows:
    A/B/C : has_resource : X

      Finally the period allows virtual subjects to be defined.
Thus, to define a virtual integer, use the following:
    A/B/C.virt_sub = 24

      Which creates a virtual subject with the integer value 24 and
relates it to the subject A/B/C using the relationship virt_sub.

      To make it easier to refer to the same object in multiple
places, define the equal character to set an internal variable.
Thus:
  A/B/C = some_var
  &some_var : has_resource : X

      Has the same effect as the previous example.  This feature can
also be used to reduce the load time for a network since clearly the
majority of the work in the loader is done in traversing the
containment path to locate a subject.  By remembering the subject on
first reference the load time linear can be made.

      Thus, with very little syntax we can provide the ability to
generate any semantic network.  The same syntax can be used to
produce a general purpose network dump program making a portable
backup format for semantic networks.
  BNF DEFINITION OF THE LOADER SYNTAX
  A file is a collection of syntax items...