semantic search on dot15926 platform at semantic days 2012
DESCRIPTION
The goal of .15926 (pronounced "dot15926") project http://techinvestlab.ru/ISO15926en is to allow business user to perform advanced tasks with data using only engineering discipline-specific or geometry-specific terms, patterns and metaphors. Currently ISO 15926 is supported with possible extensions to STEP or discipline level standards. To this goal we've created a platform for ISO 15926 ontology programming - a set of tools to build and deploy domain-specific languages (DSLs) for easy viewing, navigation, search, editing and mapping of ISO 15926 compliant data. Specific instruments are required to build higher abstraction language layers and define domain-specific constructs, rising above an “assembler” level of table/RDF/OWL representations of ISO 15926 data. We use Python programming language with special libraries and syntax tricks to build DSLs. By using general-purpose programming language for DSL construction it is possible to solve the problem of code reuse, be it for a user interfaces or for a specific ISO 15926 editing, search or mapping tasks. One DSL, semantic search language of dot15926 Scanner, was created, implemented and optimized for work with various triple representations of ISO 15926 type and template instances stored both in files or at SPARQL endpoints. During the talk we shall show how the search language helps in the following tasks - data verification, pattern matching for the "raising" of templates, and construction of a high level object information models (OIMs) for user viewing. Presentation delivered at https://www.posccaesar.org/wiki/PCA/SemanticDays2012TRANSCRIPT
1
Semantic search and reporting implementation on .15926
platform
Victor Agroskin 10.05.2012
2
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
3
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 general-purpose 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…
4
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.)
5
Tables
ISO 15926 Data____
Table Reader
.15926 Builder
RDF/OWL Files
iRING, Part 8, PCA RDL/JORD, Part 4
.15926 Core
15926-2,7 OWL Definitions
15926-2classes, relationships,
individuals
15926-7template definitions, template instances
15926-6metadata
15926-7template constructor
TabLan Mapping Mapping
SPARQL Endpoint
Tem
plat
eLi
brar
y
OIM Writer
.15926 Scanner
OIM Definition
SearchLan Interface
Tem
plat
eLi
brar
yRDF/OWL Files
& SPARQL
Editor Interface
6
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
7
ISO 15926 (Meta) LanguagesConceptual Graphical Data Query
Patterns
Part 7 Templates Part 8 RDF/OWL
ConventionsPart 2 Type Instances
Part 2,7 Instance Diagrams
EXPRESS EXPRESS-G OWL
RDF SPARQL
XML
8
+ Engineering LanguagesConceptual Graphical Data Query
Engineering Specialty
Information
Drawings & Diagrams
CAD/PLM Formats
Natural Language
Patterns
Part 7 Templates Part 8 RDF/OWL
ConventionsPart 2 Type Instances
Part 2-7 Instance Diagrams
EXPRESS EXPRESS-G OWL
RDF SPARQL
XML
9
Filling the GapsConceptual Graphical Data QueryEngineering
Specialty DataDrawings & Diagrams
CAD/PLM Formats
Natural Language
Patterns GellishTabLan.15926
SearchLan.15926
Part 7 Templates Part 8 RDF/OWL
ConventionsPart 2 Type Instances
Part 2-7 Instance Diagrams
EXPRESS EXPRESS-G OWLRDF SPARQLXML
10
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
11
Name Queries@find(label=contains('UOM'))
12
Part 2 Type Queries
@find(id=R1, type=part2.ClassOfClassOfInformationRepresentation)
13
Part 2 Relationship Queries@find(type=part2.Classification, hasClassifier=R5, hasClassified=out)
14
Template Queries@find(type=p7tpl.DescriptionByInformationObject, hasRepresented=out, hasPattern=find(label=icontains(“snip”)))
15
Reference Data Verification (1)@find(type=part2.Classification, hasClassified=
find(type=part2.any.ClassOfRelationship), hasClassifier=find(type=part2.any.ClassOfClassOfIndividual)
)
16
Reference Data Verification (2)@find(type=part2.Classification, hasClassified=
find(type=part2.any.ClassOfIndividual), hasClassifier=find(type=part2.any.ClassOfClassOfRelationship)
)
17
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)
))
)
3051CGCO Individual
COPossessor
Temperature Range-40°C – 85°C
Property Range
PropertySpace
CO Indirect Property
Classifier
Temperature 85°C
Property
TemperatureSingle Property Dimension
CelsiusScale
Classified
Classifier
85
Arithmetic NumberInput Result
Property Quantification
Upper Bound Of Property Range
Ambient TemperatureCO CO Relationship
Classified
Classifier
Classifier
Represented
Pattern ”85"ExpressReal
CO Identification
Classified
Classified
Classifier
Temperature -40°C
Property
Classified
Classifier
-40
Arithmetic NumberInput Result
Lower Bound Of Property Range
Classifier
Represented
Pattern ”-40"ExpressReal
Classified
Classified
Property Quantification
18
Template “Contraction” Results
19
Patterns (iRING version)
@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’)))
P0002
Functional AreaPLANT AREA COMPOSITION
ClassifiedArrangementOfIndividual
AREA CODE IDENTIFICATION
ClassifiedClassOfIdentification
20
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),]
21
22
OIM Enhanced with Query
23
24
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
25
Tables
ISO 15926 Data___
Table Reader
.15926 Builder
.15926 Core
15926-2classes, relationships,
individuals
15926-7template definitions, template instances
15926-6metadata
15926-7template constructor
Te
mp
late
Libr
ary
OIMWriter
.15926 Scanner
SearchLan Interface
Template Expansion
XML, SQL, CAD/PLM API Reader
XML, SQL, CAD/PLM API Writer
XML Files Databases CAD/CAM/PLM
Te
mp
late
Libr
ary
RDF/OWL Files
iRING, Part 8, PCA RDL/JORD, Part 4
15926-2,7 OWL Definitions
SPARQL Endpoint
RDF/OWL Files & SPARQL
Editor Interface
2626
Thank you!Anatoly Levenchukhttp://ailev.ru (Rus)http://levenchuk.com (Eng)[email protected]
Victor [email protected]
Freeware .15926 Editor available “as is” for evaluation and tests at http://techinvestlab.ru/dot15926Editor
Feedback and comments:[email protected]://community.livejournal.com/dot15926/
TechInvestLab.ru+7 (495) 748-5388Elephant 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