Hardware Composition definition language

From Openprojects

Jump to: navigation, search

The aim of this project is to define a language to describe:

  • The parts in a machine
  • How they are connected

Note that:

  • It's a really, really basic thing. There's no point in making it too powerful and too complicated. I think it's best to have a very simple language that allows us to build more things on top of it.
  • It does not allow abstract things to be defined. At least, that's not the original idea. Things like "Motherboard with 3-6 PCIs" cannot be represented, the number of PCI sockets should be concrete, not a range.

Here's what it ought to capture:

  • Part:
    • Class
    • Name
    • Sockets (might be optional), each with its type and unique name within a part.
    • More info
  • Connection:
    • Part-name (name), socket (name), Part-name (name), socket (name).

It might be defined using DTDs or maybe an ontology with OWL or something like that:

  • DTD based
    • If connections between components are nested as part of the component definition, then there's no easy way to represent loops.
    • If connections between components are not nested, the language is quite simpler, and everything's neat. However, ontologies might be a better solution.
  • OWL based
    • This allows some things to be automatically included.

Examples

There are several configurations that should be captured:

  • A hardware composed by other hardware. Optionally, you can define interconnections among such components. If you do, a system would be able to infer some properties of the whole composition.
  • A hardware with it's own sockets.
  • A hardware that is an instance of other hardware.

Concrete Examples

HCDL: Example1

Personal tools