Esempio n. 1
0
 def SetPropertyKey(self, key):
     self.key = key
     self.name = self.doc.infGetPropertyName(self.key.p, self.key.p)
     if (kb.split_uri(self.key.p)[0] in kb.part2_all_ns and kb.split_uri(self.key.p)[1] in kb.part2_object_properties) or (self.key.p in [prop['uri'] for prop in self.doc.infGetAvailableProperties(self.parent.parent.uri).itervalues()]):
         self.vis_icon = 'iso_annotation'
     self.vis_label = '{0} = "{1}"'.format(self.name, self.key.l)
     self.Refresh()
     self.RefreshProps()
Esempio n. 2
0
 def any(self):
     if isinstance(self.uri, basestring):
         types = set()
         def f(ti):
             types.add(self.part2ns+ti['name'])
             for i in ti['subtypes']:
                 f(kb.part2_itself[i])
         f(kb.part2_itself['part2:'+kb.split_uri(self.uri)[1]])
         return Part2Proxy(self.part2ns, types, self.builder)
     return None
Esempio n. 3
0
    def ProcessModel(self):
        rd = self.rd
        builder = self.builder

        name_defs = {}

        base_templ = {}

        ann_targets = set()
        builder.set_uuid_prefix("R-")

        @rd.SafeRows("Class")
        def f(r):
            id = r.text("ID")
            label = r.text("Label")
            if label and id:
                name_defs[label] = id

        @rd.SafeRows("Base Template")
        def f(r):

            templateid = r.text("TemplateID")
            templatename = r.text("TemplateName")
            templatedescr = r.text("TemplateDescription")
            base_templ[templatename] = templateid
            ann_targets.add(builder.template(id=templateid, name=templatename, comment=templatedescr))

            for i in xrange(1, 8):
                idx = "Role{0}".format(i)
                roleid = r.text("{0}ID".format(idx))
                rolename = r.text("{0}Name".format(idx))
                if not rolename:
                    continue
                roledesc = r.text("{0}Description".format(idx))
                rolevalue = r.text("{0}Value".format(idx))
                roletype = r.text("{0}Type".format(idx))
                if roletype.startswith("xsd:"):
                    roletype = kb.ns_xsd + roletype[4:]
                else:
                    roletype = name_defs.get(roletype)
                ann_targets.add(
                    builder.template_role(
                        roleid=roleid, name=rolename, comment=roledesc, type=roletype, value=name_defs.get(rolevalue)
                    )
                )

        for uri in ann_targets:
            if self.target_doc.uri_from_names:
                builder.annotate(id=uri, defaultRdsId=builder.UUID("R-"))
            else:
                builder.annotate(id=uri, defaultRdsId=kb.split_uri(uri)[1])
Esempio n. 4
0
    def ProcessModel(self):
        rd = self.rd
        builder = self.builder

        name_defs = {}
        
        base_templ = {}

        ann_targets = set()
        builder.set_uuid_prefix('R-')

        @rd.SafeRows('Class')
        def f(r):
            id = r.text('ID')
            label = r.text('Label')
            if label and id:
                name_defs[label] = id

        @rd.SafeRows('Base Template')
        def f(r):

            templateid = r.text('TemplateID')
            templatename = r.text('TemplateName')
            templatedescr = r.text('TemplateDescription')
            base_templ[templatename] = templateid
            ann_targets.add(builder.template(id = templateid, name = templatename, comment = templatedescr))

            for i in xrange(1,8):
                idx = 'Role{0}'.format(i)
                roleid = r.text('{0}ID'.format(idx))
                rolename = r.text('{0}Name'.format(idx))
                if not rolename:
                    continue
                roledesc = r.text('{0}Description'.format(idx))
                rolevalue = r.text('{0}Value'.format(idx))
                roletype = r.text('{0}Type'.format(idx))
                if roletype.startswith('xsd:'):
                    roletype = kb.ns_xsd+roletype[4:]
                else:
                    roletype = name_defs.get(roletype)
                ann_targets.add(builder.template_role(roleid = roleid, name = rolename, comment = roledesc, type = roletype, value = name_defs.get(rolevalue)))
        
        for uri in ann_targets:
            if self.target_doc.uri_from_names:
                builder.annotate(id = uri, defaultRdsId = builder.UUID('R-'))
            else:
                builder.annotate(id = uri, defaultRdsId = kb.split_uri(uri)[1])
Esempio n. 5
0
    def FindViewType(self, document, uri):
        z = kb.split_uri(uri)
        if z:
            uri_head = z[0]
            uri_tail = z[1]
            if uri_head in kb.part2_all_ns:
                return type('', (Part2TypesView,), dict(bound_uri='part2:'+uri_tail))
            if uri_head==kb.ns_xsd:
                return type('', (XSDTypesView,), dict(bound_uri='xsd:'+uri_tail))

        if getattr(document, 'idi', None) != None:
            for t in document.grTriplesForSubj(uri):
                if t.p in (kb.rdf_type, kb.rdfs_subclassof):
                    return type('', (GraphView,), dict(document=document, bound_uri=uri))

        for doc in self.graph_documents:
            for t in doc.grTriplesForSubj(uri):
                if t.p in (kb.rdf_type, kb.rdfs_subclassof):
                    return type('', (GraphView,), dict(document=doc, bound_uri=uri))

        if getattr(document, 'idi', None) != None:
            return type('', (GraphView,), dict(document=document, bound_uri=uri))
Esempio n. 6
0
    def ProcessModel(self):
        rd = self.rd
        builder = self.builder
        #jord = self.jord

        name_defs = {}

        base_templ = {}

        @rd.SafeRows('Class')
        def f(r):
            id = r.text('ID')
            label = r.text('Label')
            if label and id:
                name_defs[label] = id

        #ids = set(name_defs.values())
        #eq = jord.find_uri_wip_eq(ids)

        #for k, v in name_defs.iteritems():
        #    if v in eq:
        #        name_defs[k] = eq[v]

        ann_targets = set()
        info = {'ignored': 0}

        @rd.SafeRows('Base Template')
        def f(r):
            templateid = r.text('TemplateID')
            if not templateid:
                info['ignored'] += 1
                return
            for i in xrange(1, 8):
                idx = 'Role{0}'.format(i)
                rolename = r.text('{0} Name'.format(idx))
                if not rolename:
                    continue
                roleid = r.text('{0} ID'.format(idx))
                if not roleid:
                    info['ignored'] += 1
                    return

            templatename = r.text('Template Name')
            templatedescr = r.text('Template Description')
            base_templ[templatename] = templateid
            ann_targets.add(templateid)
            builder.template(id=templateid,
                             name=templatename,
                             comment=templatedescr)

            for i in xrange(1, 8):
                idx = 'Role{0}'.format(i)
                roleid = r.text('{0} ID'.format(idx))
                rolename = r.text('{0} Name'.format(idx))
                if not rolename:
                    continue
                roledesc = r.text('{0} Description'.format(idx))
                rolevalue = r.text('{0} Value'.format(idx))
                roletype = r.text('{0} Type'.format(idx))
                ann_targets.add(roleid)
                builder.template_role(roleid=roleid,
                                      name=rolename,
                                      comment=roledesc,
                                      type=name_defs.get(roletype),
                                      value=name_defs.get(rolevalue))

        @rd.SafeRows('Specialized Individual Template')
        def f(r):
            templateid = r.text('TemplateID')
            if not templateid:
                info['ignored'] += 1
                return
            for i in xrange(1, 8):
                idx = 'Role{0}'.format(i)
                rolename = r.text('{0} Name'.format(idx))
                if not rolename:
                    continue
                roleid = r.text('{0} ID'.format(idx))
                if not roleid:
                    info['ignored'] += 1
                    return

            templatename = r.text('Template Name')
            templatedescr = r.text('Template Description')
            supertempl = r.text('Parent Template')
            ann_targets.add(templateid)
            builder.template(id=templateid,
                             super=base_templ[supertempl],
                             name=templatename,
                             comment=templatedescr)

            for i in xrange(1, 8):
                idx = 'Role{0}'.format(i)
                roleid = r.text('{0} ID'.format(idx))
                rolename = r.text('{0} Name'.format(idx))
                if not rolename:
                    continue
                roledesc = r.text('{0} Description'.format(idx))
                rolevalue = r.text('{0} Value'.format(idx))
                roletype = r.text('{0} Type'.format(idx))
                ann_targets.add(roleid)
                builder.template_role(roleid=roleid,
                                      name=rolename,
                                      comment=roledesc,
                                      type=name_defs.get(roletype),
                                      value=name_defs.get(rolevalue))

        for uri in ann_targets:
            builder.annotate(id=uri, defaultRdsId=kb.split_uri(uri)[1])

        log('Templates ignored: {0}\n', info['ignored'])