Semantic search and reporting implementation on.15926 platform Victor Agroskin 10.05.2012 1
About the.15926 project TechInvestLab.ru Moscow-based strategy, organization and IT architecture consultancy Software platform for ontology programming allow business user to perform advanced tasks with data using only domain-specific terms, patterns and metaphors.15926 public releases: Browser, March 2011 Editor, December 2011 TabLan modeling methodology, March 2012 SearchLan query language, May 2012 (planned) Russian-speaking community of approx. 100 friends 2
Ontology Programming Platform A long road to business user starts from rather complex things Programming, modeling, ontologizing different names for one activity Mapping and compiling are the same Ontology-related computations based on generalpurpose multi-paradigm language Not a logic one! Domain Specific Languages (DSLs) -defining higher abstraction language layers and domain-specific constructs From triples to instances to templates to patterns 3
Language Workbench IDE The goal to have a product of Language Workbench class for ontology work Fully integrated DSL development definitions, libraries, editors Turing-complete mapping environment to any schema (conceptual or proprietary CAD/PLM) Seamless integration with outside data sources tables, databases, XML Python realization: Core functionality to work with various triple representations of ISO 15926 type and template instances Core support of SPARQL querying, optimized for work with federated endpoints as unreliable infrastructure Plug-in architecture for data analysis and transformation (mappings, searches, verification, reasoning, etc.) Optimized for ISO 15926 data structure searches (indexing, substring filtering, etc.) 4
Tables SearchLan Interface TabLan Mapping Table Reader.15926 Builder Mapping OIM Definition OIM Writer.15926 Scanner Template Library ISO 15926 Data 15926-2 classes, relationships, individuals Template Library 15926-7 template definitions, template instances Editor Interface 15926-6 metadata.15926 Core 15926-7 template constructor RDF/OWL Files SPARQL Endpoint RDF/OWL Files & SPARQL iring, Part 8, PCA RDL/JORD, Part 4 15926-2,7 OWL Definitions 5
Engineering Data Domain Big Data PCA RDL more then 3 mil. triples and set to grow but it is just reusable reference data! Data integration vs. data reuse do not throw away intermediary files, but learn to work with them Distributed semantic networks with many-layered semantic predefined by engineering knowledge Mappings across several ontologies Specialized semantic tools required for: Data modeling Mappings Reasoning Search 6
ISO 15926 (Meta) Languages Conceptual Graphical Data Query Patterns Part 7 Templates Part 8 Part 2 Type Instances Part 2,7 Instance Diagrams RDF/OWL Conventions EXPRESS EXPRESS-G OWL RDF XML SPARQL 7
+ Engineering Languages Conceptual Graphical Data Query Engineering Specialty Information Patterns Drawings & Diagrams CAD/PLM Formats Part 7 Templates Part 8 Part 2 Type Instances Part 2-7 Instance Diagrams RDF/OWL Conventions EXPRESS EXPRESS-G OWL RDF XML Natural Language SPARQL 8
Filling the Gaps Conceptual Graphical Data Query Engineering Specialty Data Patterns Drawings & Diagrams CAD/PLM Formats Gellish TabLan.15926 Part 7 Templates Part 8 Part 2 Type Instances Part 2-7 Instance Diagrams RDF/OWL Conventions EXPRESS EXPRESS-G OWL RDF XML Natural Language SearchLan.15926 SPARQL 9
SearchLan.15926 Query language for 15926-restricted (Part 2 type instances and template instances) RDF graph Built over SPARQL Integrated 15926-8 specific data and meta-data (annotation properties) queries Available on.15926 platform to plug-ins and in user interface Extendable as standard Python functions High-level logic available for language extension Configurable for specific presets: collections of interrelated data sources (files and endpoints) with namespace conventions, template libraries and metadata annotations 10
Name Queries @find(label=contains('uom')) 11
Part 2 Type Queries @find(id=r1, type=part2.classofclassofinformationrepresentation) 12
Part 2 Relationship Queries @find(type=part2.classification, hasclassifier=r5, hasclassified=out) 13
Template Queries @find(type=p7tpl.descriptionbyinformationobject, hasrepresented=out, haspattern=find(label=icontains( snip ))) 14
Reference Data Verification (1) @find(type=part2.classification, hasclassified= find(type=part2.any.classofrelationship), hasclassifier= find(type=part2.any.classofclassofindividual) ) 15
Reference Data Verification (2) @find(type=part2.classification, hasclassified= find(type=part2.any.classofindividual), hasclassifier= find(type=part2.any.classofclassofrelationship) ) 16
Template Contraction Query @find(type=part2.classofindirectproperty, hasclassofpossessor=out, haspropertyspace= find(type=part2.classification, hasclassifier=out, hasclassified= find(type=part2.propertyquantification, hasinput=out, hasresult= find(type=part2.realnumber) ) ) 17 )
Template Contraction Results 18
Patterns (iring version) P0002 Functional Area PLANT AREA COMPOSITION AREA CODE IDENTIFICATION ClassifiedArrangementOfIndividual ClassifiedClassOfIdentification @find(type=p7tpl.classifiedarrangementofindividual, haspart=find(id=uri( http://company.com/pr oject/data#r7554677677 )), haswhole=out, hascontext=find(label=icontains( plant area composition ))) @find(type=p7tpl.clasifiedclassofidentification, hasrepresented=r1, valpattern=out, hascontext=find(label=icontains( area code ))) 19
Object Information Models Extracting ISO 15926 sub-graphs (not RDF!) and presenting them in a user interface in a compact form Partial definition: oim_settings = [ dict(category="classified by", type=part2.classification, hasclassified=_this, hasclassifier=_other), dict(category="classifies", type=part2.classification, hasclassified=_other, hasclassifier=_this), dict(category="is specialization of", type=part2.specialization, hassubclass=_this, hassuperclass=_other), dict(category="is generalization of", type=part2.specialization, hassubclass=_other, hassuperclass=_this), dict(category="is identified by", type=part2.classofidentification, hasrepresented=_this, haspattern=_other), ] 20
21
OIM Enhanced with Query 22
23
Roadmap Open plug-in specification DSL Workbench IDE Client-driven feature sets: Presets for data sources servers, files, namespaces, metadata, etc. Readers, Writers and Mappings Template expansion Data verifiers and reasoners Opening the source code for partners Python based for foreseeable future 24
XML Files Databases Tables CAD/CAM/PLM SearchLan Interface XML, SQL, CAD/PLM API Reader Table Reader OIM Writer XML, SQL, CAD/PLM API Writer.15926 Builder Template Library Template Library.15926 Scanner Editor Interface 15926-2 classes, relationships, individuals 15926-7 template definitions, template instances 15926-6 metadata Template Expansion 15926-7 template constructor RDF/OWL Files SPARQL Endpoint RDF/OWL Files & SPARQL iring, Part 8, PCA RDL/JORD, Part 4 15926-2,7 OWL Definitions 25
Anatoly Levenchuk http://ailev.ru(rus) http://levenchuk.com(eng) ailev@asmp.msk.su Victor Agroskin vic5784@gmail.com Thank you! Freeware.15926 Editor available as is for evaluation and tests at http://techinvestlab.ru/dot15926editor Feedback and comments: dot15926@gmail.com http://community.livejournal.com/dot15926/ TechInvestLab.ru +7 (495) 748-5388 Elephant icon by Martin Berube is used for.15926 software according to terms at http://www.iconarchive.com/show/animal-icons-by-martin-berube/elephant-icon.html 26