applying semantic technologies to asset and configuration management in the enterprise
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 PresentationTRANSCRIPT
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