crom icon indicating copy to clipboard operation
crom copied to clipboard

Exemple fix ?

Open MacGros opened this issue 4 years ago • 0 comments

Hey !

As I'm discovering this cromulent package you developed, I might have encountered several issues with the exemple, I allowed the use of E31_Document which was discouraged (not to say, forbidden) and property names in the .tsv which were renamed.

Thus, I updated the example code but I haven't done the pull request (may I ?), the reason is mainly because you don't mess in somemone else's voacab ;) Maybe there are some issues with the E31 I don't have knowledge of.

from cromulent.model import factory, Identifier, AuthorityDocument, Document, Activity, Event, TimeSpan, HumanMadeObject, Acquisition, Type

# Locally "subclass" to create consistent patterns with E55 and AAT
class Painting(HumanMadeObject):
	def __init__(self, *args, **kw):
		super(Painting, self).__init__(*args, **kw)
		self.classified_as = Type("http://vocab.getty.edu/aat/300033618")

class LugtNumber(Identifier):
	def __init__(self, *args, **kw):
		super(LugtNumber, self).__init__(*args, **kw)
		# ???
		self.classified_as = Type("http://vocab.getty.edu/aat/300033618")	

class TMSNumber(Identifier):
	def __init__(self, *args, **kw):
		super(TMSNumber, self).__init__(*args, **kw)
		# Repository Number
		self.classified_as = Type("http://vocab.getty.edu/aat/300404621")

class LotNumber(Identifier):
	def __init__(self, *args, **kw):
		super(TMSNumber, self).__init__(*args, **kw)
		# Lot Number
		self.classified_as = Type("http://vocab.getty.edu/aat/300404628")


# Or actually subclass in an extension vocab
class Mosaic(HumanMadeObject):
	_type = "extension:Mosaic"

factory.base_url = "http://data.getty.edu/provenance/"
factory.default_lang = "en"

catalog = Document("catalog")
page = Document("catalog-entry")
catalog.c_part = page
auction = Activity("auction")
catalog.documents = auction
lot = Activity("lot")
auction.part = lot
page.documents = lot
txn = Acquisition("sale")
lot.part = txn
what = Painting('my-painting')
txn.transferred_title_of = what
what._label = "My First Paint By Numbers"
what.identified_by = TMSNumber("")


# print(factory.toString(catalog, compact=False))
factory.elasticsearch_compatible = True
factory.context_uri = {
    "name": "http://schema.org/name",
    # This means that 'name' is shorthand for 'http://schema.org/name'
    "image": {
      "@id": "http://schema.org/image",
      # This means that 'image' is shorthand for 'http://schema.org/image'
      "@type": "@id"
      # This means that a string value associated with 'image' should be interpreted as an identifier that is an IRI
    },
    "homepage": {
      "@id": "http://schema.org/url",
      # This means that 'homepage' is shorthand for 'http://schema.org/url'
      "@type": "@id"
      # This means that a string value associated with 'homepage' should be interpreted as an identifier that is an IRI 
    }
}
factory.base_dir = "C:/_Archi/Etudes/20ND_Reperage/CRM_ModélisationConnaissances/PY-A_Script Exif/_out"
factory.full_names = True
factory.toFile(catalog, filename="out.json",compact=False)

print(factory.toString(catalog, compact=True))

Looking forward to output via python some .ttl from the crom json. Bests, Antoine

MacGros avatar Oct 18 '20 17:10 MacGros