Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
191 lines (140 sloc) 6.01 KB
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns=""
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>SPICE Vocabulary</title>
<meta name="generator" content="Amaya, see" />
<link media="screen" href="../css/spec-rec.css" type="text/css"
rel="stylesheet" />
<h1>SPICE Vocabulary</h1>
<p><a href="">SPICE</a> (Simulation Program
with Integrated Circuit Emphasis) is a general-purpose, open source analog
electronic circuit simulator. It is a powerful program that is used in
integrated circuit and board-level design to check the integrity of circuit
designs and to predict circuit behavior.</p>
<p>The purpose of the SPICE Vocabulary is to enable SPICE models to be created
and used in a Web-friendly form. The SPICE Vocabulary will be defined in <a
List</a></strong> (editable)</p>
<p>The current plan is to create the RDF Vocabulary as a direct mapping of the
SPICE notation language.</p>
<p><strong>Status: surveying for background resources and
<p><strong>Contact</strong> : <a href="">Danny
<p>Circuits can already be developed using Web technologies, as demonstrated by
the remarkable <a href="">Circuit Lab</a>. </p>
<p>However traditional circuit development tends to be a fairly isolated
affair, a given circuit being developed locally. This can potentially be
augmented by using the distributed, social nature of the Web. Circuits are
graph-shaped, and defined through nodes and connections between those nodes.
The Web is a <a href="">Giant
Global Graph</a>. Why not bring them together?</p>
<p>SPICE offers a standard notation for expressing circuit models and many
tools can be used to simulate the circuits or assist in the development of
circuit boards. The <a
Description Framework</a> offers a standard way of expressing such models on
the Web. </p>
<p>If circuits are expressed in RDF as <a href="">linked
data</a>, then potentially very powerful search and discovery becomes
available. As well as being able to search for circuits by name or description,
the components used and circuit topologies are "visible" in the RDF model, and
can be pattern-matched using the <a
href="">SPARQL</a> query language.</p>
<p>See also : <a
SPICE to the Semantic Web</a></p>
<h3>Use Cases</h3>
<p><em>purely informative</em></p>
<li>the Web as circuit repository using Linked Data discovery &amp;
<li>Web-based simulation - decoupled from the circuit descriptions</li>
<li>distributed circuits : the I/O of one circuit make be connected to the
I/O of any other circuit on the Web</li>
<li>collaborative development : possibly layered over existing distributed
version control</li>
<li>social net : Facebook-like community infrastructure over the topic of
<li>basic modeling of circuit structure</li>
<li>vocabulary of core SPICE terms</li>
<li>extension model for additional terms</li>
<li>correspondences with existing vocabularies</li>
<li>SPICE notation to Turtle notation converter(s)</li>
<li>Turtle to SPICE converter(s)</li>
<li>testbed repository (online triplestore with UI optimised for
<li>testbed simulator (server-side and/or client side, derived from existing
<li>documentation for all the above</li>
<li>guidelines for integration</li>
<p><em><strong>Misc. Notes</strong></em></p>
<p>NB. by default circuit nodes (as numbered in SPICE) should probably be blank
<p>hash or slash URIs??</p>
<p>example term:</p>
<p><code>@prefix dc: &lt;; .</code></p>
<p><code>@prefix rdfs: &lt;;
<p><code>@prefix : &lt;; .</code></p>
<p><code>:Resistor a rdfs:Class ;</code></p>
<p><code>rdfs:label "Resistor" ;</code></p>
<p><code>dc:title "Resistor" ;</code></p>
<p><code>dc:description "a two-terminal passive electronic component which
implements electrical resistance" ;</code></p>
<p><code>rdfs:isDefinedBy &lt;; ;</code></p>
<p><code>rdfs:subClassOf &lt;;
<p><code>:terminalCount "2"^^xsd:int ;</code></p>
<p><code>:spiceInstanceTemplate "R&lt;name&gt; &lt;(+) node&gt; &lt;(-)
node&gt; [model name] &lt;value&gt;+ [TC = &lt;TC1&gt; [,&lt;TC2&gt;]]"
<p><code>:spiceModelTemplate ".MODEL &lt;model name&gt; RES [model parameters]"
<p><code>:spiceExample "RLOAD 15 0 2K" .</code></p>
<h3>Open Questions</h3>
<p>Best bet here is probably follow the modeling of SPICE, e.g. a resistor is
<em>fairly</em> idealised (ideal value but can have temperature coefficient and
can generate noise).</p>
<p>Need to consider how to model actual resistor classes (e.g. all 10k 5%
carbon film) and instances of those - punning..?</p>