<div class="content">
  <h2 class="h2">Eclipse Lyo</h2>

  <p class="oslc-introtext">
    Eclipse Lyo promotes the use of Linked Data principles and the
    <a href="https://open-services.net/"
      ><abbr title="Open Services for Lifecycle Collaboration">OSLC</abbr></a
    >
    (Open Services for Lifecycle Collaboration) standard for publishing
    lifecycle data, to enable the interoperability of heterogeneous products,
    services, and other distributed network resources. The open OASIS OSLC
    standard is based on a RESTful architecture and Linked Data principles, such
    as those defined in the RDF family of specifications, and the
    <a href="https://www.w3.org/TR/ldp/">W3C Linked Data Platform</a>.

    <br />

    Eclipse Lyo supports Java developers with the development of REST-based
    servers and clients that need to share heterogeneous information as RDF
    resources.
  </p>

  <div class="horizontalCenter">
    <a
      class="btn btn-huge btn-default lyoButton"
      href="http://oslc.github.io/developing-oslc-applications/eclipse_lyo/eclipse-lyo.html"
      >Documentation</a
    >
    <a
      class="btn btn-huge btn-default lyoButton"
      href="https://forum.open-services.net/c/sdks/lyo"
      >Forum</a
    >
    <a
      class="btn btn-huge btn-default lyoButton"
      href="https://github.com/eclipse/lyo"
      >Sources</a
    >
  </div>

  <h2 class="h2">Lyo Features</h2>

  <div class="gutter">
    <h3 class="h3">OSLC4J SDK</h3>
    <p>
      Lyo&rsquo;s central component is the OSLC4J
      <abbr title="Software Development Kit">SDK</abbr> (Software Development
      Kit) that helps build REST-based servers and clients, compliant with the
      OSLC standard.
    </p>
  </div>

  <div class="gutter">
    <h3 class="h3">Lyo Designer</h3>
    <p>
      Lyo Designer is an Eclipse plugin that allows one to graphically model (1)
      the overall system architecture, (2) the information model of the RDF
      resources being shared, and (3) the individual services and operations of
      each Server in the system.
    </p>
  </div>

  <div class="unit lastUnit">
    <h3 class="h3">And more ...</h3>
    <p>
      <a
        href="http://oslc.github.io/developing-oslc-applications/eclipse_lyo/eclipse-lyo.html"
        >Learn more</a
      >
    </p>
  </div>

  <div class="horizontalCenter">
    <a
      class="btn btn-huge btn-default lyoButton"
      href="https://twitter.com/oslcNews"
      >Follow OSLC on Twitter</a
    >
    <a
      class="btn btn-huge btn-default lyoButton"
      href="https://github.com/eclipse/lyo#contributing"
      >Contribute to Lyo</a
    >
  </div>
</div>

<script
  async
  src="https://www.googletagmanager.com/gtag/js?id=G-6QTW2TY42X"
></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag() {
    dataLayer.push(arguments);
  }
  gtag("js", new Date());

  gtag("config", "G-6QTW2TY42X", {
    anonymize_ip: true,
    client_storage: "none",
  });
</script>
