/
index.html
191 lines (140 loc) · 6.01 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>SPICE Vocabulary</title>
<meta name="generator" content="Amaya, see http://www.w3.org/Amaya/" />
<link media="screen" href="../css/spec-rec.css" type="text/css"
rel="stylesheet" />
</head>
<body>
<h1>SPICE Vocabulary</h1>
<p><a href="http://en.wikipedia.org/wiki/SPICE">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
href="http://www.w3.org/RDF/">RDF</a>.</p>
<p><strong><a
href="https://workflowy.com/shared/36d7c6c7-ae01-81bc-c738-0f2eae4e31cb/">Resource
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></p>
<p><strong>Status: surveying for background resources and
information</strong></p>
<p></p>
<p><strong>Contact</strong> : <a href="mailto:danny.ayers@gmail.com">Danny
Ayers</a></p>
<p></p>
<h2>Motivation</h2>
<p>Circuits can already be developed using Web technologies, as demonstrated by
the remarkable <a href="https://www.circuitlab.com">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="http://dig.csail.mit.edu/breadcrumbs/node/215">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
href="http://en.wikipedia.org/wiki/Resource_Description_Framework">Resource
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="http://linkeddata.org/">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="http://www.w3.org/TR/sparql11-query/">SPARQL</a> query language.</p>
<p>See also : <a
href="http://dannyayers.com/2011/02/23/Adding-SPICE-to-the-Semantic-Web">Adding
SPICE to the Semantic Web</a></p>
<p></p>
<h3>Use Cases</h3>
<p><em>purely informative</em></p>
<ul>
<li>the Web as circuit repository using Linked Data discovery &
search</li>
<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
electronics</li>
</ul>
<h2>Requirements</h2>
<h3>Vocabulary</h3>
<ul>
<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>
</ul>
<h3>Tools</h3>
<ul>
<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
circuits)</li>
<li>testbed simulator (server-side and/or client side, derived from existing
tools)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>documentation for all the above</li>
<li>examples</li>
<li>guidelines for integration</li>
</ul>
<p></p>
<p><em><strong>Misc. Notes</strong></em></p>
<p>NB. by default circuit nodes (as numbered in SPICE) should probably be blank
nodes</p>
<p></p>
<p>hash or slash URIs??</p>
<p></p>
<p>example term:</p>
<p></p>
<p><code>@prefix dc: <http://purl.org/dc/elements/1.1/> .</code></p>
<p><code>@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
.</code></p>
<p><code>@prefix : <http://purl.org/spice/> .</code></p>
<p><code>+xsd</code></p>
<p><code></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 <http://purl.org/spice/> ;</code></p>
<p><code>rdfs:subClassOf <http://dbpedia.org/resource/Resistor>
;</code></p>
<p><code>:terminalCount "2"^^xsd:int ;</code></p>
<p><code>:spiceInstanceTemplate "R<name> <(+) node> <(-)
node> [model name] <value>+ [TC = <TC1> [,<TC2>]]"
;</code></p>
<p><code>:spiceModelTemplate ".MODEL <model name> RES [model parameters]"
;</code></p>
<p><code>:spiceExample "RLOAD 15 0 2K" .</code></p>
<p></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>
<p></p>
</body>
</html>