Esempio n. 1
0
    def toRDF(self):
        clss = nameSpaceByName(self.ns)[self.name]
        entity = nameSpaceByName('Concept')[self.name]
        triples = []
        for c in self.jsonDescription['isA']:
            triples.append((clss, rdfs['subClassOf'],
                            nameSpaceByName('Ontology')[c['n']]))

        triples.append((entity, rdf['type'], clss))
        triples.append((clss, ontology['classifies'], entity))

        #for property in self.jsonDescription:
        #Ignored as specific to the concept
        #    if property not in ['isA']:
        #        if property in ['memberOf', 'mentions']:
        #            for object in self.jsonDescription[property]:
        #                if isinstance(object, dict):
        #                    if not object['p']: object['p'] = 'Concept'
        #                    #print 'object: {}'.format(object)
        #                    object = nameSpaceByName(object['p'])[object['n']]
        #                elif isinstance(object, basestring):
        #                    object = URIRef(object)
        #                triples.append( (entity, Property.Properties['memberOf'].toPredicate(), object))

        triples += WikiResource(self.jsonDescription).toRDF()

        return triples
    def toRDF(self):
        clss = nameSpaceByName(self.ns)[self.name]
        entity = nameSpaceByName('Concept')[self.name]
        triples = []
        for c in self.jsonDescription['isA']:
            triples.append( (clss, rdfs['subClassOf'], nameSpaceByName('Ontology')[c['n']]) )

        triples.append( (entity, rdf['type'], clss) )
        triples.append( (clss, ontology['classifies'], entity) )

        #for property in self.jsonDescription:
            #Ignored as specific to the concept
        #    if property not in ['isA']:
        #        if property in ['memberOf', 'mentions']:
        #            for object in self.jsonDescription[property]:
        #                if isinstance(object, dict):
        #                    if not object['p']: object['p'] = 'Concept'
        #                    #print 'object: {}'.format(object)
        #                    object = nameSpaceByName(object['p'])[object['n']]
        #                elif isinstance(object, basestring):
        #                    object = URIRef(object)
        #                triples.append( (entity, Property.Properties['memberOf'].toPredicate(), object))

        triples += WikiResource(self.jsonDescription).toRDF()

        return triples
    def toRDF(self):
        entity = nameSpaceByName(self.ns)[self.name]
        model = ConceptModel.Models[self.ns]
        triples = []
        allowedProperties = set(model.Properties())
        for property in self.jsonDescription:
            if property in allowedProperties:
                for object in self.jsonDescription[property]:
                    try:
                        if isinstance(object, dict):
                            if not object['p']:
                                # Its a special case if the relation is a instance relation
                                if property == 'instanceOf': object['p'] = 'Ontology'
                                else: object['p'] = 'Concept'
                            triples.append( (entity, Property.Properties[property].toPredicate(self.ns, object['p']),
                                             nameSpaceByName(object['p'])[object['n']]) )

                        elif isinstance(object, basestring):
                            object = URIRef(object)
                            triples.append( (entity, Property.Properties[property].toPredicate(None, None), object) )
                    except: pass
            else:
                if property not in ['headline', 'p', 'n', 'internal_links', 'subresources', 'isA']:
                    reportError(self.jsonDescription, 'Undefined property: {}'.format(property))

        return triples
Esempio n. 4
0
    def toRDF(self):
        entity = nameSpaceByName(self.ns)[self.name]
        model = ConceptModel.Models[self.ns]
        triples = []
        allowedProperties = set(model.Properties())
        for property in self.jsonDescription:
            if property in allowedProperties:
                for object in self.jsonDescription[property]:
                    try:
                        if isinstance(object, dict):
                            if not object['p']:
                                # Its a special case if the relation is a instance relation
                                if property == 'instanceOf':
                                    object['p'] = 'Ontology'
                                else:
                                    object['p'] = 'Concept'
                            triples.append(
                                (entity,
                                 Property.Properties[property].toPredicate(
                                     self.ns, object['p']),
                                 nameSpaceByName(object['p'])[object['n']]))

                        elif isinstance(object, basestring):
                            object = URIRef(object)
                            triples.append(
                                (entity,
                                 Property.Properties[property].toPredicate(
                                     None, None), object))
                    except:
                        pass
            else:
                if property not in [
                        'headline', 'p', 'n', 'internal_links', 'subresources',
                        'isA'
                ]:
                    reportError(self.jsonDescription,
                                'Undefined property: {}'.format(property))

        return triples
Esempio n. 5
0
 def toPredicate(self, domain, range):
     return nameSpaceByName(self.ns)[self.afterMappingName]
 def toPredicate(self, domain, range):
     return nameSpaceByName(self.ns)[self.afterMappingName]