Towards A Semantic Web Application for NVD-CPESemantic WebCommon Platform EnumerationAgendaMotivationOntologyResource Description FrameworkProject ObjectivesSemantic TechnologySlide 10Semantic Technology-ExamplesSemantic Technology-JenaApplication ArchitectureStrategySlide 15High-level NVD Ontology OverviewSlide 17Data migration utility–First approachData Migration UtilityData migration utility–Second approachStrategy -ContinuedSlide 22Slide 23Strategy - Cyclic ProcessPerformance MetricsPerformance Metrics: Load StatisticsLoad time with reasoningPerformance Metrics: Query timeQuery times with reasoningSlide 30Slide 31Slide 32Slide 33ConclusionReferencesVaibhav Khadilkar Jyothsna RachapalliDr. Bhavani ThuraisinghamThe University of Texas at DallasHumans are capable of using the Web to carry out tasks such as finding the ◦Finnish word for "monkey", ◦reserving a library book,◦searching for a low price for a DVD. However, a Computer cannot accomplish the same tasks without human direction because web pages are designed to be read by people, not machines. The semantic web is a vision of information that is understandable by computers, so that they can perform more of the tedious work involved in finding, sharing, and combining information on the web.CPE is a structured naming scheme for IT systems, platforms, and packages.A CPE Name is represented by a URI.Each name consists of the prefix "cpe:" and is followed by up to seven different components. These components are used to help build consistent and unique names. The components relate to ◦platform part, ◦vendor, ◦product name,◦version, ◦update level,◦Edition◦language.Motivation to opt for semantic web technologyArchitecture of a semantic web applicationSemantic web technologies overviewStrategy for creation of semantic web applicationPerformance metricsNational Vulnerability Database (NVD) ◦Contains product and vulnerability management data◦Based on a relational modelGoal is to enable automation of◦Vulnerability management◦Security measurement and complianceRelational model imposes limitations◦Product composition difficult to achieve.Find all products containing a TCP/IP device?Find all products within common codebase?Advantage of semantic model - Reasoning!An ontology provides a precise vocabulary with which knowledge can be represented”“This vocabulary allows us to specify which entities will be represented, how they can be grouped, and what relationship connect them together”RDF is a language for representing information about resources in the World Wide Web.RDF is intended for situations in which this information needs to be processed by applications, rather than being only displayed to people.RDF is intended to provide a simple way to make statement◦the part that identifies the thing the statement is about is called the subject.◦The part that identifies the property of the subject is called the predicate◦and the part that identifies the value of that property is called the object.Creation of products ontology for NVD-CPECreation of a corresponding view in relational DBMigrate data from relational to semantic modelCreate a web application using the new modelThis application should enable user to◦Navigate ◦Search ◦Query the dataConverter◦Converts data form various sources(e.g.,tables, spreadsheets, webpages) into RDFRDF Parser and Serializer◦Facilitates reading and writing RDF in one of several file formats (e.g., N3, N-TRIPLE, RDF/XML)RDF Store (or triple store) ◦Is a database that is optimized for the storage and retrieval of many short statements called triplesReasoner◦A program that performs inferences according to specified inference rulesSPARQL◦The W3C standard query language for RDFApplication interface◦Uses the content of an RDF store in an interaction with some userConvertersD2RQ used during first approachJena API to read relational data into a Jena modelParser/SerializerJena API to read and write the triples into any serialization format RDF StoreRDB, SDB and AllegrographInferencing Pellet Reasoner SPARQL ARQ is a query engine for Jena that supports SPARQLThe Jena Framework provides◦A RDF API◦Reading and writing RDF in RDF/XML, N3 and N-Triples◦An OWL API◦In-memory and persistent storage◦SPARQL query engine◦Built in Reasoners◦Plug-in for external reasonersSPARQL SPARQL Ontology API Core RDF Model API Inference API (Reasoners)Ontology API Core RDF Model API Inference API (Reasoners)RDF FILESRDF FILESAPPLICATIONAPPLICATIONConvertersParserSerializerDBDBDBDBRDB SDB AllegroGraphRDF/Triple StoresStep 1 - Use Cases◦Describe initial, most difficult requirements in conversational, informal English ◦Work with domain experts to create use cases required by a given domain◦Use case examplesSearching – “What are all the products that have a Vendor of Microsoft and a product name of windows_nt?”Equality – “Determine if two instances are equal”Step 2 - Ontology creation and validation◦Use an ontology editor to create an ontology/schema based on the use cases created in Step 1◦Ontology editor used: Protégé 4.0◦External reasoner plug-in: Pellet◦Creation ofClasses and corresponding subclassesProperties: Object properties as well as data propertiesIndividuals of a class◦Run the reasoner to validate the correctness of model= <owl:Class>= <rdfs:subClassOf>ABC= <rdf:Property>Identification concept hierarchy Product category concept hierarchy hasIdentificatio nRelationship connecting the two structuresStep 3 - Ontology migration to Jena◦Create Java classes using Ontology generated in Step 2◦Java classes are created using SchemangenInput to Schemagen: Ontology.owlOutput from Schemagen: Ontology.javaStep 4 - Data migration◦Perform Data Migration – Two approaches◦First approach Mapping relational data to RDF with a mapping tool◦Second approachMapping relational data to RDF using database viewDatabase to Relational Query (D2RQ) allows us to view the relational database as an RDF triplesD2RQ mapping file◦ Maps database columns to predicates in the ontologyUse the mapping file to convert the relational database into triplesA triple is created as follows◦primary key of table ---> subject◦column name ---> predicate◦value
View Full Document