A SemanticNet is a DirectedGraph with nodes representing objects, classes or concepts, and the arcs representing relations between them (such as is-a, part-of etc). They are an old construct from ArtificialIntelligence but other diagramming methods such as EntityRelationshipDiagrams and ClassDiagrams (from UnifiedModelingLanguage) can be thought of as an evolution of these ideas. It has been shown that PredicateLogic is equivalent to SemanticNets but since a picture is worth a thousand words they can be useful, especially to learn new DomainKnowledge quickly. A simplified version can be found in the GalacticModelingLanguage.
See http://www.cee.hw.ac.uk/~alison/ai3notes/subsection2_4_2_1.html
An example of how a SemanticNet, SymbolicLogic, ER Diagram and UML can represent the same thing:
SemanticNet: (customer)---has--->(purchases) Logic: Has(Customer,Purchases) or more cryptically, H(C,P) ER: [Customer]---<has>---[Purchases] UML ClassDiagram:[Customer]<>---[Purchases]From which RelationalDatabase tables CUSTOMER, PURCHASES could be derived and code ie in Java from the ClassDiagram once attributes and methods created. Doing it as a semantic net first can help enumerate attributes and methods ie
has---(address) / (customer)---has---(name) can---(register)May become
------------ |Customer | ============ |Name | |Address | |... | ------------ |Register()| |... | ------------Rolled into one Class. SemanticNets are more FreeForm? and easier to think in initially, then structure into other formalisms later on. Different ways of modelling the same domain.
See also: SemanticWeb, ResourceDescriptionFramework