mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-05-01 11:26:22 +02:00
* Acknowledge messaages from Pulsar, doh! * Change API to deliver a boolean e if value is an entity * Change loaders to use new API * Changes, entity-aware API is complete
130 lines
3.7 KiB
Python
130 lines
3.7 KiB
Python
|
|
from . defs import *
|
|
|
|
def Value(value, is_uri):
|
|
if is_uri:
|
|
return Uri(value)
|
|
else:
|
|
return Literal(value)
|
|
|
|
def Triple(s, p, o):
|
|
return {
|
|
"s": s, "p": p, "o": o,
|
|
}
|
|
|
|
class DigitalDocument:
|
|
|
|
def __init__(
|
|
self, id, name=None, description=None, copyright_notice=None,
|
|
copyright_holder=None, copyright_year=None, license=None,
|
|
identifier=None,
|
|
publication=None, url=None, keywords=[]
|
|
):
|
|
|
|
self.id = id
|
|
self.name = name
|
|
self.description = description
|
|
self.copyright_notice = copyright_notice
|
|
self.copyright_holder = copyright_holder
|
|
self.copyright_year = copyright_year
|
|
self.license = license
|
|
self.publication = publication
|
|
self.url = url
|
|
self.identifier = identifier
|
|
self.keywords = keywords
|
|
|
|
def emit(self, emit):
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=IS_A, is_uri=True),
|
|
o=Value(value=DIGITAL_DOCUMENT, is_uri=True)
|
|
))
|
|
|
|
if self.name:
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=LABEL, is_uri=True),
|
|
o=Value(value=self.name, is_uri=False)
|
|
))
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=NAME, is_uri=True),
|
|
o=Value(value=self.name, is_uri=False)
|
|
))
|
|
|
|
if self.identifier:
|
|
|
|
emit(Triple(
|
|
s=Value(value=id, is_uri=True),
|
|
p=Value(value=IDENTIFIER, is_uri=True),
|
|
o=Value(value=self.identifier, is_uri=False)
|
|
))
|
|
|
|
if self.description:
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=DESCRIPTION, is_uri=True),
|
|
o=Value(value=self.description, is_uri=False)
|
|
))
|
|
|
|
if self.copyright_notice:
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=COPYRIGHT_NOTICE, is_uri=True),
|
|
o=Value(value=self.copyright_notice, is_uri=False)
|
|
))
|
|
|
|
if self.copyright_holder:
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=COPYRIGHT_HOLDER, is_uri=True),
|
|
o=Value(value=self.copyright_holder, is_uri=False)
|
|
))
|
|
|
|
if self.copyright_year:
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=COPYRIGHT_YEAR, is_uri=True),
|
|
o=Value(value=self.copyright_year, is_uri=False)
|
|
))
|
|
|
|
if self.license:
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=LICENSE, is_uri=True),
|
|
o=Value(value=self.license, is_uri=False)
|
|
))
|
|
|
|
if self.keywords:
|
|
for k in self.keywords:
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=KEYWORD, is_uri=True),
|
|
o=Value(value=k, is_uri=False)
|
|
))
|
|
|
|
if self.publication:
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=PUBLICATION, is_uri=True),
|
|
o=Value(value=self.publication.id, is_uri=True)
|
|
))
|
|
|
|
self.publication.emit(emit)
|
|
|
|
if self.url:
|
|
|
|
emit(Triple(
|
|
s=Value(value=self.id, is_uri=True),
|
|
p=Value(value=URL, is_uri=True),
|
|
o=Value(value=self.url, is_uri=True)
|
|
))
|