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
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
def toPredicate(self, domain, range): return nameSpaceByName(self.ns)[self.afterMappingName]