Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am looking for an information system which has the following features:

  • upload files and add custom properties depending on file type (e.g., author, composer, painter, singer);
  • support for sructured properties (e.g., painter is not just a string, it is an object with own properties: firstName, lastName, dateOfBirth, placeOfBirth, etc.);
  • describe third-party files (given their URLs);
  • version control of descriptions;
  • search for files and other objects by their properties;
  • edit descriptions of files created by others (ability to edit depends on one's reputation, as on StackExchange);
  • voting on files (influences reputation), flagging them.

I was thinking about implementing it myself using Semantic Web technologies, but still can't believe that there is no very similar system. If there is no such a system, are there any components that I could reuse?

If it does matter, I prefer Python, but most software in Semantic Web world is written in Java, so I resigned to the fact that I will have to write some code in Java.

share|improve this question

closed as off topic by DKnight, Yannis Rizos, Matthieu, gnat, Dynamic Sep 22 '12 at 19:33

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer 1

You may be able to bend Microsoft SharePoint to do most of what you are describing - though I realize its not Python or Java.

The most commonly used feature of SharePoint is its Document Libraries which using no programming at all you can define custom columns and properties for. You can also include lookup columns to another list to create something similar to the structured properties you mentioned. The columns required to be filled out for each document is dependent on the content type chosen for the given file type. Custom content types can be defined as needed either programmatically, XML Schema, or by simply using the web interface.

Search is also an out of the box feature that you can take advantage of.

As far as reputation goes this is not a feature built into SharePoint but you could easily associate a reputation status with a user by storing the data either in a SharePoint list or even in a database table somewhere. You can then make custom web parts (think drag and drop controls onto a page) and forms to help make the UI intuitive to what you are trying to accomplish - or you could even define custom toolbar actions (SharePoint 2010 has a ribbon similar to that of office that is extendable)

This may be hard to visualize if you are not familiar with SharePoint but I could see it working out for you. The good news is SharePoint Foundation is free and would include everything I described above, though I would recommend installing Search Server Express (also free) to get the most out of search. You can also use SQL Server Express with it assuming you aren't expecting anything too large. The only real expense then comes from the OS itself.

So while I realize this may not be the most ideal solution for you given the technology is not Python or Java, I thought I would throw it out there since its a solid framework to start on and once you pass the learning curve its very easy to extend.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.