310 likes | 466 Views
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.
E N D
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 “The site at http://www.travelocity.com, also known as Travelocity, is an online travel agency competing with 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:Classrdf:about="http://foo#OnlineTravelAgency"/> <rdf:Propertyrdf:about="http://foo#hasCompetitor"/> <OnlineTravelAgencyrdf:about="http://www.travelocity.com"> <hasCompetitorrdf:resource="http://www.expedia.com"/> <rdfs:labelxml: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(); OntClassota = 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”.
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?
SPARQL #1 Question: What other software does software named “air-shopping” with version “1.0” connect to? Provides service Accessed by Connects to version=“1.0” label=“air-shopping”
version=“1.0” label=“air-shopping” Provides service Accessed by Connects to SELECT DISTINCT ?dstSoftware WHERE { ?srcSoftware a asydeo:ApplicationSoftware . ?srcSoftwarerdfs:label ?label . ?srcSoftware :version "1.0" . ?srcSoftware :connectsTo ?sap . ?service :isAccessedBy ?sap . ?dstSoftware :providesService ?service . FILTER regex(?label, "air-shopping", "i") }
SPARQL #2 What 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 }
How the UI works • Our ontology declares a set of widgets
Ontology provides UI with tips for how to show each property hasModel
In Raw RDF (N3 format) schema:hasModela owl:FunctionalProperty , owl:ObjectProperty ; rdfs:domainschema:System ; rdfs:label "Model"^^xsd:string ; rdfs:rangeschema:Model ; schema:editorschema:BasicDropDown; schema:order "94" . schema:BasicDropDown a schema:DropDown.
Included because RDF type is in property hasModel’s domain. schema:hasModelrdfs:domainschema:System
schema:hasModelrdfs:rangeschema:Model Candidates from the property’s range (rdfs:rangeschema:Model)
schema:hasModelrdfs:label "Model"^^xsd:string The property’s RDF Label provides human readable label text
schema:hasModelschema:order "94“ The property’s position, relative to other items comes from ontology as well.
Auto-discovery Scripts rdf rdf rdf