Proposal: automatic PD tags

General copyright-related issues and discussions

Moderator: Copyright Reviewers

Leonard Vertighel
Groundskeeper
Posts: 553
Joined: Fri Feb 16, 2007 8:55 am

Proposal: automatic PD tags

Post by Leonard Vertighel »

Just had this idea: how about replacing the current PD related templates by a single one (or three: composer, work, file), which takes as parameters the years when a work will become PD in a given group of countries? Roughly speaking, the idea would be to have something like

Code: Select all

{{PublicDomain|EU=2009|US=9200}}
The template would automatically compare the parameter with the current year, and display the appropriate message. Like that, we would never have to replace/remove the tags once a work enters PD, for that would be completely automatic. Obviously, this would require some changes to the "add composer" form etc., and we'd have to replace the current templates bit by bit. But in the long run this could simplify the management. What do you think?
imslp
Site Admin
Posts: 1642
Joined: Thu Jan 01, 1970 12:00 am

Post by imslp »

This is a very nice idea! Go ahead and implement it (I'm assuming you mean implementing this in a template) :) Even if we have to manually tag the work at first (if we want automatic tagging at submission time we need to work out a few things), it is much better than manually tagging pages with the copyright templates themselves :)
Carolus
Site Admin
Posts: 2249
Joined: Sun Dec 10, 2006 11:18 pm
notabot: 42
notabot2: Human
Contact:

Post by Carolus »

Looks like a great idea, Leonard. You'll have to factor in the difference in calculation of term length for USA copyright between works first published before 1978 and those published on or after that date.
imslp
Site Admin
Posts: 1642
Joined: Thu Jan 01, 1970 12:00 am

Post by imslp »

Well... I think what Leonard meant was that we manually add the dates... I think letting the computer calculate it is much more trouble than its worth (especially given all the uncertainty factors such as the sheer complexity of copyright law). But that means that it is much easier to implement :) It may be implemented at the code level (letting the computer calculate it) if we manage to simplify the copyright laws down to a basic set, or such, though that would require a bit of cooperation on the part of the submitters. For now I think manually tagging it is not a bad idea :)

And btw Leonard, I'm assuming you know how to use (or abuse, depending on your stance) the ParserFunctions extension for this? ;)
Leonard Vertighel
Groundskeeper
Posts: 553
Joined: Fri Feb 16, 2007 8:55 am

Post by Leonard Vertighel »

If I understand correctly, for composer pages there are only two tags, which depend on the death year only. Thus it should be possible to automate the process completely by using the death year as the only parameter. Look at the test page for an example and let me know if I made any mistakes. If later on we are going to modify the "add composer" interface to separate Y/M/D, the template could be added automatically without any user interaction at all.

The new template uses the two templates Copyright and ComposerNonPD-USandEU internally, because including those messages directly into the new template would make the internationalization a major mess.

It is not entirely clear to me how much trouble it would be to achieve the same degree of automation for the work/file templates. Is that too difficult?
Peter
Site Admin
Posts: 436
Joined: Sat Apr 01, 2006 9:34 am
notabot: 42
notabot2: Human

Post by Peter »

Leonard Vertighel wrote: It is not entirely clear to me how much trouble it would be to achieve the same degree of automation for the work/file templates. Is that too difficult?
This seems to be almost the same process to me. This would not always be possible, i.e. when the pub. date is not exactly identified, or with the urtext template.
imslp
Site Admin
Posts: 1642
Joined: Thu Jan 01, 1970 12:00 am

Post by imslp »

As Leonard brought up in the other thread, it may be a very good idea to integrate this into the Add Composer page :) I could do all the backend work (it's really not a lot anyway), but I will need someone to design the HTML so that we have something like:

Born: (Y)____ /(M)__ /(D)__
Died: (Y)____ /(M)__ /(D)__

Where the underscores represent an input box. The name variable can be set to whatever (I can change it if necessary).
Carolus
Site Admin
Posts: 2249
Joined: Sun Dec 10, 2006 11:18 pm
notabot: 42
notabot2: Human
Contact:

Post by Carolus »

For composers:

If (death year) < (present year-70), no copyright template (This composer is PD worldwide, except newer derivative works by others and works publ. after 1922 for USA.)

If (death year) < (present year-50) and > (present year-71), EU copyright template. (This composer is PD in Canada, Japan and other countries with terms of 50 PMA, except newer derivative works by others and works publ. after 1922 for USA.)

If (death year) > (present year-51), Copyright template (This composer is copyright worldwide, except works publ. before 1923 for USA.)

Since USA copyright is driven by publication date instead of author's death date, any automation for US status would have to be done at the file or work-page level, I expect.
imslp
Site Admin
Posts: 1642
Joined: Thu Jan 01, 1970 12:00 am

Post by imslp »

Ahh... I forgot about the situation in the US... but I guess that tagging pages on the work/file level works. :)
Leonard Vertighel
Groundskeeper
Posts: 553
Joined: Fri Feb 16, 2007 8:55 am

Post by Leonard Vertighel »

My PDComposer template should do exactly what Carolus said in his last post, so it should be OK.

As for the HTML form, in the simplest case you replace

Code: Select all

<input type='text' name="cfBorn" value="" />
by something like

Code: Select all

Y: <input type='text' name="cfBornY" value="" size='4'/> M: <input type='text' name="cfBornM" value="" size='2'/> D: <input type='text' name="cfBornD" value="" size='2'/>
At some point we should probably rework the entire interface, but I think that it is best to discuss this in the context of optimizing the workflow as a whole.
imslp
Site Admin
Posts: 1642
Joined: Thu Jan 01, 1970 12:00 am

Post by imslp »

Great! I'm going to try implementing this over the course of the next one or two days (currently have a few irl things to attend to...). It'd also involve hacking the composer category template to be backwards compatible; which is necessary because the date input from the composer categories must go to both #makedate: and the copyright template, and thus cannot be preformatted.
imslp
Site Admin
Posts: 1642
Joined: Thu Jan 01, 1970 12:00 am

Post by imslp »

I forgot to mention that you can start making the copyright "meta"-template if you want :) And yes... optimization of the work flow would be a good idea... even though it'd be a major change, it will probably have to be done at some point.
Leonard Vertighel
Groundskeeper
Posts: 553
Joined: Fri Feb 16, 2007 8:55 am

Post by Leonard Vertighel »

imslp wrote:I forgot to mention that you can start making the copyright "meta"-template if you want :)
Err... which one? The Template:PDComposer is ready since yesterday morning, complete with usage instructions. You can see it in action on the test page. Or are you talking about something else?
imslp
Site Admin
Posts: 1642
Joined: Thu Jan 01, 1970 12:00 am

Post by imslp »

Oops I missed that :oops: In that case maybe you can try modifying the composer template to suit...

Basically, whereas the old template will use "Birth Date=" and "Death Date=", the new template will use the following:

|Born Year=
|Born Month=
|Born Day=

|Died Year=
|Died Month=
|Died Day=

The template should be compatible with both the old and new formats, probably by using #if: to test for which format it is, and then use #makedate: where appropriate. Don't worry about empty dates, I will take care of them on the code level (empty dates will return nothing).
Leonard Vertighel
Groundskeeper
Posts: 553
Joined: Fri Feb 16, 2007 8:55 am

Post by Leonard Vertighel »

No problem, but why do you want to do it like that? I mean, why not output something like

Code: Select all

{{PDComposer|yyyy}}
{{Composer|Born={{#makedate:yyyy|mm|dd}}...
?
Post Reply