""" RDF serialization class for profile models """ import rdfserializer as rdf from rdfserializer import RDFModelSerialiser as RDFModelSerializer # ^ This was hurting my eyes way too much from rdfserializer import SCHEMA as schema import models as profile_models class RdfWebpage(RDFModelSerializer): """ RDF serializer for Webpage """ _type = schema.WebPage model = profile_models.Webpage entries = [ rdf.RDFSimpleField(schema.url, 'url'), ] class RdfWebsite(RDFModelSerializer): """ RDF serializer for Website """ _type = schema.WebSite model = profile_models.Website entries = [ rdf.RDFSimpleField(schema.name, 'name'), rdf.RDFSimpleField(schema.url, 'url'), rdf.RDFManyField(schema.keywords, 'keywords', lambda keyword: keyword.text), rdf.RDFManyLinker(schema.hasPart, 'notable_pages', RdfWebpage), ] class RdfPlace(RDFModelSerializer): """ RDF serializer for Place """ _type = schema.Place model = profile_models.Place entries = [ rdf.RDFSimpleField(schema.name, 'name'), rdf.RDFSimpleField(schema.address, 'address'), rdf.RDFSimpleField(schema.latitude, 'lat'), rdf.RDFSimpleField(schema.longitude, 'lon'), ] class RdfEvent(RDFModelSerializer): """ RDF serializer for Event """ _type = schema.Event model = profile_models.Event entries = [ rdf.RDFSimpleField(schema.name, 'name'), rdf.RDFSimpleField(schema.startDate, 'date'), rdf.RDFLeftBinder(schema.location, 'place', RdfPlace), ] class RdfBrowserFingerprint(RDFModelSerializer): """ RDF serializer for BrowserFingerprint """ _type = schema.Intangible model = profile_models.BrowserFingerprint entries = [ rdf.RDFSimpleField(schema.description, 'description'), rdf.RDFSimpleField('useragent', 'useragent'), rdf.RDFSimpleField('appname', 'appname'), rdf.RDFSimpleField('appversion', 'appversion'), rdf.RDFSimpleField('platform', 'platform'), rdf.RDFSimpleField('vendor', 'vendor'), rdf.RDFSimpleField('vendorsub', 'vendorsub'), rdf.RDFSimpleField('buildID', 'buildID'), rdf.RDFSimpleField('oscpu', 'oscpu'), rdf.RDFSimpleField('accept_encoding', 'accept_encoding'), rdf.RDFSimpleField('accept_default', 'accept_default'), rdf.RDFSimpleField('accept_lang', 'accept_lang'), rdf.RDFSimpleField('pixeldepth', 'pixeldepth'), rdf.RDFSimpleField('colordepth', 'colordepth'), rdf.RDFSimpleField('screens', 'screens'), ] class RdfSearchEngine(RDFModelSerializer): """ RDF serializer for SearchEngine """ _type = schema.WebSite model = profile_models.SearchEngine entries = [ rdf.RDFSimpleField(schema.url, 'url'), rdf.RDFSimpleField(schema.name, 'name'), rdf.RDFSimpleField('query_pattern', 'query_pattern'), ] class RdfInterest(RDFModelSerializer): """ RDF serializer for Interest """ Interesttype = 'interest' model = profile_models.Interest entries = [ rdf.RDFSimpleField(schema.name, 'name'), rdf.RDFManyField(schema.keywords, 'keywords', lambda keyword: keyword.text), rdf.RDFManyLinker(schema.location, 'places', RdfPlace), rdf.RDFManyLinker(schema.website, 'websites', RdfWebsite), rdf.RDFManyLinker(schema.event, 'events', RdfEvent), ] class RdfProfile(RDFModelSerializer): """ RDF serializer for Profile """ _type = schema.Person model = profile_models.Profile entries = [ rdf.RDFSimpleField('nickname', 'nick'), rdf.RDFSimpleField(schema.given_name, 'first_name'), rdf.RDFSimpleField(schema.family_name, 'last_name'), rdf.RDFSimpleField(schema.email, 'email'), rdf.RDFSimpleField('uses_urls', 'uses_urls'), rdf.RDFManyLinker('interest', 'interests', RdfInterest), rdf.RDFLeftBinder('search_engine', 'search_engine', RdfSearchEngine), rdf.RDFLeftBinder('browser_fingerprint', 'browser_fingerprint', RdfBrowserFingerprint) ]