Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Post on 24-Feb-2016

50 views 0 download

description

Applying Semantic Technologies to Asset and Configuration Management in the Enterprise. Taylor Cowan Brian Boyd Travelocity.com. Agenda. RDF intro Problem space Demo Real Software ASYDEO Ontology Learn about how we built it. RDF != XML. - PowerPoint PPT Presentation

Transcript of Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Applying Semantic Technologies to Asset and Configuration

Management in the Enterprise

Taylor CowanBrian Boyd

Travelocity.com

Agenda

• RDF intro• Problem space• Demo Real Software• ASYDEO Ontology• Learn about how we built it

RDF != XML

“The site at http://www.travelocity.com, also known as Travelocity, is an online travel agency competing with expedia.com”

Conceptual Model

Travelocity.comAKA

Travelocity

Online travel

agency

Expedia.com

Same concepts serialized as “N3”

:OnlineTravelAgency

a owl:Class .

:hasCompetitor

a rdf:Property .

<http://www.travelocity.com>

a :OnlineTravelAgency ;

rdfs:label "Travelocity"@en ;

:hasCompetitor <http://www.expedia.com> .

As RDF/XML…<rdf:RDF …>

<owl:Class rdf:about="http://foo#OnlineTravelAgency"/>

<rdf:Property rdf:about="http://foo#hasCompetitor"/>

<OnlineTravelAgency

rdf:about="http://www.travelocity.com">

<hasCompetitor rdf:resource="http://www.expedia.com"/>

<rdfs:label xml:lang="en">Travelocity</rdfs:label>

</OnlineTravelAgency>

</rdf:RDF>

As N-Triples canonical format…

<hasCompetitor> <rdf:type> <rdf:Property> .

<http://travelocity.com> <hasCompetitor> <http://expedia.com> .

<http://travelocity.com> <rdfslabel> "Travelocity"@en .

<http://travelocity.com> <rdf:type> <OnlineTravelAgency> .

<OnlineTravelAgency> <rdf:type> <owl:Class> .

Subject, Verb, Object…

And finally, as Java code…

OntModel m = ModelFactory.createOntologyModel();

OntClass ota = m.createClass("OnlineTravelAgency");

Individual tvly = ota.createIndividual("http://www.travelocity.com");

tvly.setLabel("Travelocity", "en");

OntProperty p = m.createOntProperty("hasCompetitor");

tvly.setPropertyValue(p, m.createResource("http://www.expedia.com"));

“Understanding the relationships between systems, software, and the business processes they enable”.

Ontology

Software People

Systems

Business processes

Travelocity Systems Knowledge

• 42,000 explicit assertions.

Problems ASYDEO Solves

• If a change is made to an application, what could be impacted?

• Rate of change exceeds our capacity to manage documentation, is there an alternative?

• What URL/ports should we monitor?

demo

SPARQL #1Question: What other software does software named

“air-shopping” with version “1.0” connect to?

?srcSoftware

?sap

?service

?dstSoftware

Conn

ects

to

Acce

ssed b

y

Prov

ides s

ervic

e

version=“1.0”label=“air-shopping”

SELECT DISTINCT ?dstSoftware WHERE {

?srcSoftware a asydeo:ApplicationSoftware . ?srcSoftware rdfs:label ?label .

?srcSoftware :version "1.0" . ?srcSoftware :connectsTo ?sap . ?service :isAccessedBy ?sap . ?dstSoftware :providesService ?service . FILTER regex(?label, "air-shopping", "i") }

?srcSoftware

?sap

?service

?dstSoftware

Conn

ects

to

Acce

ssed b

y

Prov

ides s

ervic

e

version=“1.0”label=“air-shopping”

SPARQL #2What System Services are provided by Computer System “srvhlp550”?

SELECT DISTINCT ?service WHERE { ?system rdfs:label "srvhlp550" . ?system a :System . { ?system :hasInstalled ?software }

UNION { ?cluster :hasMember ?system .?cluster :hasInstalled ?software } .?software :providesService ?service }

Asydeo basicsApache 2.0 license

Working software

Open to contribution

Java/Jena based

http://asydeo.googlecode.co

m

ASYDEO Platform

Jetty (or any servlet container)

Stripes 1.5

jquery

Jena 2.7

Jenabean

How the UI works

• Our ontology declares a set of widgets

Each Widget has a Server Side representation

Ontology provides UI with tips for how to show each property

hasModel

Path from property to java…

• Has editorhasModel • Has type

Basic DropDown

• Maps to Java class

DropDown

In Raw RDF (N3 format)

schema:hasModel a owl:FunctionalProperty , owl:ObjectProperty ;

rdfs:domain schema:System ; rdfs:label "Model"^^xsd:string ; rdfs:range schema:Model ; schema:editor schema:BasicDropDown; schema:order "94" . schema:BasicDropDown a schema:DropDown .

Included because RDF type is in property hasModel’s domain.

schema:hasModel rdfs:domain schema:System

Candidates from the property’s range(rdfs:range schema:Model)

schema:hasModel rdfs:range schema:Model

The property’s RDF Label provides human readable label text

schema:hasModel rdfs:label "Model"^^xsd:string

The property’s position, relative to other items comes from ontology as well.

schema:hasModel schema:order "94“

Future Work

Auto-discovery Scripts

Systems Engineering

(ASYDEO)

Network dumps

Deployed software manifests

System uptime and configuration

rdf

rdf

rdf

Some Advantages We Discovered

CMDB (mysql)

Flat/tabular model

Code and database cognizant of ontology

No restriction language

All data must be explicit

ASYDEO (Jena)

Hierarchical

Code is ontology agnostic

OWL provides restrictions

Some data is inferred